Download Version always looks/plays better than webbrowser version


Planet map layer

each hex is suposed to be about 1000 km


Strategic map layer

also about 1000 km diameter


History Panel



Current Keyboard Controls


F2 = Faction List Panel

F3 = World List Panel

F4 = Faction Relations Panel

F5 = History panel, list historic events (past and future events that drive gameplay)

F6 lists Verbs/Actions available to factions

F11 = Alien Lifeforms Panel

F12 = Troop Types Panel


Mouse Wheel = smooth zoom in/out

WASD = rotate selected planet/map view

- / + = adjust simulation speed


Right Click on hex = zoom into Strategic Battle Map

SPACEBAR = return to Planetary Map

ESC = quit proof of concept


This is currently a small proof of concept for a larger procedural imperial simulation framework inspired by Emperor of the Fading Suns, old Avalon Hill boardgames, Bronze Age mythology, and retro science fiction. The prototype focuses on planetary hex maps, procedural generation, faction politics, ecology systems, troop generation, and layered strategic gameplay.


The current structure supports multiple scales of simulation. At the planetary level, factions compete over territory, resources, and influence across large strategic hexes. Individual hexes may later zoom inward into regional strategic battle maps, tactical combat zones, or interior locations like palaces, bunkers, and fortress districts.


Most systems are procedurally driven through seeds, including worlds, factions, ecology, political history, alien life, and troop generation. The goal is to create worlds that feel ancient, unstable, and historically layered rather than randomly generated.


The 40K practice fangame is useful for testing mechanics and simulation ideas. The 40K project acts as a sandbox where I can experiment with strange systems without worrying too much about balance or polish. If an idea works there, I can refine it and adapt versions of it elsewhere.


The setting, art, and factions may change between projects, but the underlying systems remain similar: worlds, factions, ecology, armies, politics, history, and war.

```

The world generation system is built around a central controller called MetaMaster. MetaMaster controls the order that all major generation scripts run so the simulation builds itself in the correct sequence.


Banduduu acts as the global seed and settings holder. It stores values like world counts, faction counts, history seeds, and generation settings that the rest of the scripts use.


The world itself is generated first. Planet generation scripts create the planetary sphere, hex layout, terrain, oceans, city regions, and strategic geography. Each hex becomes a PlanetHexTile object that stores terrain, ownership, ecology, troops, modifiers, and neighboring hexes.


FactionHolder then generates the noble houses and factions. It assigns headquarters, territory, colors, world ownership, and political relationships between factions.


After that, ecology systems like ENKI scan the worlds and populate hexes with alien life, ecology influence, and procedural species data. This allows worlds to develop unique biological regions and future invasive species behavior.


TroopHolder manages troop generation and military data. It stores available troop types, military technology progression, DNA values, and future army structures for factions.


The history systems are intended to run after the physical universe exists. History generation uses seeds and world conditions to create wars, political instability, invasions, alliances, religious movements, ecological disasters, and other large-scale events. These are generated using verbs like ASSASSINATE, INVade, REBEL, INFECT, NEGOTIATE, and DISCOVER.


The overall structure separates:

- physical world generation

- faction generation

- ecology generation

- military generation

- historical simulation


This allows the same worlds and factions to generate different alternate histories while keeping the underlying geography and universe consistent.

Updated 13 days ago
StatusPrototype
PlatformsHTML5, Windows
AuthorDerrickMoore
Made withUnity

Download

Download NowName your own price

Click download now to get access to the following files:

build.zip 37 MB

Comments

Log in with itch.io to leave a comment.


The game is built like a theater.

  • Narrator decides what happens.
  • History creates Roles.
  • Actors fill those Roles.
  • Stage Manager decides how everything is presented.

Actors never create history.

History never cares what an Actor looks like.

The Stage Manager owns all presentation.

Stage Manager

The Stage Manager has become the presentation layer for the entire engine.

Responsibilities:

  • 32-color palette
  • semantic color meanings
  • costume decks
  • actor sprites
  • tactical prefabs
  • UI meanings
  • strategic/tactical meanings
  • galaxy meanings

Simulation scripts never choose colors or sprites directly.

Instead they ask:

StageManager.Instance.GetColor(index);  StageManager.Instance.GetActorSprite(actor); 

Stage Palette

Created a StagePalette asset that stores all 32 colors.

Each StageColorEntry contains:

Index Color Name Unity Color  Emotion Meaning Personality Meaning  Material Meaning Blackbody Temperature (Kelvin)  Galaxy Meaning Planet Meaning Strategic Meaning Tactical Meaning UI Meaning  Timeline Meaning Window Meaning Panel Meaning Card Meaning Button Meaning Selection Meaning Warning Meaning  Sprites Materials Prefabs 

The palette is intended to be the universal language of the game.

Example:

Black

Galaxy Void

Strategic Destroyed area

Tactical Rubble

Emotion No emotion

Material Void

White

Everything at once.

Creation.

Observation.

Yellow

Star

Sand

Joy

etc.

Blackbody Scale

Every palette color now has an approximate blackbody temperature.

Examples

Black 0 K  Gray 700 K  Brown 1400 K  Orange 2500 K  Yellow 5600 K  Green 6000 K  Blue 18000 K  Purple 28000 K  Magenta 35000 K  Radioactive 1,000,000 K  Hero White 999,999,999 K 

These will later drive

  • stars
  • heat
  • radiation
  • force powers
  • energy visualization

Costume System

Created CostumeDeck ScriptableObjects.

Current decks planned:

CosmicBeingDeck CitizenDeck HeroDeck TroopDeck LifeformDeck 

Actors store

costumeDeckId  costumeSpriteIndex 

The Stage Manager assigns costumes.

Actors never choose costumes themselves.

Emotion Wheel

Major milestone.

Cosmic Beings now appear around the emotion wheel.

Pipeline:

Narrative  ↓  Role  ↓  Actor  ↓  Stage Manager  ↓  Costume Deck  ↓  Sprite  ↓  Emotion Wheel 

Currently

Four Actors appear around the wheel.

All four currently use the same silhouette (likely costume assignment bug).

Cosmic Beings

Important design decision.

Cosmic Beings have no locality.

Therefore they do NOT exist on

  • galaxy map
  • planet map
  • strategic map
  • tactical map

Instead they exist on the Emotion Wheel.

The Emotion Wheel is not a waiting room.

It is their coordinate system.

If they later manifest physically they can simultaneously have

Emotion Wheel sprite

Galaxy manifestation

Planet manifestation

Tactical manifestation

without changing Actor identity.

Roles

Current system

Narrative Cards create Roles directly.

Example

FIRST_SUPERHERO

creates

ROLE_FIRST_SUPERHERO

Future architecture

Narrative Cards  ↓  Role Cards  ↓  Actors 

This will make Roles reusable and data-driven.

Card Database

Currently contains

Narrative Cards

Occupation Cards

Future planned

Origin Cards

Power Cards

Technology Cards

Force Cards

Organization Cards

Form Cards

etc.

Time

Major design decision.

Time is event driven.

Not tick driven.

Concept

Resolve Event  ↓  Resolve next Event  ↓  Resolve next Event  ↓  If no valid events occur  quietTicks++  ↓  quietTicks exceeds threshold  ↓  Era Ends 

History advances because events happen.

Not because clocks tick.

UI

Created a blank retro comic-book UI layout.

Four main windows

Galaxy

Planet

Strategic

Tactical

Bottom

Timeline

Left

Emotion Wheel

Right

Cards / Logs

Plan is for each viewport to be expandable to fullscreen.

Using RenderTextures displayed inside RawImages.

Cameras

Each major layer will eventually have its own camera.

Galaxy Camera  Planet Camera  Strategic Camera  Tactical Camera 

Displayed through RawImages on Canvas.

Each window can expand to fullscreen.

Current Bug

Emotion Wheel works.

Only identical silhouettes appear.

Likely causes

  • costumeSpriteIndex always zero

or

  • presenter always requesting sprite zero.

Need to debug costume assignment.

Immediate Next Goals

  1. Fix costume sprite assignment so different silhouettes appear.
  2. Finish expandable camera windows.
  3. Give Cosmic Being icons Stage Palette colors.
  4. Create true Role Cards.
  5. Begin event-driven Era progression.

This session established the presentation architecture of the engine. The biggest milestone was getting the first Actors visually represented on the Emotion Wheel through the complete chain of Narrative → Role → Actor → Stage Manager → Costume Deck → UI. That confirms the core "Actors on a stage" design is working end to end.

(1 edit)

Productive day

=========================================================

SUPERHERO ENGINE

NEXT CODING MILESTONE

=========================================================


The Narrator is now officially the Game Master (GM).


The GM does NOT control Actors.


The GM manages the world.


=========================================================

GM RESPONSIBILITIES

=========================================================


- Observe the current world state.

- Determine if anything interesting should happen.

- Assign available Roles.

- Introduce Opportunities.

- Record all significant events in the Timeline.

- Keep the simulation moving.


The GM is NOT the author.


The GM facilitates emergent stories.


=========================================================

SIMULATION LOOP

=========================================================


Narrator (GM) Tick



Observe current Timeline



Observe current Actors



Observe current Roles



Determine what is missing



Create Opportunity (if needed)



Actors choose Verbs



Timeline records consequences



Repeat


=========================================================

ACTOR DATA MODEL

=========================================================


Every Actor is gradually becoming:


Actor


- Origin

- Form

- Occupation

- Personality

- Emotion

- Role

- Force (optional)

- Location

- Relationships

- Memories

- Verbs


=========================================================

UNIVERSAL OCCUPATIONS

=========================================================


Occupations are NOT cosmic.


They exist throughout every Era.


Current Occupation list:


- Wanderer

- Observer

- Guardian

- Maker

- Hunter

- Teacher

- Leader

- Caretaker

- Trader

- Artist


Occupations grant VERBS.


Example:


Maker


- Make

- Build

- Repair

- Improve


Observer


- Observe

- Study

- Remember

- Record


=========================================================

VERB SYSTEM

=========================================================


Forms grant physical verbs.


Occupations grant purpose verbs.


Roles grant narrative verbs.


Technology grants capability verbs.


Forces grant cosmic verbs.


Personality modifies verb scores.


Memories modify verb scores.


The Narrator simply scores available verbs and chooses thek8nda

best one for the current situation.


=========================================================

OBSERVATION

=========================================================


Everything exists in the deterministic Seeds.


The Narrator does NOT invent reality.


Observation instantiates Potential into Active Reality.


Examples:


Observe



Galaxy appears


Observe



Planet appears


Observe



Life appears


Observe



Technology appears


The observed object was always present in the Seed.


Observation simply brings it into the simulation.


=========================================================

COSMIC BEINGS

=========================================================


Cosmic Beings are simply Actors assigned:


- Origin

- Form

- Occupation

- Personality

- Role = Cosmic Being


Later they may bond with Forces.


=========================================================

FORCES

=========================================================


Forces are universal domains, not alignments.


The current philosophy is that each Force represents an

entire domain.


Example:


Life includes:


- Birth

- Growth

- Healing

- Evolution

- Aging

- Death

- Decay

- Rebirth


Death is not a separate Force.


However, rare universes may generate a Death

Personification as one possible face of the Life Force.


=========================================================

NEXT CODING GOAL

=========================================================


1. Create Occupation Cards.


2. Assign Occupations to the first Cosmic Beings.


3. Add Narrator Tick() loop.


4. Narrator periodically examines the world.


5. Narrator creates Opportunities when the universe becomes

   quiet.


6. Actors respond using available Verbs.


7. Timeline records the results.


The goal is to transition from "Generate Universe" to

"Watch History Happen."

=========================================================

Current Superhero Engine Progress

Today I started a completely fresh Unity scene to rebuild the engine from the ground up around a data-driven architecture instead of hard-coded gameplay.

Scene Hierarchy

  • GameRoot
  • Narrator
  • TimelineManager
  • CardDatabase
  • ActorManager
  • UniverseUI

Working Systems

GameRoot

  • Holds the master seeds.
  • Currently reading:
    • Universe Seed
    • History Seed
    • Actor Seed
    • Organization Seed
  • Successfully prints the seeds to the Console.

Card System

  • Created a base Card class.
  • Created NarrativeCard derived from Card.
  • Added an Era enum.
  • CardDatabase now owns a list of NarrativeCards.
  • Two test cards currently exist:
    • Universe Begins
    • First Superhero
  • The database successfully loads and prints the cards.

Narrator

  • Reads every NarrativeCard from the CardDatabase.
  • Does not generate heroes directly.
  • Currently demonstrates the generation pipeline by reading the cards and sending them toward the timeline.

TimelineManager

  • Added a TimelineManager.
  • Stores TimelineEvents.
  • Supports:
    • AddEvent()
    • RemoveEvent()
    • FindEvent()
    • HasEvent()
    • SortByYear()
    • PrintTimeline()
  • Timeline is intended to become the permanent historical record of the universe.

Important Architecture Decision

The game is now officially moving toward:

GameRoot

CardDatabase

Narrator

Timeline

RoleManager

ActorManager

History creates Roles.

Roles are filled by Actors.

Actors do not create history.

This is the biggest architectural decision made today.

Design Philosophy

The game should never intentionally generate Marvel or DC characters.

Instead, it generates universes from deterministic seeds.

Classic superhero archetypes emerge naturally from simulation rather than templates.

For example, instead of "Wolverine claws," the game has a generic Blade body modification. Blades can be made from any element or material:

  • Bone
  • Organic tissue
  • Crystal
  • Steel
  • Plasma
  • Living metal
  • Magical materials
  • Alien substances
  • Procedurally generated elements

The engine builds powers from systems instead of named characters.

Likewise, superhero tropes (flying alien savior, billionaire vigilante, speedster, thunder god, etc.) are not required to exist. They become emergent possibilities hidden somewhere among millions of generated universes.

Current Goal

Continue replacing hard-coded game logic with deterministic, card-driven simulation.

Eventually the Narrator should simply read Narrative Cards, check prerequisites, create Roles, write Timeline events, and allow Actors to naturally fill those Roles.

(2 edits)

# Devlog #1 — Week One



## Foundations of an Empire


The first week of development has been focused almost entirely on building the core architecture for the game world — not flashy gameplay yet, but the systems that everything else will eventually stand on.


A surprising amount is already working.


---


# The Strategic Planet Map


The biggest visual milestone so far is the Strategic Battle Map.


It’s beginning to actually *feel* like a real planetary strategy layer now.


The prototype currently supports:


* procedural planetary hex generation

* terrain assignment

* faction ownership

* ecology placement

* troop occupation

* city and modifier support

* scalable zoom levels


The map is still early, but it’s already looking pretty good.


One of the biggest breakthroughs this week was getting the scale logic working correctly so the world can support multiple gameplay layers:


* galaxy scale

* strategic planetary scale

* tactical battle maps

* interior/palace maps


The long-term goal is seamless movement between these layers.


---


# MetaMaster Generation Pipeline


A major portion of the week was spent creating the generation order system.


The new **MetaMaster** script now controls the order in which:


* worlds

* factions

* ecology

* troops

* modifiers

* future systems


are generated.


This solved a huge number of startup and dependency problems that were causing systems to initialize in the wrong order.


The project finally has a real backbone.


---


# Factions Are Working Again


After some catastrophic breakage during ownership refactoring, the faction system is now stable again.


Factions currently:


* generate correctly

* claim territory

* receive headquarters

* color owned regions

* maintain references to owned worlds and hexes


# Ecology System — “ENKI”


A true living simulation layer is now operational.


The **ENKI** ecology generator:


* scans planetary hexes

* determines dominant lifeforms

* places ecology chits

* stores DNA values

* displays ecology information visually


The DNA display system was also improved this week so the data is much more readable on the map.


This is the first step toward planets that feel alive rather than decorative.


---


# Troops and Chits


Troop generation now exists at the data level.


Troops currently:


* belong to factions

* store DNA values

* occupy hexes

* exist independently from their visuals


That separation between simulation and graphics is extremely important for long-term scalability.


The visual “chit” system is also beginning to take shape.


Current visual language:


* square chits = military units

* round chits = heroes

* ecology chits = alien life

* faction colors = ownership and allegiance


Silhouettes and stacked units are next.


---


# Seed System — “Banduduu”


The game’s universe-generation framework is now operational.


The **Banduduu** system currently supports:


* configurable seeds

* faction counts

* world counts

* runtime generation settings

* generation safety limits


The eventual goal is for nearly every aspect of the universe to be driven by seed values.


---


# Zoom and Scale Architecture


One of the most important conceptual breakthroughs this week was defining the game’s scale structure.


The current design supports:


| Layer | Purpose |

| -------------------- | --------------------------------- |

| Galaxy | abstract political/economic layer |

| Planet Strategic Map | armies, factions, territory |

| Tactical Battle Map | combat encounters |

| Interior Maps | palaces, fortresses, infiltration |


This architecture is critical because the game is attempting to merge:


* grand strategy

* tactical combat

* simulation

* roleplaying

* political maneuvering


# Visual Direction


The game’s visual identity is also becoming clearer. Theres no art for a reason, i dont want to be distracted by it and I want to see how small i can make the demo


Current inspirations include:


* holographic strategy displays

* neon hex overlays

* bronze-age imperial aesthetics

* classic boardgame readability

> an ancient imperial relic mixed with a futuristic war simulator.


---