Guns
From NarcWiki
Guns is going to be a 2D, top-down view game where the player can build their own tank and then drive it against other tanks driven by either an AI or other players, with the objective of obliterating the enemy.
Contents |
Core design
- See inspiration: Stratosphere -- build your own flying island and fight against others.
- Similar game: Captain Forever -- we're aiming for that kind of art style, for the most part
- Simple, well-known controls: WSAD, Tab (afterburner; no, really!), Space (jump; no, really!), mouse (for aiming).
- No special moves, no picking ammo in the middle of battle, none of that stuff. Keep it simple and fun.
- Draw your tank by picking from a few basic shapes and sizing them and putting them together,
- place wheels/treads/whatnot, turrets, guns, etc. on the tank to make it a proper weapon,
- and then drive your tank and blow up the enemy.
Building a tank hull
We want a player to be able to build just about any tank shape they can think of and power it just about any way they want to, so the hull-building process is likely to be reminiscent of using MSPaint:
- Pick from several shapes (two triangle shapes, square, hexagon, circle, half-circle, quarter-circle, x-pointed star).
- Pick a hull type (light, medium, heavy; with/without hovercraft skirt).
- Rotate/flip the active shape as needed and connect it to the rest of the tank.
- Repeat as needed.
Adding stuff
Other than the basic hull, you need GUNS! And wheels/treads, and some kind of power generator... but mostly GUNS! Incidentally, this does not necessarily have to be a separate stage from the hull construction (and probably shouldn't be).
Anything you add on will have some weight (which needs to be supported by the hull, ultimately), and most modules will also drain power and generate heat in varying amounts. You can allow the game to create power-links, or you can take over and link them yourself (example: link power to guns through capacitors to give you one or two extra initial salvos before waiting for power generation to catch up).
Here's some possible modules:
- Power Generation/storage
- internal combustion engine/generator combos; generates some heat;
- fusion generator: more power than the IC, but more likely to go BOOM when hit; generates more heat;
- batteries: heavy for its (small) size, but stores quite a bit of power and discharges twice as fast as a generator can produce power; generates some heat while charging/discharging;
- capacitors: less storage amount, but much faster charge/discharge; as heavy as batteries; generates a lot more heat while charging/discharging;
- Movement Modules
- hovercraft nacelle: provides air for an air-cushion vehicle, and provides fairly fast movement; is also quite fragile so should be well-protected; consumes power and generates heat continuously, unlike other movement modules;
- wheel/motor assembly: moves fairly quickly (though not as fast as a hovercraft), but is affected by rough terrain (30% slower?); not as fragile as a hover nacelle; consumes relatively little power, generates relatively little heat (more over rough terrain);
- tread/motor assembly: moves fairly slowly, but barely affected by rough terrain (10% slower?); very strongly armored; carries the most weight of all movement modules; generates little heat but consumes slightly more power;
- leg: moves very slowly, but carries almost as much weight as treads and ignores rough terrain; fragile (like hover nacelles); consumes a lot of power while moving and generates high heat;
- helicopter blade: reduces weight nearby, allows jumping; consumes power and generates heat continuously, both greatly increased when jumping;
- afterburner: greatly increases speed in one direction while the afterburner key is held; consumes lots of power and generates lots of heat, most of the latter being exhausted directionally (can be used as weapon); will damage legs while active; will cause wheels to be less affected by rough terrain (only 10% slower)
- Offensive Modules: guns do not have to be mounted on turrets, but they won't track if they're not (naturally)
- light/medium/heavy turrets: light turrets track the fastest, but can only carry light weight before getting degraded; turrets don't consume power or generate heat (because it'd be too much of a pain in the ass; and we can just call them negligible)
- projectile gun (aka gunpowder cannon): consumes little power (shifting ammo around), generates some heat; uses fair-sized ammo;
- can be mounted as field guns or artillery; artillery can fire over obstacles and fire further, but becomes quite inaccurate over longer ranges;
- railgun: consumes quite a bit of power; generates a bit more heat; uses smaller ammo than cannon do (ammo does not include its own propellant);
- laser: consumes lots of power and generates a lot of heat; doesn't use any ammo and has much less recoil than the previous weapons;
- two variations: pulse laser (fixed duration fire on-target with reload timer), and beam laser (continuous for as long as you hold the button down, or until capacitor runs out)
- rocket launcher: consumes little power (shifting ammo around); generates some heat (blowback from rocket nozzle); uses large ammo; rockets track the mouse cursor (aiming point) independently of turrets (actual method of guidance is unimportant)
- spikes: mounted on the outside of the tank hull, spikes will take damage first in a collision -- and deal proportionally more damage while undamaged; consumes no power but adds lots of weight (thus, to be used sparingly)
- Extra Modules
- pole-mounted camera: lets you see further; very fragile (take one hit *anywhere* and it dies);
- armor plating: heavy; unpowered; no heat;
- can be applied on top of existing modules, slightly increasing their heat generation but also increasing their HP;
- alternatively, can be placed on the hull for directional defense, intercepting shells;
- heat sinks: heavy, unpowered, reduces heat (duh?)
- like armor plating, can be applied to modules, reducing HP but greatly decreasing heat generation;
- also like armor plating, can be placed on the hull to decrease heat generation somewhat from nearby modules;
- cockpit: unique module, must be placed on a vehicle to enable it to operate; when this dies, you lose; if your tank splits into multiple pieces, the part with the cockpit will remain under your control (for whatever that's worth; you can plan for that, I suppose)
Example tanks
These should be possible using the aforementioned modules:
- hover-spiker: light hull with hover-skirts, combustion power generator, 2 (or more) hover-nacelles, afterburner, spike(s).
- use case: point it at the enemy and hit Tab!
- plain old-fashioned tank: medium hull, treads, combustion generator, heavy turret, heavy projectile cannon in field gun mode, armor plating as needed.
- use case: point it at the enemy and click!
- legged artillery: medium hull, legs, combustion generator, heavy turret(s), heavy projectile cannon in artillery mode to match each turret.
- use case: have someone else reveal the enemy while you just point at it and click!
- jumping jack: light hull with hover-skirts, helicopter blades, turret with afterburner on it (!), light guns (either turret-mounted or fixed)
- use case: jump out of range of most guns, afterburn to get places quickly (after pointing mouse in the right direction), fire into your enemies' unprotected flanks/rear to disable them and then kill them.
Design issues
- We want to support keyboard + mouse as well as the xbox 360 controller. However, this raises some problems, most especially:
- Missiles. All rockets are guided rockets, so how does the controller player control them when we're using both sticks already (left stick = move, right stick = target)?
- An option would be to disallow turret-mounted guns when missiles are present on a tank (or the other way around). This doesn't have an in-universe explanation, though, just "game balance reasons".
- There's always the option of just not having any guided missiles, but this takes away from the game.
- Limit missiles to laser-designated only; pretend radio doesn't work for missiles in this universe (or hasn't been sufficiently miniaturized) and nobody thought of wire-guided missiles. This still is fairly sad, as the guided missile is one of the most fun features to play with.
- Then there's the "screw you" option: if you're playing with a controller, you can only have laser-designated missiles.
- Missiles. All rockets are guided rockets, so how does the controller player control them when we're using both sticks already (left stick = move, right stick = target)?
- Jumping (helicopter blades) probably can't go in; it's an interface issue: displaying the effects of jumping in a way that isn't confusing to players. It's also a calculations issue: you'll have to do 3d calculations in a 2d game.
- Possible interface solutions: jumping tank looks like a shadow to the non-jumping tank, looks bigger to the jumping tank (without changing the interface zoom level; possibly unnoticeable at widest zoom).
- Weight calculations have a similar problem: this isn't a 3d game, though there are some "layers" involved in building each tank.
- Simplify weight into classes: hovertanks can only mount "light" guns, wheeled tanks can only mount "medium" guns, treads can mount up to "heavy" guns.
- Balance: how do you keep players from just building the biggest possible tank?
- Using the coolant mechanic: just one size of coolant module; need more cooling? Find space for more.
- Attacking the size directly: the bigger a hull piece, the fewer effective HP it has.
- At the same time, making two small hulls just produces a bigger hull (and if you somehow get around this, the resulting two hulls will have even fewer HP, because you shouldn't cheat, dammit).
Code Stuffs
- Guns Server Design
- Guns Metaserver
- Guns Protocol
- Guns Interface Mockups
- GitHub (Source)
- Guns topdown design
- Guns tank thoughts