2010/12/23 (Villainmad): Look, bullets!
Created: / Modified:
So, here is the latest version. Same system requirements as before. So far, all it has is Lexy flying around on her motorcycle, and bullets which spawn automatically. Move with arrow keys, shift to focus.
There's not much else to say about it, except that I've moved all the Villainmad posts to their own devblog, so instead, let's talk about what I'm thinking of for the game's internal structure.
So, each level is going to be made up of Sequences. Within a Sequence, you can do just about everything else — spawning enemies and bullets, playing and stopping music, advancing to the next level, starting a cutscene/conversation-scene, ending the game, advancing to the next frame, everything a danmaku game does. And they will also have things like if-statements, for/while loops, getting/setting variables, and other such stuff. (And I'm gonna need to come up with every single one of 'em!) They can also take arguments, so you can change the beginning parameters (i.e. you can have a single Sequence for multiple enemies) There will also be functions, which are like Sequences except that they can have return values and they can't go beyond a single frame of animation. Bullets and things which are spawned during a Sequence do not disappear at the end of the Sequence; they persist until they collide with the player or leave the screen. You can also have multiple instances of the same Sequence running simultaneously. Variables can be either be in the scope of a given Sequence ("number of bullets this enemy has spawned"), the current level, or the whole game (i.e. player-speed/health/lives, score). There, I think that's flexible enough to do just about anything!
Everything is handled by Sequences; players will have their own set of Sequences for firing and bombing, and you can also create other Sequences per player to be called by them. Bullets/enemies can have Sequences for when they collide with the player, too, but the default just does the usual damage.
The level backgrounds (Villainmad is going to be entirely 2D,1 I think) are going to be handled in their own set of Sequences. Just a matter of "make background-tiles appear here and here," I guess. I suppose a more advanced game would feature stuff for doing 3D graphics, but I'm not gonna do that right now.
I will be designing my own file format. I will actually work on the the levels using some sort of human-readable script (Lua, perhaps), and then compile them into a not-quite-so-human-readable format for the game itself; it's going to directly use byte-streams, and use single-byte identifiers for "what we're about to do", so "a 32-bit integer with a value of 27" might look like, I dunno, 0xB20000001B in binary in the file. (A boolean with a TRUE value might be 0xB001.)
Unless, of course, someone knows of an existing open-format I could use instead. I'm not gonna be picky.
It's sure gonna be hard, and it'll take a long while, but it's gonna be fun!
1"Make this one 2D sprite scroll at a different speed from this other 2D sprite behind it" doesn't count.
Previous: 2010/12/11 (Villainmad): She may not look like much, kid, but she's got it where it counts.
Next: 2011/01/02 (Villainmad): Thinking Out Loud, Sequences, and Closed File Formats
Back to Villainmad
Back to My Games
Back to Main Page