Grand Strategy: SpaceWar (Spinoff?) and the RubberDuck...
A year ago, almost day-for-day, I started work on a game project which would later be known as Grand Strategy: Space War.
(Don't worry, I'm still working on that!)
A few months ago, we've chosen to scrap the way the combat system is currently handled because it does not meet our expectations of what would fit within the game. However, there was some good progress made with that and I've toyed with the idea of converting this simulator into a mini-game: a GS:SW spinoff of sorts.
Here's the last video of the combat playback that was published through my youtube channel. As you can see, a lot of it was severe WIP. The simulation aspect was fully functional however, and the code was starting to look good.
Two teams fighting with relatively straightforward AIs. Simple eh?
So I've been thinking long and hard about a way to turn this into a mini-game/spinoff, and here are the dilemmas I've ended up with:
1. Game Type
I'm left with 3 main options that I'd like to explore.
A - Make it an arena-type arcade game where the player spawns at the center, and enemies spawn on the edges endlessly. Player accumulates points by surviving as long as possible, and killing as many enemies as possible.
I get to keep most of the development I've already made.
Additional programming is minimal (Score system, enemy spawners and player).
I'm afraid it could be a bit boring over time and a very short-lived experience.
B - Make it an arena-type arcade game where the player spawns at the center, and enemies spawn on the edges in fixed numbers. Player accumulates money for each kill. If he survives the entire wave, he gets to spend this money on ship upgrades for the next level.
I get to keep most of the development I've already made.
Additionnal programming is relatively straightforwards (except for the entire metagame aspect).
There are a lot of unknowns and I'd like to be sure that the "shop" approach is worthwhile before making it part of the gameplay loop.
C - Make it an open game where the player spawns in the universe and can freely move around. He encounters enemies randomly. I could add shops, etc.
Seems like there's a lot of untapped potential in this idea, and very cool gameplay to make.
This is meant to be a prototype spinoff, and I feel this would require a lot of additional code before it is even playable.
I'm afraid of feature creep and I don't want to lose sight of development on GS:SW itself.
Beyond the game type however, there are a number of other questions that need answering...
2. Player Controls
I've investigated a number of ways the player ship could be controlled, and I'm still trying to find what's the most suitable approach in regards to helm rotation, camera and "aiming" weapons:
A - Have the ship's helm rotate based on the mouse coordinates.
This feels "right" and gives some freedom of movement. It might be more intuitive to newcomers and can lead to interesting arcade moments.
On the downside, it would limit my options for aiming controls (see below) and other inputs (gamepad, mobile tap, etc.)
B - Have the ship's helm rotate based on "A" and "D" (Solar Winds)
This can be a bit imprecise and may lead to some frustration. Also, not everyone has a clear understanding of how that works when the ship helm faces south and you press A (it will still go counter-clockwise...)
Definitely not suitable for mobile, even though that's not a current goal.
C - Have the helm adjust automatically by selecting a target (this is how enemy ships AI works: trying to match an angle that's in line with the target).
The enemy ship AI determines a target and moves towards it by adjusting helm as needed. Making it a "point and click" would make this game much less of an arcade game and much closer to a RTS, but it is worth considering the option nonetheless.
A - Fixed Arcade Camera (status quo)
Basically, "as is". the game takes place within the current "box".
I think it suits the game well, but makes keyboard-based controls tougher to implement well.
Opens up Coop and PVP play options.
B - Tracked Camera
Here, the camera always has focus on the player (keeping it at the center of the view).
C - Camera Rotation
Here, the camera keeps track of the player as he moves, but more importantly, as he turns. This effectively means that the ship never turns (always faces up) but that the world around it does.
I feel it could be a bit disorienting in a large map, but could otherwise simplify input challenges.
A - Have the weapon firing from the ship's front (status quo)
Basically, upon a certain keypress or mouse click, the weapons would fire in the direction the ship is facing. The challenge would be to line-up the ship with its target without having the opponent face you back. It's an interesting premise as it forces the player to flank the opponents to destroy them without retaliation. This is reminiscent of Solar Winds.
B - Have the weapon firing in any direction the mouse is pointing
Would give the player a big edge (although I could grant the enemies the same advantage). Positioning becomes less important, and leading targets becomes that much more important. I feel that it could lead to total mayhem on screen though.
This would greatly limit my ability to do 4 player coop or versus (mouse).
C - Have both (primary weapon A, secondary weapon B) where B is used mostly as a counter to missiles and fighters
Have one keypress or mouse click to fire the main weapon (big damage) which has a fixed orientation (front or sides maybe?) and a second input for the secondary weapon - could be a top-mounted turret - that is particularly useful to intercept incoming missiles. May be adjusted into a gamepad joystick feature.
That's where I currently stand with this, and I thought I'd ask for feedback before making a move.