1. Dyson Sphere Program
  2. News

Dyson Sphere Program News

Dyson Sphere Program Patch Notes 0.6.16.5780

Happy new year to all the Dyson Sphere Program engineers!

The Chinese New Year holidays has gone, and the first update log for 2021 is already here!
For the Roadmap, we are doing final sorting and adjusting, and it will be updated as soon as possible.
Happy Dyson Sphere Program 2021!

[Version 0.6.16.5780]

Features:
  • Add new soundFX for labs

Changes:
  • Optimized UI of smelters/assemblers. The mecha inventory will no longer display if no recipe is selected.
  • Reduce the soundFX volume of smelter and optimize its attenuation range.

Bugfix:
  • Fix a thread safety issue in random planet generation algorithms.
  • Fix a rendering glitch when building a massive number of labs. (more than 2,048)


Thank you for your continuing support! You can send your feedback in Discord and Google Form! See you next time!

How the Dyson Sphere Program Universe was Created? Dev Log#2

Hi, engineers!

Attention, this is not an update log - We Are Still On Holidays! But we never forget our dearest engineers, so we would like to present the Dev Log #2 for you as a holiday book. Hope this log can bring you a new perspective of the Dyson Sphere Program.

(Click here to read Dev Log #1)


[h2]Dev’s Log 02 - Create A Universe![/h2]


Development Dyson Sphere Program has been a long journey. Almost all of our knowledge and technology have been donated to this game, and there're always new new challenges wait for us. This time I want to talk a little bit about how Dyson Sphere Universe was designed and generated.

As you may all recall, Dyson sphere is a concept proposed by Freeman Dyson around 1960. This giant structure surrounds a star have an essential purpose for the future of the Human race: being able to gather all its energy output. Dyson Sphere Program is a management simulation game. But, what exactly does it simulate? And what will you have to manage?

Building a Dyson Sphere will require lots of resources. It will need such a high number that the COSMO agency will send the mecha Icarus to explore the universe. Why? Because resources from just one planet won’t be enough to build this structure. Icarus will need to find resources, build facilities to process raw materials and, finally, operate an automated interstellar manufacturing base.



Our idea to accomplish this last point was to let players to build interstellar supply chains to connect factories from different planets, thus creating a planetary industrial empire. But, first, we needed to know the framework in which players would operate. How can you build an interstellar empire if you don’t know how your universe works?

How we designed the Universe of Dyson Sphere Program

The first question that came to our minds was about size. Obviously we couldn’t replicate the real one —considering that the Universe is infinite— so we decide that our Universe would look like a star cluster, a region filled with stars, each one of them having their own set of planets and satellites orbiting around. A smaller one than the real, but enhance the gameplay.

pic from Wikipedia

The next step was making sure that every universe was diverse enough. As you know, stars come in many flavors: there are red-dwarves, blue giants. Each one has its own characteristics, so we wanted to be sure that we got everything right from a scientific point of view.

We were able to work it out thanks to eh Hertzsprung-Russell diagram, proposed back in the day by two astronomers, Ejnar Hertzsprung, from Denmark, and Henry Norris Russell, from the United States. This diagram shows a relationship between the luminosity of a star and its spectral type: the rule of thumb says that bigger stars are blue while smaller ones are red, while yellow ones, like the sun, sit in the middle of this table. If you take a look at the diagram, you might see that it shows a diagonal path from the top left corner to the bottom right. That’s where 80% or 90% of known stars are.

pic from Wikipedia

We weren’t able to simulate the exact masses and physical laws of stars, considering that we didn’t want that to interfere with gameplay. In order to set the mass of stars, we have made some assumptions: the logarithm of the mass of stars is approximately normal distribution, and the mass of type a stars is taken as the average value of normal distribution - Red and yellow stars on the left and blue and purple stars on the right. The implementation logic of the whole setting is shown in the figure below, the mass of each star was set according this logical deduction. Of course, we also made some corrections to the mass of stars for gameplays and science point of view.



Their nature is so complex that we haven’t been able to replicate them in the game for the sake of gameplay. So, in the end, we focused on two aspects: luminosity and temperature. Those two are heavily dependent on the mass of a star, so we ended up using the mass as our framework for designing stars.



That’s how we came up with a table that let us classify the stars: O (blue), B (blue and white), a (white), f (yellow-white), G (yellow), K (orange), and m (red). Considering that masses are linked to colors, O stars will be the largest ones whereas m are the smallest. Besides, as we said in the prior paragraph, luminosity and temperature are also linked so O stars will be brighter and hotter while m stars while be darker and cooler.



Having this table was very useful but it also sparked another issue: if we represent a Universe following this table, the end result would be an artificial universe, considering that the color palette wouldn’t look natural. Thanks to Unity3D, we were able to adjust settings such as the color of the star, the color of its halo, illumination or sunsets. That allowed us to have a palette of hundreds of colors, giving Dyson Sphere Program’s universe a much more natural look.



Designing planets

Once we were happy with the generation of stars, we started working on planets. Considering that each star had its own features, we tried to stick to how it would affect planets on the game. For example, most of the planets orbiting an O-type star will be lava planets, because of the star’s high temperature and mass. What about m-type stars? They will usually have frozen planets around them.

But, first of all, we had to decide how many celestial bodies would be suitable in a star system. We ended up setting a number that is always between 1 and 6 planets, both solid and gas planets. The gas ones have, at least, one satellite around them and the number of satellites depends on how many planets are on its solar system.

We designed up to 16 different orbits for every solar system, and planets fall randomly on one of those orbits. As it happens in real life, each star has an habitable zone, that area neither too close nor too away from a star where life may appear. So planets that are orbiting in that area are more likely to have water. The ones really close to the star are more likely to be lava planets while the ones too far away will most likely be frozen. If the planet's orbit is none of the above, then it will be a desert planet.




Generating galaxies and names

So, we had a way to create star systems and fill them with planets. What next? First we had to create a system that procedurally created a Universe so there will never be two exact experiences. For that, we used the Perlin noise algorithm, a powerful tool to generate things like textures or terrain procedurally. As you can see below, the colored areas show where there’s a bigger star density while the lighter ones are more sparse.



Finally, we needed a system to name our stars. And let me tell you, at the beginning it was a pain in the ass but we ended up having a blast while finding a solution. We came with a randomly name generator that, thanks to an algorithm, creates names using the roman alphabet. It took us a while to tune it so the names look more like real names, but now our Universe has this look.



Modeling: The Tree

We made new models for trees and stones. Much prettier than the old models.



We used an interesting method to make the animation of trees - Paint different colors on each vertex of the leaves, and then use the shader to change the RGB into XYZ of the direction of motion.

v.vertex.xyz += (v.color.rgb - 0.5) * (sin(time + 0.65) * cos((2 + v.color.r) * time - 0.5) * cos(3 * time + 0.5) + sin(20 * time) * 0.05) * _Anim;

// The principle is to use the superposition of several sine waves to simulate the swing of leaves



In addition, we use the shader to change the normal of the leaves. It made the leaves look hairy as a whole.
float3 std = normalize(v.vertex.xyz);
v.normal.xyz = lerp(v.normal.xyz, std, _LerpNormal);
v.normal = normalize(v.normal);

//The principle is to point the vertex normal of the leaf to the outside


Thank you Mr. Cowboy! (Just an extra...:p)



There are still many deficiencies in the setting of the universe simulation model. We will try our best to improve it, no matter on the perspective on gameplay or the point of science. You know what, I find that there are a lot of contents we can make for the game. I'll share it with you next time~

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

Dyson Sphere Program Patch Notes 0.6.16.5775

Hi engineers,

We know we said yesterday would be the last update, but... here we go again!! We simply can't help it when we discover something to improve, we do it to bring you better gameplay experience. Many of your suggestions have been incorporated into our plan. We intend to work rigorously to optimize and make adjustments to them one after another until we are satisfied. Of course, it still takes a lot of time before we can launch new functions and content. Let's keep looking forward to it together!

This is definitely the last update before the holidays!


Happy 2021!

[Version 0.6.16.5775]
Change:
  • Canceled the restriction on keybinding of zoom in/out camera.
  • Canceled the restriction on keybinding of move forward and backward.
  • Optimized the operation experience of keybinding. Now you can cancel the key-binding response status by click left mouse button or click the blank space.
  • Optimized the mouse picking detection of the conveyor belt and sorter.
  • Now the mouse picking detection will ignore the sorter in construction mode.
  • Now it will automatically optimize the conflict when View Rotate button and Move to Target button are the same.

Repair:
  • Fixed the bug that the panel may open automatically when copying a facility in construct mode
  • Fixed the bug that the Mecha panel may open at Ctrl + C (custom) operation.
  • Fixed the bug that the star map may open at Ctrl + V (custom) operation.



Thank you for your continuing support! You can send your feedback in Discord and Google Form! See you next time!

Dyson Sphere Program Patch Notes 0.6.16.5759

Dear engineers,

Chinese New Year is just around the corner and we wish to extend our best wishes to all of you! Despite that, the journey towards the starry sea will continue, so don't forget to replenish and re-energize yourselves while awaiting our return!

As a going-on-holiday gift, we present to you our last update before Chinese New Year's eve! As promised a few days ago, Keybinding and Quick Upgrade functions are now launched in this patch. And guess what, we also brought you an extra present - the Chain Dismantle function!

We're taking a short break and will be out of the office for a few days to celebrate Chinese New Year before returning to bring you more anticipated and fancy game updates. After the holidays, we will begin work on delivering a multi-language patch. Stay tuned!

~Best wishes and Happy Chinese New Year~

[Version 0.6.16.5759]
Feature:
  • Quick Upgrade: You are able to upgrade the conveyor belt, sorter, and assembling machine by directly putting the new ones (cover/overlap/move) on the lower grade ones.
  • Chain Upgrade and Chain Dismantle: You are able to upgrade or dismantle a whole conveyor belt directly with this new function.
  • Keybinding: You are able to rebind hotkeys.
  • Add a hint message of pressing 'SHIFT' to accelerate while sailing.


Change:
  • We modified the planet generation to make it easier to start. From now on, there must be 6 iron and 6 copper beside Icarus's landing place.
  • We changed the saving process to relieve the memory pressure. The savedata will be written directly to the hard disk.


Balance:
  • Reduce the energy consumption of deceleration and steering in sail mode.


Bugfix:
  • Fixed a bug that the lights of the energy exchangers flash for no reason.
  • Fixed a bug where the arrow on the energy exchanger panel might be reversed.



Thank you for your continuing support! Looking forward to your feedback in Discord and Google Form! See you next time!