-
-
GIF
Nice blue, almost like home.
-
You!
-
Dangerous planet, do not stay out for too long...
-
Your home!
-
Landing...
-
...success!
-
Night side, turn on your lantern.
-
Water is nice. What about a world of it?
-
...
-
Hot, do NOT swim here.
-
Cold, do NOT swim here either.
-
Mini-game when loading takes long! So u don't get bored.
-
...Same as before...
-
Either u like the mini-game or I need to optimize the game more if it takes too long.
-
App Icon!
Inspiration
I have always had a deep passion for space exploration games, especially the thrill of touching down and surviving on alien worlds no one has ever charted or imagined before. But in the mobile gaming landscape, that wonder is almost always broken. Titles either demand flagship hardware that overheats budget phones, or lock the experience behind aggressive paywalls, energy meters, and predatory microtransactions.
CIVITUS was born from a personal ambition, to combine what I love most from games like SA2138 and Waste of Space into something I had never dared attempt before. I set out to build a full 3D procedural space survival game for Android with living biomes, procedural terrain, strange flora, reactive alien fauna, and distinct planetary ecosystems where every world and star system feels genuinely unique.
Crucially, it had to run on everyday low-end hardware without loading screens or fake backdrops. Integrating RevenueCat became the cornerstone of this vision: proving that an ambitious mobile 3D game can deliver real scientific grounding, procedural wonder, and an uncompromised survival loop through an ethical, transparent purchasing architecture that treats players with respect.
What It Does
The player controls an astronaut surviving on procedural spherical planets with a fixed diorama radius of (R = 160\text{m}).
Key gameplay systems:
- Radial Gravity: Omnidirectional physics anchored to planetary mass centers, eliminating gimbal lock during global traversal.
- Barometric Atmosphere: Density calculated via the physical scale-height formula (P(h) = P_0 \cdot e^{-h/H}), dynamically driving aerodynamic drag, engine ISP, wind, and sky Rayleigh extinction.
- Dynamic Ecosystems: 21 procedural creature archetypes (terrestrial, aquatic, aerial) with physical interactions (lifting, carrying, and aquatic rescue mechanics).
- Spacecraft & Life Support: Modular interior modules (pilot seat, hyperdrive core, oxygen generator, gravity gimbal, storage bin, crafting workbench) requiring salvaged components for orbital departure.
Monetization Architecture (RevenueCat):
- Entitlement
no_ads($0.99 USD): Permanently suppresses all interstitial transmissions. - Entitlement
planet_editor($1.99 USD): Unlocks sandbox generation sliders (noise scale, sea level thresholds, atmospheric composition). - Entitlement
full_game($2.99 USD): Founder license unlocking all sandbox tools and advanced planetary sectors. - In-Game Economy: Luna Coins earned through mineral salvage or optional 3-second diegetic radio transmissions (rewarded callbacks).
How We Built It
- Engine: Godot 4.7.2 Stable using GDScript and custom GLSL PBR shaders.
- Procedural Planetary Mesh: Cubed-sphere topology generating 12,288 continuous triangles with multi-octave simplex elevation noise, coastal thresholds, and oceanic depressions ((-14\text{m}) to (+24\text{m})).
- Normal & Wave Calculation: Analytical wave derivatives and view-space normal perturbation to ensure camera-angle invariant sunlight reflection on fluid surfaces.
- RevenueCat SDK Wrapper: A custom
RevenueCatManagersingleton abstracting Google Play Billing and RevenueCat REST endpoints, paired with an offline state machine for deterministic local testing. - Automated Testing: Developed strictly under Test-Driven Development (TDD). Over 640 headless assertions validate movement math, atmospheric decay, craft recipes, and entitlement unlock states without requiring graphical display servers.
Technical Challenges
- Cubed-Sphere Seams: Normalizing cube faces to a sphere created vertex stretching and tangent discontinuities at the corners. Resolved by applying elliptical projection and continuous 3D noise sampling.
- View-Space Normal Lighting: Initial ocean and terrain shaders had normal vectors sliding across camera angles. Fixed by transforming perturbed surface normals directly into view space before lighting passes.
- Offline Entitlement Resilience: Implementing reliable local caching so players venturing outside network coverage retain their unlocked entitlements without interruption.
Metrics & Accomplishments
- 60 FPS performance maintained on baseline hardware targets (ARMv7 32-bit architecture).
- Zero-freeze asynchronous chunk generation during suborbital entry.
- 640+ automated headless test assertions executing in under 1.2 seconds with 0 failures.
- Non-coercive freemium design: full base game completion without paywalls.
What We Learned
Architecting a clean bridge between an open-source game engine (Godot GDScript) and the RevenueCat ecosystem, decoupling game logic from store verification through event-driven entitlement listeners.
What Is Next
- Gas giants with physical ring navigation and atmospheric skimming.
- Surface base construction modules.
- Additional cosmetic spacesuit configurations integrated into RevenueCat offerings.
Log in or sign up for Devpost to join the conversation.