Tuesday, July 28, 2009

vaquum, working title for a game

Getting confused about what to do now about this game...

The ships here are a cruiser (red) and battleship (purple). Either one is controlled with WASD and the mouse. The turrets on the ship aim towards the mouse pointer, whereas WASD is used to turn the ship or thrust it forward. Guided missiles can be shot out of the front of the ship, which also follow the mouse pointer and thus have to be manually aimed by the player. In "playtests" (i.e. just screwing around) it seems like this combat system might be decently fun.

Now I just need to know what kind of game I build around it. I have qualms about making a traditional Elitelike, because the way the ships are, there are significant differences in armament, cost, and quality between a frigate and a battleship. A frigate might have two turrets, while a battleship would have six turrets, and the battleship would have either x2 or x3 the hitpoints as well as slightly thicker armor. The way I have designed the ships currently, and the way I figure they would be played, really rewards using them in a group setting which is not what an Elitelike is. I have big ideas to make a sort of multiplayer Elitelike MMO but these are not feasible for the time being, I need to apply this combat system to a simple game where it will fit well.

The way the damage is calculated... total_damage = (ship_armor - weapon_penetration) * base_weapon_damage, where (ship_armor - weapon_penetration) is always > 0 ... means that armor-piercing weapons will do equal damage to both thick and thin armor, so the extra hitpoints on a battleship are in effect "worth" less if the battleship is attacked with armor-piercing weapons. Hopefully this two-dimensional damage system is flexible enough to be a key part of ship balance.

Anyways, I really only have two ideas for a game from here.

The first would be a fleet-battle kind of game with a turn-based strategy overgame, like in Star Control 1. The player would build and move fleets of ships around in a turn-based environment, creating outposts and such, seeking out and trying to destroy the enemy starbase. When two opposing fleets meet, they would go into a real-time combat scenario which uses the combat system I've made and some simple RTS commands to let the player command their allies.

I could either do a node-based map like Star Control 1, or a tile-based one like many other strategy games.

The second is even simpler; it would take a page from Cortex Command and simply be a "playground", hopefully with multiplayer. Players could warp in ships and just fly around shooting each other, perhaps with the ability to mine asteroids floating around. It would all occur on one map, which could be as large as a star system, or perhaps only a small section of an asteroid belt (the dust clouds and asteroids could lead to some more interesting play). The resource levels could be set such that it would be more of a competitive team game than just a playground. If I were to go this route I would probably want to make a ship designer which is embedded as part of the game so that you could design new ships during battle, or more likely, visit a "playground" server where you just sit around and design ships and chat with others with no resource restrictions and only consensual combat.

I guess for now I should move forward with the second idea in mind, simply because it's focused completely on combat and has requirements that are also shared with a lot of other ideas. It's also about time I used my conceptual knowledge of networking to actually make the game multiplayer.

I am contemplating making a Descent-like 2D game with this engine in the future by including a big static map with things to collide into. I actually have a story and such brewing in my head, so making it would be my first foray into a narrative sort of game. I usually avoid these because I think games are kind of a bad medium for storytelling, they are better for creating stories via gameplay and other "emergent" processes. This might make me want to port to Novashell, since that engine provides a good deal of functionality that I don't feel like making and debugging myself. The negative result of that is that I don't spend time improving Assam...