Friday, May 7, 2010

First Post

Ever since I was a kid, I've always wanted to design and create games. This blog will track my first real attempt at something beyond tic-tac-toe or connect four. I've always been a big fan of bullet hell shoot-em ups (shmups), so this project will be a basic attempt to create a shmup engine written using C++ and SDL. My biggest hope for this blog is that it will reach a point where it can be used as a road-map for future shmup creators. If the project goes well, consider this blog to be a guide. If it doesn't, consider this to be a list of things to avoid. Another hope is that this keeps me on track and organized, so if anyone is reading this and doesn't see an update for a long time, please e-mail me (shmup@matrisking.com) and kindly remind me to get my ass in gear.

Short Term Goals: The overarching goal of this project is to create a very basic shmup where you can shoot at some static enemies and they'll shoot back. I've created five benchmarks:
  • Phase 1: Display the player's ship on the screen, move it around with arrow keys (complete)
  • Phase 2: Enable to the player ship to fire bullets (complete)
  • Phase 3: Create some static enemies (complete)
  • Phase 4: Enable the enemies to shoot at you on regular intervals (complete)
  • Phase 5: Implement basic collision detection (complete)
This is pretty much the most basic shmup I can imagine. I'd also like to adopt a version control system and some standard comment/documentation schemes. Provided I make it this far, I will attempt to extend this functionality with...

Long Term Goals (roughly ordered by level of ambition):
  • Intelligent collision detection, which should go a long way to creating "bullet hell"
  • Moving enemies
  • Non-linear bullet paths
  • Score
  • Powerups
  • Multiple player weapons
  • Learn how to draw (or make friends with an artist, or hire an artist)
  • Learn how to compose (or make friends with a musician, or hire a musician)
  • Create an XML representation of levels
  • Create a level editor
  • Create an Android port of this engine
  • Create an XNA port of this engine
Future posts will (hopefully) contain the following:
  • Status updates
  • Links to useful resources that I find
  • Discussions of the various software engineering dilemmas I will encounter

No comments:

Post a Comment