1. Dyson Sphere Program
  2. News

Dyson Sphere Program News

Dark Fog WIP! Dyson Sphere Program Combat System dev. progress (w/o goof around)

How are you, engineers? It's Dragon Boat Festival here in China, we are writing to you with some dumplings in our dishes!

The combat system is still in production, and the problems we meet are cleared one by one like the dumplings in the dishes - nothing goofing, all time work work.

Recently we are aiming on bringing "changes" to the features. The combat system code has been refactored once, while the framework of the gameplay and the workflow of the system optimization has outlined and discussed. Overall, the system progressing is around 60%.

On the other hand, we are close to the completion of gameplay loop. There are still some difficulties in our mechanics, but we will definitely break through it, just like what we've done in the past. The progressing of the content and resources, overall, has came to 50%. So there are still plenty resources need to be created, maybe you engineers need to wait a li-ttle longer. (But no later than 2023!)

[previewyoutube][/previewyoutube]



Dev Log: Combat System

Hi engineers!

In the months following Dyson Sphere Program: Rise of the Dark Fog's showcase at TGS 2022, we received a lot of encouragement and support from our players. This has greatly motivated our team to put more effort into developing combat-related content. Let’s have a glance at the visuals we are currently working on:



During the combat system development, some optimization of existing gameplay systems was also introduced. Such as a new distribution logistics system, more advanced Chemical Plants, Splitters with storage, more convenient conveyor belt tools …

In order to maximize the team production effectiveness, we split our workflow into two branches - The Rise of the Dark Fog (combat system) branch and existing content updates. So that we can do these two parts of work at the same time, and keep the combat system info confidential. But we need to make sure to merge the changes made in the Update Branch into the Combat Branch from time to time, to ensure that the work on both sides is always in sync.



However, we also have a piece of bad news here: During the year that the combat system branch has been running separately, its content conflicts with the main branch have caused many code and resource issues. We had to put huge amounts of extra effort and time to resolve these problems every time, and sometimes we even have to deliberately avoid modifying common resources and low-level codes, which distracts us a lot from the combat system development. To speed up the progress of combat system development, we have decided to devote our full effort to the combat branch. In other words, we will still be able to debug and modify the existing game contents, but not be able to add any new features before the combat mode is grounding.

This will give us an opportunity to refactor the combat system codes and some of the low-level codes. The game’s performance bottleneck became apparent after adding abundant content in batches – my old pc (GTX660Ti) could barely run at 10 or even 9 FPS. Seeing this, we decided to overhaul some unoptimizable, inflexible codes that burden the frame rate. We have done it once, so we had experience and were willing to find out better solutions. It’s a hard process, but we have determined to reach our goal: Dyson Sphere Program must perform smoothly after the combat system is implemented.

(made some hardware upgrades as well)

There’s a saying, “designers only make requirements, and programmers implement them”, is not for us. When a performance issue comes up, it never helps if the designers say “I don’t care, it’s the programmers’ duty to solve it.” or “forget it, the tech is not there yet.” We believe that the two departments must think and work together. Their work was never separated.

In Dyson Sphere Program, players’ factory objects can easily reach millions in scale, so performance is definitely a priority. The ultimate performance limit of a game is determined during the design phase, and then it depends on the technical skills of programmers to try to reach it. That’s why we ask designers to use the remaining performance space wisely to create as many possibilities as possible during the design phase. After going through a gameplay validation, we came up with design goals. The image below shows the hypothetical comparison of combat power between players and the Dark Fog.



We know that if the Dark Fog takes up the player’s development space (and CPU computing resources), the player will want to destroy it. So the activity of the Dark Fog and the player’s factories are roughly inversely proportional, and we used it to set the following performance optimization goals:



If players choose to leave the Dark Fog alone in the latter stage of the game, then the remaining massive Dark Fog hive will be a huge burden. And at this point, the Dark Fog’s entire production system (space nests, planet bases) is insensitive to players, so it doesn’t need to update as frequently as player factories.

(Dark Fog’s expansion logic)

After consideration, we set the Dark Fog nest’s update logic to once every 60 logic frames, and all nest updates are evenly distributed across each frame as much as possible to avoid updating too much logic in one frame. For example, if a player chooses the 60-Star startup build, then each logic frame will update one planetary system’s Dark Fog nests in turn. The following are some simple load-balancing codes:



The seemingly simple idea above rises other problems: if the Dark Fog updates once every 60 frames, what about other non-building combat units and transport units in space? How to blend the animations of the Dark Fog ground buildings?

(space units’ fleet matrix)

(ground units’ group behavior)

Well, in this case, We will have to take our BIG MOVE: using GPU to process some computations.
Just like the optimization of Logistics Drones, CPU doesn’t have to calculate the curve that transports aircraft go through from point A (xA, yA, zA) to point B (xB, yB, zB) to unload cargo, or the process of body rotation, ascent and descend, how the tail flame effects change, etc. All CPU has to do is just add up a “t” value.



And GPU will take care of the more complex mathematical operations:



The following is a performance test Save of a large number of transport aircraft. Feel free to download and try it out if you are interested:
MilkyWay Download Google Drive

(21,000 Logistics Drones update at the same time)



Since 99% of the time enemy combat units are performing wandering behavior, we can design to make their trajectories more computable by using parametric equations to represent their motion paths. This way, we can optimize most of the wandering enemies as we do with Logistics Drones.

Next, we plan to seamlessly switch between GPU and CPU calculations when they enter/exit attack mode and return to wandering.

However, this solution also poses some challenges, such as finding suitable attack targets for free-target projectile when attacking these enemies-- this indeed complicates simple problems, but compared to the performance “disaster” caused by full CPU simulation, we have to do this first and then deal with whatever comes next. Complexity cannot be eliminated, and performance optimization is about transferring runtime complexity to code complexity.

(nothing yet.jpg)

Apart from all that, we found out that when starting a new game with the highest difficulty level, the total amount of dark-fog buildings in 64 planetary systems reach 200k (just buildings). Even when we reduced the logic overhead to below 3ms, the Dark Fog still occupies about 50M of Save data.



For newly created Saves, players can’t sense the presence of the Dark Fog in other planetary systems, so they find it hard to accept such large Saves. Meanwhile, we believe far away or not, Dark Fog must develop according to certain rules, and the determinism of these rules will increasingly become important later on. Just like the consistent running logic of the “real universe” in games, leaving a planet doesn’t make factories on it lose their logical determinism.



Therefore, we have to split the logic and data of dark-fog growth into multiple deterministic LODs (Level of Details) and specify switching rules between levels.

And In order to ensure stability, we redesigned the nest growth process so that it could bake out a certain nest growth map based on fixed age and random number seeds in real-time without interference. This way, even when each nest contains up to 2000 buildings and units, we can at least transform distant nests that had not been encountered into several header data such as “age”, “random seed ”, etc. and generate relay stations and seeds simultaneously to ensure that unencountered Dark Fog can still expand outward.

(Minimalist data form)

(content in blue/red/yellow box presents three different LODs)

We are still working on refactoring the code for the combat system. We have basically finished the LODs in the blue and red boxes shown in the image above, as well as the self-replication and expansion of the Dark Fog nests. Once we finish refactoring, we will move on to optimizing the more complex aspects of combat.

For modeling, we need to improve the destruction effects for each building and the LODs for all dark-fog buildings, as well as the animations for each LOD.



For some complex effects that require a lot of rendering, we still need to use shaders to simulate them. A typical example is the hit effect of projectiles:



If we use the particle system provided by the engine directly, it will not be able to support a large number of effect instances. We need to use the method mentioned in our previous development log and convert each particle system into a shader-based simulation of these hit effects. Here is one of them:



(Take it easy, it's just a test)

At the end of this development log, we’d like to remind you again that players who prefer building and management can completely turn off the Dark Fog. In addition, players can also adjust some difficulty parameters for the Dark Fog in detail.

(The options shown above are only based on our current design and are not final.)

This is the end of the Dev log.

By the way, here's a good news: The producer couple's baby was born last month! Currently they are still in the hospital, one hand holding the baby and the other hand coding Dyson Sphere Program.

If you are interested in our previous dev log, feel free to check it out HERE!

Thank you for reading! See you next time!

Chinese New Year Holidays & 2nd Anniversary Wishes & Recent Updates

Dear engineers,

Today is the last day of the lunar year 2022, which also marks Dyson Sphere's 2nd anniversary. Two producers are now in the hospital, awaiting the birth of their baby - let's say, the first new member of Youthcat Studio in 2023.

Following this upcoming "inauguration" and the New Year holidays, the team will continue to work on the combat system. It was a regret that we were unable to bring you special events on this 2nd anniversary, but we hope to create a memorable experience for the 3rd anniversary of Dyson Sphere Program.

In 2022, we've gone through a lot. It's the support and encouragement from all of you engineers that has helped us get to where we are today. We still face many challenges in the combat system. However, we will not give up and will work tirelessly to make Dyson Sphere Program the best we have in mind.

The combat system is our top priority for 2023 and is the only destination on our Roadmap in 2023. We will, as promised before, continue to update while developing to enhance the game experience for our engineers, and will keep you posted on the progress of the battle system development.

Hope all the engineers in 2023:
Good Luck
Good Health
Successful Career and Education
Happiness and Well-being

Thank you for reading!

Youthcat Studio
Gamera Games

Dyson Sphere Program Patch Notes Version 0.9.27.15466

Hello engineers, happy 2023!

Dyson Sphere Program is starting the new year with new graphics and visual effects. Let's check what we have for you today!"

[Version 0.9.27.15466]

Features:
  • New feature in the Conveyor Belt panel: Now you can invert the entire conveyor belt transfer direction with one click.
  • New automatic feature in Conveyor Belt construction: when building a Conveyor Belt, if the construction path crosses an existing Belt, it will automatically turn into an arch bridge shape.



  • Added planet nephogram & cloud effects for 12 types of planets.



    Mediterranean Planet

    Red Stone Planet

    Pandora Planet


  • Added magnetic susceptibility particle flow and bipolar jet effects to neutron stars.
  • Remade the ice surface of the Scarlet Ice Lake, textures and vegetation.



  • Added visual effects to the [Planetary ionosphere utilization] technology (Ray Receivers that use Graviton Lenses).







Changes:
  • Modified the logic when planning conveyor belts: when planning a T-intersection of Conveyor Belts, the type of Conveyor Belt at the intersection point is no longer modified.


BugFixes:
  • Fixed the bug that the Traffic Monitor could not be built on the single-unit Conveyor Belt.
  • Fixed a bug that generated an incorrect alert message when a Spray Coater could not be built on a single-unit Conveyor Belt.
  • Fixed the bug that when the garbage block disappeared inside the star, the warning and orientation messages of the garbage block still existed.
  • Fixed the bug that Icarus could easily get stuck into buildings.
  • Fixed the bug that the blast wave would not dissipate after power off when launching rockets from the Vertical Launching Silo.
  • Fixed the bug that the Filter panel that pops up when connecting a Logistics Station with a Conveyor Belt does not close in Blueprint mode.
  • Fixed the bug that when upgrading infinite level technology, the technology level shown in the pop-up prompt of the technology button in the lower right corner did not match the actual technology level.



Originally posted by author
As a closing note to the log, we would like to let you know how the development team is doing. Covid has seriously affected us, and more than half of the whole team is unable to work on development with normal efficiency. We will do our best to maintain the pace of work, and we appreciate your continued support for Dyson Sphere Program.

We are also excited to announce that one of our producers, Kat, is expecting a baby in late January. Yes, a new baby will be born around Dyson Sphere Program's anniversary! Please join us in sharing this joy and anticipation!


Dyson Sphere Program Patch Notes Version 0.9.27.15033

Hi engineers!
A belated Happy Halloween! We've added some fun features to the Storage MK.I and some convenience to Icarus' universe for sustainability work. Let's check out!

[Version 0.9.27.15033]
Features:
  • Now, Storage MK.I can be built on top of the Splitter. In this way, the cargo in Storage MK.I can also be distributed in and out via the Splitter. However, please note that this feature can only output cargo with a stacking quantity of 1.
  • Added two new statistic options in the right information panel of the Planet View and Starmap: "Mining Planned" and "Not planned yet" of veins.
  • Added warning hints and directions for garbage blocks. Icarus will no longer have to search for a needle in a haystack or, to find a garbage block in the universe!
  • Added a new switch for the Metadata function at the top right corner of the Tech Tree. After disabling Metadata, the Buyout button in the Tech panel will be hidden.
  • Added fluid animation effect when [Chemical Plant] and [Quantum Chemical Plant] are running.
  • Added Frame Balance Setting. It adjusts the target ratio of rendering frame rate and logical frame rate, as well as the priority of video fluency and game simulation speed.

Changes:
  • Adjusted the collider of Storage MK.I and Storage MK.II. Now it is possible to build the Conveyor Belts that pass over them.
  • Modified the logic of Icarus' vertical movement on the planet when logical frame rates are low. It will be impossible for Icarus to jump out of the atmosphere at a low frame rate anymore!

BugFix:
  • Fixed the bug that when pasting Blueprints, forcing to overwrite the original Sorter may cause the wrong connection of the pasted Sorter.
  • Fixed a bug where the logistics distributor guess Filter would make an incorrect guess after selecting an icon for a non-item type on a Conveyor Belt.
  • Fixed the bug that invalid codes were not detected when pasting Blueprint/Dyson Sphere Blueprint codes.
  • Fixed a bug in Sandbox Mode where solar sails would be ejected from center of stars if Quick Build is enabled after using the Dyson Swarm Blueprint.
  • Fixed driver compatibility issues with some AMD graphics cards (usually shown as white exposure or model fracture). This update fixes the white exposure that may appeared on the Conveyor Belt.