Today I resized Gwen to work in native retina display resolution (640x960) as opposed to the old iPhone resolution (320x480). This meant resizing all of my placeholder entities and rebuilding the sample level.
Figuring out proportions for level entities has been challenging. I’ve been looking at examples of other iPhone games to see how big their objects are on the screen. This game would fit an iPad much better due to the increased screen space, but I really don’t want to cut out the entire iPhone market. Not that it really matters - if Gwen was ever to actually be released it would be free and I’d be happy to just get something out. I’m not looking to set any records here, I just want to finish and eventually, hopefully, release something that I am happy with.
Go button animation
In addition to resizing and as part of the object size thoughts I’ve started thinking of the HUD and made a simple Go button animation. It’s not so much the graphics that I’m focusing on here as they will all be replaced but the button’s behavior and how these animations are triggered. You never really think these things are a big deal and I guess for most they wouldn’t be, but while I’m already familiar with setting animations and spritesheets in Impact getting all of the conditional statements right to trigger the right animation at the right time can get fiddly.
The button has four animations:
failed_press. They’re technically called animations, but really each of them consists of a single frame. My spritesheet looks like this:
Each animation is an array of frames. So we have 4 frames in this sheet in total -
0, 1, 2, 3. This is what is used to specify which frames make up each animation.
By default the button looks red (so frame
2). When the player completes a path from a base to the destination, the button changes to green (
0) to indicate that it can be used. When the player presses the button in its ready state, its green press frame (
1) is activated for
0.2 seconds. If the player tries to click the button when it is in its default red/not ready state, the red press
3 is activated for
Other than that I also did a bit of code cleanup. Things like removing some global variables I didn’t need and rearranging a few things.
Today was overall pretty relaxed again. I think I might keep working on these less mind-bendy bits of functionality while I work out all of the level details (specifically sizing of objects). I’ll need a bit of time to brainstorm and experiment with how big or small things need to be to make this work in such a cramped space. I figure these little things will need to be done eventually anyway, so as long as I’m making progress on a daily basis I can jump around from complicated to simple features to implement. It’ll give me a bit of variety anyway and allow me to relax between brain cramps. In addition this frees up part of my brain to keep pondering the level stuff and also listen to some really awesome talks online (today was Jonathan Blow and Bret Victor).