Path of Exile Screenshot

In my previous post, I described the mood of the game as ominous and foreboding, but the screenshot I offered up was of one of the spell animations (that I just happened to screenshot at exactly the right moment). I took a bunch of screenshots after that trying to find one that would be able to capture the “feel” of the game and represent it in one still image. That is absolutely impossible to do. This one comes pretty close though (again, click through for full resolution):

This is a shot taken in one of the many dungeons. There is a tremendous amount of detail in the environment, as you can see. What you can’t see is what this looks like in motion -when the water is rippling, the light is dancing, the music is playing, and the edges seem to transform into an impenetrable darkness. You don’t know what might be just a few steps away, only that this tiny bridge will be your only means of escape. It really does set a mood.

This will probably change after the thousandth time of leveling a character, but for the first time through, with really no information available online about what might be lurking just out of camera view, this game has my pulse racing like no game in a very long time.

Path of Exile Beta test day one

There are some pretty silly rules as part of beta participation, for example:
Quote:

– Please do not reveal unannounced information or comment on how things in the Beta work. For example, you should not post about some skill that hasn’t been announced yet, or some unannounced looting system we are testing out.
– Please do not post balance values from the game or update public websites or wikis with this information. For example, if someone is gathering a list of item names in the Beta, you should not tell them new names. This information will change very frequently and we don’t want to confuse people.

But I wanted to throw up some information over here, so I will try to do so within the confines of the rules.

1) The game looks amazing. I am running it on a machine that I built for WoW WotLK release some time ago with an AMD AthlonII 250 at 3.0ghz, 8gigs of corsair DD3 ram, and a 1 Gig Radeon HD 5570 DDR3 PCIe video card. I am able to run PoE at my monitor’s max resolution (1680×1050) with the (still very few) graphic options set to max. Although I only set the anisotropic filtering to 4x (it goes as high as 16) because I can see no appreciable difference between 4 and 16. Frame rates go from 30 or so in a zone with others to 60 or so when I’m alone. During some spell animations it will spike as high as 200 (according to their meter). The spell animations are beautiful to watch; it’s not just a lightning bolt that comes out of a pointy stick, there is a full animation for each cast type that is clearly rendered in dozens of frames to give it a beautiful, fluid look. These animations can, of course, be sped up with some skills both passive and as affixes on items. Here is a screenshot of one of the spells in action (click through for full resolution):

2) The mood in this game takes me back to the original Diablo. The whole thing is very dark and gritty (and by that I mean the mood and the tone, not the gamma of the visuals), and from the start gives you a feeling that you are an unwanted stranger in Wraeclast, and there are precious few strongholds in which to seek shelter. The sound effects, special effects and lighting all contribute to the mood and the whole package is quite ominous and foreboding.

3) The systems in place in the game are all very intuitive. I don’t want to overstep my bounds and say something that gets me kicked out of the beta, so I’ll just say that what Chris says in the Diablo Podcast #30 about the handling of the flasks (eliminating the need to stockpile potions), the way the skills are handled, and the passive skills are all put together in a way that is very simple and intuitive, yet gives infinite possibilities for different builds. In fact the way the skills work it would be entirely possible to have two characters wearing exactly the same items -both benefiting greatly from the gear- without having even a single skill or passive in common.

4) The only complaint I have about the game so far is the camera angle, a sample of which can be seen in the above screeshot. It just leaves you wishing that you could scroll out to get a bit better perspective of what is going on around you. That is a petty complaint, to be sure, as I was used to the angle after about the first half hour of play, and in taking the time to think it through I think it would really take away from the ominous mood of the game if you were to be able to take stock of too much of the game world all at once. As it is if after you barely survive a battle you take a few steps in any direction you could quickly be overwhelmed -making you think through your actions a bit more carefully than the normal faceroll technique that will suffice as strategy in an ARPG.

5) The Beta discussion forum is buzzing. A lot of the people who are in the beta (myself included) are taking the time to give thoughtful, relevant feedback, and the guys at GGG are in the forums every day looking over our posts, offering advice, explanations, and asking for further feedback on everything from issues of balance, to issues of the handling of maps, quests, etc. It is clear from their daily responses that they are still trying to hone this game (which is already beautiful, and has very few mechanical issues) into something that can take the throne as THE must play ARPG. They are so quick to react, in fact, that a patch that will be released on Friday will already incorporate some of the items suggested since the beta started.

6) I felt an obligation to write something over here now that I have been playing around with it for a day, now I have done that. I got get back in there and play!

How far I have come in Java

I started fucking around with programming Java in probably 2000 or 2001. I had never taken a course, read a book, or otherwise seen or written any code since, well, ever. So I bought a book with the deceptive title Teach Yourself Java in 21 Days. Here it is at least a decade later, and I am still a long damn way from actually knowing the language. Despite that, I have made leaps and bounds in my programming knowledge along the way.

Old Lightz OutHere you see my first ever completed Java Program (click through for real size). I had made a few other applets along the way, but just silly little image cycling and displaying type stuff that took very little knowledge, and I don’t think any of those exist on any of my backup disks. This is the first playable game that I ever made (well, a screenshot of it). It was probably the happiest day of my life when this applet was the “featured applet of the week” on the Java Boutique shortly after I finished it. After that though, I pretty much gave up on the language entirely. Why? Well just look at that applet. It is very blocky and drab; it clearly looks like someone’s first applet. Not to mention that since I didn’t know anything about arrays, I had handled all of the blocks in the grid in a ridiculously complicated axa, axb, axc, … bxa, bxb, bxc …, type manner that made the code overwhelmingly long (over 1400 lines of code) and difficult to understand. Simply put, nothing in that applet taught me how to do anything because, while I did soldier through and make a working game, the way I handled every single thing was just flat wrong.

Shortly after the release of the Android, a friend’s suggestion that we should start programming games for the device (which runs on Java, but with a different enough library that it requires a completely different knowledge set to program), combined with a game idea that came to me for the game Cubits (click through to play Cubits on the GoGamesZone), got me excited enough to give programming another go. Unfortunately Cubits proved to be too difficult to play to become popular (though I still love the concept, and love playing the game). The game was successfully ported to the Android OS, and along the way the friend who ported it over helped me learn a great deal about the Java language. I then decided to go completely the other way with it, and created HyperSpheres” (click through to play HyperSpheres on the GoGamesZone). This game uses most of the methods from Cubits, but simplified the game play so much that it is way too easy to play, and as such it also doesn’t get much play. These games were both conceived entirely in my head, without doing any research into what puzzle games were the most popular, and without doing any of the requisite legwork, the absolute flop of both should have been expected.

Fruit MadnessSo for my next, and most ambitious project, I chose to go with the popular match three item type games to see if I could get a bit broader appeal. What I came up with is Fruit Madness (click through to play Fruit Madness on the GoGamesZone). Fruit Madness is just like all of the jewel matching games that are so popular. I went with fruit instead of jewels for two reasons: 1) so that it would stand out a little bit from the myriad Jewel matching games and 2) because in my head I had this super cool casino type theme that I wanted to implement. So when you clear a group of 3 blocks the fruit drops away, but if you clear 4 blocks one of those blocks will turn into a “Spin” block (the spin is a wild block that can be matched with any group of two blocks. It will then spin, slot-machine-style to the same fruit as the ones adjacent to it). But the real fun starts after that. If you match 5 or more fruits, one of the blocks will turn into a gold “Super Spin” block. This block has the ability to turn all of one type of fruits on the board into “Spin” blocks. The spin blocks can also be matched to each other in groups of three or more, in which case they will all spin until they come out in a matching group. The feel of the game really did come out like a big slot machine. Between the mechanics, the audio (some of which I was able to download, and some of which I created the midi files from scratch to match the theme I was going for), and the images (which started as images gleaned from the internet, that were then modified -heavily- to get them to look uniform to the game), not to mention the big, neon sign on the top of the board, I nailed pretty much exactly what I was going for with this one.

But here’s the problem. Still suffering from a lack of programming knowledge, the code for this game is a whopping 2000 lines. Many of the methods used in the game must be used in a sequential order that makes it impossible for me to go in and make edits to the way situations are handled. An example: the biggest difficulty in the game is how to handle when the spin blocks will spin automatically and when the user must initiate it. I had initially programmed the game so that the blocks would only spend if the user had initiated it (meaning actually moved the spin block during the current turn). What this did (and what I would have known had I done any testing whatsoever) was made it possible for someone to get about 80% of the board filled with spin blocks, after which the game could go on, quite literally, forever. In order to change this, I decided to go exactly the opposite way with the spin blocks: they would all spin if matched at any point during the game. This meant that if you made a clear that caused a spin block to drop into a matching position it would automatically spin. Long story short, the idea is that there will never be a time when there is a valid match on the board since they will automatically clear themselves. The way the code was written though, I had to add a bunch of methods to try to handle this, and it is far from perfect. The only way to remedy this will be to completely scrap the code and start over, something I am loathe to do with such a large code that functions almost as intended. But it was another lesson learned.

KERPOPThis brings me to Kerpop (click through to play Kerpop on the GoGamesZone). Taking what I had learned from all of the previous experience, Kerpop is the most mechanically sound game I have created to date. The mechanics are every bit as complex as any of the previous games, but are handled in a mere 1100 lines -that’s almost half the size of Fruit Madness-. In addition to being the most mechanically sound, it also has by far the best combination of graphics and audio of any of my games. The graphics in this case were created completely from scratch, while the audio was gleaned from some slide whistle samples I found at freesound.org. As near as I can tell, the mechanics in this game perform flawlessly; I have played hundreds of games without a mechanical error (some may note that if a group of balloons is in the process of raising and you clear another group it will make that first group restart their ascent. This is true, however since that is how the code is written it is not a mechanical glitch. This led to me rethinking the way I handle the animation timers though, and in a planned sequel to KerPop, every balloon will have it’s own timer to eliminate this).

I took a few steps back from programming over the last six weeks or so. I am still kicking ideas around in my head, still actively working on the sequel to KerPop, and have one other interesting concept that I am working with a friend to try to hammer some potential mechanical problems with before I go to programming it full scale. This short hiatus has given me a chance to clear my head of the code a bit, and is ultimately what led to me writing this today. I actually went and played each of these games today as a fan of puzzle games for the first time -every other time I had played them was as a programmer, and I didn’t take away from those sessions the same experience that a player would- and I was just blown away by just how far I had come as a programmer. They may still have a couple of little bugs here and there, but for someone who has never had any training in Java, audio engineering, or graphic arts, I am damn impressed with the results that I have thus far achieved. Now if only I could get more people to agree and play the damn games…

New Lightz Out To finish this post more or less where I started, I recently got another request for the source code for Lightz Out (click through to play Lightz Out on the GoGamesZone), and was so embarrassed by the code that I decided to rewrite it (I still get requests for the code once every couple of months. Usually from kids in college or trade schools taking courses in Java that want to see how to make a simple game work… the old code was not going to help them). I set about to re-writing the game without using any of the old code. In fact the only thing that made it into the new game was the audio (for nostalgia really, since this game is a direct rip off of Tiger Toys handheld game and I sampled the audio directly from that device.). Every method in the code was changed: the overly complicated board layout was changed to a simple boolean array; the hints were put into a separate method that makes their use more reliable; the graphics were updated to bring it into this century. The only reason I used the old code as a reference at all was to know the layouts of the fifty boards (again stolen from the handheld device), the exact hints that were given on the boards (also stolen from the game), and to know what the minimum and maximum moves were (also taken from the handheld game). Did all this modernizing increase the size of the code? Nope, exactly the opposite; the old code was 1434 lines, the new code is 399. Additionally the new code is handled quite well (I think) and is heavily commented so that when I do surrender the source code it will be helpful to those who are reading it.

Along the way I have learned how to handle arrays fairly well. I have learned how to use some simple graphic tricks to make mouse-over buttons that change colors. I have learned how to create fairly decent simple graphics. I have learned how to create a separate, system-based timer for every object on the board to move separately. I have learned how to store the entire game board all the way back to the very first move for the purpose of undoing them. And, probably most importantly, when I look at the finished projects like KerPop and Fruit Madness, I am filled with pride that I was able to handle all the elements, from code to finished graphics and audio, with nothing more than determination and a bit of technical advice from a friend (mostly in handling arrays and reciprocating check methods). And now that I have taken some time away and had the opportunity to see how fun the games are to play, I am getting excited about creating the ones that I have currently shelved. Who knows which one of these could become the next Angry Birds.

Diablo 3 controversy

I have been anxiously awaiting the release of Diablo 3 for a very long time now, and am as excited as ever that there is news coming out fairly frequently, and that the beta is supposed to start sometime in the third quarter of 2011. But the last bit of news, coming from the reporters who played the closed beta, started a bunch of controversies.

The first controversy is about not supporting offline play. They were pretty clear that you can still play by yourself online, but that you can’t play the game if you aren’t online. This upset a couple of hundred people, it seems, but they are all very vocal about it. I wholly support the online only decision though, and here is why: In the days of Diablo, Diablo II, and Diablo II:Lord of Destruction nearly every hack, cheat and dupe method was made possible by somehow getting offline characters into online games. Offering Diablo III as a server-based game instead of a client-based game makes it so that the actual files that run the game will never touch your computer. It is much more difficult to reverse engineer, and that means it will be much easier to control hacking, duping, and cheating. While it will still be possible for some talented programmers to recreate the server, it should be next to impossible to force any of this hacked data into Blizzard’s servers. And it is their game, so if they want to limit it that way, that’s their own choice. But I’m sure that the hacking, cheating, duping thing played a huge role in their decision.

The second controversy is about the removal of skill points. For anyone who played Diablo II, the way it goes is each level you get a skill point. You generally ignore those skill points until you get to level 30, then start dumping them into only your most powerful skills. Ultimately, you have a character that has 80 skill points dumped -20 a piece- into 3 powerful skills, with the other ones going one point a piece into pre-requisites to use the most powerful ones. Not everyone played that way, of course, but anyone who played much beyond level 80 in multiplayer pretty much had to do it that way or else you just couldn’t kill anything or survive. In the new system, you don’t have to dump 20 points into the skills, you just get the skills, then have to choose which ones you want to use. A simplified process that will take a lot of time out of looking up builds, looking up what skills work best in what situation, and lets you play the damn game already. I’m for it, but some hate it. It does take away from some of the personalization of the characters, but I’m all for getting to playing the game and not having to dick around choosing skills and then having to redistribute them all again later once I found out that I horribly fucked them up in the first place. Again, I am for the change.

By far the biggest controversy to come out of the closed beta though is not only an auction house, but also a real money auction house. The auction house was something that was being hotly debated prior to the announcement, but no one had ever really considered that not only would there be an auction house, but also one for real money. I think it is a great thing for the game, for a lot of reasons, listed here in no particular order (except the numbers to separate them -which in no way are by way of importance):

1) Blizzard will be charging a listing fee for items listed and taking a percentage of the sale price of all items that sell through the real money auction house (they did say there will be a couple of listing free items for each account each week, so you don’t have to pay to post your first couple of items). This means that, if successful, Blizzard should be able to generate enough revenue from the auction house that they won’t need to charge any fees to play -ever. This also means that they will have a vested interest in keeping patches coming to release new end-game content, thus adding new and better items to the economy, to keep the revenue coming in. That should mean way more time and attention spent to Diablo III after release than to Diablo II. Which would be great.

2) A real money auction house will stabilize the economy. Without having to go through the black market (illegal websites) to buy items, the prices will eventually stabilize. And with the listing fees and sales fees, it will be in people’s best interest to post only items that are worth real money, and to only post those items at fair (consistent with the current economy) prices. This means that if you choose to pay real money for items, you are going to be far less likely to get screwed. And also having it as a part of the game means that you won’t send money to some korean website and never know if you are going to actually get their item or not. Blizzard will be backing it, the sales will be instant (once the auction ends) and the items are yours.

3) I have thought a lot about this, and the way the economy should work is like this: Only the most valuable items will be selling for real money. Nothing in normal or nightmare will be worth real money, and really only the very best drops in hell will really be worth anything. This means that at least 2/3 of the items in the game will likely only be traded for gold. Because of that any of the dreaded “farmers” that everyone is worried about will be far more likely to sell any item that is not a guaranteed quick sale item for gold, then sell the gold for real money. It doesn’t make sound financial sense to post the items for real money and possibly not sell them for days -if ever- when they can quickly sell them for a little bit of gold, then sell the gold quickly. And the gold will sell quickly, because there will be 2/3 of the items in the game that will only be trading for gold. I would go so far as to theorize that, given the hatred from a lot of people about the idea of a real money auction house -and their staunch position that they will never use it-, it is probably more likely that anyone interested in making real money playing the auction house in Diablo III will be more likely to buy items from the real money auction house and sell it on the gold auction house. Why? Because a lot of people won’t use the real money auction house, be it because they are morally opposed to it, or because they aren’t old enough to have a credit card linked to their account, the gold auction house will have a much higher demand for the high-end items. So it is entirely possible that an item that is selling for (making up numbers) $10 on the real money auction house could be sold for $11 worth of gold on the currency auction house; much higher demand, much lower supply.

I’m sure that there will be people who try to buy all the mediocre legendary items for gold and then sell them for cash. That works great in theory. In practice, however, it is more than buying it for gold and listing it for real money: someone has to actually pay the real money or you just screwed yourself out of $X.XX worth of gold that you payed to buy the item in the first place. And as previously mentioned, since you pay a listing fee to post the items, if the item fails to sell enough times you could actually lose money overall on the transaction.

I could be dead wrong on this point, but I really think I have a good idea of how it is going to shake down, and I needed to vent it.

I apologize for the lack of relevant links, I just wanted to get this posted before the my burrito was done.

Fuck I hate getting old

But I suppose I should flesh out that concept a little bit.

I have never been the type of person to be overly concerned with the aging process. When I saw a guy like say George Clooney just seemingly getting more handsome as he went through his 30s and 40s, I said bring it on. Even Richard Gere pulled it off until he was darn near 60. So I was thinking that age wouldn’t be something that I would be bothered with.

My hair has been slowly turning gray since I was in my 20s. I think it is still mostly brown, but whenever I visit the barber and see that pile of trimmings I do wonder why it seems disproportionately gray compared to my head, but that is probably just a trick of the light or something. I have been forming little wrinkles on my face for nearly the same amount of time. Unfortunately spending a decade at a job that I really hated gave me some rather menacing ones that really amplify when I frown, but at the same time I also have the typical laugh lines and crows feet well established so that I can just imagine them all a bit deeper to see what I will look like in another decade or so. Still, this doesn’t bother me.

What I really, really hate about getting old is my metabolism. As recently as my 30th birthday I was still able to eat damn near anything I wanted without gaining much weight. I was (and still am) very active at work, so I did (and still do) burn a lot of those calories off, but it was just so much easier even just a few years ago. In fact the leanest I have been in my adult life was in early 2005 (making me just shy of 31) when I was down to just over 170 pounds. I wasn’t eating right, I wasn’t exercising, I wasn’t really doing anything that I should have been doing to maintain that weight, I just wasn’t eating. This, of course, was shortly after I had quit drinking, so my body was used to an extra 1500 or so calories a day from beer, so when that was cut off the weight started dropping faster than I could keep track of. Of course having had a chance to look over my eating habits at the time, I was still in the habit of eating a piece of beef jerky for breakfast/lunch (real jerky, not a “beef stick”) for about 120 calories, then a largish meal just before bedtime which I would estimate to be around 1000 calories. No snacking, nothing else, just 1100 calories a day.

Of course as anyone who has starved themselves knows (and mind you I wasn’t doing this consciously) you don’t really feel all that well. I was hungry a lot of the time, I felt weak a lot of the time, and worst of all I had these random blackouts -which generally lasted only a second or two, but would happen in all situations, be it driving, walking, sitting on the couch, whatever. For a time I thought I might have something seriously wrong with me, but once I actually started eating they went away. But so did that slender (ish) build.

Since roughly my 35th birthday, I have been in constant struggle with my weight. Being ~5’10” and 190 puts me smack dab in the middle of average on both height and weight for my age range, but I just don’t like it. The useless Body Mass Index would put me as “overweight”, but not into the “obese” category. All that is well and good, but I just don’t like the way I look at 190, and it is getting harder and harder to maintain this shit body. As recently as April, I weighed myself at 200.3 pounds. That is the spot where I have to do something about it; I made a deal with myself a long time ago that if I ever got to 200 pounds I would do some dieting and exercising to get myself back down into the 180s. It took me about 5 weeks to do it, but I got myself back down to a much more reasonable 187 pounds. My dieting wasn’t really a diet at all, but just portion control -one of the things that has haunted me my whole life is overeating. I think partially as a result of having been brought up to always clean my plate, and partially just from going through some pretty tough times when I didn’t know when I might have another good meal, I tend to gorge myself. It takes me a lot of discipline to keep from doing that, and discipline is a hard thing to come by.

So today I was feeling particularly fat, and I made the horrible mistake of stepping on a scale. 201.9. I have gained 15 pounds in under 2 months. What the fuck? The wife has been helping with the portion control on the days we have dinner together: 3/4 of a pound of ground turkey in the dishes as opposed to just over a pound of ground beef, frozen meals that I can fit on the plate in one trip instead of two enormous mounds, my meals are actually not that bad. In theory… In practice, of course, trying to control my portions leaves me hungry, which then leads to me cooking an extra burrito, or an extra corn dog, because my brain thinks I need more than usual since I am hungry. That is where the discipline is hard to come by …Well, that and the god damned Doritos… Why the hell do they have to be so delicious?

But that scale reading 201.9 means that the deal I made with myself is in effect again, I have to get back down into the 180s. So lunch today was a 340 calorie french dip (no sauce) and dinner will be 700 calories worth of frozen chimichangas (plus a bit for some grated cheese), and that’s it. I dusted off the elliptical machine tonight for a 22 minute go (1.6 miles it says, although I think think their math may be a bit suspect. And 22 minutes because that is how long a tv episode is on Netflix). But damn it, even 5 years ago I wouldn’t have to be paying such close attention to the calories I am taking in and exercising every day just to maintain the shitty form I have always had… So I say agin, Fuck I hate getting old.