1.18.14: - Added option to turn on microphone automatically to Voice Chat settings - Switch active hand from grip button and allow walking from both thumbsticks - Prevent online players from blocking the lane
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.
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.
// 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~
DIRT 5’s next game update is on the way and will include a host of new content and gameplay additions – but another big focus has been on further performance improvements, based on the feedback from you, the players.
Since the game’s release we’ve been closely following the feedback from players using AMD Ryzen CPUs, and seeing where tweaks, fixes and optimisations can be made to their experience. Thanks to this, and by working closely with AMD, in DIRT 5’s upcoming Update 3.00, we expect to bring more improvements in game performance for AMD Ryzen CPU users. CPU gains and far fewer, if any, instances of stuttering can be expected once the update is downloaded.
General technical fixes and visual improvements will also be included for all PC players in this update; we’ll be sharing the patch notes in full ahead of the update’s release. As always, please check the game’s minimum and recommended spec requirements, and ensure your drivers and software and all updated, to ensure optimum performance with DIRT 5.
If you are experiencing any issues with DIRT 5 that you’d like our team to investigate, feel free to fill out our dedicated support form with as much detail as possible. Thank you!
Updated the game to the latest release of the Ren'Py Engine. This should fix some issues when starting the game and with Steam's achievements missing. However, I will need some feedback about this (see today's news).
Hello friends! Choo-Choo Weekly has arrived at the Tuesday station. Today you will find a selection of various levels for every taste, even the most demanding ones. Yes, that means we're featuring @PureSativa's level. Let’s go!
https://steamcommunity.com/sharedfiles/filedetails/?id=2391518206 It's not the first year that @unclekrusty has been making levels in honor of Lunar New Year. This time, he reflects on the importance of cows for neighboring India and China: in 2021, this animal is sacred to everyone.
https://steamcommunity.com/sharedfiles/filedetails/?id=2391548198 New puzzle by @thomas. Interesting routes await you here. Be careful with the junction near the glass factory, in case of a mistake you will not be able to delete the tracks. Great color scheme, @thomas!
https://steamcommunity.com/sharedfiles/filedetails/?id=2394150722 If you like levels that are not too short and have moderate difficulty, you will definitely like this map. Fast trains, lots of resources, a power station behind customs ‒ great composition and great gameplay.
https://steamcommunity.com/sharedfiles/filedetails/?id=2384729361 Very nice level by @BlaiddL3g3nd. You have distant factories and you have to decide how exactly to build paths to them. You have more routes than you think at first! Superb gameplay and many ways to play. @BlaiddL3g3nd, we are happy to give you a €10 Steam gift card. Congratulations!
It was a good week! As usual, we are waiting for you at our regular extra Let’s Play Together challenge today. See you, friends!
I want to thank you for your patience. This version could not be possible without your financial support and without your constant feedback. I read all messages on Steam Community forums and Discord to create the best game for you and for me :)
Changelog for 0.3.5:
NEW: Multiple girls in one scene
NEW: Save/Load Scenes
NEW: Save/Load Poses
NEW: +100 new animations
NEW: Change animations speed
NEW: Improved mouse camera controls (rotate camera around a girl by dragging a mouse button on her, scroll mouse wheel to zoom closer, click and hold mouse wheel to move camera around)
NEW: "Smart selection" feature (works best in VR) for easier posing of multiple girls
NEW: Move multiple girls at once by disabling "Smart selection" on "Models" tab and then activating checkmarks near girls' names.
NEW: "Favorites" category of morphs - add morphs you like there by clicking on small white rectangles on the left side of morph name
NEW: Reset individual morphs to default value by clicking "R" button
NEW: VR photo-camera for making screenshots when you save a Scene or Look
NEW: Change scene/floor colors
NEW: "Full Screen mode" toggle to switch the game to Windowed mode.
NEW: Change UI size by clicking Plus/Minus buttons on your NumPad keyboard or SHIFT and Plus/Minus on your regular keyboard.
NEW: Rotate a girl with Left/RightArrow keys
NEW: Hold CTRL button for more precise posing of limbs/head
NEW: Hold SHIFT button to move limbs/head closer or further from camera
NEW: Quickly reset a scene by clicking on "Queen", "Ebony", "Beach" buttons inside "Save/Load Scenes" menu.
NEW: Outliner. Shows a bright pink border around a girl when you switch "active" girl.
NEW: Highlight a girl each time an active girl is changed ("Highlight girls" checkmark on Models tab)
NEW: Focus mode ("F" button on Models tab, Desktop version) - focus camera on selected girl. Useful feature if you "lost" a girl in a scene.
NEW: Prev/Next buttons for easier scrolling of long lists
NEW: Reset button added to FOV slider
CHANGED: Esc button does not exit a game but switches between Full screen and Windowed modes
CHANGED: All six builds of the game are merged into one codebase (game size is 8GB now, was - 27GB)
******** How to update Mirage? To update the game close Steam app completely by right-clicking on small Steam icon at the bottom right corner of the screen (you may need to click on "Arrow" symbol first to reveal a full list of running apps) and select "Exit". Then launch Steam again and Mirage should start updating.
******** Why it took you so long to release Mirage 0.3.5? During all this time (from initial Mirage release) I worked every day on Mirage. On three tasks: 1) My custom C++ physics engine. It's extremely complex to develop but it's awesome and this is the main part of Mirage I am most excited about. I will share more details about it when I'm ready. 2) Importers of custom characters and 3D objects 3) Mirage 0.3.5
As a result of such time sharing I have written more than 12,000 lines of C++ source code for the physics engine. It's a lot and every line of code is created specifically for Mirage taking human body physics into account.
******** What's next? Next is Mirage 0.4 - Importer of Daz content (characters, clothes, hair styles). Working on it.
Then I plan to release:
Unity scenes importer
Animation recording systems (mocap and keyframe based)
Realistic physics for cloth, hair, human body, liquids, rigid bodies
[GENERAL] - Massively improved UI performance (you should see frame rate increases of 100 - 200 FPS!) - Added a "Hold to Attack" option to settings - Added separate Inventory and Quests open on mouse over settings - Scroll of Fire no longer damages resources nodes - Enemies can now have their own custom gore effects - Rocks no longer bleed - Spiders now bleed green - Updated the Old World Crystal's tooltip to mention that only 1 can be earned per mob per day - Fixed trasparency issues in several sprites - Fixed an issue that was causing multiple Old World Crystals to be dropped by the same mob to the same players each day - Fixed an issue that was causing a crash for new installations - Fixed Iron Shield
[UI] - Added new logo to starting screens - Added categories to crafting for easy navigation - Crafting will now scroll correctly at GUI scales other than 1x and 2x - Profile portraits now draw gear in the correct order - Damage floats now show a negative number for when an entity takes damage - Renamed DEF to STA in profile
[CONTENT - NEW] - New mount: Fishing Boat (allows you to move on Water) - New mount: Pirate Boat - New content: Squall's End Rivers (featuring Pirates, Serpents and new cosmetic armour) - New reagent: Blank Scroll (used to craft spells) - New spell: Scroll of Defence (provides +{INT} STA to all players within a 4 meter radius for 12 seconds - New spell: Recovery (recovers {STA} HP every second for 3 seconds) - New craftable Buddy: Minty. **This is an exclusive item being given as a thank you for participating in the Closed Beta. It will no longer be available to earn after the Closed Beta has ended.**
[CONTENT - CHANGES] - Reduced the max Level cap to 25 (previously 100) - Rebalanced spells: Spells now cost significantly less mana - You no longer passively gain health during combat - You now only gain 1 Mana p/s when in combat - You now gain 15 Mana p/s and 10 HP p/s when out of combat - All spells now require a Blank Scroll to be crafted - Scroll of Fire now requires 20x Essence of Corruption to be crafted - The Vial of Oasis Water now only gives +1 Mana. This is a temporary change until we add in a per-item cooldown system.
[SERVER] - Fixed an issue that caused the server to require a restart after crafting recipes were updated
Here are the contents and features: (As the game is still a work in progress some of these may change)
Scenarios
For the early release : -Fall Blau from june to november 42 -Edelweiss (centered on the Caucasus campaign alone, that will be a fast played scenario) -First fruits (the early Kharkov and Crimean May 42 operations) -A longer version of Fall Blau, from may 42 to December 42
For the final Game : -Uranus and Jupiter -Wintergewitter -Two small scale city centered Stalingrad scenarios on their own particular map
Other features and improvments
-The possibility to delegate an Army Group management to the AI -An "Axis firmness score" : if this score is too low, the Axis minor forces will be less efficient -A "Focus on Moscow" score for the Soviet : while it is too high, you may be unable to send forces South -Air superiority may now triggers some automatic strike against your oppenent during its actions -Small scale units may be supplied by horse drawn carts where the trucks can't pass -The Human wave soviet actions will only be available on some particular operations -New operations terrains types like steppe, dense woods, mountain ... -A Maskirovka effect for the soviet player who will be able to hide entire armies! -The Turcs may join the feast if the german player performs well in the Caucasus -As the operations may reach Iran, you may even see some british unit -Some new unit traits to simulate obsolete equipment or heavy siege guns
And many other thinks I may have forgotten to mention.
There is still a lot of work to be done, but step by step, the game is taking shape.