Games Like SteamWorld Heist: The Ultimate Guide for Tactical Combat Fans

Full Disclosure: I’m Tobias, the solo developer behind Into The Deep, and I created this page to help fellow SteamWorld Heist fans discover games that scratch that same tactical itch—including my own game, which was directly inspired by SteamWorld Heist’s brilliant mechanics.

If you’ve fallen in love with SteamWorld Heist’s unique blend of turn-based tactics and manual aiming, you’re probably searching for similar games that capture that same magic. The good news? There are several excellent alternatives that offer comparable tactical depth, skill-based combat, and engaging gameplay loops.

What Makes SteamWorld Heist Special?

Before diving into alternatives, it’s worth understanding what sets SteamWorld Heist apart from other tactical games. The manual aiming system transforms traditional turn-based combat into something more dynamic and skill-based. Players must physically aim their shots rather than relying on percentage-based hit chances, creating opportunities for creative ricochet shots and precise skill-based gameplay.

Into The Deep: My Love Letter to SteamWorld Heist

I’ll be upfront—Into The Deep is my game, and it exists because I was genuinely puzzled by why SteamWorld Heist seemed to occupy such a niche that nobody else was exploring. Here was this brilliant game with innovative mechanics that solved the “98% chance to hit” nonsense that plagued other tactical games, yet it felt like the gaming industry largely ignored what made it special.

Why I Made This Game:

  • I was curious why manual aiming mechanics like Heist weren’t more common
  • I wanted to explore why skill-based 2D tactical combat remained so underutilized
  • I needed a project to learn game development, so why not recreate what seemed criminally underappreciated?

What Into The Deep Offers:

  • Manual aiming system with ricochet mechanics (directly inspired by Heist)
  • Turn-based tactical combat on a 2D plane
  • Character progression and squad management
  • Environmental interaction and puzzle elements
  • Atmospheric storytelling with a complete narrative arc

The game is planned for 2025/2026 release as a focused, polished experience that explores why this particular style of tactical gaming deserves more attention.

The SteamWorld Heist Paradox

It’s fascinating that SteamWorld Heist received critical acclaim across platforms—scoring 81-91 on Metacritic and earning praise for its “depth, addictive combat and charming characters”—yet struggled to find a wider audience. Even the developer called it “one of the best games ever made” and expressed confidence it deserved to be a bigger commercial hit than SteamWorld Dig.

The recent challenges with SteamWorld Heist II’s sales, despite “96% positive reviews on Steam,” highlight this ongoing puzzle. Why does such a well-crafted, innovative game remain relatively niche?

Other Genuine Alternatives

While I obviously believe Into The Deep addresses this gap, here are other games that SteamWorld Heist fans genuinely enjoy, me included!

Mario + Rabbids Kingdom Battle (My Favourite Casual Game)

Nintendo’s take on tactical combat with cover mechanics and strategic positioning. More accessible but still tactically engaging.

https://www.nintendo.com/de-de/Spiele/Nintendo-Switch-Spiele/Mario-Rabbids-Kingdom-Battle-1233954.html

XCOM 2 (My Favourite Hardcore Game)

More complex than SteamWorld Heist, but offers deep tactical combat and consequence-driven gameplay that appeals to strategy fans.

Into the Breach

Perfect information strategy that delivers the same satisfaction of executing well-planned tactical maneuvers. It’s simple and addicting.

Mutant Year Zero: Road to Eden

Combines stealth, exploration, and turn-based combat with environmental awareness similar to what made Heist engaging. I was genuinely surprised by this one. It made many things, other games didn’t.

Why I’m Being Transparent

I could have written this page without mentioning that Into The Deep is my game, but I believe in honest marketing. I made this page because:

  1. I genuinely want to help SteamWorld Heist fans find my game 😀
  2. I’m curious about this niche and think it deserves more exploration

The fact that SteamWorld Heist is described as “one of the most underrated games of the 2010s” and praised as a “masterpiece” by players, yet remains relatively unknown, suggests there’s room for more games in this space.

Want to see for yourself? Check out Into The Deep’s development progress here on tobar.io and try the demo to experience what I hope contributes to making this brilliant style of gameplay less niche.

— Tobi, ITD Dev

Devlog: The Great Refactor – Taming Scriptable Objects for a Robust Save System

Ahoy, fellow Dwarves!

Today, I want to take you on a deep dive into the engine room of Into The Deep. While I’ve been busy forging the levels for Act 1, a huge effort has been underway in the background: a complete and critical refactoring of the game’s core architecture, specifically how it handles and saves your progress.

The Glorious Trap of Scriptable Objects

Anyone who has worked with Unity loves ScriptableObjects (SOs). They are a blessing for prototyping. You can create data containers as assets, drag-and-drop references in the Inspector, and everything just works. It’s wonderfully simple.

The one that started it all. Like many Unity developers, I was completely blown away by Ryan Hipples ideas and completely changed my way of prototyping by using referenced scriptable objects. No problem for prototypes… but for persistent game data.

My initial approach for save games was built entirely on this structure. I had a PlayerData SO, which held a reference to a CrewSO, which in turn held references to CharacterSOs. When Amos took damage during a playtest, my code would simply change the health value directly inside the Amos_CharacterSO asset. Convenient? Absolutely. A good long-term idea? Not so much.

I had walked right into the classic trap: I was using SOs, which should be templates, as storage for mutable runtime data. It’s like building a house and then drawing on the original blueprint with a marker to show where you put your couch. The next time you use that blueprint, you’ll be wondering why there’s a couch already drawn on it.

The Cracks in the Foundation

This approach worked for a quick demo, but as I started building a real game, the problems became glaringly obvious:

  1. “Dirty” Project Assets: This was the biggest headache. If Amos died in Play Mode and his health was set to 0 in the SO, it stayed at 0 after I exited Play Mode. I had to manually reset my project data constantly to get a clean test run. This is error-prone and incredibly annoying.
  2. No Multiple Save Slots: How could I possibly manage three separate save files when they all reference and modify the exact same CharacterSO assets? It’s impossible. Each save would effectively overwrite the state of the others.
  3. The Serialization Dilemma: To save a game to a file (like a .json), you need to serialize your data. Unity’s JsonUtility can only serialize simple data types (strings, ints, floats, etc.). It has no idea how to convert a direct reference to a project asset like a ScriptableObject into text. That reference is just a “pointer” inside the engine; in a text file, it’s meaningless.

It was clear: the system had to be rebuilt from the ground up.

The Solution: The Great Separation of Template and State

The new system is built on one fundamental principle: a strict separation between Template Data (the blueprint) and State Data (the current save game).

1. The Blueprint (Template):

My ScriptableObjects (CharacterSO, WeaponSO, etc.) are now treated as pure, read-only templates. They only contain the base values: a character’s name, their maximum health, a weapon’s base damage. They are never modified by code during runtime.

C#
// CharacterSO.cs - The Template (Read-Only)
[CreateAssetMenu]
public class CharacterSO : ScriptableObject
{
    public string characterID; // e.g., "amos_eisenfaust"
    public string characterName;
    public float maxHealth;
    // ...other base stats...
}

2. The State (Instance):

For the data that changes, I’ve created new, simple C# classes (often called POCOs) that don’t inherit from anything and just hold data.

  • CharacterState: Stores only what changes for a character, like currentLevel, currentXP, currentHP.
  • GameSaveData: This is the main container for a complete save file. It holds lists of these State objects (e.g., List<CharacterState> squadStates).

The crucial trick is that these State classes don’t store direct references to the SO assets. Instead, they only store a simple string ID. So, Amos’s CharacterState doesn’t contain the Amos_CharacterSO asset, it just contains the string “amos_eisenfaust”.

C#
// CharacterState.cs - The Saved Data
[System.Serializable]
public class CharacterState
{
    public string templateID; // The "link" back to the CharacterSO
    public float currentHP;
    public int currentLevel;
    // ...other dynamic data...
}

How It All Works: IDs and The Database

To make this work, I created a central GameAssetDatabase. This is a single ScriptableObject that holds references to all my template SOs (characters, weapons, levels, etc.).

The new save/load flow looks like this:

  • Saving: A DataManager collects all the State objects (from all characters, quests, etc.), bundles them into a single GameSaveData object, and serializes it into a JSON file. The string IDs can be saved perfectly.
  • Loading: The DataManager reads the JSON file and reconstructs the GameSaveData object in memory.
  • Instantiating: A SquadManager looks at the list of loaded CharacterState objects. For each one, it takes the templateID (e.g., “amos_eisenfaust”), goes to the GameAssetDatabase and asks, “Give me the CharacterSO with this ID.” Once it has the template, it spawns the character’s prefab and applies the loaded state (currentHP, Level, etc.) to it.

This pattern of separating data and referencing assets via IDs wasn’t entirely new to me. My previous explorations into multiplayer with Netcode for Gameobjects use a very similar approach, as you can’t send complex object references over the network—only serializable data like IDs. That experience really taught me to appreciate this robust, decoupled architecture.

The Best of Both Worlds: Making Testing Easy Again

The biggest drawback of this clean system is losing the convenience of setting up test scenarios in the Inspector. I can no longer just drag a “Test_Savegame_SO” into a manager.

My solution is an Editor-only tool. I’ve created a special SaveFilePresetSO that only exists inside the Unity Editor. Here, I can drag-and-drop CharacterSOs, set test values (Level 5, 1000 gold, etc.) just like before. A custom button in the Inspector, “Generate JSON Save File”, then converts this preset into a clean, loadable .json save file.

C#
// SaveFilePresetSO.cs - An Editor-Only Tool
[CreateAssetMenu]
public class SaveFilePresetSO : ScriptableObject
{
    [Header("Test-Setup")]
    public int saveSlotIndex = 99;
    public int currency = 1000;
    public List<CharacterPreset> crewRoster; // Can drag CharacterSOs in here!
    // ...
}

[System.Serializable]
public class CharacterPreset
{
    public CharacterSo characterTemplate; // Direct SO reference for editor convenience
    public int level = 5;
}

This gives me the old convenience without compromising the clean runtime architecture.

The Moral of the Story

If there’s a lesson here, it’s this: Refactor sooner rather than later. The initial comfort of a “hacky” prototyping solution creates a massive “technical debt”. Unraveling that architecture later is an enormous and sometimes frustrating task, as it touches almost every single system in the game.

But there’s a silver lining: being forced to go through every class, from CharacterUnit to GameManager, also gives you a unique opportunity to clean up, improve, and solidify your entire codebase. It’s safe to say this ID-based architecture will be my standard practice for all future projects. The days of using ScriptableObjects for dynamic data are definitely over!

Thanks for reading!

Tobi

Into The Deep – Full Focus on Act 1!

Ahoy, fellow Dwarves!

For decades, our people have wandered in exile since the fall of our great mountain-home, Ølheim. But now, the time has come to reclaim it!

Amos – King of Ølheim

Thank you for your support and for being part of this community. It’s time to give you a more detailed look behind the curtain and share our plans for Into The Deep, with a full focus on Act 1 of the game. Our goal is to forge a rich, tactical experience, and your feedback is the fuel that keeps our smithing fires burning!

Heading into Production!

I’m happy to announce that after countless hours of hard work, the foundational gameplay systems (like combat, movement, and squad mechanics) are now “largely” in place (who am I kidding?). This means we are officially moving into the production phase!

Our main focus from now on will be on level design – crafting the exciting, challenging, and story-rich missions of Act 1. Alongside this, I’ll be developing the cool new features that round out the experience, like the evolving Camp and the introduction of NPC traders.

This plan is our blueprint for turning the core gameplay into a full-fledged adventure.

Gameplay Philosophy

My biggest inspiration is the fantastic gameplay of games like SteamWorld Heist. The development is committed to these core principles:

  • Tactical, Skill-Based Combat: Every shot counts with a manual aiming system with a reliable trajectory. This will allow for skill shots and ricochets! Using the environment to your advantage will be crucial. But better stay in cover!
  • Squad: You won’t just be controlling generic soldiers. Every character you recruit, starting with Amos and Glimra, will have unique starting abilities and skill trees. Your choice of squad members will have a real impact on your strategy in each mission.
  • Customization: Finding loot is exciting! You’ll discover a wide variety of weapons and utility items (like grenades and buff potions). Equipping your squad for the upcoming mission is a huge part of the fun.
  • Progression: Your efforts will be visible. I want to create a clear sense of progression, not just for your characters, but for your base of operations. The camp will evolve from a few tents into a lively hub, showing your journey.

The Journey Through Act 1: The Mine

Your quest begins with a single goal: to find a way back into the lost city and take the first steps towards fulfilling an old prophecy that promises to restore the dwarven spirit.

I’m experimenting with comics as a narrative format

Act 1 is designed to be a complete, self-contained adventure that forms the foundation for the rest of the game. Our plan is to build 5 main, handcrafted levels that will guide you through the story of Act 1, from your first steps into the darkness to a dramatic final confrontation. For all you explorers out there, I’m also planning to sprinkle in optional side-missions and hidden secrets for you to discover. Each level will introduce new challenges and story elements.

The Camp: Your Growing Home

Your base of operations evolves with you!

  • Phase 1: You’ll start in a rudimentary camp on the surface, with just a few tents and a campfire.
  • Phase 2: By the end of Act 1, you’ll establish a proper operational base down in the mine’s tavern. This will be a lively hub where you can see the dwarves you’ve rescued.
  • NPCs with a Purpose: Rescued characters will offer services!
    • The Brewer: A legendary master craftsman, said to be the last dwarf who knows the recipe for the famed Ølheimer brew. He’s key to fulfilling the prophecy and can create powerful buff potions and healing items for your team.
    • The Trader: A resourceful dwarf who will buy your excess loot and sell essential supplies.
    • more to be announced

A Word from a Solo Developer

Into The Deep is a passion project developed by just one person – me! This is a massive undertaking, and bringing this world to life is both a challenge and a joy.

I also want to be transparent with you all. I had to scale back my output over the last few months as I was getting close to burnout trying to juggle my day job, family, and game development. It’s a tough balance! However, I’ve found a better rhythm now and am back to making slow but consistent progress. I’ll also do my best to post more frequent updates and automatically generated changelogs, which you can follow in our new Changelog Section.

My primary goal is to build a cool, polished, and complete short adventure for you to enjoy. This means I have to be smart about which features make it into the initial release. While I have a vision for the game, my focus is on delivering a higher-quality core experience first.

The biggest problems are graphical assets. If I would do anything on my own, it would add years to my development schedule, so I’m glad that I can buy much of the stuff I use. This may lead to a bit of inconsistent experience. But I hope my eye as a designer and product manager will enable me to set this off a bit.

Focusing on a “Guiding Thread”

There is a German expression that describes exactly what was missing in the development phase. A “red thread” – a thread that holds everything together and makes it coherent, that indicates the direction like the North Star. I think I’ve found it now by defining the basic story and plot. Now I can weigh every decision against it. Now that I have it, I feel motivated to finally tackle the levels and take care of the design.

I’m tracking every core system that has to work for act 1 or needs polishing or refactoring in a list … hey. At least I’ve got a plan.

I think that will be a point that will be at the top of the post mortem of this project, and it really would have saved me a lot of frustration. My nature tends to say “make it quick and try it out”, and my lack of experience with systems has forced me to work around problems as long as I can instead of solving them right away. But hey! This is my first real solo game development project. That’s part of it.

Join Our Community & Future Playtests!

As we dive deeper into production, I hope to hold irregular playtests to gather your invaluable feedback. The best way to stay updated on this and to become part of our growing dwarven clan is by joining our official Discord server.

Join us here: https://discord.gg/prF4CrRSrg