Pham Van Tai/Projects/Idle Dungeon Keeper
Idle Dungeon Keeper icon

Idle Dungeon Keeper Tycoon RPG

Idle tycoon RPG about running a dungeon shop.

Studio
Archer Game Studio
Period
Sep 2025 – Sep 2026
Platform
Android
Status
Tech
Unity 6, in-house DI framework, Addressables, BGDatabase, Firebase Cloud Functions, Firestore

Overview

PositionUnity Developer
Team dev size4
Project highlights
  • Released on Google Play.
  • NPC behaviour for customers, miners and shop workers runs on a state machine configured with ScriptableObjects.
  • 29 save features with auto-save and cloud sync.
  • Main Event live-ops mode.
  • Arena ladder PvP with battles simulated on Firebase Cloud Functions.

About the game

Idle tycoon RPG about running a dungeon shop. Customers order gear, wait for it to be crafted and then go to battle. Workers mine materials, craft and ship products.

Architecture

The client runs on an in-house DI framework with a MessageBus and a system registry. Shared services cover NPC AI, the UI framework, save/load and data tables from Google Sheets. The server uses Firebase Cloud Functions and Firestore for Arena, IAP validation, saves and auth.

Click a block for details.

ClientFramework & serverData from design
Gameplay
Shared services
Framework
Server

NPC AI

NPC behaviour is set up with ScriptableObject assets. Designers connect decisions and states in the Inspector, and new decisions or states are added in code. Click a node for details.

Brain asset
Transition sets
Decide
Runtime

States, decisions and memory

Classes used in the released game, grouped by agent type.

Customer · order & craft 7 states

PreGotoOrderGoToMachineSlotWaitingConfirmOrderDoOrderSelfCraftingOrderWaitingOrderCompleteOrderComplete

Customer · battle & exit 7 states

GoToBattleWaitingDefenderMoveToAttackAttackInBattleGetOutOfBattleFieldRunToPortalCustomerDead

Shop worker 10 states

WaitingForWorkCheckToConfirmOrderGotoConfirmOrderConfirmOrderCheckToWorkingGotoWorkingCraftingProductCheckToShipShippingProductDeliveryProductToLine

Miner worker 6 states

MinerWaitingForWorkMinerBeginWorkMoveToWorkMinerWorkingMinerStackingReturnToDeposit

Decisions BrainDecision

HasWaitingOrderHasSlotWaitingForConfirmHasProductNeedShipIsDepositFullHasOrderButNoWorkerWorking

Memory per agent

CustomerMemoryEnvironmentMemoryConfirmOrderMemoryProductionMemoryShipMemoryMinerWorkerMemory

Arena

12 callable functions. The server simulates each battle with a deterministic combat simulator ported from the C# client, and the client replays the battle from the same seed. Opponents come from a pool of real players, filled with bots cloned from player snapshots. A cron job locks the daily ranking at 00:00 UTC and closes the season. Integration tests run on the Firebase emulator.

Built with