over 3 years ago - gameragame - Direct link
How's going, engineers!

Good day engineers! First of all, as you know we are a Chinese team, and we just celebrated our new year – so we want to wish you all a wonderful Year of the Ox!

A meme is popular among the Chinese communities saying that "I already forget what my job was in 2020 after the Chinese New Years holidays." Don't worry, we didn't forget! We remember and care about everything you care about - the roadmap, localizations, etc. While doing some sorting on our work, we are bringing a new development log here for you!

Wish our engineers a good start and best luck in 2021!

(Previews on Dev log #1 and Dev Log #2 here!)

Dev Log #3: Setting up the scale of the universe

That said, we're back to our dev blogs, and today we want to discuss a very interesting topic: the scale of the universe of the game, and how we came up with it. Just to be clear, the figures and explanations you’re about to read are a bit simplified for the sake of clarity – going through every fine detail would be just too long!

In case you're new to Dyson Sphere Program, in this game you play as a space engineer of the international agency COSMO, tasked with building a Dyson Sphere. This megastructure was first proposed by physicist Freeman Dyson in the 60s: a massive device that would wrap a whole star, capturing all its energy output. How big would that be, you say? In our Solar System, its diameter would reach 200 million kilometers. In the Kardashev scale (which classifies civilizations by its energy production capabilities), that's what would take to become a Scale 2 civ; as a comparison, Humanity is now at level 0.73.


Concept

Back when we were at the design table, deciding our vision for the game, we came up the core gameplay loop we wanted to achieve. It starts from the player's "micro-perspective": controlling a single mecha, doing everything by yourselves. A sandbox universe that should be fun to explore and full of surprises. Designing automation systems as achievable milestones that encourage players to keep going. Managing resources to develop many planet-based factories and connecting them with supply chains. And finally, reaching the macro-structure of the Dyson Sphere, which should be magnificent and spectacular to behold!


Gameplay Loop

A keystone of this concept is that the universe should be massive – if not in real scale (which for obvious reasons is next to impossible, what with it being infinite and all), at least as near to it as we could manage. But that posed a few problems of its own.

1. Too big numbers!

As we mentioned, a "real-world" Dyson Sphere would be 200 times the diameter of the Sun (which in turn is 100 times that of the Earth). Suppose we make one solar cell to be one square kilometer big. To build a Dyson Sphere, we will need 125,663,600,000,000,000 (125.6 quadrillion) units -- which was obviously impossible to implement and, what's equally important, wouldn't be fun at all. Even something close to the real proportions would be too much.

2. Distances are too big: celestial bodies in the real scale are too far away, and even giant stars are too small to see

In our minds, players would build interstellar logistics to flow the resources among various galaxies in the universe, and would get to watch a beautiful sky full of busy spaceships transporting goods here and there, admiring their own creation… Sounds wonderful, right? But had we make it as close to reality as possible, in Unity 3D it would look like this:


A hypothetical space fleet battling enemy ships would look like this:


…and this wouldn't be much fun, wouldn't it?

3- Sizes are too big

A real-sized Dyson Sphere was out of the question as we've seen, but even one as big as a real planet would be enough to test the limits of your CPU – maybe even before you finish building it whole. Even the size of the planets in a game such as No Man's Sky would be too large for the Dyson Sphere. And talking about planets, if planets were as big as the real ones, they would be too big for you to walk, explore and mine. Again, with sizes and distances this long, implementing an interstellar logistic network would be impossible.

Designing a new scale

Therefore, we needed to put real scales aside and set new cosmic scales and dimensions! But wait – even new fundamental constants? Yes, that's what the CenterBrain thinks! So, let's start with a small planet. We want players to see a nearby planet as a planet, not for it to feel as big a tiny star.



To achieve this feeling, we found out that the distance between these two planets should be from 20 to 80 times the diameter of the planet.

We are going to create a spectacular view of the whole planet!


Gameplay Screenshot

This ratio proportion between the size of each planet and the distance between planets affects directly how they look – so it was vital to get it right. We also had to consider some more issues when setting up the ratios:
  • How many facilities can be built on the surface of the planet?
  • How much time would it take for a player to fill its whole surface with facilities?
  • Can the screen rendering (GPU) and off-screen logic (CPU) of these facilities run smoothly?
At the same time, we needed to make the third-person perspective to really make players feel like wearing Icarus' shoes; but when the players are standing on the ground, their micro-perspective should be in line with the real proportions. After all, we were not developing a chess game – we couldn't stand on the planet alone and look as big as mountains!


Players control Icarus to collect resources. Blue sky, grass, endless factory...

To achieve this feeling, the basic unit of length on the game's planets had to be meters instead of kilometers. After several iterations, we finally set Icarus's height as 3m, vegetation height as 1m ~ 6m, and building height as 2m ~ 30m.



This worked great not just to make the third-person perspective work, but also so the overhead angle facilitates the construction of buildings.



Now we could answer some of the questions we mentioned:

  • You can fit from 20,000 to 100,000 facilities on the surface of a planet.
  • It would take from 50 to 100 hours to fulfill the whole planet with useful facilities,.
  • An average PC could run this smoothly.

But you don't really need to fill a whole planet, because our journey is actually to the sea of stars -- we can use interstellar logistics to connect many planets in the galaxy!


Interstellar Logistic

Players can feel the vastness of the universe and see the star they are travelling to becoming bigger and bigger in their sight.


About to arrive a new galaxy

The parameter settings are as follows:

Planet diameter: 1D = 400m
Giant planet diameter: 4D = 1600m
Star radius: 1R ⊙ = 1600m
Radius of red giant: about 25 R ⊙ about 40000 m (HUGE!)
Astronomical unit: 1AU = 40000 M
Radius of planetary system: 1AU ~ 10au (according to the last development log)
The radius of Dyson sphere is 0.2au ~ 1AU
Light year: 1yr = 60au


Dyson swarm in process

That's all for today! As you can see, we had to redefine the scale and proportions of the universe for Dyson Sphere Program to work. It was a delicate balance: it had to be big enough to create the sense of wonder that was our goal, but also manageable not just for you as a player, but also for your computer. It was a challenging task, but we think we got it fairly right – and we can't express how happy we are when we see you exploring the universe and marveling at its beauty. Good luck out there, engineers, and talk to you soon. Stay safe!


Thank you for reading. See you at Dev's Log #4!