Skip to content

rluders/our-kingdom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏰 Our Kingdom

A chaotic cooperative survival game where players must organize without communication to defend a living world.

🎮 About the Game

Our Kingdom is a browser-based multiplayer game (4–12 players) that blends tower defense, RPG progression, and base building into a unique social experiment:

👉 Players cannot communicate
👉 Cooperation must emerge naturally

You and a group of strangers must:

  • Gather resources
  • Build defenses
  • Protect a central village
  • Survive escalating enemy waves

All while interpreting each other’s actions in real time.

🧠 Core Idea

No chat. No coordination tools. Just behavior.

Can players self-organize under pressure?

🔥 Features

  • 🌐 Multiplayer (WebSocket, server authoritative)
  • ⚔️ Real-time cooperative survival
  • 🌲 Resource gathering with risk/reward (weight affects movement)
  • 🏗️ Shared construction system
  • 🏰 Multiple tower types (damage, slow, AoE)
  • 👾 Enemy AI variety (Hunter, Defender, Sieger)
  • 🌫️ Fog of War + large map exploration
  • 📈 XP progression based on contribution
  • 🔁 Session loop (join → survive → win/lose → reset)

🎮 Controls

Action Input
Move WASD
Attack Mouse / Key
Collect Key / Proximity
Build Key + Position

🎨 Art & Assets

The project currently uses pixel art assets from:

👉 https://danieldiggle.itch.io/sunnyside

  • Clean, readable top-down style
  • Used for rapid iteration and gameplay clarity

⚠️ Important:
Art assets are NOT covered by the MIT license of this repository.

  • Each asset pack may have its own license
  • You must follow the terms defined by the original artist
  • Always check the asset page for usage rights before redistribution or commercial use

🧱 Tech Stack

🧠 Server

  • Go (1.24)
  • WebSocket (JSON protocol)
  • Server authoritative architecture

🎨 Client

  • Phaser 4

🧩 Architecture

[ Client (Phaser) ]
        ↓
  WebSocket (JSON)
        ↓
   [ Go Server ]
  • Server controls all game logic
  • Client handles rendering + input only
  • Protocol defined in PROTOCOL.md

🚀 Getting Started

1. Run Server

cd server
go run cmd/server/main.go

2. Run Client

cd game
npm install
npm run dev

3. Open Browser

http://localhost:5000

📂 Project Structure

.
├── docs/
├── game/        # Phaser client
└── server/      # Go backend
    └── internal/

🧠 Design Pillars

  • Emergent Cooperation
  • Controlled Chaos
  • Meaningful Decisions

🎯 Current Status

  • ✅ Core loop implemented
  • ✅ Multiplayer sessions
  • ✅ Combat + waves
  • ✅ Building system
  • 🚧 Expanding systems (AI, map, animation, feedback)

🧪 Philosophy

  • KISS
  • YAGNI
  • Server-first logic
  • Gameplay > Features
  • Feeling > Perfection

🚀 Roadmap

  • Enemy variety expansion
  • Advanced tower behaviors
  • Map system (tile-based)
  • Combat feedback polish

⚖️ License

Code

This project is licensed under the MIT License.

Assets

Art, audio, and other assets may be licensed separately by their respective creators.

👉 Always verify asset licenses individually before use.

About

A chaotic cooperative survival game where players must organize without communication to defend a living world.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors