A 3D RTS developed in Unity3D using C#.
Project Goals & Requirements
Create a polished, playable real-time strategy (RTS) game. Gameplay would focus on macro-management rather than micro. By the end of the school year, the game should have a playable tutorial level and a playable skirmish map. The game was developed for our team lead’s graduate capstone, in which he wanted to build an AI that learns as it plays.
- Implemented fog of war
- Implemented minimap
- Developed event-based animation subsystem
- Integrated interface artwork from artists
- Researched networking techniques (but, due to time and scope, did not implement)
- Though Unity development has a large community, RTSes in particular aren’t that common. RTS features like Fog of War don’t really have good approaches hinted to in discussion forums. Thankfully, due to having a team of 7 people, we had enough teammates to bounce ideas off of!
- Unity mostly works well in a team environment, but we kept having issues with bug regressions, primarily due to prefab work being overwritten.
- Using a game engine makes things a lot easier. The project initially began using C++ and Ogre3D; however, most of the time invested was spent re-implementing basic features without a chance to actually work on gameplay. Our project lead decided to try out Unity. After one week of solo development in Unity, the game was further along than what the entire team had accomplished in a month of C++ development time. We switched the game over to Unity3D and C# quickly afterward.
- We wanted to implement networked gameplay; however, implementation would be (obviously) non-trivial. I researched different techniques for two weeks, but without an easy way to scope it down, we put it on hold.
- We had to balance our schedule for two drastically different deadlines: presenting the project at the end of the school year, and (for some team members) eventually releasing the game commercially long after. As mentioned above, we effectively scrapped networking for the early deadline. Freeing another developer up to work on features and polish made a massive difference in our final presentation; however, for the team working long-term, it would’ve been better to start on it early.