March 12, 2009
Project Protos: Day 2
This week long game project is markedly different from the week I spent on Pierre and the Fish a couple of years back. Back then I felt like my mind was on fire, and threw everything I had at the project. This time, a bunch of minor ills have made me feel a bit more sedate. Nothing serious ( add indigestion to lack of sleep), so I’m not actually sick, but it means this project is more about pace and perseverance than passion. That’s not a bad thing; I won’t burn myself out that way. And I’m sure I can rekindle and regulate the necessary fire once I’ve got back up to speed.
Day 2 was spent relearning the basics of Flash and game development in general. I’ve got a copy of the book ActionScript 3.0 Game Programming University by Gary Rosenzweig, which is a good primer. It’s even got the code for a turret-based shooter game within it, so I’m virtually guaranteed to get something working on time.
I spent the day working through the basic examples: “Hello World” and all the little demos that show how to do each core element of game-related functionality in Flash (display, input, sound, timers, animation etc.). This wasn’t so much to rote learn the specifics (I’ve got references for that), but to prod my neurons into remembering how to make games. I’m very rusty, so this took all day.
The best thing I remembered about Flash and ActionScript 3 is that it uses an event-driven programming paradigm very similar to the one I developed myself for my own 2D framework. For those unfamiliar with event-driven programming, it’s where the program flow is dictated by when key events happen; i.e. when someone presses a mouse button or when a second has elapsed, then do this. You typically do this by linking functions (called listeners) to events, such as myButton.addEventListener(MouseEvent.CLICK, clickButton);, where myButton is the object that you want to deal with mouse clicks and clickButton is your listener function. Event-driven programming is perfect for GUIs and I find it works a treat in games too.
Today (start of Day 3), I’ll get to work on building the playable prototype. Having some source code as a base will help, although I plan to write it again to help jog my game development memory. My current checklist for the day goes like this:
- Read through the bits of the book that describe the turret shooter game and take notes. Look at the reference code within Flash as well.
- Roughly plan out the basic core of the game on paper.
- Write the code and get it running with crudely drawn placeholder art
If I have extra time, I’ll look at the game as it stands before deciding what to do next.