I wanted to get some feedback on what is a decent minimum viable product (feature set) for my game, in terms of initial launch. In other words, which features are so critical I need to implement them for launch.
The basic game idea is listed here (some of this is out of date but gives the gist of it):
I'll start with what I consider the minimum viable product right now:
- 2 races
- each race has 1 free to play ship and 2 paid upgrade ships
- AI starbase and citadel (the citadel doesn't move, but fires weapons)
- basic AI for starships (when they aren't occupied by a live Player)
- 20 players per team
- movement ( turning, thrust)
- basic attacks ( lasers and torpedoes)
- 3 special abilities per starship (2 abilities + 1 ultimate ability)
- death mechanism
- explosions damage nearby ships
- repair facilities and shield regen
- capturing enemy planets
- mining resources on planets
- ping buttons / strategy map
- in-instance item store containing 16 in game items
- victory conditions
- planetary and base defense grids
- server health / admin monitoring
- metaserver (assigns players to particular game instances)
- website with account creation, basic forums
- website with actual store for paid upgrades
- basic leveling mechanism (in-game)
- in-game chat
- pilot masteries
- in-game ping monitoring
- out of game paid upgrades for character profile
- simple economic system with controlled planets generating currency
- simple stats tracking and ranking system
- report player mechanism (trolling etc)
Very rough estimate, doing that is say 1 - 1.5 years away for alpha testing (with a beta to launch probably 3 months later and App Store release another 3 months after that). I'm over 20% done with this initial phase and am making quite good progress now that a good chunk of the infrastructure including initial networking is done and its mostly about feature development. Movement and dogfighting is coming along nicely (currently lasers and torps are implemented). I'm currently working on damage / death mechanics and then planning on spending a good amount of time on the special abilities.
I'm trying to decide is what, if anything, besides that list to support at launch. I certainly don't mind continuing working on this longer if more features are required for a minimum viable product, as I knew from the outset this would be a multi-year effort.
Here are possible features I was considering to add to the initial launch.
- Admiral interface 3 months. This is the big one and what I consider the game's most unique mechanism. This is an entirely separate UI that Admirals use to ping attacks and make simple resource allocation commands.
- 5 races instead of 2. 4 months. Currently the plan is to start with just 2 races, the Humans and Regelos.
- 50 players per team instead of 20. 2 months. This isn't as simple as just bumping a constant, it would require some network optimization and server code changes such as implementing quadtrees.
- 6 starships per race instead of 3. 4 months.
- NPC AI "Space Jungle". 4 months. A few areas where NPC starships guard bases that can be attacked to gain their treasure.
- In-game paid upgrades. 2 months. Currently the plan for paid upgrades is it will be entirely on the website, which means I'm not allowed to advertise that fact in-game for iOS, but will be allowed to on Android.
There are some really juicy things I'd love to implement as well such as Carrier Groups but that is getting into advanced feature territory, way down the line.
At this point, I'm leaning on launching with the initial feature list, and making the Admiral interface the next big priority after the game is launched.
On the other side of things, I could even prune down the initial feature set, possibly by killing the economic elements, in-game item store, pilot masteries, and game stats for example to get this out faster. The nice thing about a tiny feature set for launch is it gets the game out much faster, resulting in more immediate feedback from players. The downside is there may be so few features that the game doesn't have enough depth to be that fun.