Code Monkey home page Code Monkey logo

stella-dei's Introduction

Stella Dei

Stella Dei

Stella Dei is a sandbox game about creating planet and influencing it with your unlockable divine abilities in order to create and maintain life, civilizations, and maybe help them expand beyond.

Careful. At some point you’re just playing god.

It's also carefully inspired by SimEarth.


Compiling

Dependencies

The game requires:

Building from source

$ git clone https://github.com/PixelGuys/Stella-Dei && Stella-Dei
$ zig build

And now you've got an executable located inside zig-out/bin/. If you want to directly run the game, just do:

$ zig build run

To distribute an executable for Windows, use:

$ zig build -Dtarget=native-windows -Dcpu=x86_64_v2 -Doptimize=ReleaseSafe

stella-dei's People

Contributors

integratedquantum avatar zenith391 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

stella-dei's Issues

Actually agree with physics

Stella Dei currently has many mechanics, none of which use any real physics unit, thus those should be converted:

  • Planet radius (preferably express it in km, currently most values are expressed relative to it, with 1 being the radius of the planet)
  • Temperature (already expressed in Kelvin)
  • Physically accurate temperature behaviour
    • Conduction
    • Thermal radiation
    • Solar illumination
    • Any other non-negligible phenomena affecting temperature in a way that a basic simulation (liquid water + poles on north and south) can't work without that
  • Water elevation (preferably express it in km)
  • Physically accurate water behaviour (that is, as a flat layer like it is currently, as particle simulation would take too much computing resources and be mostly useless)
  • Decide of what materials the planet is made of, in which layers and in which quantities

Once all of those are done, progress on other features may continue.

Add meteorites

They will create craters and add resources (sulfur and water vapor in the atmosphere)
If the planet has a thick enough atmosphere, meteorites won't reach the surface

Atmosphere with varied gases

Eventually, an atmosphere should be added which would interact with #1 by having organisms use CO2 to produce O2 and have reactions with other gases (deadly gases, etc.)
The following gases should be implemented (more to come): Oxygen (O2), Carbon Dioxyde (CO2), Water Vapor (H2O)

  • Implement gases with pressure represented as N extruded spheres at different levels of altitude (N is to be determined)
  • Add Oxygen
  • Add Carbon Dioxyde
  • Add Water Vapor
  • Add an optional visualisation of those gases pressure (similar to the way we can see the surface's temperature by pressing middle mouse)
  • Clouds?

Add life

Add basic life forms like prokaryotes and eukaryotes that would proliferate in the water.
For that we need to:

  • Think of a way to visualize single-celled organisms that wouldn't cause you nightmares when there are too many of those
  • Think of a way for life to start (meteor?)
  • Implement basic nutriments which will have different densities in the water
  • Add cyanobacterias which consume CO2 + sunlight and make O2

Switch Planet.upload to geometry shader

When using an icosphere with 7 or 8 subdivisions, the main bottleneck in the render thread is Planet.upload, due to the nature of the method, it could easily be moved to a geometry shader which would relieve the CPU and probably make the process faster.

Add an history button

It would show a semi-detailled history of life and geology on the planet. With a book where every important event would correspond to one line.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.