Development of Tower Defense on Unity – part 1
Good day guys. This is my first article at all and the first in a series of articles about how I decided to create a tower defense game. I write this text as a person who is inexperienced and just exploring the field, so it may seem interesting to you if you have been a professional in the field for a long time and want to know what newbies are facing now, as well as if you are just starting your path and want to go through it. learning from other people’s mistakes.
Now that the disclaimer is out of the way, let’s move on to the topic.
What is the article?
Tower defense is not the most popular game genre at the moment, but it is unlikely that anyone would call it little-known. The basic mechanics of building and upgrading towers, the creeps that can’t be allowed to leave a level – all of this probably conjures up images of old games in your head, whether it’s Defense of Asgard or, God forbid, maps for Warcraft 3. Even those who don’t know about the Tower Defense genre have probably played such games without knowing it.
The popularity of the genre is partly due to the simplicity of the mechanics, which is a plus for both casual players and developers. As a rule, games of the genre are always quite simple and do not require a significant concentration of attention from the player – you can always pause the game and think about further actions.
Nevertheless, one should not think that TD cannot surprise with anything. Some representatives have quite interesting mechanics: several routes for enemies, the ability to change the landscape, a system of priority of enemies for towers. And that’s not to mention what you can come up with in terms of effects for the towers themselves, whether it’s banal freezing and poisoning or something more interesting. In general, in fact, there is somewhere to roam, and if you thought for even a second when you read the list of mechanics – then I am right.
This series of articles was written with the aim of showing the development of an indie TD game from the inside from inception to release from a newbie’s perspective. We will look at the development of Tower Defense called Defense the Kernel, talk about the vision of the game, gameplay, developer tools, the process of creating the game at different stages and about the release. If you are just starting your journey, join us, because learning together is much easier. In this article, we will consider the concept of the game and select software tools.
If everything is clear with the genre of the game, then the setting remains in question. The most frequent choice among TDs is a fantasy setting, science fiction is less common. Prime examples are Element TD 2 and Axon TD: Uprising, developed by the same team at Element Studios. Science fiction and post-apocalypse were chosen as the setting for our game. The backstory is pretty classic in short and you might have already guessed it: an artificial intelligence (science fiction) has risen up and destroyed most of humanity (post-apocalypse). A simple plot twist, which is what games like this need, right? Everything is a little more complicated – the player will have to try on the role of a defensive computing unit of a complex of machines that protects the main core from the remnants of humanity. So, apparently, in this game we are on the side of the villain who is trying to finally establish his power. You can read more about the background in our project group: Defense the Kernel: TD (vk.com). Now let’s discuss the scheme and gameplay elements of the upcoming game.
Due to the presence of a story link in the game and, as a result, a plot, the game needs a save system that will allow you to save progress in individual saves with the ability to load them, thereby changing the current state of the game. Most often, Tower Defense either does not have a plot, or it is linear, which eliminates the need for a similar save system – all progress is saved automatically, and the game cannot be reset or started from scratch. Not our case, since we plan to implement a non-linear plot. Advancement in the plot will take place with the help of dialogues that take place at the beginning of the level and at the end.
We also plan to implement an endless game mode in the game, in which the player will have to hold out as long as possible against continuous waves of opponents, and an online mode, where two players will build a defense together, in a common space.
Let’s consider the mechanics of the game: in addition to the obvious construction, improvements, etc. we thought it would be interesting to add the following mechanics:
Technologies – a technology tree, where each technology opens up new opportunities and towers, and is learned by spending special study points. The discovery of a new technology is directly related to the discovery of previous ones and cannot be done earlier. The state of the technology tree is individual for each pass – the technologies learned in the previous pass do not transfer to the new one.
Common technologies – the same mechanics of technologies, but works globally, and not within the framework of individual playthroughs. It preserves all the previously learned technologies and applies them to endless game modes and online games.
Turret priority system – the ability for each turret to specify a priority from 1 to 9 for each opponent in the level, which in turn will affect which opponent will be selected as the turret to fire.
Types of losses – the division of towers into several classes leads to the idea of dividing losses into different types. For example: thermal, kinetic and electromagnetic. These types of losses can affect different opponents differently, which encourages the player to select towers more competently based on which opponents dominate the level.
This is our vision of the game at the moment.
The first thing to choose for development is the engine. In connection with the experience of development on Unity, he was chosen because it is not a quick thing to relearn, and the project does not require anything supernatural that cannot be implemented in Unity. In this case, it’s a simple solution.
To create soundtracks for the game, FL Studio was chosen, as a fairly popular program that has proven itself well.
We create 3D models in a program such as Blender 3D. It meets all the requirements of the project at the moment and we have experience working with it.
What have we come to in this article? We had time to consider the concept of the game, the plot, formed a list of mechanics for further implementation and decided on the software tools to implement the above. A good start – now you can start implementation, but the question arises – what should be the next step? After making such a rough sketch of the game, we should decide on an approximate architecture, instead of rushing into the quarry and start writing code. In the next article, we will deal with this – we will form several schemes of interaction of the basic elements of the game, and consider the following parts: scenes, transitions, the saving system, settings, etc. In general, we will deal with floor design.