Skip to content

Repository files navigation

Salt And Steel

Table of Contents

About

Salt and Steel is a personal video game project developed over approximately 4 months, starting when I was 16 years old. It is a hybrid of tower defense and deckbuilding, where each tower is represented by a card. The project features an anime-inspired, painterly art style and was originally planned as a one-month chess-based tower defense prototype before expanding into a much larger project.

All illustrations and artwork were created by me. No AI-generated assets were used. AI was only used as a programming learning aid, mainly for understanding APIs and writing repetitive logic.

Installing

>>> Download the latest release from the Release page <<<

  • Unzip the file and open the .exe (SaltandSteel.exe) and you should be able to play the game. (Use SaltandSteel.console if you believe that you've found a bug. Any errors should get reported in the console)
  • There are vietnamese and english tutorials on how to play the game (README_VN and README_EN). Please read the appropriate one if you are playing for the first time as there's no in-game tutorial yet.

Gameplay

Gameplay

Gameplay demonstration

The player builds a deck of tower cards and draws a hand of cards during each run. Playing a card places its corresponding tower on the map, with different towers having different attack ranges, damage, attack speeds, targeting behaviors, and attack types. Enemies follow preset paths toward the Base, rewarding Power when defeated. Power is the game's only currency and is used to place towers, reshuffle the deck, and purchase Tools, which provide upgrades and additional effects. Between waves, the player can modify their deck, purchase Tools, and prepare their defense. The player wins by clearing all waves and loses when the Base's HP reaches zero.

>> For more details please read the Gameplay Documentation <<

Development

Salt and Steel was one of my first larger projects in game development and software engineering. Some early design decisions are questionable in hindsight, but keeping them allowed me to see how my approach to development evolved throughout the project.

The game was developed using Godot 4.x, GDScript, and GDShader, with a strong focus on data-driven architecture using custom Godot Resources. Waves, towers, and other gameplay data are separated from the systems that process them, allowing new content to be added with minimal changes to the underlying code. One of the systems I'm most proud of is the Condition & Action system, which allows gameplay effects to be composed from reusable conditions, actions, and effects instead of hard-coding the behavior of individual Tools. More detailed technical documentation will be provided separately.

>> For more details please read Development Documentation <<

some example of the peak data-driven architecture

The condition system. The best architecture I made in S&S imo

The Tower Data system

The Wave Data system

Creative

Salt and Steel is designed around combining Tower Defense with Deckbuilding. The intention is to have the player constantly adapting and utilizing their available deck/towers and tools to face upcoming enemies rather than relying on a fixed defensive set up. The game's visual direction uses an anime-painterly art style and with the character designs leaning toward tactical/military aesthetic (influenced by Limbus Company and Arknights). The game design focuses on resource-management, RNG-controlling, building synergies.

>> For more details please read Creative Documentation <<

some peak card illustration of the game that I made

meme potential. i really like the lightning on this one.

I like the composition of this one. Basic tower btw

amy (scout) concept art

License

The source code of Salt and Steel is licensed under the MIT License.

Original artwork, characters, game assets, and other creative content are not covered by the MIT License and remain All Rights Reserved, unless otherwise stated.

Third-party assets remain under their respective licenses.

Credits

Contacts