Skip to content
HordekillerPublic

About

A city-builder strategy game inspired by Icarim, built with Godot 4.7

Resources

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

Atlas 🏛️

A city-building and empire-management strategy game inspired by Ikariam — built with Godot 4.7


Project Status — Honest Assessment

Aspect Status Notes
Playability ✅ Playable Core loop works, NPCs are active, gameplay flow is functional
Stability ✅ Good No compile errors, no unexpected crashes
UI/UX ✅ Improved Panels completed, onboarding in place, user flow patched
Assets ⚠️ Incomplete 54 building textures; 5 buildings use color-coded placeholders
Content ⚠️ Moderate 20 NPC cities in the world, 6 commanders, daily scenarios
Multiplayer 🔴 Not implemented No networking code exists

✨ Implemented Features

🏙️ City Building

  • 38 building types with full definitions (cost, production, upkeep, research prerequisites)
  • Worker system (assigning population to buildings)
  • 16×16 city grid with free placement
  • 54 building textures in Assets/Textures/Buildings/
  • Builder system with 2 concurrent slots (Clash of Clans-inspired)
  • Building upgrades and demolition, with visual progress bars
  • Real-time construction timers (per-second)

📈 Economy

  • 13 resources (wood, marble, glass, wine, gold, food, stone, crystal, sulfur, population, workers, research points, happiness)
  • Happiness system, influenced by wine, taverns, temples, overcrowding, and corruption
  • Corruption system, reduced by governor's residence
  • Warehouse storage with capacity limits
  • Construction cost discounts (carpenter, architect, glassmaker, etc.)
  • Inter-city trade with sea routes (travel time is calculated)
  • Real-time economic ticks (once per second)

🔬 Research

  • 4 main branches: Economy, Military, Science, Seafaring
  • Layered technology tree with prerequisites (30+ technologies in ResearchManager)
  • Research point generation via Academy and Crystal Workshop
  • Full ResearchPanel UI
  • New capabilities unlocked through research

⚔️ Combat System

  • Turn-based combat with 12 rounds (5 minutes per round = up to 1 hour of battle)
  • 6 formation types (Standard, Phalanx, Flanking, Assault, Entrenched, Ambush)
  • Commander modifiers: attack, defense, naval
  • Animated BattleScene with flying projectiles, emoji-based unit icons, HP bars, and unit shake on casualties
  • Retreat option available at rounds 3, 6, and 9
  • CombatReport with per-round breakdown (casualties, skills, loot)
  • Defensive building system (watchtower, cannon, harbor chain, arch, wall)
  • NPC attacks: click enemy cities (red) → attack/spy/trade dialog

🧑‍✈️ Commander System (Rise of Kingdoms-inspired)

  • 6 commanders: Captain, Warlord, Tactician, Architect, Spy, Admiral
  • 3 types (naval, ground, support) and 4 rarity tiers (common to legendary)
  • 3 skills per commander (passive + active)
  • Leveling up to 50 via EXP, with skill unlocks across Tiers 1–5
  • CommanderPanel: selection, stats, and skill overview
  • Modifiers integrated with CombatSystem

🌍 Island World

  • 20 islands with primary and secondary resources
  • 20 NPC cities with randomized names, spread across 12 islands
  • NPCSystem with basic AI (attacking player cities, building defenses, 30-second tick)
  • Deterministic world generation (seed=42)
  • World map rendered via Canvas (islands, cities in blue/red, trade routes)
  • Click an island to view cities, colonize, or attack an NPC
  • Zoom/pan via mouse and touch (pinch-zoom + pan gesture)
  • Inter-city trade route system

🕵️ Espionage

  • 6 mission types (sabotage, resource theft, research theft, reconnaissance, incite revolt, poison water supply)
  • Upgradeable hideout
  • Discovery risk and execution consequences
  • Fully implemented in SpySystem.gd

📱 Mobile Platform

  • Landscape-only (forced landscape orientation)
  • SafeAreaManager for notches/punch-hole cameras
  • HapticManager for touch feedback (Android)
  • Touch targets ≥ 88px
  • Vertical AdvisorBar with 8 buttons (optimized for right-thumb reach)
  • Pinch-zoom and pan gestures on WorldMap
  • NotificationManager for local Android notifications
  • ETC2 texture compression (mobile)
  • Immersive mode + keep-screen-on
  • Beginner protection (72-hour grace period)

🎓 Tutorial

  • 12-step guided onboarding for new players
  • Steps: welcome → first city → build lumberjack → build farm → explore island → barracks → research → train troops → attack NPC → colonize
  • Event-driven: advances automatically after each completed action
  • Skip button for experienced players
  • Tutorial progress saved to the save file

🏚️ Building Texture Placeholders

  • Buildings without dedicated textures (watchtower, defensive cannon, harbor chain, treasury, city wall)
  • Rendered as color-coded rectangles by category, labeled with the building name
  • Category colors: RESOURCE = green, MILITARY = red, INFRASTRUCTURE = blue, RESEARCH = purple, CULTURE = gold

🎁 Daily Systems

  • QuestSystem with 6 daily quests (first build, first upgrade, population 50, first research, train army, daily login)
  • EventSystem with 4 recurring events (harvest festival, military drill, trade winds, inspiration)
  • DailyReward (7-day rotating cycle)

🎨 Technical

  • Signal-based architecture (EventBus for inter-system communication)
  • ObjectPool for tile management
  • ResponsiveLayout with dynamic tile sizing (40–72px)
  • Custom UITheme built with StyleBoxFlat
  • Custom shaders (water, glow, fire particles, post-process bloom)
  • Save/load via Dictionary serialization
  • TimeManager with tick/day system and offline progress
  • 9,545 lines of GDScript + 1,778 lines of TSCN

❌ Gaps and Incomplete Work

Critical — Resolved ✅

Item Status
NPC enemies ✅ 20 NPC cities with randomized names, basic AI, interaction dialogs
Tutorial ✅ 12-step event-driven onboarding
Gameplay flow ✅ Build → research → military → battle → colonize, fully connected
BattleScene animation ✅ Projectiles, unit icons, HP bars, shake effects, timers
Missing textures ✅ 5 buildings using category-based color placeholders

Moderate

Item Notes
MilitaryPanel ✅ Active — unit training, available units, costs
TradePanel ✅ Inter-city trade routes with gold cost, route listing, route removal
AllyPanel is a stub Empty panel with only a close button
ColonizeDialog ✅ Functional — click empty island → select origin city → colonize
EconomyManager consumption incomplete Only food and wine are currently consumed
Sound FX ✅ Wired to building clicks, construction/upgrades, research, trade, advisor buttons
ObjectPool ✅ Prewarmed in Game._ready() with 20 units and 30 projectiles
Save/Load ✅ Tutorial progress saves and restores correctly
NotificationManager scheduling exists but is disconnected Notifications are never triggered during actual gameplay

Minor

Item
8 of 38 buildings lack dedicated textures (fall back to construct.png)
CityView's _ready() recently added rebuild_all() — possible race condition with signals
Save/load not fully tested (especially commanders and newer systems)
Offline progress in TimeManager calculates ticks but doesn't complete in-progress construction
CitizenSystem has citizen sprites but no one actually walks around the city
City background (Bg) has a fixed position (484,767) and isn't responsive
Documentation (this README) is more complete than the game itself
No unit tests exist
BattleSystem.gd is deprecated (replaced by CombatSystem.gd) but the file hasn't been removed

🗺️ Roadmap

Phase Status Features
🏗️ Phase 1: Infrastructure ✅ Complete Core loop, economy, research, city grid, base HUD
📱 Phase 2: Mobile ⚠️ 25/27 tasks Android conversion, commanders, combat, defense, daily loop
🧠 Phase 3: Content 🔴 Not started NPC enemies, tutorial, campaign missions, events
🌐 Phase 4: Networking 🔴 Not started Multiplayer, alliances, diplomacy, real-time battles
🎨 Phase 5: Polish 🔴 Not started Animations, particle effects, sound design, UI polish

📂 Project Structure

GameMB/
├── Assets/
│   ├── Audio/               # Music and sound effects (27 files)
│   │   ├── Ambient/         # Ocean waves
│   │   ├── Music/           # Main theme
│   │   └── SFX/             # Clicks, construction, errors, success, alerts
│   ├── Shaders/             # GLSL shaders (4 files)
│   └── Textures/            # All game imagery (1,122 files)
│       ├── Buildings/       # 54 building sprites
│       ├── Resources/       # 10 resource icons
│       ├── Units/           # 7 unit sprites
│       ├── UI/              # 32 UI elements
│       └── Environment/     # City and island backgrounds
├── Globals/                 # 4 global scripts
│   ├── Globals.gd           # All constants and enums
│   ├── GameState.gd         # Runtime game state
│   ├── EventBus.gd          # Signal system (44 events)
│   └── UITheme.gd           # UI theme and styling
├── Scenes/
│   ├── Menu/                # Main menu, settings, load/save
│   ├── Game/                # 20 files (HUD, CityView, WorldMap, panels)
│   └── Building/             # Visual component per building
└── Scripts/
    ├── Core/                # 10 files (Building, Economy, Time, World, Save, ...)
    ├── Military/             # MilitaryManager
    ├── Systems/              # 10 files (Combat, Commander, Quest, Event, ...)
    └── Utils/                # ObjectPool

🛠️ Tech Stack

Component Details
Engine Godot 4.7 stable
Language GDScript (9,545 lines)
Target platforms Android (landscape only) + Linux/PC
Base resolution 1920×1080 (canvas_items + expand stretch)
Renderer Mobile (gl_compatibility)
Texture compression ETC2/ASTC (VRAM)
Assets PNG/JPG — CC0, sourced from various providers
Audio 27 WAV/FLAC files (ambient + SFX + music)
UI theme Custom StyleBoxFlat + 32 UI textures
Localization Fully localized in Persian/Farsi
Min SDK Android API 24 (Android 7.0)
Target SDK Android API 34 (Android 14)

🚀 Running the Project

# Requires: Godot Engine 4.7+
godot project.godot

Controls:

  • Left click: select / place building
  • Right click: cancel build mode
  • Scroll / pinch: zoom
  • Drag: move camera
  • Backspace / Escape: exit dialog

📜 License

Code and content in this project are released under the GPLv3 license.

Assets used (images, audio) are sourced from CC0/Public Domain providers. See ATTRIBUTIONS.md for full details.


Built with ❤️ and Godot Engine 4

About

A city-builder strategy game inspired by Icarim, built with Godot 4.7

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages