Our goal on this project is to build a proof of concept real time strategy game with online multiplayer via the Mirror framework using the Steam networking transport.
This core learning we expect to get from this POC ares:
☑️ Synced multi-editor client/server development and testing workflow
☑️ Two user Mirror POC with server authoritative navmesh movement and user property syncing
☑️ Unit spawning over network
☑️ Unit Selection of only owned units
☑️ Selected unit movement
☑️ Multi-select units
Mirror based persistent Headless dedicated server
A&A for users (via steam)
build a tool to build and deploy server quickly
persistent data storage to "offline" such as mongo, redis, etc.
- NetworkBehavior.OnStopServer() for final write out to persistent data store
Utilizing at least 3 of my asset picks from the asset store
evaluate what hypothesis I have about my RTS
setup google forms for player feedback
link end of playback session with "give the dev feedback" link to form
figure out how I can get notified for possible play of 1v1 for every match
SHIP game to Itch.io
market it until I get at least 100 plays and at least 10 feedbacks
write up "Lean Canvas" mixed with "game one pager" for Gestalt RTS
Infrastructure work
Plastic SCM with CI/CD pipeline
Unity Playmode and editor mode Unit tests
docker container with headless dedicated server built and deployed per branch
Livegame metrics via??? (unity Liveops via DELTA DNA if cost effective)
Server HTTP REST for admin and player access to real time data
- A&A via http
- User level access to owned grid list, grid properties, grid contents
- admin level access to all grids, all factions, all users
simple html web app POC talking to http REST backend
Basic Game Design
The GestaltRTS module will have the following core game mechanics:
highly refined RTS controls for individual and combat groups of units
mining, refining, part assembling, and unit construction
persistent research for upgraded parts and functional blocks
persistent mining, refining, and parts storage across all matches
Player built "kitbash" unit editor (functional blocks + framework + armor)
Shipments from persistent hq to battlefield
- Shipments can be blockaded and slowed by various units built in match
- Skill level differences are made up by nerf and buffs on shipment rate and size
- Everyone can get resource and base unit shipments from their faction home planet so new player can still zerg a veteran
per unit, and per combat group behavior options
- Set Position in formation
- Set default aggro behavior (chase, retreat, hold ground)
- Heath threshold position modifications
persistent hero unit RPG stats which buffs and debuffs buildings and other units in AOE
- Hero levels up based on what he uses, so a commander always in the front of the battlefield will skill up his offensive stats such as combat accuracy, fire rate, distance, or damage.
- A hero in the rear flank will optimize EWARskills like signal jamming, radar, cloak
- All skills will have the option to buff attached army or to buff hero directly.
point based PVP matches
store-able group template for units and behaviors
Tutorial Missions with voice over
highly refined hover / flight controls for individual unit (third person, over the shoulder)
programmable keys for turrets and combat groups (ctrl-1 to set group 1, left click to fire group 1)
Polish for Steam Release
Steam workshop for group templates
AI skirmishes
CoOp PvE skirmishes
Aesthetic microtransaction supported paints, decals, and parts
Evolving tech tree via updates and DLC
I will be learning from the best practices in the following games:
- Avorion
- Homeworld
- Supreme Commander
- Age of Empires
- Sins of a Solar Empire
- Ashes of the Singularity
- BattleZone II
- Warzone 2100
- Zero-K (Spring)
- HaloWars
Assets to Utilize
- Modular Spaceship Pack for generating capital ships (corvette and above)
- Building Constructor RTS for base building
- Solar System for mission briefing and level selection across our solar system
- All Sky for sky and space backgrounds (skybox, weather cover, time of day, nebula)
- Sci-Fi Effects & Turrets for turret mounted weapons and their vfx on the ships, stations, and vehicles
- Waypoint Indicators UI to easily find units and groups when selected if you are zoomed in.
- Easy Save for single player / local missions
- ParrelSync to be able to have multiple editors open simultaneously for multiplayer testing
- Peek Editor Toolkit for a better Unity world building experience
- Odin - Inspector and Serializer for more power in the inspector
Assets for Research or Artwork
- Space Combat Kit to learn from their switch from RTS to FPS in game, turret control schemes, and hard point management.
- Space RTS - Starter Pack to learn an end to end, flat plane in space, single player, RTS
- Behavior Bricks for in game visual behavior programming for RTS units
- GM Mesh Deformer to learn how to deform existing meshes in Unity to show battle damage
- StellarGen - A Procedural Planetary System Generator to see how this author randomly generates attributes for his planets, moons, and stars
- Hi-Rez Spaceships Creator for in cockpit shots, or for if we decide to include a first person mode
- A* Pathfinding Project Pro to study how A* is done in C# and Unity
- Space Journey to study their third person flight controls and evaluate the post processing stack on "stock" assets not designed for this particular pack
- Pathfinding Project for Space RTS to study how A* is implemented in the Space RTS kit, and what it does better than the existing movement code
- Slava Z Mech Constructor for limited ground based combat mechs (would likely need the other Slava Z packs to build out a full ground RTS suite of units)
- Gaia 2 - Terrain & Scene Generator to study the possibility of making beautiful generated planets for ground based combat
- Vis2k's DOTSNET — for a DOTS approach to networking as an advanced R&D project
- HttpCore to talk to a REST backend for my own backend data services