Project Description
A strategy game that revolves around the construction of a small town around the castle Eisenberg in southern Germany. Buildings can be placed and rotated on a grid. Multiple resources, like wood, stone, coal, iron, gold and weapons can be gathered or produced. At the start of the game, only a small castle atop the hill exists. The player can then place a town hall to start building the town. Upgrading the castle unlocks new areas of the map with new resources required to upgrade the town hall, while upgrading the town hall unlocks new buildings. The game was developed by a team of 7 students.
My Role
In this project, I implemented several different features. Since most strategy games are played over a long period of time, I implemented save & load functionality. Data of building/villager positions, resources and the upgrade level of the castle is serialized and saved into and loaded from a binary file. A dynamic UI allows the display and selection of the different save games. Sound was implemented by me using the Unity Audio Mixer. Multiple audio groups were created to apply different effects to music and sound or configure the volume separately. An audio UI was created to allow the user to configure different sound settings. After submitting the project at the end of the semester I also did bugfixing, refactoring of the code and added few more features in my free time.
The level design of the main map and the main menu map was done by me. This includes, among other things, the texturing of the landscape, the placement of trees, cliffs and raw material deposits. Based on a topographic map I modelled an accurate 3D model to bake a heightmap. I also created particle systems for the chimney smoke, sparkle effects for the different ore deposits and for the fog at the edge of the map.
The team used scrum as project management framework, as a scrum master I played a key role in defining milestones and sprints, features that need to be implemented and presenting the progress to the product owner
Notable Features
- Grid based building system
- Multiple resources available: Wood, Stone, Iron, Coal, Gold and Weapons
- Buildings can be upgraded with different visuals
- Building tree dependent on the upgrade level of the city hall
- Population limited by produced food
- Simple save & load system
- Minimap
- Terrain and castle accurately based on real world reference
- Soundsystem implemented using Unitys Audio Mixer to manage playback of music and sound effects
Project Difficulties & Solutions
- Online heightmap providers of real-world locations like terrain.party were not precise enough to generate an accurate heightmap. To create a realistic landscape in Unity a topographic map and Blender was used to trace the height of the map, create a 3D Model and then bake a heightmap.
- As the landscape has many slopes, a slab with a grass texture was first used to allow for a level area around the building. However, on steeper hills, this plate was partially suspended in the air. Therefore, I extended each building downwards and added stairs to make buildings believable even on steep hills.