This article is copied from my personal blog.
Today Michael gave me the first music track he composed for the game and I am impressed. I am excited to have professional sounding music for a change.
That being said, the first thing I did after inserting the music into the game was program a mute button so that I could keep listening to techno while I coded.
Michael also delivered an electric explosion sound effect that works perfectly.
You can see the three rock types in the current spritesheet for the game which is autogenerated by chem:
The first thing I did today was create a electrical disintegration animation, and I’m pretty pleased with the result:
I wonder if this is considered good enough to submit to opengameart.org.
After I finished that animation, I worked hard and had a productive day:
- 3pm – Finished electrical disintegration animation and added sound effect to game.
- 3pm – Added in Michael’s background music and made it so you can toggle it with M key.
- 5pm – Added meteors with collision detection.
- 5pm – Fixed “ships rotating for no reason” bug.
- 6pm – Inserted a new Level 1 – meteor field that you have to navigate through.
- 7pm – Created a spastic portal graphic and added it to the level.
- 7pm – Fixed navigation bug for ships equipped with backwards thrusters.
- 9pm – Fixed scrolling when manual overriding.
- 11pm – Added a UI pane when ships are selected.
- 12am – Added a mini-map.
- 1am – Made it so you can send ships into a portal.
- 3am – Made it so selected portal shows what’s inside it.
- 4am – Added ability to send ships out of a portal.
- 5am – Added announcement support.
- 6am – Made your convoy show up on the level complete screen.
- 6am – Added stats to the level complete screen.
- 8am – Finished level complete screen so that you can get to the next level.
The source tree has grown quite a bit since last time I checked, up to 2,704 lines:
49 src/bullet.js 77 src/credits_screen.js 43 src/flag_ship.js 30 src/fx.js 73 src/game.js 34 src/game_over_screen.js 178 src/level_complete_screen.js 20 src/main.js 81 src/meteor.js 58 src/militia_ship.js 91 src/physics_object.js 82 src/portal.js 60 src/ranger_ship.js 37 src/sfx.js 449 src/ship_ai.js 177 src/ship.js 7 src/ship_types.js 57 src/squad.js 933 src/state.js 23 src/team.js 105 src/title_screen.js 35 src/turret_ship.js 5 src/uuid.js 2704 total
I actually feel pretty good about the code organization right now. I have only had to pause progress and refactor 2-3 times and each time it was mostly painless.
Enough of the technical stuff. Let’s see some screenshots.
Here’s one of the meteor field level you start out in:
Here’s what it looks like when you finish the level:
And here’s me giving a walkthrough of the progress made today:
My TODO list is getting a bit unruly. I’ve divided it into “next steps” and “nice-to-have”s:
- Add text instructions in Level 1 to explain the controls and how to beat the level.
- Make it so that you start out the next level with the same fleet that you exited with.
- Show your cash in the UI
- Allow you to create ships that you unlock by spending cash.
- Insert a level between 1 and 2 with some attackers. You’ll have to build some Ranger ships to defend your Flagship.
- Figure out why the game slows to a crawl when many ships are added and then deleted.
- Experiment with speed cap on ships. (I’m reluctant to do this one – I like the idea of high-velocity dogfighting.)
- If Ranger is in range, don’t accelerate toward target.
- Fix the thruster sound glitchiness
- Each command should draw something on the screen to indicate that something is commanded. (Some commands do this already.)
- When forming a squad, don’t assume all ships have the same radius.
And now I must rest. I am exhausted.