Post news Report RSS Update on the game - Nearing Alpha Phase

I've got an exciting announcement to make. The past time, me and zeroseconds have been coding approximately 6 to 9 hours each day (making my average workday be 15 hours long). And due to this investment, I have some exciting news, and something to show you!

Posted by on

Hey all,

I've got an exciting announcement to make. The past time, me and zeroseconds have been coding approximately 6 to 9 hours each day (making my average workday be 15 hours long). And due to this investment, I have some exciting news, and something to show you!

First off, we're planning on a release somewhere within the next month with setbacks calculated into that. If we don't encounter setbacks, the game will go into alphafunding this month!

What will this game contain? The first alpha will be a basic testcase of phase one gameplay. Phase one gameplay occurs within your own solar system, where you have to explore objects, mine resources and eventually become self-sufficiënt in space. This is the first phase in gameplay. The first public alpha which is going to be released will be very basic in both gameplay and graphics. We've chosen a windows forms application, in order to be able to rapidly prototype stuff. Planning is that by the end of the alpha, we'll be going to work on two things: multiplayer and proper graphics.

The beta will contain the interstellar gameplay, being phase 2 of the gameplay. This gameplay is the gameplay as described on the game's profile. So far this. Next thing I wanted to do is to show you some of the code we've written.

public class Geosphere
    {
        #region fields

        public Dictionary<atmospheregases, double> atmospherecontent { private set; get; }
        public double temperature { private set; get; }
        public double size { private set; get; }
        public double gravity { private set; get; }
        public double escapevelocity { private set; get; }
        public double solarradiation {private set; get;}
        public double pressure { private set; get; }
        

        #endregion

        #region constructors

        public Geosphere(Dictionary<atmospheregases, double> atmospherecontent, double size, double solarradiation)
        {
            this.atmospherecontent = atmospherecontent;
            this.size = size;
            this.solarradiation = solarradiation;
            this.pressure = 0;

            foreach (atmospheregases gas in atmospherecontent.Keys)
            {
                pressure += atmospherecontent[gas];

            }
            double greenhousefactor = 1 + (atmospherecontent[atmospheregases.greenhousegas] * 0.01) + (atmospherecontent[atmospheregases.carbondioxide] * 0.03) + (atmospherecontent[atmospheregases.methane] * 0.1) - (atmospherecontent[atmospheregases.antigreenhousegas] * 0.01);
            double temperaturefactor = (pressure * solarradiation * greenhousefactor);
            temperature = (270 * temperaturefactor) + 3;
            gravity = size / 600;

            escapevelocity = Math.Sqrt(2000 * gravity * size);
        }

        #endregion

        #region methods

        #endregion


    }

This is the preliminary code which will handle the atmosphere and things like that. the fields speak for themselves:

  • atmospherecontent lists the gases in the atmosphere, together with their pressure in atm.
  • temperature gives the temperature in Kelvin.
  • Size is the radius of the planet or object, in kilometers.
  • Gravity is the gravity on the surface, in m/s².
  • escapevelocity is the speed needed to get off the planet, in m/s.
  • solarradiation is the planet's relative radiation, compared to Earth. 1 is Earth radiation.
  • pressure is the total pressure of the gases combined.

There are 2 main spheres of influence here:

  1. Atmospherecontent influences pressure. Combine that with solarradiation, and we get the temperature.
  2. Size influences gravity, and both of them together influence escapevelocity.

It is a little more complicated than that, but let's run through the code which generates the stats. We'll start with the stats for the atmosphere.

this.atmospherecontent = atmospherecontent;
            this.solarradiation = solarradiation;
            this.pressure = 0;

            foreach (atmospheregases gas in atmospherecontent.Keys)
            {
                pressure += atmospherecontent[gas];

            }
            double greenhousefactor = 1 + (atmospherecontent[atmospheregases.greenhousegas] * 0.01) + (atmospherecontent[atmospheregases.carbondioxide] * 0.03) + (atmospherecontent[atmospheregases.methane] * 0.1) - (atmospherecontent[atmospheregases.antigreenhousegas] * 0.01);
            double temperaturefactor = (pressure * solarradiation * greenhousefactor);
            temperature = (270 * temperaturefactor) + 3;

What this does is the following:

  1. It defines the basic parameters, like atmospherecontent, solarradiation and pressure.
  2. It calculates a greenhouse factor, which will increase of decrease the temperature.
  3. It combines the pressure, solarradiation and greenhousefactor, in order to get a temperature modifier.
  4. If the temperature modifier is 1, we'll get a temperature around 0C out of it. This is due to Earth having greenhouse gases in its atmosphere, causing us to have a slightly higher temperature than we would actually have without those greenhouse gases.

Lets step through the code for calculating gravity and escape velocity:

            this.size = size;

            gravity = size / 600;

            escapevelocity = Math.Sqrt(2000 * gravity * size);

This does the following:

  1. It defines the size of the planet.
  2. It calculates the gravity. This is not entirely correct by the way, but it offers a value close to reality.
  3. It calculates the escape velocity. This is an actual scientific formula, which goes as this: escapevelocity = Sqrt(2 * gravity * radius in meters). Since we use kilometers for size, we multiply by an extra factor of 1000.

These show some code. I hope you like the news, and if you want to give feedback. Feel free to!

If you have further questions about it, feel free to ask!We hope to have a playable alpha release soon!

Post comment Comments
ZeroSeconds
ZeroSeconds - - 15 comments

Nice!

Reply Good karma Bad karma+1 vote
Micknator
Micknator - - 2 comments

Can't wait to see the game in action :)

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: