Skip to content

Repository files navigation

ColonySim

Tech: C++17, GDExtension, Godot 4.5, CMake, OpenMP, multithreading

Game View 1 Game View 2 Game View 3 Game View 4 Game View 5

This project was created to explore the Godot engine after spending significant time tinkering with with C++ and SFML. Rather than aiming to become a finished game, the project serves as a sandbox for experimenting with engine architecture, gameplay systems, and workflows that differ from lower-level game development.

As an architectural challenge, the core simulation mechanics including chunk generation, AI state machines, and inventory systems—were implemented entirely in C++ via GDExtension rather than GDScript. This choice enforced a strict data-driven approach, decoupling the core simulation logic from the engine and leveraging Godot primarily as a rendering and user interface pipeline.

The repository is maintained as a showcase and learning record rather than a complete game. It shows my exploration of Godot and the transition from lower-level programming with C++ and SFML to engine-based development.

Features

  • Perlin noise for terrain generation
  • Infinite world is possible
  • Save system serializes all data and saves to a file
  • Proxy system continues to simulate off-screen entities
  • Simulation speed is separate from game FPS, like Dwarf Fortress
  • Job system for entities (MoveTo, Harvest)
  • Inventory system

Controls

  • E: Zoom out
  • Q: Zoom in
  • W: Move up
  • A: Move left
  • S: Move down
  • D: Move right
  • P: Pause/Unpause

Installation

Run From Source

If you want to view or modify the project structure inside the Godot Engine:

  1. Download and install Godot Engine 4.x (Standard Version) from the official website.
  2. Clone this repository:
    git clone https://github.com/amJohnnyma/ColonySim.git
    
    cd ColonySim/extensions/world   
    
    git submodule update --init --recursive   # if godot-cpp is a submodule   
    
    cd godot-cpp && scons platform=linux target=editor   
    
    cd ../build && cmake .. && cmake --build .
    
    
    
    
    
    
    
    
    

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages