I started this blog back in November of last year. My aim was to document the development of a Bullet Hell shoot-em-up, written in JavaScript. Here we are, six months later, and lots has happened. With 20 posts already written, I thought that now would be a good time to take stock of what I've already done, and to look to the future and see what's to come.
That's a lot of steps! Most of them are quite small, and that's the point - breaking any big project down into smaller tasks makes it much more achievable. It also helps me to focus on one thing at a time - if something comes up while I'm working on another task then, instead of getting side-tracked, I just add that new task to my task list and tackle it later.
That's a pretty big list! If you think I've missed anything - let me know. If you think you know which of these I should work on next - let me know. You can leave a comment here, Tweet me at @evilpaul_atebit or email me (you can find my address in the git repo)
The Story So Far
Here's what I've covered so far in the 20 blog posts about the game:- Basic player control of a spaceship sprite on an HTML canvas
- Adding bullets and creating an object class
- Adding bullet spawners
- Re-factoring the game update and rendering to use an object manager
- Rough collision detection using hit boxes
- Upgraded to pixel-perfect collision
- Adding bit-mapped font support
- Fixed a resource loading bug
- Added game states and a state manager
- Housekeeping - adding utility and helper code
- Added score bullets that award you points when you collide with them
- Added a resource manager
- Tweaked player control
- Implemented animated objects
- Added the first enemy type: XY Zappers
- Implemented a game timer and game intro and game over ceremonies
- Went back to simplified graphics in order to focus on gameplay
- Added loading of levels from data files
- Started work on an in-game level editor
- Implemented an undo/redo system for the level editor
That's a lot of steps! Most of them are quite small, and that's the point - breaking any big project down into smaller tasks makes it much more achievable. It also helps me to focus on one thing at a time - if something comes up while I'm working on another task then, instead of getting side-tracked, I just add that new task to my task list and tackle it later.
Where Do We Go From Here?
So what's next on my task list? Well, the editor still isn't finished yet so there's clearly a lot of work to do there, but there are also lots of other tasks. Here's a list of some of the stuff that I'm planning to work on in the future, in no particular order:- Level editor improvements - creating new objects, editing object properties, copy and paste, level import, export and sharing, etc.
- New bullet and enemy types - homing missiles, mines, enemies that fire, etc.
- Background graphics - background tiles and maybe background effects like star-fields
- Audio - music and sound effects
- Game metrics - charting score, bullet counts, movements, etc. after you complete a level
- Debug and release builds - run tests and extra checks in debug, take them out and minify the code in release
- Cloud hosting - store users, levels, scores, etc. on a database hosted on AWS
- Graphics - finding an artist who can create awesome visuals for the game
- WebGL - porting the graphics engine over to WebGL to allow for high quality visual effects
- Code improvements - adding tests, more comments and doing some code re-factoring in a few places
That's a pretty big list! If you think I've missed anything - let me know. If you think you know which of these I should work on next - let me know. You can leave a comment here, Tweet me at @evilpaul_atebit or email me (you can find my address in the git repo)
Comments
Post a Comment