Skip to content
ALBEDO
← Back to index
01 / 03 · Tower Defense

ExalTD

ExalTD is a tower defense game taking place in the magical depths of the cosmos. Your aim is to hold against waves of enemies pushing through your defense lines with the help of magical creatures and powerful heroes.

YEAR
2024
ENGINE
Godot 4.6
ROLE
Lead developer
TEAM
6 people
PLATFORMS
PC, Mobile
// GALLERY
ExalTD in mid-battle on Wave 13: swarms of ooze enemies pushing along the crystal paths while towers fire and damage numbers scatter across the cosmic board.The board at the start of Wave 1, showing the winding enemy paths, the crystal cavern layout, and the tower shop along the bottom.The board in build mode while placing a tower, showing the placement range ring and an 'RMB or ESC to Cancel' prompt.The wave preview tooltip listing an upcoming wave's enemy counts alongside the Orange Ooze stat card, with HP, speed, damage, and on-death split.The Dragon creature tower's upgrade tree with the Fire Breath branch selected and its stats and abilities detailed on the side panel.The Lyra fighter tower's upgrade panel with a recursive keyword tooltip open, explaining the Bleed status inline.

ExalTD in mid-battle on Wave 13: swarms of ooze enemies pushing along the crystal paths while towers fire and damage numbers scatter across the cosmic board.

As the lead developer, and with the exception of the audio system, all of the gameplay code, in-game balance, and codebase architecture was designed and implemented by me. I had a lot of fun implementing and playtesting each part of this game, and the owner of the project is a great person who not only accepted me as a developer of this project, but also listened to my thoughts, let me implement my own ideas, and let me be a real part of the development.

Here are a few of my many works that went into ExalTD throughout the 2+ years I have been working on the project.

Gameplay

  • Implemented the core tower systems, which play uniquely between the creature and fighter towers, each one with a unique kit in their arsenal.
  • Created a wave economy and enemy system, making some enemies split up upon being defeated, adding even more challenge into the waves.
  • Implemented all interfaces with mobile device compatibility in mind.
  • Implemented many user-experience improvements into the interfaces to make sure players always have maximum quality of life and information available to them, such as recursive keyword tooltips that detail any mechanic in-game for players to see.
  • Designed and implemented an interactive, step-by-step in-game tutorial for players who are new to the genre or need a quick refresher for the game.

Optimization

  • Enemies, projectiles, and damage numbers are all pooled to make sure players do not have hiccups from the game generating so many nodes all at once.
  • Towers have various targeting modes, so I created a central targeting logic that prevents each tower from constantly sorting through a massive number of enemies all at once, and instead lets them use only what they need and take their targets quickly.
  • I implemented a shader compilation and asset pre-warm system that handles all “first time encounter” hiccups during a loading screen, to keep players from stuttering during gameplay.

Tool development

  • The enemies are animated in Spine2D, but running SpineSprite for all of the enemies, which did not really need a Spine runtime, was causing a massive performance hit. So I wrote an editor addon that takes a Spine packed-atlas export and converts it into an easily usable SpriteFrames resource or an AnimatedSprite2D for direct use, with the animation, playback type, and even a blend-mode material generated automatically when the asset is exported with premultiplied alpha. It is published separately as Spine Atlas Parser.
  • I also developed many in-editor docks and tools that allow for easy, visual rebalancing of the game overall.
  • Created an in-engine VFX test environment to let the VFX artist test their assets without requiring any help.

Git version control

  • The whole project’s version control is managed by me alone.
// VIDEO
// CREDITS
Lead development
Albedo
Animation and interface art
Frog on Fire