A C++ resource management puzzle developed with Raylib.
This project was developed by a team of 4 students as part of the Master's in Game Development program. It is a time-based strategy game where efficiency is key.
Build the Final Energy Source as fast as possible.
Your score is your time. You are racing against the clock to accumulate the massive amount of resources required for the final structure.
Warning: Softlocks are possible. Every move counts. Since resources are limited by time and grid capacity, poor planning can lead to a "dead end" where you lack the resources to build the infrastructure needed to proceed, forcing a restart.
The game provides tooltips for base costs and outputs, but the environmental rules and optimization strategies are for you to discover.
There are two distinct types of resource behaviors you must manage:
- Grid Pool (Energy & Workers): These have a Hard Cap. You cannot have negative Energy or Workers. You must build infrastructure (Generators/Houses) to expand these pools before constructing buildings that consume them.
- Stockpile (Materials & Oil): These have Infinite Capacity. They accumulate over time based on your production rate. The goal is to maximize the "flow rate" (resources per tick).
2. Adjacency Bonuses (The "Hidden" Logic)
Placement matters. Buildings interact with their neighbors to provide buffs (or debuffs). Mastering this is the only way to win quickly.
-
Houses (Workforce):
-
Cluster them: Houses gain efficiency (+Capacity) when placed next to other Houses.
-
Avoid Pollution: Houses lose efficiency (-Capacity) if placed next to industrial buildings (Generators, Extractors, Mines). Keep your residential zones separate!
-
Extractors (Oil):
-
Power Hungry: Extractors significantly boost production (+Flow Rate) when placed directly next to Generators.
-
Mines (Materials):
-
Versatile: Mines increase production (+Flow Rate) when placed next to Houses or Generators.
This project uses CMake (3.28+) and C++20.
- C++ Compiler supporting C++20 (MSVC, GCC, or Clang)
- CMake 3.28 or higher
- Internet connection (to fetch dependencies)
The project relies on the following libraries, handled automatically via CMake FetchContent:
- Raylib (v5.5): Core framework for graphics and window management.
- mINI (v0.9.18): For parsing game configuration and building stats.
This project is licensed under the MIT License.