One more day to go. I think that the game is in a pretty good shape already. There are a couple of issues that should be fixed, and I can add more features, but I think it's close to something deliverable.
- I fixed a bug that allowed the player to double-jump while in the air, which, mixed with the wibbly-wobbly collisions, could make it fall through the platform. No more double-jumping.
- I implemented a proper camera. Before everything was just rendered relative to the player position. Now there's a camera object that moves forward when the player gets to a certain distance from it. Currently, that distance is quite short (100px), I'm considering making it bigger, maybe up to 1/3 of the screen.
- Thanks to the feature above, now the player can also move to the left. The camera doesn't move back because then it would be too easy to chase aliens that escaped the player.
- Now it is possible to move a bit the player while in the air, hopefully making it easier to control the landing position.
- Aliens now shoot. The player loses a life if a bullet hits her, and the level if she loses all her lives.
Tomorrow is the last day. I'll be happy if I can add half of the features below:
- Stop updating the game when the level is finished or lost. Currently, the player can keep moving and fighting even when the level lost dialog shows up.
- Add a crouching action when the down arrow is pressed, to make it easier to dodge alien fire.
- Balance the difficulty. I've been able to finish the level with the current settings, but I haven't really tested how hard it is. I want to try out different combinations of alien shooting speed and hit points.
- Add some sort of feedback when the player is hurt. Maybe a short animation or similar.
- Make the collisions less buggy. Currently, the sprites sometimes end up on the middle of the platforms instead of the top.
- Fix walking animation. This one is going to be hard. By the end of the level, the walking animation usually looks slightly off. I'm probably doing something wrong with the rendering library, but I have no idea what it is.