A 2D action tower-defense game with a unique twist!

— PLATFORM

PC


— ENGINE

GameMaker Studio 2


— TEAM SIZE

4 contributors



[DEMO DOWNLOAD LINK]

Soul Tower is a 2D side-scrolling tower-defense game starring a lone necromancer who must arm his tower lair with enchanted traps to keep his disgruntled neighbors at bay. The twist is that these traps won’t simply activate automatically – it’s up to the player to operate them!

Responsibilities:

Created original game concept and led production of a vertical slice demo

Programmed core game systems in GML, including enemy behavior, trap functionality, and basic UI

Drafted a comprehensive GDD outlining design specifications and metrics for all in-game elements

Offered direction and constructive feedback on art, sound, and programming assets

Utilized Trello to assign biweekly sprint tasks and plan development milestones

Accolades:

Featured in IndieCade Horizons 2021


DESIGN PILLARS

#1: AGENCY

Soul Tower aims to empower greater player involvement in the classic tower-defense combat loop. Rather than relying on automatic troops and towers to fight for them, players must activate all damaging traps manually. This gives them a much more direct impact on the flow of battle.

#2: TIMING

In Soul Tower, victory depends not only on clever trap placement but also on precise activation. Each trap has its own cooldown period, so mistiming can have severe consequences for the player, especially in more difficult rounds. Inversely, players are rewarded with extra resources for taking out groups of enemies with a single trap usage.

#3: TENSION

Soul Tower’s mechanics require constant attention and spatial awareness, making for a stressful yet addicting game loop! As the game progresses, enemies will find new ways to circumvent traps, forcing players to identify vulnerabilities in their defense and adjust their strategy. Players will have to effectively divide their focus to survive the onslaught!

WORK OVERVIEW

GAMEPLAY DESIGN

As the original concept designer for Soul Tower, I set out to dissect established tower-defense games, extract their fundamental elements, and subvert these conventions to create a wholly new experience.


During development, I was the driving force behind the game’s production and design vision. I established strict guidelines for our combat system and developed enemies, traps, and rooms that fit these parameters. I then worked alongside programmers in GameMaker Studio 2 to bring these concepts to life.


Soul Tower encourages experimentation with various trap and room combinations, allowing for emergent gameplay where players develop their own strategies and play-styles. This necessitated extensive playtesting and iteration to ensure a proper balance of our game systems and economy.


A particular issue revealed by player feedback was low resource accrual in the early-game. To remedy this, I implemented a combo system that increased soul-point yield when taking out multiple enemies with a single trap activation. This added additional depth to our game loop both by incentivizing skillful and attentive play as well as introducing combo-potential as a strategic factor for players to consider when determining their trap layout.

TECHNICAL DESIGN

In the early stages of our game’s development, I utilized GameMaker Studio 2's proprietary coding language, GML, to create functional prototypes of our game loop and systems.


Our initial builds were used to determine play area scale, precise object metrics, and HUD design. After some iteration, I passed at-scale placeholder sprites along to our lead artist to assist in asset creation.


With metrics solidified, I collaborated with our principal programmer to script enemy behavior, trap interactions, and our game system managers. To facilitate live testing, I also developed an in-game debug console that allowed us to spawn enemies, increase soul-point count, and toggle trap placement mode at will.


As the project evolved, I steadily replaced temp assets with completed sprites by our lead artist. In addition, my programming partner and I utilized GameMaker's object parenting system to optimize implementation of new traps, rooms, and enemies. This made it far easier to add and iterate content in our demo up to its completion.