For the first half of the year, my One Game A Month games have been non-violent affairs, no shooting, no cudgeling, no stabbing. I guess that run ends today, as you see two projectiles (laser beams? plasma bolts? Something bullet-y) in the above screenshot.
I imagine that most of the remaining games will have some sort of shooting gameplay involved, but maybe these are robot tanks, if that helps your own personal violence meter. No animated blood.
I'm also pretty pleased to have those projectiles in, because it means that I have a "pipeline" to bring models into my game. I was just joking today about how I wouldn't need to make any more 3d models for the rest of the year, as tank games are a rich vein that I can mine for at least a few games over the next several months. Well, I made a projectile in Blender today (I took the cube that you start with, and scaled it to be long in the X dimension and skinny in Y and Z), and used my converter script, and it pretty much just worked.
Back when I was working in game middleware, and certainly on hobbyist forums and mailing lists that I followed, there was talk about "what belongs in a game engine?", and my opinion was "whatever you reused when you made your second game". There's a certain amount of snark there, saying that if you haven't finished two games, stop waxing philosophical and just make games. And I'm OK with that. But I'm sticking with the literal sense, too - that an engine is just a series of tools, and if you're not using your tools, throw them out, and if the tools are any good, they'll be reusable. Anybody can hack together a one-time solution.
So, with the advent of that projectile, my model converter script has become a real tool. And the code in the game that handles rendering and model loading seems to work. I think it could be simpler, but that's under the hood tinkering to do later. Maybe next month.
If you go to http://bigdicegames.com/BZone/bzone.html now, you can hit the space bar to shoot projectiles. If you time it well, you can shoot tanks. One hit, one kill. No explosions, no fountains of blood, no fanfare. If you're lucky, the tanks will have patrol routes that cross your line of fire. If not, well, reload.
And this marks one of those milestones, sort of - I detect when you've killed all the tanks, and I print a message to the JavaScript console saying "You Win". So, that's always a good sign. Having success and/or failure conditions makes the game a game. Otherwise, it's maybe an interactive simulation. Something. I'm hedging this even more than usual today because I've got a bigger scope in mind for this game.
Zone of Battle : Tank Patrol Game Concept
In ZoB:TP, you command a tank that can drive around a battlefield of the future. Your tank has a forward-facing cannon, capable of shooting deadly laser beams. The enemy has similar weapons and is intent on destroying you.
The structure of the game consists of a series of patrol missions, where the player is given a series of patrol locations to visit. At some of these locations, there will be enemy tanks to destroy. If the player returns to base safely, that mission will be considered a success.
Helping the player will be a second tank, who will accept simple orders:
- engage at will
- attack my target
- hold fire
- form on me
- retreat
In-game UI will include a radar display to locate friendly and enemy tanks. There will be a map screen that the player can pull up that indicates the patrol route by pressing 'M'.
The player can activate autopilot by pressing 'A', which will navigate the players towards the first waypoint that hasn't been checked off their list. The autopilot disengages within a certain distance of the waypoint, and also disengages if enemies are within range.
Ok, that's the design sketch; I think I can get most of that done before the end of the month. And, even if I don't go all the way, I've got most of the pieces of a simpler version of that, which gives me slack, in case I get distracted and do something else in my spare time.
TODO:
- player steering - because I'm getting tired of enemy tanks driving up to my line of fire and then driving away.
- player movement - depending on how I'm feeling, I might implement tank controls, or maybe just simple WASD navigation. YINM, maybe, with Y/N controlling the left track, and I/M controlling the right track. I'll see how that feels.
- player tank on screen - I'm planning on a "chaseplane" view, which can be tricky to get right. I may do something simple, like have the camera always be pinned to the same position relative to the back of the player tank.
- visual effects: explosions - there needs to be something visual when a tank blows up.
- sound effects: explosions - also, sound. Sound adds a lot, it turns out.
- sound effects: projectile firing - it won't be me saying "pew, pew" into the microphone, I promise.
- game modes - lose mode that takes you back to the start screen. A start screen. A map view.
Lots of stuff to work on, nothing actually too hard. Lots of stuff not on that list, those are just the interesting stuff at the top of the list.
No comments:
Post a Comment