1. Rocket Science
  2. News

Rocket Science News

Update v0.19.0 "Awakened Assembly" public beta

Greetings, rocket scientists!

I am considering this update as one of the most important since the maneuver planner release. Basically, the game has three pillars: spaceport management (not currently present), spacecraft assembly and space flights. And one of these pillars was heavily redesigned and improved for this update. You can read about the design decisions and the process of developing the improved spacecraft assembly in the previous dev post, in case you missed it. I, on the other hand, will briefly touch on this change and focus on other features and improvements, of which there are quite a few.

Note: this update is not compatible with your old save files, so you will need to start a new game. All old crafts will not work too, because of the changed rocket schema. I don’t like game save wipes, but this one was unavoidable.

Note 2: this update is in public beta. This means, that you need to swith your game to beta-builds branch, to access it.

[h2]Connector-slot unification[/h2]
There are no more distinctions between connectors and slots. In fact, all connectors were replaced by slots. The unified connection points are called sockets now. So every rocket part can be connected to any other one. But you still have to follow the attachment shape rules, as it was before.



The only drawback this improvement has is because the number of possible connections increased, it is harder to select the correct attachment user aimed for. But in time, I will improve that too.

[h2]Line sockets[/h2]
When I added planes to the game, I immediately understood that the current slot system is not very precise: you need very fine control over aero surfaces placement to get well balanced planes. Also it would be great to give players more freedom when placing rocket parts. As a result, meet the completely reworked line socket.

All rocket parts that have side connection variants received line sockets, so you have some vertical freedom there

You can attach another part at any point along this socket.

Perfectly balanced planes with no exploits are possble now

Other than that it functions exactly like other attachment shapes. It also supports two modes: continuous and discrete. The last one is basically how line attachments functioned before.

Discrete mode will be in demand for perfectionists

Speaking of attachments, you can filter rocket parts by socket shape.

Not all possbile shapes are present, because of limited space, but I will think how it can be solved

[h2]Blueprint assembly mode[/h2]
I’ve often been asked about this: why is there no vertical rocket assembly? My answer was because the game is based on the Soviet Union space program, and all the rockets were assembled horizontally there. Also the horizontal assembly shop is better fit into the side view of the spaceport. And it is better to assemble rocket engines this way. But I can agree that vertical assembly sometimes is more convenient, especially when every other game is doing it this way. Considering this and the big amount of players wanting vertical assembly, I came to the next solution.
There is a new “Blueprint mode” when you are in the assembly shop. When you switch to it, all the walls and props will disappear, as well as any limits to space, where you construct your spacecraft.


While in this mode, you can switch between vertical and horizontal rocket orientations and assemble your crafts the way you like. Note, the game is designed primarily for the horizontal mode, so some things could be a bit awkward in a vertical one. But it is better than not having a choice at all.

There are some differences in how camera works in different orientations, but you will probably discover it by yourself

[h2]Reworked time panel[/h2]
I am also slowly redesigning the game UI. You will get an improved time panel this time. It uses space more intelligently and holds more useful items than before. For example, it contains the current location and rocket or spacecraft name as well as some new buttons.

You can easily rename the current object in place by alt+clicking on it

[h2]Context menu for orbits[/h2]
You can click on orbit and get a context menu for it now. This allows, for example, to set the contract's orbit as a target! They can finally be completed now! Change of the year is here!



Previously, clicking on an active orbit of the current spacecraft would place the maneuver. Now you can place the maneuver using the context menu, or by holding alt and clicking on orbit. Since there is no context menu for planned trajectories, placing maneuvers on them is working like before.

[h2]Sharing your crafts via Steam Workshop[/h2]
This is my attempt to revive the Steam Workshop. I’ve added a new mod type called “Spacecraft mod”. When you create this mod you will enter the Assembly shop in the blueprint mode. You can create any number of crafts or subassemblies there. Or you can manually copy your crafts from the save folder to the mod one. This is not very convenient, but I will add the ability to export your rockets directly from the save to the created mod later.
Spacecrafts from this mod will be shared along all save files. You can toggle their visibility by clicking on the button above the rocket list.

When you are ready, you can publish your rockets into the workshop and see if other players will like them

[h2]What about new rocket parts?[/h2]
I am working on a batch of new rocket parts that can only be released together. They should be the part of this beta, but as it turned out, they need a bit more work. I will release them during the beta or right before full release of this update. Stay tuned, and don’t miss them, this will be something special.

As always, there are more in this update that didn’t get into this highlight. You have a chance to discover it by switching your game into the beta-builds branch. Full changelog will also be published on full release of the update.

Thanks for your attention and I am waiting for your feedback.

Dev Update: Assembly Rework Stage 2

Today I want to tell you about the rocket assembly improvements that are coming in v0.19.0 “Awakened Assembly” update. This update is expected to be released in beta towards the end of May, but you can already get the glimpse of some changes in it today.

[h2]The problem[/h2]
Old system based on connectors and slots was very restrictive. I’ve received many reports that it is difficult to work with over the lifetime of the game. And I agree with them. You spend most of the time not designing the rocket itself, but trying to find appropriate adapters to attach the part that you want. In some cases your choices are limited to a few rocket parts, like in case of attaching side boosters using radial decouplers, which lead to rockets that look very similar to each other.

It is also hard to design new rocket parts. Most of the time you need to add several part connection variants with each combination of slot and connector on the top and the bottom. If the part should support side attachments then you screwed. You need to add similar parts that have just a little different geometry in this case.

Working with the part connection variants could be annoying too, they are fine for radial attachments, but it is unnecessary complication and slowdown in other cases.

The last thing that bothered me was inconsistent rules because of docking ports. You can attach docking ports to each other, but they have no connectors or slots. You can say that this is just an exception, but I think that exceptions do not confirm the rule, they suggest that the rule is flawed.

[h2]Restrictions[/h2]
I can’t just throw the attachment system away and make it like in other games. Firstly, the game is built around them, physics calculation simplification, symmetry, coupling and decoupling, exploding parts and tons of other systems depend on attachments. Reworking all of that is basically writing a new game. Secondly, the game will lose part of its identity and it will make it too similar to other games. Also, while the free attachments are great, they basically work only in the radial case. You need some kind of fixed attachment points for top and bottom anyway, so making the rocket perfectly balanced would be even possible.

[h2]The solution[/h2]
So, I experimented a lot and found a solution that solves most of the described problems without rewriting the whole game. So, say goodbye to slots and connectors and meet sockets!

Wait, what?

So how do they work? This is basically unified connectors and slots. They obey the similar rules: sockets should match each other and sockets on one of the attachments should be completely filled out. But since there is no difference between them, you can attach any part to any part that follows the rule above!

You can finally attach fuel tanks radially without radial decouplers

You no longer need an adapter and could attach fuel tank directly to the command module

A lot more ways to connect parts are available now, that was not possible before

But how such sockets would work in reality you ask. I thought about that too.

Each socket has a core of a spicific shape. The core of one of the sockets will rotate 60 degrees on attachment. Then both cores will extend out of the socket halfway perfectly securing the connection. It also has a hole in the middle for transferring resources, signals or electricity between parts.

From left to right: socket, socket's core, two cores before attachment, two cores after attachment

Also this type of connection would be several times stronger in reality than the previous connector-slot one.

This is also consistent for docking ports: those brass parts are kinda sockets of a different shape that can be attached only to each other.

No more exceptions from rules

So, as you can see, I’ve implemented this new attachment system, and thanks to the previous assembly rework, it was not that hard. Moreover, I’ve spent most of the time applying the new system to every single rocket part (there are more than 100 of them already). A lot of rocket parts lost their attachment variants, because they no longer needed. Some parts were removed, because they were created only to bypass previous attachment restrictions. And some old parts were improved or reworked along the way.

So, will this solve every single problem in the rocket assembly? No, some problems are partially solved. For example, you still have less freedom compared to completely free attachments in other games. But the amount of different part combinations in the new system exponentially increased and it is much, much easier to work with.

Also,, because much more ways to attach parts are available, part could go wild trying to find appropriate attachment in some specific cases. But I am working on improving that too.

Also this is not a final stop – there is a lot of potential in the new system and many ways to improve it in the future. I also took the one step further and already implemented something that gives even more freedom to connect parts and will improve wing attachment to the planes a lot, but I will tell you about it on the release of v0.19.0 update in beta.

Stay tuned!

Rocket Science v0.18.2 is now LIVE!

Hello everyone!

It is finally time to release v0.18.2 "Connectivity" to the masses! Following a period of open beta testing where the invaluable help from you guys I now feel that it is ready for delivery. A huge thank you to everyone that's been participating in the open beta, providing me with feedback and bug reporting!

This update brings one major change — total refactoring of the rocket assembly system and a bunch of smaller fixes, part redisings and gameplay adjustments. You can read more about rocket assembly refactoring in the previous developer update. But I want to point out several things.
  1. Your payload fairing will be broken, because I’ve changed how their attachment points work under the hood. All you have to do is to remove old broken fairings and install the new ones.
  2. This is only the first stage of rocket assembly rework. The next update the connector-slot system will be heavily modified and I will have to revisit every single rocket part and adjust it accordingly. That’s why there aren't many new parts in this update — I just don’t want to do the same work twice. I hope that after this change making rocket parts become easier and we will see more of them in the future.
  3. I will tell you about rocket assembly refactoring stage 2 in the following dev update, when I will have more things to show. But I can already say that the next game version will not be compatible with the current saves, because it is not feasible to write a save migration for those changes.

Also I had to reset the game’s controls settings because I’ve changed a bunch of hotkeys. I need to add controls settings migration system, to avoid such resets, but unfortunately it needs at least a week of work to do it properly. Maybe some time in the future.

The full release notes are below. Please let me know if you will encounter any issues or bugs. See you next time.

Screenshot by BigManu2000

v0.18.2 release notes


[h3]Features:[/h3]
🔸 total refactoring of the rocket assembly system, it is based on simpler code, is more stable and feels much better to work with;
🔸 you can change selected connection during rocket assembly by using hotkeys, if there is more than one variant;
🔸 added attachment/detachment smoothing during rocket assembly;
🔸 added global thrust limiter to the navball, you can change it by holding ALT and dragging throttle indicator or using ALT+SHIFT / CTRL.

[h3]New rocket parts:[/h3]
🔸 Hexagonal Cargo I-beam;
🔸 Fibre Cargo Bay Cap.

[h3]Part changes:[/h3]
🔸 reworked "Dvutavr" Cargo Bay;
🔸 reworked "Fibre" Cargo Bay Section and "Fibre" Cargo Bay Middle Section;
🔸 increased size for Cargo Fairing 1.4m

[h3]Changes:[/h3]
🔸 changed how attachment points works on payload fairings (this will break the orientation of current fairings, you just need to reattach them);
🔸 symmetry rotation now works for parts, connected to one attachment;
🔸 you can change throttle by clicking on or dragging throttle indicator on the navball;
🔸 added rotation sound for not connected parts, if rotation step is above 1 degree;
🔸 removed dual_big socket and connector as they are not used anymore;
🔸 improved game launch time a bit.

[h3]Settings:[/h3]
🔸 two new hotkeys for assembly Next Connection . and Prev Connection ,
🔸 changed hide UI shortcut from ALT+Z to ALT+V;
🔸 changed hotkeys for throttle step increase and decrease;
🔸 added hotkeys for setting global thrust limiter.

[h3]Fixes:[/h3]
🔸 sun flares shine through the navball;
🔸 navball text changes brightness depending on camera exposure;
🔸 connecting two-connector part to heptahedron range slot is unstable and produces a lot of redundant sounds;
🔸 it is hard to select a slot during part attachment on high camera angles relative to rocket part;
🔸 wrong position for the part is assigned when connecting part with slots onto part with connectors;
🔸 sometimes parts stop to connect to each other;
🔸 various exceptions that happened during rocket assembly after which you need to reset the rocket;
🔸 collider offset calculations are missing for some parts during the bake when this should not be the case;
🔸 game sometimes crash on starting loading screen;
🔸 rare crash on game start.

Rocket Assembly Rework Stage 1 + v0.18 Beta

So, it finally happened. I started reworking the weakest part of the game – the rocket assembly. I mentioned several times earlier that this system was developed several months before the game release in EA, and its core hasn't changed much since that time, despite the addition of symmetry tools, parts rotation, force overlays and rocket subassemblies. It was badly written, had a lot of code duplication, hacks and workarounds. Because of that this system has been very hard to improve. Every change, even a small one, resulted in a bunch of bugs that were difficult to track down and debug. Also it never felt smooth. The slot-connector system has its own problems too but I will talk about them later.

Let’s talk about why it was badly implemented. The answer is simple: it was a pretty complex task and my experience was not enough to design it well. I chose the wrong way to do it. I based it on Unity’s physics system. I assigned each attachment a collider and when connector and slot colliders touch each other, “trigger” event happens. Which means that we need to process this pair of attachments and check if they can be connected to each other. If yes, we need to position the current rocket part relative to the parent one. If not, we needed to check the next “trigger” event if that happened in this frame. The second way to find the attachment pair was to cast the ray from the camera through all its attachments and check if it intersects with any other one. And then repeat the positioning steps.

There are two types of colliders: cubes for slot attachments and sphere for connector ones

There are a lot of problems with this approach. So the attachment colliders are placed on the rocket part, but they load asynchronously like most entities in the game. So, your rocket assembly logic starts to depend on loading timings, which heavily depend on a player’s computer. You can see a “perfectly working“ system on your machine and then get dozens of bug reports that are almost impossible to reproduce.

The second issue is that all attachment pairs, that the system finds, are isolated from each other. So it can report a part that was found during the “trigger” event, but there is actually a better one, but you can identify it by using a raycast only.

Lastly, because attachment colliders are bound to visual representation of the rocket part, there was a lot of code duplication for part position logic. One for parts alignment during the flight and the other one during rocket assembly. The amount of bugs that were produced, because I’ve changed logic in one place and forgot to do it in the other one is countless.

So, I rewrote this system almost from scratch. I have left colliders to describe attachment areas, but they are used only in the “edit” time. When the rocket part is backed on the game start, all info about attachment shape, position and connection points is collected and saved in the mathematical model of the part. Then I actually reconstruct all attachment positions and orientations using this info during rocket assembly without using a physics engine at all. Because I am at full control, I can easily make a good debug overview of what is currently happening.

The debug overview of all attachments. It looks like at the previous screenshot, but it doesn't use Unity physics engine

When the player is moving the part I collect all possible attachment pairs that could happen in this frame using a bunch of different methods: signed distance fields, attachment raycasts, cursor raycasts, reversed raycasts. Then I check if each pair is compatible with each other and remove duplicated ones. Then for each pair I find all possible connection positions. Lastly, I assign a bunch of weights for different metrics that could help me to find the best connection from all possible ones. There are a bunch of metrics that I am using, like distance between attachments, distance between attachment and camera, part rotation angle and even information on whether the part will overlap with others if placed in one position or another. Using these weighted metrics I then choose the best attachment pair and connection point.

I can also visually debug selected attachments

This change not only produces a more enjoyable experience while assembling the rocket, but the ability to choose another connection if you don’t like this one without moving the mouse.

You can change choosed connection by using , and . hotkeys

You may think, that the rotation is happening here, but the engine is actuially changing set of the slots it is connected to

I removed all code duplication between flight and assembly during rework. Thanks to this there are actually 2 times less code in this system, than before! I also added some tweening to make the whole process feel smoother.

You can see, that attachment motion is smoothed even on a 20 fps gif

Also some old bugs are easy to fix now.

Previously, symmetry rotation not worked when all symmetric parts were connected to one attachment

But this is only the first stage of the rocket assembly rework. I agree with a lot of reports that the current connector-slot system is very restrictive and greatly limits the amount of possible rockets that you can build using it. But I can't just throw it away and make something similar to KSP, for example, because too many things are based on it and I will need to basically rewrite half of the game. Also the game will become less unique because of that.

I made some prototypes and I think I found a way to dramatically improve it without radical decisions. But implementing this is still a huge amount of work and I don't want you to wait another five months until the next update. So I decided to release what is ready to the public beta. I think it is already a big improvement from what was done before, but I need your feedback. As always, you can find all these changes in the beta-builds branch.

As for what changes are awaiting the rocket assembly I will tell you in the next dev update. See you there soon.

P.S. No release notes this time, I will publish them when the update will get out of beta.

Update v0.17.3 "Within The Horizon" is out of Beta!

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!

P.S. If you prefer playing Rocket Science localized in German, take a look at this mod, released recently:
https://steamcommunity.com/sharedfiles/filedetails/?id=2902755770



[h2]Release notes for patches v0.17.2-v0.17.3[/h2]

[h3]Features:[/h3]
  • added new "Adnanced Rocket Assembly" tutorial;

[h3]New rocket parts:[/h3]
  • Crackle Decoupler;
  • two new fuel tanks 0.35m and 0.55m diameter;
  • new dual socket reaction wheel.

[h3]Changes:[/h3]
  • greatly improved search of approach nodes and increased search distance around target body, especially for small celestial bodies;
  • reworked geometry of all 2.5m parts, so no more artefacts on rotation;
  • fixed visible seams on 2.5m fuel tank caps;
  • improved materials on all 2.5m fuel tanks;
  • tanks no longer auto rotate on connecting;
  • slightly improved automatic stage builder.

[h3]Fixes:[/h3]

  • error when creating subassembly from whole rocket, then placing it back and then removing any part from it;
  • newly created subassembly could be unexpectidly edited when used during another rocket assembly;
  • if subassembly was placed into new rocket and then any part was removed, the whole subassembly disappears;
  • game sometimes stuck if you interrupt tutorial;
  • rectangle socket now prevents selecting middle slot on a heptahedron socket;
  • some part names are not localized.


[h2]Full release notes v0.17.3[/h2]

[h3]Features:[/h3]
  • 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;
  • added new "Adnanced Rocket Assembly" tutorial;

[h3]New rocket parts:[/h3]
  • added around 25 new rocket parts, most of them are bigger fuel tanks and parts for planes;

[h3]Part changes:[/h3]
  • 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%.

[h3]Changes:[/h3]
  • 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;
  • [Assembly] rewroked craft overlays buttons (borderless buttons);
  • [Assembly] chaning category will automatically close part configuration;
  • greatly improved search of approach nodes and increased search distance around target body, especially for small celestial bodies;
  • reworked geometry of all 2.5m parts, so no more artefacts on rotation;
  • fixed visible seams on 2.5m fuel tank caps;
  • improved materials on all 2.5m fuel tanks;
  • tanks no longer auto rotate on connecting;
  • slightly improved automatic stage builder.

[h3]Settings:[/h3]

  • new hotkey for brakes (B);
  • new hotkeys for wheels steering (A/D);
  • new hotkey for mirror symmetry (M);
  • added separate marker size setting for celestial markers;
  • added scale rendering settings to the video settings;
  • sometimes the rocket part tooltip does not show connections.

[h3]Fixes:[/h3]

  • unnececary drag calculations performed when spacecraft is over planet with no atmosphere;
  • parts inside the payload fairings produce drag;
  • some payload fairing sections produce additional drag;
  • spacecrafts a bit less responsive when rotating them clockwise;
  • controls setting have no setting for spacecraft systems (ligts, landing gear, etc)
  • drag data calculated incorrectly for a part if it has more than one material;
  • sun flares are visible through the planet;
  • exception, when using symmetry on rcs_mounting_point_1;
  • sometimes rocket could start behave incorrectly when some parts were destroyed or removed;
  • custom Surface mod is not saving if already modified surface was modified;
  • reduced window flickering in the assembly shop;
  • center of mass and root part markers have wrong position after the whole rocket was moved in the assembly.
  • when reattaching part from socket to socket within the same part, game sometimes doesn't register place click;
  • engines got negative thrust on Venus;
  • some ambient and engine sounds not respect audio volume;
  • error when creating subassembly from whole rocket, then placing it back and then removing any part from it;
  • newly created subassembly could be unexpectidly edited when used during another rocket assembly;
  • if subassembly was placed into new rocket and then any part was removed, the whole subassembly disappears;
  • game sometimes stuck if you interrupt tutorial;
  • rectangle socket now prevents selecting middle slot on a heptahedron socket;
  • some part names are not localized.