Védelem: The Golden Horde
We are a student team at the Breda University of Applied Sciences. We have 17 team members working on the project 4 days a week. At the beginning of our academic year, 2020 till 2021, we got a brief from our lecturers. We were assigned to make a Medieval RTS set in the 13th century, so we did!
Vedelem: The Golden Horde is a medieval Real Time Strategy and Survival game set in the 13th century. Build, expand and defend your lands against the deadliest Mongolian invasion ever witnessed. They will seek to destroy your walls and salt your earth. Will you survive the Golden Horde?
Védelem: The Golden Horde is a project, created by team: Castle Roaches. Which is a third year game development team that is part of the CMGT course at the Breda University of Applied Sciences.
Down below, we have displayed some of the processes that we went through while creating the game. We will cover all 3 of the aspects of game development (Art, Design & Programming ). However, to get a better understanding of the results of the effort that our programming team has put into the project, please make sure to play our Early Access on Steam!
For the development of the central piece - the Keep, our dedicated environment artist researched and documented the "Secrets Of The Castle" documentary by: Timeline - World History Documentaries. Which consisted of 6 parts. Further research was done by collecting and arranging authentic pictures of 13th century Hungarian castles including 3D recreations, floor layouts and graphic restorations. Based on the research done, our artist created a central piece that holds the typical traits of a 13th century Hungarian castle in combination with functionality and art-style that compliments the vision of our game.
If you are interested to see more in depth research, we have enabled view with link on our research document. This will give the opportunity to see what research has been done in order to reach the product that we are delivering to you today.
In a normal society but also in an Real Time Strategy game, you need different buildings to indicate different processes. We decided to show off the process of the mill (farm) as this building has gone through some clear stages of improvement.
The mill is also the building that indicates the production of food resources. Food is the essence of existing, we all need it to survive. Therefore it had to be really clear for our players that they would need this building to supply their armies.
Little insight in the thought process of the environment artist working on the mill:
"This mill was the first building I have ever made for this project, and in my career as a environment artist. Previously, I have always worked as a prop artist, so creating an exterior was a nice challenge for me. I started with a block out and added detail over time.
The texture was another first for me, I had never textured in Substance Painter before so it took some time and a lot of iterations to get to the end result."
Archery is a very well know element of 13th century Mongolian warfare. Therefore we made sure to do our research to understand what these archers were supposed to do, carry with them and how they were dressed.
Down below you can see the research and the sketches that our Character Artist has done before starting to work on the actual models of the character. As some things might be difficult to see, due to the size, we have linked the research here as well, so you are able to zoom in where needed.
As our assignment states that we need to make a Real Time Strategy game. In order to make the characters readable, even from a higher camera angle, our Character Artist has also focused on readability. She has been looking into different colours, positions and sizes.
Another important part of the 13th century Mongolian warfare were horses. The best strategy to counter these horses were spearman. Both factions got spearman as the Mongolians also used their version of the spear a lot. However, for gameplay purposes, the spearman makes more of an impact on the Hungarian side as it will allow the player to counter the Mongolian horses more easily.
Little insight in the thought process of the Character Artist:
"All characters went through the same process, starting with a lot of research on what each culture looked like. Afterwards I made a few sketches to get myself familiar with it and focused on what the differences were between them. Then I started focusing on smaller visuals/concepts, since the characters will be top down and very small, while keeping them readable enough. After concepting I started creating quick sculpts in ZBrush that I would later retopoligize. While keeping the polycount as low as possible. Texturing went through a few iterations, since colours is what made them readable from a distance, it still needed to be realistic enough to fit the environment well."
The terrain is the body of the level. It makes it realistic and at the same time tells the story of the level your are in. It gives you clues on the environment, conditions and sets the tone for the game.
For our environment artist, it was important to have a realistic representation of what could be terrain found in the country of origin, Hungary. He spend a good amount of time researching the country's heightmaps, biomes, weather and seasons in order to recreate that as fittingly to the gameplay as possible.
For the terrain itself, our Environment Artist did research into different versions of a season. He took the pictures from several different moments and setups within a season (such as: rainy, sunny, clouded, different time of the day etc.).
As the levels that we are making take place in Hungary, our environment artist looked into what the actual terrain of Hungary looks like. Taking: height, biomes and water into account.
He first took inspiration from actual footage of the terrain and then remade that on his device in order to be able to bring it into a 3D model. He shared this with the Level Designer and together they managed to implement actual Hungarian elements into our levels.
Insight on the process of the environment artist working on the terrain:
"Step one is receiving the blockout from the designers. They decide where rivers should flow and mountains stand.
For step two, I put that through a program called Worldmachine, where I turn the blockout into a heightmap.
Other than that, I also generate the first parameters for the textures later down the pipeline.
For step three, I go into Substance Designer where I create the the base colors of the terrain, as well as a mask that determines where certain textures should render.
For step four, I import the textures and the heightmap back into Unity.
For step five, I polish parts that came out a little rough from Worldmachine. I also lower the river passes to the correct height.
For step six, I start set dressing. First I add the rocks around the river and any other assets that might have a bigger impact on the gameplay.
Step seven includes adding the foliage. Using masks I generated in Substance Painter I generate the grass. I then go over the whole map and add other sorts of foliage, like bushes or flowers by hand. Trees are generated procedurally when you start the game."
Here is a link to all the images that fit the process steps for creating the terrain for levels.
Fog of War
The team also decided to implement a so called "Fog of War". This fog would hide the incoming Mongolian army to create a sense of tension with the player. Our Environment Artist took this forward and did some research into different ways of displaying the Fog of War and how different colour pallets would bring a different feel to the fog.
Besides good looking art and functioning code, the game also needs to play well. The biggest challenges that our Design team had to face was creating a balanced Real Time Strategy game with enough functions to satisfy our player base, while also keeping our scope and capabilities as students into account.
We have analyzed other Real Time Strategy games and have setup a game loop that, every player that loves this genre, should easily familiarize with.
In order to deliver in the needs of our audience, the design team has done their research into who our player really is. By looking into: what makes them happy, what annoys them, what other games they play, how much time they spend in the game and what elements within a game they like, we managed to create a player persona. This player persona can be used to support decision making. By, for example, looking at which decision would benefit our player more.
Our brief stated that "building a Castle" had to be included in the gameplay. And in order to build a castle, you need a running economy. Therefore we chose to allow the player to build their castle all the way up from nothing.
We started with brainstorming as a team so determine what type economy we wanted to set up. We thought about what kind of resources there should be, if we wanted upgrades, what was needed and what people used back in the 13th century.
Since then, the design team has been working on decision making, balancing and more balancing.
In order to not only have a base building game, the team decided to also include combat in our game loop.
So our design team was not only assigned to balance the combat system itself, but they have also balanced the players focus / activities in the game. They decided to start slower, focusing more on the economy and the building of the castle. Then changing the focus accordingly to end up on more combat focused gameplay and barely any economical focus at the later / end game stages.
For more in depth combat research and design, we have enabled a shared link here for you to check out our documentation on combat.
In a Real Time Strategy game, the UI is incredibly important as there is a lot to manage for the player. And if it is not easy to manage everything efficiently and quickly, that will annoy the player and make them quit the game.
Our UI/UX Designer created a full setup on what the UI should look like based on the player persona and research into other games. To check the functioning prototype of the wireframe, please click here.
The project brief stated that the game should be able to smoothly run over a thousand units on screen at the same time. Therefore we decided to work with Unity DOTS, even though this meant that we would be working with a rather new version of Unity, an engine which no one was familiar with.
Therefore, a big focus for our tech team was to create tools in engine that would allow the designers and the artists to work with the functions they needed and make these easily accessible.
To be able to render (tens of)thousands of units we created a vertex animation baking tool, shaders and animation system for Unity using DOTS/ECS/Hybrid Rendering. This tool has been released fully opensource on GitHub.
As Unity DOTS was unknow for all our artist, we have also been working hard on making all the tools "artist friendly" in order for them to deliver the highest quality possible without too many hurdles.
This model baker allows the artist to use any tool they could possibly need in order to implement their models into the engine.
Features that we got from the model baker:
- Multiple animations (stored in one Texture2DArray)
- LOD generation
- Prefab generation
- Animation book generation
DOTS Animation System
For the animations in the scene we needed a script that would allow us to control the animations of more then a thousand units individually. In the picture you see an example of the code that is being used to play an animation.
Features that we got from this Animation system:
- Simple API
- Animation library and books
The shaders for the vertex animation are written in HLSL and are fully integrated in Unity's Shader Graph. This way it is easy for our team to integrate them where needed.
Features that we got from this shader:
- Normal encoding and decoding (for lit shading)
- Shader graph support
Images of the current game
The images down below display the game at its current state. This is our latest build that has also been uploaded to Steam for Early Access.