Three weeks ago I released the "Within The Horizon" update into public beta. This time I've got less bug reports, because the game is a bit more stable overall. But winter holidays could be a reason too. Anyway, I've found another bunch of bugs, while working on the next advanced game tutorial. And I haven't heard about any critical blockers from the users who tried it out, so the beta testing was totally worth it.
Here is a quick summary of major changes in v0.17 version: Venus, planes, mirror symmetry, symmetry delete, new advanced tutorial, more than 25 new parts, including large fuel tanks, and yet another pile of fixes as the game has ever seen.
Don't also forget, that there will be a limited time winter holiday event in the game. It will last from December 24 to January 14 and will bring a holiday spirit into it.
Below are patch release notes and full release notes. Thank you for playing the game and helping to improve it!
This is the second update I decided to publish into the public beta branch first. It will stay there for about two weeks and will be released to the default branch once I will fix all critical issues found by players. I am planning to add several more parts that didn’t end up in beta and probably one or two tutorials related to a new content. You can find how to switch the game’s branch on Steam in the release notes section. Let's get started.
Venus
This is a hard one. There is not much data or photos of the Venus surface except those one returned by soviet Venera probes. Because of Venera’s thick cloud layer we don’t even have proper surface color maps. So there is a lot of procedural texturing involved. I also chose the atmosphere color parameters by eye. So the only “real” data are Venus height and atmospheric physics. There is also no cloud layer at this moment but it will be added as soon as I will start developing a cloud system for the whole game.
The atmosperic pressure is so high on Venus that engines basically stop working. But you will also not crash because of it.
Planes
I talked about planes in the previous dev update so I will briefly touch on a few details here.
Firstly, there is basically one set of all parts needed for planes currently. The amount of work needed to add them was crazy, because it is always hard to add something completely new to the game. I can easily compare it to the first twenty parts that were in the game at the original EA release. You have no experience, references or idea if the new stuff works properly. But after extensive testing and reading a lot of articles you start building a feeling, what works and what is just a buggy mess. So you can expect more plane parts in the future, especially after I will gather some feedback for these ones.
Secondly, I’ve noticed that it is pretty easy to build something that will fly due to the socket system. But it is pretty hard to build a perfectly balanced plane because of socket’s restrictions. So a lot more assembly tools needed to solve that. One of them will be an ability to do a small offset for the connected part relative to the parent. Like 10cm would be enough for the balance purpose. But this is a task for another dev cycle and will probably require the whole rework of the rocket assembly system, because the code of it is very bad and it is very hard to change it in any way. But I will see how it goes.
So please try out planes and leave your feedback so I could improve them.
Forces overlay
During plane assembly testing I found out that it is very hard to predict how a plane will act without additional information. To solve this I’ve added a detailed forces overlay during craft construction. Now you can see the force center, direction and magnitude for gravity, lift, thrust and drag. Or you can toggle a combined force and basically see the craft velocity prediction.
You can change a set of parameters to see what forces and how will affect the spacecraft at given conditions
It is funny, that this force overlay helped me to find a bug: some payload fairings didn’t actually protect the parts placed into them from the drag.
Notice the drag force affecting spacecraft without payload farirings
Drag force has been reduced by a factor of 12 after fairings were added
Also note that each division on the arrow is equal to 1kN force, so you can easily compare forces and understand what will happen with the craft at a given set of parameters.
Assembly improvements
The feature I am pretty sure you all waited for. You can finally remove parts using a symmetry.
Better late, that late
Not only that, but you can even symmetrically reattach parts. This one have some limitations tho: This one works
This one doesn't because both attachment points should be free. This one currently impossible to fix without rewriting the whole assembly system
Also mirror symmetry was added for plane assembly and some small fixes were made for the whole assembly workflow.
Decouplers
All decouplers received two configurations. Now they can work as a decoupler (default) or a separator. In the first mode, the decoupler will stay attached to the decoupled part. The second mode works as it was before. This will help to reduce the amount of debris produced during the rocket launch. To further reduce it you can try to use dynamite, but note it is not safe!
There are only one decoupler that can only work in the separator mode. Could you find it?
Bigger fuel tanks
This one I’ve mentioned in the August dev update. As it turns out, the new fuel tank radius requires a lot of additional parts like bigger decouplers, adapters, nose cones, fairings etc. I didn’t have time for all that, but still I’ve added something. This is bare bones, but you can easily build the first stage already. Also several days before the release I found a bug in this radius geometry (wrong number of polygons) which led to the coupling artifacts. I will need to basically remake all of these parts and will do it during the beta.
This thing is really huge
Other improvements
As always there are a lot of smaller improvements that you can find in the release notes. For example, new lens flares, sun size and flares now depend on the distance to it, improved drag calculations, hiding part connections during the flight and more!
As always thank you for your support and I am waiting for your feedback!
Release notes v0.17.0: Public beta
This build was deployed to beta-builds branch. To switch to this branch right click on the Rocket Science in your library, and click on Properties. Select the Betas tab, and then select the beta-builds branch. Once you see it, select it and click OK.
Note: if you want to switch back to default branch after this beta, you will need to manually clean %USERPROFILE%/AppData/LocalLow/Unity/unbeGames_HDYLIEM folder or the game will not start.
Features:
new planet: Venus;
added aero (wings) and control surfaces (aileron, rudder ecs);
added fixed and steering wheels;
added new engine type: turboprop engine;
added new fuel type: kerosene;
implemented mirror symmetry;
new vechicle forces overlays in the assembly shop;
added symmetry delete / reattach;
new fuel tank radius: 2.5m;
added two decoupler modes for all decouplers;
rocket part connections can now handle up to 64 sockets (previously was only 16);
one new connector and one new socket for new fuel tank radius;
added new line socket type for planes;
slots and connectors on rocket parts will only be shown during rocket assembly;
added runway for spaceport, that will store spacecraft separately
added AMD Fidelity FX and NVIDIA DLSS support;
sun's lens flares effect rework and improvements.
New rocket parts:
added around 20 new rocket parts, most of them are bigger fuel tanks and parts for planes;
Part changes:
Basic adjusted size and mass;
increased radius of big payload farings so sizde staged rockets are now possible;
adjusted size of some eingines so they will fit well on new connector;
changed connector on engine 0 from triple to rectangle
reduced all socket and connector sizes by a factor of one and a half;
fixed a bunch of geometry issues, seams and other visual bugs on different rocket parts;
reduced mass of nose cones a bit;
added kerosine fuel configuration for all small fuel tanks;
added no fuel configuration for all fuel tanks;
reduced throttle limit for engine 4 from 90% to 80%
Changes:
only some parts (like fuel tanks, engines, batteries) generate explosion force on destroying;
improved autostatbilization speed on large heading differences;
sun flares and sun size will depend on distance to it;
CPU consumption improvement in the spaceport and assembly shop;
attachments with two or more sockets can have a small offset along surfaces and induce additional rotation on a part;
A quick update here about a new feature that is coming in the next v0.17 version of Rocket Science. So, this is actually happening. At the beginning of the development I thought planes are too complicated to make, and even placed researching this topic post v1.0 release into my roadmap. But the more I worked on the game and the more my skills improved, the more I began to realize that it was not only possible, but doable in the time frame of one update cycle.
Planes have been at the back of my mind since the first rocket take-off in the game
One issue that I had to address before even starting research was the compatibility of the socket system with wings. The point is that planes, unlike rockets, need to be properly balanced so that the center of lift is behind the center of mass. I had no suitable sockets for that and the distance between each slot was 0.7m which is too far for proper balancing. So I've added a new type of socket. It is a line of slots with any number of them and 2x reduced distance between each one. And as I mentioned in the previous update, such sockets would look like swiss cheese. This was another reason to implement sockets hiding everywhere except assembly shop. Also I had to make them smaller, because with reduced distance the become like a mess.
After that, one week of heavy research and five weeks of development I finally put everything together.
Note, that all the gifs are work in progress, anything can be changed
The amount of new things that need to be added into the game to support planes is the biggest so far. Just take a look at this list of features.
- wings and lift and drag force calculations for them; - control surfaces such ailerons and flaps; - autocorrection system for lift forces; - wheels, including steering and braking; - new engine type: turbopropeller; - new fuel type: kerosene; - mirror symmetry for spacecraft assembly; - center of lift and thrust calculations; - new launch facility - runway.
And many more. The most complicated feature from this list was reinventing the wheel by the way, because Unity's builtin wheels do not work in the spherical gravity. But this is a story for another time. As are many otherstories about this development cycle, but I hope to be able to tell one or two in the actual update (now I simply have no time for that).
The basic functioning wheel took me one week to made...
Almost all of these things are 75-80% complete and I want to release the update someday in November. I didn't fully solve plane balancing yet and I need to finish tons of smaller features too. And, if I have some time left, I will try to add more than one plane set of rocket parts and add tutorials for all that.
You can see there a new type of symmetry — mirror
Thank you for your attention and see you in the v0.17.0 update!
Plane flight feels so different from rockets, it is like a new dimension for the game
Last update I received a lot of feedback on the game and a bunch of feature and content requests. I had to choose the most valuable but not the insanely time consuming ones, as I continue to work on the game alone and have to deliver updates within a reasonable time frame.
But before I get down for that and start the next dev cycle I have to migrate to the next major Unity version. I’ve been locked on the same engine version for 2 years, because I was using new (for that time) experimental engine features that made it possible to make the game fast and support real scale planet generation. The price was this engine lock, until Unity Technologies would transfer these experimental features into the latest stable Unity version and start to officially support them. This happened in June so I could finally move on.
But why spend valuable time on this engine migration when it won't add anything new to the game? Because engine's tools are getting better, some of the newest graphics and scripting tech are becoming available and sometimes everything even starts to perform faster. Hoverer, this migration is certainly not a walk in the park. Usually the game starts to fall apart after that, a ton of bugs and errors appear, some libraries stop working and some critical code completely breaks. You need to fix everything and then test everything, and fix every single issue you find during quality control. And even after that players will find introduced bugs by this update for months. But if you want to support your game for years and continuously work on it, you need to stay on the edge of the progress or you will be left behind and will lose the competition with other projects.
Typical game view just after engine migration
Again, this engine update has allowed me to completely rework lens flares and the Sun size and make them dependent on the distance to it. So if you look at the Sun from Pluto, it will look like an ordinary star. The next big thing that I’ve added is the support of scaled rendering and NVIDIA DLSS and AMD Fidelity FX. This means that you can finally play Rocket Science in 1440p and 4k resolution or improve FPS if the game is GPU bound for you.
The engine migration was done, but I suddenly injured my back and couldn't sit or lay down without pain. I spent the whole July healing it and, unfortunately, couldn’t work at all. But, thankfully, the pain was almost gone in the middle of August and I went back to the game development.
I started to look into feedback again. The first most requested feature was bigger fuel tanks. You need a lot of ΔV if you want to fly anywhere beyond the Moon. You can build such a rocket, and you can even find a bunch of videos on Youtube, where players land on Mars or crash into Venus’s surface. But those spacecrafts consisted of hundreds of parts, were hard to assemble and the game processed them very poorly, especially during the first stages of the flight. So the perfect candidate for the job has been found. Besides, the game still needs a lot of different fuel tanks to make the rockets easier to assemble and look better.
But bigger fuel tanks need attachments with more slots and the game supported a maximum of 16 slots at that moment. To increase this number I needed to rewrite an internal data format that stores connected to the part slots, which would immediately break all save games. But after some research I’ve invented a compatible format that supports up to 64 slots by the one attachment.
The shape of attachment containing these slots was a challenge too. It should be consistent with what is already in the game, be compatible with all current attachment shapes, also support symmetry and rotation. It’s like a geometric progression, adding each new attachment shape requires progressively more and more work. But I solved it and the attachment for bigger fuel tanks radius would look like this:
I am thinking about even bigger attachment for the largest fuel tanks radius in the game, but those will come later
When this shape was done, I started to experiment attaching different combinations of engines. I discovered that some combinations, like three attached “Zarya” engines, are not working, because of incompatible engine radiuses. So I had to tweak those and you can expect a lot of small changes in shape and forms of some rocket parts.
One small problem remains. If you leave most of the attachment space empty, this part of the rocket is starting to look like Swiss cheese. And such rockets don’t look like real ones during the flight. Because no one would leave such attachments exposed to outer space if they would exist in reality. Additionally, the large number of not filled slots adds a visual noise to the rocket. Surprisingly, they also considerably decrease the rendering performance.
So I made the decision to hide all connectors and slots for all spacecrafts except the case when the rocket is in the edit mode in the assembly shop. Implementing this change would require an enormous amount of work, but I found a way to partially automate it. So it is almost done now and it will open more space to rocket visual design in the future.
The view you are used to and it will remain in the rocket editing mode
How it would look elsewhere
The next problem I have received several complaints on is space debris. When a rocket's stage debris enters the atmosphere, the simulation speed can not be set over 10x even if your main spacecraft is already in orbit. Players have two options in this case: wait until debris will crash into the planet's surface, which can take several minutes. Or return back and manually delete all junk. Both options are bad, but I don’t want to just exclude all debris from the physics simulation. There are a lot of edge cases for this solution, and I also planned to make several gameplay mechanics related to this problem. In reality, most leftover parts burn up on re-entry. But the game has no thermodynamics right now and it is not easy to just add it.
So I introduced two working modes for all decouplers: “separator” and “decoupler”. The first one works as it was before. In the second mode the decoupler will stay attached to one of the connected parts, marked by an arrow on it. This should already reduce the amount of space junk. As a further “temporary” solution I’ve added a “self-destructor” part which will destroy itself and all connected parts after a specified amount of time after detachment from the main rocket. It is pretty light and requires only one slot, so if you are very annoyed by debris, you have a solution.
Here I immediately found a bug, that the effect of explosion in space stays fixed in one point instead of moving on the same orbit.
The third thing I have been asked more than several times was extending the tutorial. But this was already on my working list and I just increased its priority. Moreover, I’ve planned a lot more for the next update. New tools for the assembly shop, some improvements handling engine’s throttle, a lot of new rocket parts, the new planet and a bunch of tutorials and missions. I will tell you about all that in the next “work in progress” article.. Obviously, the next update will not be ready in September as I planned before, because I lost one and a half months while I couldn't work. But I hope it will be released somewhere in November and I will keep you updated on that.
Thank you very much for your support and see you soon.
Two weeks ago I've released "The First Planet" update into public beta. Thanks to the game community, I got great feedback and received a ton of bug reports during the beta. All the critical ones where successfully fixed and the game is now much more polished and stable.
Here is a quick summary of major changes in v0.16 version: Mercury, procedural texturing rework for Earth and Moon, rocket staging improvements, new payload fairings, contracts enhancement, new rocket parts and so many fixes as the game has ever seen.
Below are patch release notes and full release notes. Thank you for playing the game and helping to improve it!
Release notes for Patches v0.16.2 - v0.16.8
Features:
new solver for hyperbolic orbits, that can handle all edge cases and is much faster;
improved Earth's atmosphere colors, making it more physically accurate;
added Focus button to the map context menu for currently active spacecraft;
slightly increased a size of planet collision on the Solar system map;
added fuel depletion sound for engines;
added 9 new bodies (mostly transneptunian objects) to the Solar system map.
New rocket parts:
"Clap" Longitudinal Decoupler;
Changes:
stage tooltip will now use engines throttle in the calculations for active stage;
stage tooltip on an active stage will be updated when hovered;
rockets with broken orbits will not load after game restart;
improved perfomance of encounter search for spacecrafts;
imrpoved perfomance of high-value time warps.
Fixes:
can not scroll camera to Makemake
[partial] lens flares could be seen through the planet
incorrect space context menu position when you select currently active spacecraft and rotate the camera;
rocket trigger crash multiple times when time warp enabled and player is in the control center;
missing some locale strings.
exception when opened control center launch window and selected rocket were removed before that;
rare exception when rocket is changing SOI in some strange conditions.
dark lines in the atmoshpere on a low sun angles and high altitudes;
rockets that are leaving body's SOI could accidenetely warp to their sattelites
Pluto's sattelites are not hoverable on the map;
Makemake has no mass;
splited decoupler receives incorrect positioning after decouple, if it was placed far from rocket origin.
Full release notes v0.16.8
Features:
added Mercury and reworked its textures on solar system map;
reworked Earth and Moon procedural texturing;
added ability to collapse and expand stages during rocket assembly and flight;
added approximate deltaV and TWR calculations for stages, that contains engines;
payload fairings rework: they are section based now and can be any length.
payload fairings are present in the rocket staging;
you can focus camera on surface objects and set them as a target;
added target markers for surface objects during the flight;
contracts with "land in distance" goal will now add a surface object marker, if it wasn't already added (via mods, for example);
contracts with "reach an orbit" goal will now add a target orbit that needs to be reached;
added camera exposure compensation settings for flight and map cameras;
added Venus heightmap to the game, this is a first step to actually adding Venus;
new solver for hyperbolic orbits, that can handle all edge cases and is much faster;
improved Earth's atmosphere colors, making it more physically accurate;
added Focus button to the map context menu for currently active spacecraft;
slightly increased a size of planet collision on the Solar system map;
added fuel depletion sound for engines;
added 9 new bodies (mostly transneptunian objects) to the Solar system map.
New rocket parts:
Payload Fairing Base GO-1;
Payload Fairing Section GO-1 1.4m;
Payload Fairing Section GO-1 3.5m;
Payload Fairing Cap GO-1;
Payload Fairing Base GO-5;
Payload Fairing Section GO-5 2.1m;
Payload Fairing Section GO-5 5.25m;
Payload Fairing Cap GO-5;
Payload Fairing Adapter GO-1-5;
Payload Fairing Adapter GO-5-1;
Circular Extended Unit;
"Fluffy" Landing Strut;
Mini Decoupler;
"Clap" Longitudinal Decoupler.
New content:
added reach "Molniya" orbit contract;
added reach "Tundra" orbit contract;
added land on Mercury contract;
Part changes:
deprecated Payload Fairing 3x7
Changes:
the process of destroying a part by dragging it to the parts panel has been improved;
improved rocket action group visuals;
spacecraft will no longer create a ton of new spacecrafts if it was destroyed not in main simulation;
added sounds for rocket stages UI;
some parts of the game engine were updated to the newer version, which will help to migrate to the new Unity version in the future.
stage tooltip will now use engines throttle in the calculations for active stage;
stage tooltip on an active stage will be updated when hovered;
rockets with broken orbits will not load after game restart;
improved perfomance of encounter search for spacecrafts;
imrpoved perfomance of high-value time warps.
Fixes:
rocket receives incorrect center of mass and could loose control after decoupling parts in some cases;
if you remove maneuver in the middle of maneuvers chain, following manuvers can become invalid and just disappear, leaving orbit in the incorrect state;
visible seams on the surface of planets in some places;
[Control Center] sun light leaks into new buildings at summer;
sometimes separated parts are positioned incorrectly during rocket explosion;
[Assembly Shop] connection points are flickering;
splitted decoupler sometimes explode on deploy;
payload fairings explode on deploy without any reason;
forces not applied to the decoupled rocket from docking port;
context menu appears in the incorrect position when grounded spacecraft is selected;
contract button stays in hovered state when contract was canceled or completed and the new one was accepted;
game crashes, when the surface mod editor is loading and the left mouse button is pressed;
can not scroll camera to Makemake
[partial] lens flares could be seen through the planet
incorrect space context menu position when you select currently active spacecraft and rotate the camera;
rocket trigger crash multiple times when time warp enabled and player is in the control center;
missing some locale strings.
exception when opened control center launch window and selected rocket were removed before that;
rare exception when rocket is changing SOI in some strange conditions.
dark lines in the atmoshpere on a low sun angles and high altitudes;
rockets that are leaving body's SOI could accidenetely warp to their sattelites
Pluto's sattelites are not hoverable on the map;
Makemake has no mass;
splited decoupler receives incorrect positioning after decouple, if it was placed far from rocket origin.
This is the first update I decided to publish into the public beta branch first, because it has too many fixes and internal changes that could break something. It will stay there a week or two and will be released to the default branch once I will fix all issues found by players. You can find how to switch the game’s branch on Steam in the release notes section. Let's get started.
Mercury
The closest planet to the Sun and the smallest planet in the Solar system now in the game!
Procedural texturing rework
As I explained in the previous dev update, I have significantly improved the procedural texturing system and Earth and the Moon have been reworked and now use this new system for rendering. The only downside, is that it requires more VRAM because of 4x improved level of detail. I am planning to add a quality setting for planet texturing in the near future. Martian system procedural rework will come in the August update.
Finally what you see on the map will match to what you get during the flight
Planet's surface received much more details
Sometimes it produces slightly weird results, but this is a procedural approach, what can you do, eh
Moon was already good, but now it's simply great
Rocket Staging improvements
You can expand and collapse stages now. Rocket parts will be grouped by type and resource group when the stage is collapsed.
For each stage that contains engines I’ve added a dV and max TWR calculation. You can set a reference body and altitude for it. It will also update the remaining deltaV and max TWR calculation for the active stage during the flight.
New payload fairings
Payload fairings are section-based now, so you can basically launch a payload with any length. I’ve added two radiuses of farirings and adapters between them. Also I’ve added fairings to the rocket staging as a separate action, so you don’t need an additional decoupler for it.
Contracts enhancement
“Land in distance” contracts will now add a surface object marker on the planet, if it was not added though the mods. You can also set a surface object as a target and get a marker (similar to nearby spacecraft markers), when you will be near your target.
“Reach an orbit” contracts will add a reference orbit you need to reach. Unfortunately you can’t set this orbit as a target for now, to get ascending/descending nodes. This change turned out to be huge, so I moved it to the next update.
New content and other improvements
Three more rocket parts have been added to the game, In addition to the fairings, and three more contacts. Also you can find a new exposure compensation control on the camera modes panel. This will allow you to make a scene brighter or darker in cases when automatic exposure couldn’t handle it properly. Lastly, I’ve fixed an enormous amount of critical bugs in this update. Some of them lasted for a year and more and I can’t understand how the game even functioned in some cases.
I know, you are waiting a new parachute too, but it is crazy complicated process to make it. But it is coming sooner or later
That’s all for now, please let me know if you have any issues or will encounter any bugs.
Release notes v0.16.2: Public beta
This build was deployed to beta-builds branch. To switch to this branch right click on the Rocket Science in your library, and click on Properties. Select the Betas tab, and then select the beta-builds branch. Once you see it, select it and click OK.
Note: if you want to switch back to default branch after this beta, you will need to manually clean %USERPROFILE%/AppData/LocalLow/Unity/unbeGames_HDYLIEM folder or the game will not start.
Features:
added Mercury and reworked its textures on solar system map;
reworked Earth and Moon procedural texturing;
added ability to collapse and expand stages during rocket assembly and flight;
added approximate deltaV and TWR calculations for stages, that contains engines;
payload fairings rework: they are section based now and can be any length.
payload fairings are present in the rocket staging;
you can focus camera on surface objects and set them as a target;
added target markers for surface objects during the flight;
contracts with "land in distance" goal will now add a surface object marker, if it wasn't already added (via mods, for example);
contracts with "reach an orbit" goal will now add a target orbit that needs to be reached.
added camera exposure compensation settings for flight and map cameras;
added Venus heightmap to the game, this is a first step to actually adding Venus.
New rocket parts:
Payload Fairing Base GO-1
Payload Fairing Section GO-1 1.4m
Payload Fairing Section GO-1 3.5m
Payload Fairing Cap GO-1
Payload Fairing Base GO-5
Payload Fairing Section GO-5 2.1m
Payload Fairing Section GO-5 5.25m
Payload Fairing Cap GO-5
Payload Fairing Adapter GO-1-5
Payload Fairing Adapter GO-5-1
Circular Extended Unit
"Fluffy" Landing Strut
Mini Decoupler
New content:
added reach "Molniya" orbit contract;
added reach "Tundra" orbit contract;
added land on Mercury contract;
Part changes:
deprecated Payload Fairing 3x7
Changes:
the process of destroying a part by dragging it to the parts panel has been improved;
improved rocket action group visuals;
spacecraft will no longer create a ton of new spacecrafts if it was destroyed not in main simulation;
added sounds for rocket stages UI;
some parts of the game engine were updated to the newer version, which will help to migrate to the new Unity version in the future.
Fixes:
rocket receives incorrect center of mass and could loose control after decoupling parts in some cases;
if you remove maneuver in the middle of maneuvers chain, following manuvers can become invalid and just disappear, leaving orbit in the incorrect state;
visible seams on the surface of planets in some places;
[Control Center] sun light leaks into new buildings at summer;
sometimes separated parts are positioned incorrectly during rocket explosion;
[Assembly Shop] connection points are flickering;
splitted decoupler sometimes explode on deploy;
payload fairings explode on deploy without any reason;
forces not applied to the decoupled rocket from docking port;
context menu appears in the incorrect position when grounded spacecraft is selected;
contract button stays in hovered state when contract was canceled or completed and the new one was accepted;
game crashes, when the surface mod editor is loading and the left mouse button is pressed.
Today I want to talk about a big improvement for “Rocket Science” in upcoming v0.16.0 update and show some progress I’ve made.
Since the release of the game I’ve tried to find a way to improve Earth’s surface texturing. It was based on procedural technique: I can set up and configure up to 32 material layers for the particular planet. For any given point of the rendered planet, the game selects four materials from the provided list, mixes and blends them together and then displays the resulting color on screen. Which four materials will be selected is basically determined by four curves: temperature, humidity, slope and height.
This is how it looks like in the game engine
Each curve represents a frequency of occurrence of this material at a given parameter value. Parameters for the surface are set by planet geometry (it is very easy to calculate slope and height for it) and two grayscale maps: temperature and humidity.
All you need to do is just find or generate temperature and humidity maps, then select 32 materials, then setup 4 frequency curves for each of them and finally you get a good procedural texturing! Sounds easy, right? Well, initially I thought that too, but now I will tell you why I was wrong.
Firstly, how do you even select materials? I am not an artist nor a scientist. I have a very vague idea what colors would be right for Earth (even looking at the accurate surface color map I have). I’ve tried doing it based on eyeballing and gut feelings and the result was pretty poor.
Secondly, I’ve spent several weeks in 2020 searching for good and complete temperature and humidity maps for Earth, processing raw scientific data, which was spreaded between a hundred NASA websites (why the hell it can’t be in one place?). All I got were 8192x4096 temperature map and 4096x2048 precipitation map, which has extremely low resolution for the real planet scale. I am pretty sure, that higher resolution data exists, but I am too dumb to find it.
An example of color map for part of the world. Generated in 2020
The last and the worst thing is how to construct frequency curves for each material. You can, again, eyeball the result, but even a slight change of one curve in one material affects the frequency of appearance of all others! In the case of a small number of materials this is manageable. For example, the Moon has only 8 different materials and it looks okay, because it has a pretty narrow color palette. But 32 colors for Earth is a bare minimum.
Basically it was impossible to do it manually and get good results. That’s why adding a new planet was a great challenge. So, I needed to find a way to somehow automate this process. I thought about this problem in the shower, on a walk, before going to bed every day for several months. Until an idea finally came to me in April. It arose from how the Moon materials were praised by players. That’s funny, because I didn’t find a temperature map for the Moon. Also it has no water, so the humidity map can’t even exist. So I used a color map converted to grayscale and just random noise instead. And results were better that for Earth. The conclusion to this story was that you don’t need scientific data to make something look good.
So the idea was pretty simple and very hard at the same time:
get a surface color map (that exists for most planets in a huge resolutions);
generate a color palette by selecting 32 most common colors (there are a lot of ways, how it can be done, but I will talk about it some other time);
The first colors of Earth's palette
generate a grayscale frequency map for each selected color from color map, using some color distance metric;
Frequency map for the first color from the palette
use this map as a mask, apply it to the low resolution temperature/humidity and height maps and then generate a frequency curves for each color;
Temperature frequency curves for each color in the palette
get a range with highest values from temperature and humidity curves and then use them to encode a high resolution temperature and humidity map from a color map;
grab all the data and apply it as a configuration to the planet.
And this is basically it. All this process is parameterized too and I spent several days tweaking it, but just in two days after the algorithm was implemented, I’ve got much better results for Earth than before.
This colors is actually in the game
This is how it would look like
Before
After. It could be improved even more, but for this stage of the development it is enough
The great thing about this algorithm is that it is universal and can be used for any planet. I don’t know if the new planets will be included in the next update (it is a lot of work even with this huge time saver), but there is a pretty high chance that I will finish all inner planets and some asteroids this year.
Thank you for your attention and see you in the v0.16.0 update!
Fixed several issues found by @Gigantoherceg and @joshwells17gh. One of the bugs was very serious and some players could lose their progress because of it. Sorry about that.
Release notes v0.15.3
Fixes:
game did not save the player's progress when certain conditions were met;
engines explode on launch on some laptop configurations;
improved planet generation perfomance when rocket is on the launchpad and player quickly turns the camera;
missing localizations string and typos in some places.
First of all I want to say some words about recent events. The war that Russian government started in February is a catastrophe, a disgrace and a crime against humanity. Hundreds of innocent people have already died in this war and I see no end of this horror. I had friends from Ukraine and my grandmother was also from there. I know what is happening there and share the pain and grief of Ukrainian people. I'm practically depressed because there's no way It can be stopped by ordinary people right now. But it should be stopped at any cost.
On the other side the people of Russia have no future anymore. The Iron Curtain is almost here. Most foreign companies are leaving the country. All financial transactions with the west have virtually stopped. It is worth noting that the whole IT sector and game development cannot exist without a global market. So my profession is destroyed. The government ignores the voices of the opposition and people, who are against this war. It constantly arrests protesters and passes dozens of repressive laws. Today you can get up to three years in prison for the slogan "Stop the war" or Or if you call the events taking place a "war". And up to 15 years in prison if you will repost any video containing any information about it. Unfortunately, more that 50% of Russians are under heavy propaganda. They don’t know and don’t want to know what is happening, thus supporting this terrible “special operation”. Lastly there is a pretty high chance that Internet access here will be completely banned here in the coming months. It's all so crazy that I feel like it's just a nightmare and I need to wake up. But I should point out that none of these compare to the horrors of war.
So, how will this affect the development of the game? I am pretty sure that the February payment from Steam was the last one, seeing how events are unfolding. Because of this I will need to start looking for a job with the possibility of moving to another country. However I will continue to work on the game part-time to the best of my ability.
This is all I want to say, now let’s talk about changes.
New features and changes
I’ve renamed the game. Initially it was named after a Russian meme and it was a part of the game's marketing strategy and story. But it isn't funny anymore, especially after recent events, and it will only work against the game in the coming years. Also, the Russian space program will certainly come to an end in the near future. There will be no story about it anymore. So I decided to return the original name of the game — “Rocket Science''. The theme of the game will remain the same, but I will revise the concept of the story I had originally planned to make. I hope this will not upset players who have already purchased the game.
As for the update itself, I’ve added several things.
Contracts
Remember you had a non-interactive list of goals in the control center? Now it was replaced with a list of interactive contracts. You can accept up to three contracts and perform them in any order. The goals in this list are almost the same as before, but I will start reworking them and adding a new one in the following updates.
This is a really good starting point and a bit more content, than before
The contracts you've accepted will be displayed at the top of the screen
Note: accepted contracts and statistics collection will be paused if you start a tutorial at the same time.
Extended tutorial
I’ve added a section with extended training. You can perform interactive tutorials from it at any time. There is only one new tutorial right now. It requires a huge amount of work to add them, but it is very important for new players, who have never played KSP or similar games. So I will try to add at least one new tutorial each new update.
Statistics
Per-save stats are available in the control center now. I am tracking the most basic things like the number of launched spacecrafts, planets that were visited by the player and speed and distance records. This will be the basis for the future achievements. If you have any proposals about stats you want to see, please leave them below.
Note, that contracts, extended training and statistics were added into the control center UI.
Instrument panels
I’ve replaced the stats panel under Navball with separate instruments that can be hidden on a per spacecraft basis. All rockets still have all instruments for now, but they will be moved to separate rocket parts in the future update.
I am planning to add more functions to each instrument panel soon
Update includes a bunch of smaller changes and fixes as always. You can find them below. I planned to add more contracts and at least two more new tutorials in this update, but lost two weeks because of recent events. And I don't even know if I will have access to the internet next week. So, here is the update and I hope you will like it. Please report any bugs or issues if you'll find them.
Thank you and see you in the next one.
Release notes v0.15.0
Features:
added two new tabs into control center UI: "contracts" and "extended training";
added save stats;
reworked rocket stats UI during the flight;
reworked maneuver panel UI;
added target panel when rocket has target;
added 13 interactive contracts;
added one new extended training tutorial.
Changes:
game was renamed, now it called "Rocket Science";
vessels and probe cores will be always on top in the spacecraft list in the control center;
improved sprite resolution for some UI elements;
camera will get spacecraft and its parent body in focus when selecting spacecraft in the control center;
you can set spacecraft as target by clicking on it and holding ALT (previously it worked only when clicking on marker);
you can interrupt any tutorial at any moment;
added several more steps to the base tutorial, updated some steps to match the gane state.
Fixes:
when you open the map when inspecting any building in the spaceport, camera transition is bugged, also building UI stays on the screen;
sometimes exception appeared when opening and closing ruins UI several times;
sometimes navball markers are misaligned;
sometimes huge drop in perfomance appears on rocket launch.