1. Rocket Science
  2. News

Rocket Science News

Update v0.19.6 "Awakened Assembly" is out of Beta!

Three weeks of beta testing have passed and I believe that the v0.19.6Awakened Assembly” update is ready for the wider audience. You can read about all major changes in the previous post. But I have prepared for you a few changes that I would like to point out.

[h3]Rovers[/h3]
As you’ve probably seen on the update cover, the game now supports rovers. I would say that this is an “experimental” feature, because I had very little time to properly test them. Also there is no sounds/effects assigned to wheels, because it would take far more time, than I had during the beta testing. But they work (with some edge cases) and open up the whole new exploration axis for the game. There are probably not enough rocket parts to deliver them onto other planets right now, but you can try to do that.

Beautiful view of the space center from a place I've never been before

There aren't many parts to install on rover at this time. I am aware of that and this will solve it in one of the future updates, which will bring instruments into the game

[h3]Relaunch last selected rocket[/h3]
Yes, this is happening! You can relaunch the last launched (or selected in the control center) rocket at any moment during the flight. You no longer need to return to the assembly shop to press that launch button. I think this is the second most anticipated feature after vertical rocket assembly. So, enjoy!

Just press the button on the time panel and you are ready to go

[h3]New rocket parts[/h3]
Most of them were made to support rovers, but there are some that were made to add variety to the resulting spacecrafts.

"Lunohod-2" Chassis

"Lubopytstvo" Chassis

L1 Twin Interplanetary Wheel

L1 Interplanetary Wheel

K2 Interplanetary Wheel

Solar Panel SIGO-249

Central Mini Rack

Angled Extension Rack

"SOHO" Probe Core

"Mgnovenie" Probe Core

Multi-mission RITEG

"Om" Illuminating Device

"Krater-B08-RM" Monopropellant Thruster

"Delta" Adapter

There are a lot of changes made to the game during this four month cycle, so I expect that not all bugs were hunted down. So if you encounter something strange, please report it to our discord or on the steam forums and I will try to fix it as soon as possible.

Thank you for playing and see you in the next one!


[h2]v0.19.6 release notes[/h2]

PREVIOUS SAVES ARE NOT COMPATIBLE WITH THIS VERSION OF THE GAME.
If you want to continue plaing your save or you have problems with this update, please switch to v0.18.x branch.

[h3]Features:[/h3]
🔸 added parts for rovers;
🔸 slots and connectors on part attachments unified into one type, called sockets;
🔸 added blueprint mode for assembly shop, where you have no limits in rocket size;
🔸 added vertical assembly option when in blueprint mode;
🔸 added grid for rocket assembly and ability to toggle it on and off;
🔸 line socket used in planes was reworked and supports attachment at any point on the line;
🔸 line socket is used for side connections for most parts now;
🔸 added socket type filter for rocket parts in the assembly shop;
🔸 added star and butterfly sockets;
🔸 wheels can now have electric motors;
🔸 time panel was reworked and includes more info, pause buttons and map / blueprint toggle depending on the context;
🔸 added "Relaunch last selected flight" button to the time panel;
🔸 context menu now works for orbits on Solar system map;
🔸 you can set as target orbits from contracts now;
🔸 you can share your rockets via Steam workshop using rocket mods;
🔸 added rover "launch facility".

[h3]New rocket parts:[/h3]
🔸 "Lunohod-2" Chassis;
🔸 "Lubopytstvo" Chassis;
🔸 L1 Twin Interplanetary Wheel;
🔸 L1 Interplanetary Wheel;
🔸 K2 Interplanetary Wheel;
🔸 Solar Panel SIGO-249;
🔸 Central Mini Rack;
🔸 Angled Extension Rack;
🔸 "SOHO" Probe Core;
🔸 "Mgnovenie" Probe Core;
🔸 Multi-mission RITEG;
🔸 "Om" Illuminating Device;
🔸 "Krater-B08-RM" Monopropellant Thruster;
🔸 "Delta" Adapter.

[h3]New content:[/h3]
🔸 added "Land on Venus" contract;
🔸 added "Reach SSO orbit" contract.

[h3]Part changes:[/h3]
🔸 most part variants that had a difference only in slot / connector in the attachment was removed due to sockets rework;
🔸 all deprecated rocket parts in previous updates had been removed;
🔸 some parts with dual and triple side sockets got line sockets instead;
🔸 increased range for pressure for the default parachute, so it could be used in the Martian atmosphere;
🔸 improved visuals for RS-05 Steerable Landing Gear suspension;
🔸 reduced power consumption for all probe cores;
🔸 reduced power production for all solar panels by 30%, to make them more realistic;
🔸 made "Sputnik-2" Probe Core smaller and better looking.

[h3]Changes:[/h3]
🔸 rocket schema holds only state data now, as a result we get smaller rocket files and no need to write a migration, when changing part configs;
🔸 you can rename spacecrafts not only from control center, but also during the flight, by ALT+clicking on the name of the spacecraft on the time panel;
🔸 you can no longer remove spacecraft in the control center by right-clicking on it, you need to use Delete button;
🔸 renaming rocket during editing is changed to alt+left click to be consistent to the rest of the game;
🔸 part attachment movement smoothed when reattaching them from rocket part to rocket part;
🔸 symmetry now checks on reattach/detach, that the symmetric part have not only the same connection shape, but also the same type;
🔸 symmetry now properly handles all cases, when rocket part is reattached within one connection;
🔸 you can flip rocket part during rocket assembly using a hotkey now;
🔸 docking ports are represented with their own socket type now and have respective image;
🔸 reworked connection icons in the rocket part tooltip;
🔸 all engines, that previously have no throttle limits, received lower 5% throttle bound;
🔸 renamed game data folder from HDYLIEM to Rocket Science;
🔸 increased the distance you can zoom out the camera in the assembly shop;
🔸 camera no longer focus on attached part in the assembly, it moves along rocket's central axis instead.

[h3]Settings:[/h3]
🔸added B shortcut, that will switch blueprint assembly mode;
🔸added forward W and backward S buttons to control wheel motors;
🔸added F shortcut, to quickly flip the rocket part during the assembly.

[h3]Fixes:[/h3]
🔸 you can't focus camera on not attached parts to the rocket using alt + click, while in assembly shop;
🔸 rocket part appears in the middle of assembly shop for a few frames when using symmetry;
🔸 rectangle socket sometimes is not connecting to hexagon socket;
🔸 you can't reattach already attached part to the same parent connection but different self connection;
🔸 target periapsis goal is set to 0 in the velocity vectors tutorial UI;
🔸 some rocket parts still flip when connecting top of the part to the bottom of the another one;
🔸 payload adapters are broken and don't handle attachments;
🔸 scene where you are making a custom navball is broken;
🔸 you can reattach part to a "hidden one" when symmetry is enabled.
🔸 when reattaching part from symmetric attachment to the non-symmetric one, detach symmetry doesn't work;
🔸 when reattaching part from non-symmetric to the symmetric one, attach symmetry doesn't work;
🔸 assembly shop become broken if you are stop editing the rocket and rocket part is still moving by the cursor.
🔸 rocket part could constantly switch between two attachments on alignment when user doesn't move their mouse;
🔸 crash when removing attaching part using Delete key, or when part was very close to the parts panel in some specific cases.

[h3]Known issues:[/h3]
🔸 Rocket sometimes is not generating lift, when using relaunch button and there was a previous rocket on it.

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.