So far I’ve just skimmed over the basics of the ActionScript 3 language and played around with them in a Hello World style class. On the surface it has a rather Java like feel to me, although given my sketchy understanding of Java that might just be a conflation of my unfamiliarity of the two languages. Another similarity is that given the strong GUI bent a lot of basic instruction tends towards cut-and-paste programming; find something that is close to what you want, then tweak it to fit your needs. I suppose that is quite apt for something that I want to use for prototyping, but with that approach I always feel uncomfortable that I don’t truly understand the language. I’ve skimmed enough to look into a proper app, I think. Nothing too fancy, but enough to get a feel for the development process.
On the non-development front, I finally got around to playing (and finishing) Portal on the weekend. Good game, although very short; only took a few hours, at least one hour of which was just playing around with the portals. I’ve also got no idea why the internet has latched onto “The cake is a lie” as the primary meme, given there were plenty of better lines than that the game.
Brief progress update, condensed blog post version: The last week was a mess due to my own lack of focus. How embarrassing. Without some hard milestones I have a tendency to aimlessly drift off towards some of the more vague objectives in the back of my mind, and before I know it I’ve spent three days during “research” (i.e., reading TV Tropes and playing Spelunky). Not good. Bad game developer!
Given these slips are turning into a habit, I’ll spend the next month posting blog updates every couple of days to keep some sense of responsibility and to steer me naturally towards harder, quantifiable targets that provide something to show. I can’t hide a lack of progress if it’s out in the open!
I have spent some time reviewing Box2D though, and it’s good enough to sell me on using Flash and AS3 (ActionScript 3) as my prototyping platform. I don’t think I’m currently good enough with it to effortless whip up ideas with ease, which I think is a sticking point at the moment. I suspect I need to take a step back and shore up on the fundamentals.
By the end of October, I aim to be comfortable enough with Flash that I can prototype key game ideas and assess their suitability as the basis for long term projects. For next week, I’ll work through a few basic Flash exercises, explore my way through AS3, and actually put a game up on this website (finally!) even if it’s a basic clone.
I also need to knuckle down and work on systematically on improving my art and music, which I’ve been shamefully neglecting. And the website needs work, so that’s on the to-do list too.
For my prototype, I need to have some asteroid-like objects floating around. That means I’ll need to have some form of collision detection. If I want my asteroids to be irregular and somewhat large, then it becomes non-trivial. I did a few rough sketches to figure out an appropriate approach, but I quickly decided it’s not worth the effort hacking together something myself. I might as well look at what physics solutions are already out there: far quicker, less hassle, more reliable and I can get greater functionality out of it too.
I had a look at Bullet and got the demos running under Xcode. It looks pretty sweet, but I wasn’t sure I needed the power of a 3D collision library. I’ll keep in mind though if I go that way.
Instead, I’m going with Box 2D. This also looks pretty nice, and I only need 2D physics. The clincher was that it has been ported to Flash, which is ideal for me. I can use a similar interface in both domains.
Given Box2D is implemented in Flash as well as C++, I’m leaning towards implementing the prototype in Flash. I feel far more comfortable playing around in Flash and ActionScript; in C++, I feel the urge to focus on writing nice code rather than just implementing ideas. If I know my way around a physics library in Flash, it should be a snap to prototype all sorts of things. Just playing with the physics demos is fairly fun all by itself, so it sounds like a perfect platform for getting a feel on new ideas.
Brief update. I’m kicking myself for slipping a week or so here. I got distracted by a whole bunch of small things and tasks that made it easy to lose track of time and priorities. I’m setting myself the task of focusing on prototypes next week.
My Windows computer had a heart attack. I was playing a not-that-recent 3D game on it and after a while the hard disk starting skipping beats. I suspect it’s either the hard drive or the power supply; since I haven’t been pushing it for a while there’s a range of potential issues. It booted up again the next day and was fine since, but I’m not sure how long it would last. Given it’s a 2004 era machine I don’t think it’s worth putting too much effort in fixing it; for a few hundred bucks I can buy a better computer. For now, I’ve got a offcast from my parents as a replacement; they’ve both moved to laptops and their desktop was gathering dust, and it’s roughly the same give-or-take as my Windows box (main difference: Radeon 9600 XT instead of Radeon 9700 Pro; not that dissimilar for most things really, and probably better to not have a card with a big power draw anyway). I’m considering buying a new computer as well, but honestly if the replacement works okay I’ll probably stick with it for a while. It’s not as if I have huge computing needs. As long as it plays Half-Life 2′s Orange Box, I’m happy (which I’ve yet to play, will get to soon).
In terms of development though, this isn’t that much of a setback as I primarily code on an iMac. All this means it might take me an extra day to port anything across to Windows as I’ll need to reinstall my tools, but nothing too drastic. I might also be able to dual boot Linux on the replacement computer, something the weird gremlins in my old computer wouldn’t allow.