Project Defender for hire is a tower defense game, made with small colored voxel. The game have several missions in different places (like a forest, a cemetery, the mine...), and have 8 maps each.
Each level is designed to present a challenge with small maps, avoiding long paths and going into action quickly. To invoke a tower you will need magic power, which is increasing continuously. However, it will not be enough to put all the towers, so you should use other means to get magical energy.
You can have a limited number of towers summoned simultaneously, amount depends on several factors. So, you have to think what to put to avoid use an invocation unnecessarily, however, you can always destroy a tower if you want to retrieve a slot, but the magic used for invocation not will be recovered.
Tower placement
The damage taken by an enemy is different depending on the tower, size, physical resistance, magic resistance, and where receives the attack.
No only exist towers for attack, there are four main types of towers:
- Physical attack
- Magical attack
- Magic of utility
- Tools
At first it will be enough with some physical attack towers, but at higher levels, you must combine all of them to succeed. Because number of towers that can have at one time is limited, you must find a balance between them.
Enemy destruction
The towers can be upgraded several times, but at first, you not have all towers and upgrades. These will be learned with a magical research to unlock new towers and upgrades in combat.
Painstik to Skullcracker
Every game environment is not only a new place with new graphics and new enemies, but presents a new strategic challenge to the player, which is more complicated as you progress through your adventure.
Heigh-ho, Heigh-ho, I have helmet you know?...
The maps of the first mission, "For the forest trails" is the simplest because there is only one path. However, in other scenarios you will find multiple paths, crossings, areas with little space, sudden appearance of enemies, tunnels and other things who I will show in other news.
In this video, you can see some examples of maps:
You're a wizard's apprentice specializing in summoning defenses, one of the many specialties in magic invocation. All you want is to make money on missions to "the guild of summoners". The guild receives requests from people seeking help.
After arriving at the guild, you receive the first mission, is a low range mission. A group of goblins is meeting in a cave near the town of Arkzan. Apparently are causing some problems and the people need help from the guild.
The story is told through a notebook that is also the level selector. You are not forced to read it if you just want to play. Anyway, you can "browse" the book at any time to find out the plot at the time that you want. Besides that, you can get information through characters in the game.
Discover the history of a father, the red King Goblin, who is looking for revenge, against the man responsible for the death of her daughter. The king is looking for revenge because he is the one who wanted to kill her.
The project was started in March 2015. While I was designing, I could not ignore the fact that I was trying to make a game alone, so I tried to make a workflow faster to optimize the time.
I started experimenting with voxel. I already had some prior experience with them, because I had implemented a system to create voxel buildings in a project of procedural world. (You can see pictures of that project in my profile).
Anyone who has begun working with voxels know that one of the main problems is the performance, consists of two major issues: the creation speed and the number of triangles on screen.
To kill two birds with one stone, I decided to implement an algorithm called "Naive greedy algorithm". This algorithm is not optimal, but the difference between the optimum is low, it is also very fast compared with other algorithms, so it helped to improve the speed of creating each map.
To streamline the development process, the meshes are created from voxel data in real time. At this way, I can make any adjustments very quickly, edit and retouch, and all will be integrated into the game automatically.
In addition I created a system of pool automatic. This stores the gameobject for reuse without recreating the meshes. The system also creates some elements at the beginning of the game, like the towers.
Is all ready? Well, not yet... I have the problem of creating the voxel art. There are excellent programs for create voxels. But creating the voxel with an editor, import the data, and in the case of objects with animations, create meshes to export, create bones, do the rigging, animate, import, it may take some time for a lonely guy, because I want to create several environments and many different enemies.
The solution was to create a voxel editor. Not only because the integration and any change is faster in my case, also I needed to add information for animations to the voxels. Obviously is not as good as a real editor, but for my game it is enough.
The information provided by each voxel is not a texture, is a color, used for the vertices of the mesh, this information is used by a custom shader. The shader applies the base color and a texture to mark the cubes.
Additional information is added to each voxel to an automatic rigging system. In addition to information about color, you can add information about the bones, so the program knows that bone belongs to each voxel. When creating an enemy or tower, the system assigns the resulting mesh automatically to the bones.
After that I implemented a map editor and managing maps, where the different models are placed to create the map and also paths for enemies. You can move, rotate and scale any object and add especial prefabs like lights.
Besides putting objects on the map, you can also set the collisions, along with this you can also set the places where you can or you cannot place a tower.
Then I implemented scripts for special items such as the spawner system, enemy movement, positioning towers, detection of enemy attack and damage calculation.
The following video shows examples of everything discussed above:
Now I am creating the system of dialogue, menus, interface, delete and upgrade towers. In others news, I will inform the current state of the development.
Map of the first mission, the ruines.
Armed goblin - Soldiers from the big tower
The big tower - the mine
Ladybugs - bugged map
The cementery (second mission)
Towers sample