ABOUT THE PROJECT
Spineless is an intense and tactical first-person tower defense game developed in ten weeks as my degree project at Futuregames. You play as a medieval archer who needs to defend their castle against hordes of enemies.
• Role: Product Owner, Game & Sound Designer, Visual Scripting
• Project length: 10 weeks
• Engine: Unreal Engine 4
• Genre: Action/Tower Defense
• Team size: 3 people
• Core gameplay loop
• Conveying the team vision
• Keeping track of backlog
• Organizing playtest and feedback
• Player mechanics
• AI behavior
• Traps and upgrades
A KNOWN CONCEPT IN A NEW WAY
In Spineless you need to defend your Core from hordes of enemies that spawn in waves from portals. The player can shoot the enemies with their bow and arrow and also place a variety of traps in the environment to stengthen their defenses.
The core gameplay loop requires the player to defeat the enemies, gather resources and build up their defenses. The player repeats these three steps until all waves have been defeated without losing their Core, which completes the level. When one level is completed the player can upgrade their defenses and proceed to a new area.
We wanted the players to feel like they were on the frontline of a battle where they were fighting against overwhelming odds. By only placing traps or only shooting arrows the players would fail, neither system should be powerful enough on their own, but by combining the two they might just make it.
Bow & Arrow Attacks
Many iterations were required to find the right feel for the bow and arrow attacks. We tried different versions like click to fire, hold to autofire, hold to charge penetrating shot, limited arrows and more. While many of these were cool features they were not right for our game.
What felt most impactful for us was holding to draw, and releasing to fire. With a UI element we display the accuracy of your shot, the longer you hold (to a max cap) the more accurate you are.
The ultimate attack was originally designed to deal a lot of damage to all enemies in a straight line, but due to the intense onslaught of enemies we found that the players got too overwhelmed and didn’t have much room to breathe.
We redesigned the attack to cover a wide area with projectiles that dealt damage and pushed back all enemies hit. This gave the players something they could control to buy themselves some time before the enemies would approach again.
The player has an arsenal of traps that they can build on the map’s grid. Since time was against us we decided to focus on creating a few traps that all had their unique behaviors. We found that four traps provided a good variety with interesting combinations.
We didn’t want the traps to be too powerful on their own, and we wanted the player to move around during the encounters so we added a durability system to the traps. After a few uses, the traps will break and needs to be manually repaired by the player.
A core focus of mine was to make sure that we had very engaging moment to moment gameplay. I wanted the players to make choices and manage their resources effectively. All the systems that the player has at their disposal are connected. How well you aim determines your resource yield, but do you build new traps or repair the ones that are breaking with it? Can you afford to build right now or do you need to channel your ultimate to buy yourself some time first?
We noticed that the player would many times never be touched during combat, never lose any traps and never need to adapt their strategy. In order to create an exciting combat encounter we created a variety of enemies that would require the player to adapt on the spot and challenge their notion of a ”perfect defense”. The enemy behaviors were tweaked many times to successfully provide an unpredictable and engaging encounter.
The Skeletons are easy to kill but many in number. They run towards the Core and will attack the player with low damage if they get the opportunity.
The Guards are studier than Skeletons but less common. They run towards the Core and will attack the player with medium damage if they get the opportunity.
The Goliaths are big and hard to kill. They will require the player’s focus in able to be brought down. They are slower than other units but will attack both the player and the Core.
The Speeders are small and fast enemies that completely ignore the player. They run at full speed towards the Core but will die in a single hit. They outrun the damaging traps so the player needs precise aim to take them down.
The Reapers are flying enemies that completely ignores all traps. They do not care for the Core and will only attack the player. This will disrupt the player’s positioning as they are being hunted directly.
The Exploders are crawling enemies that only aim to destroy blocking traps near them. If they are successful the trap will be completely destroyed and the enemies might find a new way to access the Core.
MORE THAN TOWER DEFENSE
Level 1 familiarizes the player with their mission, the enemies and the mechanics. The enemies all come from the same portal and run in single files towards the Core.
Level 2 provides more challenge with two portals that spawn enemies, so the player needs to deploy more tactics to succeed, since they won’t know where the enemies will spawn.
Level 3 is the culmination of the player’s skill, where they need to deal with three portals that spawn enemies, and utilize their traps and the environment to their advantage if they are to win.
We don’t give the players any resources as they start each tower defense level, instead they need to gather resoruces themselves before they can build anything. Therefore, between each level we have areas where players can explore to find resources in pots and chests.
This phase was inspired by the TV-series Fort Boyard, where the player needs to gather as much resources as they can before escaping. The room will fill with more and more ghosts as time goes on that will try to steal the player’s resource. This creates a high risk-high reward scenario where speed and skill are the determining factors.
We didn’t want to simply reset the player’s resources when they completed a level, since that would feel like a punishment rather than a reward. However, we still wanted the player’s to leave the level without leftover resources.
Therefore, when the player completes a level we convert all their gathered resource into a new currency that they can use to purchase upgrades to themselves and their traps. This introduces a rogue-like element to the game that offers a small aspect of replayability and differences in outcome.
After visiting the upgrade merchant the player can continue to the resource gathering phase where they could gather new resources.
As product owner I put high emphasis on clear and easy to understand documentation. It was my goal that anyone could read the brief and know exactly what kind of game we were going to make.
I created and kepts track of our backlog, assigning tasks as needed and making sure we prioritized the corrects tasks. As the game was developed and iterations were made I kept the documentation up to date and re-structured our production as needed. We were always aware of our timeline and effectively scaled the project to match our capabilities.
We were two designers in charge of the visual scripting on this projects, so in to be effective with our time we used the ”First Person Archery” content by Kelint on the Epic Games Marketplace as a base for our basic attacks. We also used the art content ”POLYGON – Dungeon Pack” by Synty Studios. With these imported contents it was really important for us to have structured blueprints. I made sure to always keep my scripts commented and easily readable. My scripting contributions included the player mechanics, the AI behavior, traps and upgrades and the progression systems.
From the archery content pack we got the IK logic and animations for the bow attack, and the original blueprint allowed us to quickly prototype different features.
However, the final version of the basic attacks needed to be completely remade from scratch to match our desired behavior. Many iterations were required to find the logic we thought felt the most suitable for us.
I created a base enemy script so that we could make quick changes that would affect all our enemy classes. The different enemy types were children of my generic enemy script which allowed us to easily customize their stats and sizes. Some enemy types also required special behaviors and got their own behavior trees with special movement scripts (as an example).
The traps also had a generic base that was used to simplify the building logic in the player character. However, each trap had their unique behavior and thus required more intricate blueprints.
In addition to the trap logic I also created and integrated the upgrade logic to work with all the traps, and to be saved as the player progresses between the levels.
I was really happy to work on the well-oiled machine that this game project was. The clear documentation meant that we were all on the same page at all times and knew exactly what should be done. I was a great effort and display of teamwork that I am proud to have been a part of. In hindsight I would have liked to give some more love to the rogue-like elements of the upgrade shop so that they were more impactful on the gameplay. Regardless, I am happy with how well we scaled the project and that we managed to complete what we set out to do in only 10 weeks.
Gameplay & System Design, UI Design & Art, VFX Art and Visual Scripting.
Product Owner, Game Design, UX Design, Gameplay & System Design, Sound Design, Visual Scripting.
Level Design, Level Art, Quality Assuarance.
Thank you for checking out Spineless, I hope it was inspiring!