1. Rocket Science
  2. News

Rocket Science News

June Developer Update



Hello everyone!

First of all, I have updated some screenshots on the store page, so you can go and check it out. It is still a work in progress, but I think, they better represent the current state of the game and show more gameplay, than the old ones. Also I am often asked about game trailer and I agree that it will describe the game better, than the thousands words. But good trailer requires well established gameplay, a lot of game polishing, and enough content to not disappoint anyone (and I still changing a lot of things in the game on a daily basis). So, I think I will be able to publish the trailer three weeks before the release in Early Access. And I hope it will happen in the 2019.

Now it’s time to talk about spaceport building in “How do you like it, Elon Musk?”. As I always said, this will be the main focus of the game. While this game mechanic is pretty easy to implement from the coding perspective, it is hard from the game design point of view, because there are too many ways of how you can approach this problem. You can also pretty easily stuck infinitely iterating over it and keep adding new systems to the point, when the game becomes unplayable complex mess of mechanics, numbers and buttons.



I should have come up with a set of rules and restrictions to avoid falling into this trap. And set them in stone after that, no matter how it will be difficult to follow this restrictions, because it is only way to find your way. So I will outline the set of found restrictions in the following paragraphs and we will deep dive into them in the next developer updates.

The story begins, when you get under control the ruins of the old Soviet spaceport. All you need is to transform it into the space center of the future. Unfortunately, the building permit was not given and you are not allowed to build anything on the surface. The only way to expand is to build deep into the Earth. Each building opens up new opportunities, complements existing ones or makes life easier. For example, laboratories allow researching new rocket parts and buildings more quickly, storages and workshops - to store and process items into resources, and generators - to produce electricity on your own.

Sounds familiar, right? The next step was to make this gameplay unique in its own way. I spent a lot of time thinking about it and came up with the first rule:

Nothing works without people.


Every building requires staff to operate. There are workers, engineers and scientists you can hire and assign to buildings. The more staff requirements fulfilled the more features the building have.



For example, each worker unlock more space to store items in the storage and when you will assign all four of them to the building, you will receive the ability to automate collecting or delivering resources to other production buildings. But don’t forget, you should pay every employee at the end of the month. And if you don’t, they will quit and will never return.

The second rule almost immediately arose from the staff system:

Every action takes time.


The game will be in real time. And the time will become the second main resource after money. Do you want deconstruct the Soviet ruins? It requires four days. Do you want to build a coal generator? The workers will finish it in a week. Of course you will be able to speed up time up to one day in a second. But you should think twice about this, because the end of the month is coming and you should not only pay salary, but taxes and bills too.

The third rule is the matter of my own taste. I hate routine and monotonous tasks in games if they lasts for entire game and not required by narrative. But in the right proportions they can set the tone of the game or make you feel current situation. It is just another tool that you should use carefully. So, the third rule is:

Every routine and monotonous task should be automatable.


For example, in the beginning of the game you will have few resources and money. And you should do some tasks manually such as moving resources from building to building, or throwing coal into the furnace of the coal generator. But when you’ll make some money you will be able to hire more staff to make it for you. But the option to do something manually will always exist, for example, if the hard times come, you can save some money by performing all this work by yourself. By the way, the flight plans system was born because of this rule.

The last rule is my preference too. I’m not a fan of linear upgrades systems in the games. Sometimes it’s ok, like in Action/RPG, where the upgrade trees exist just to make you feel the growth of your character. Or in Civilisation you feel how is you nation developing, thriving and moving from one era to the another. But I think that in some games it is a waste of content and potential. Why you should build, for example, the tower and then upgrade it ten times to do something useful with it? And very often there is even no situation, where you actually need the tower of level 5, so there are no interesting choices to make. The actual fun is delayed by meaningless actions to increase the playtime and create an illusion of depth.

So the fourth rule:

Avoid linear upgrades system as much as possible.


This the the hard one, because every game needs the progression system and linear progression is the easiest one and you almost instinctively want to add it into the game. But I think I solved it in theory and came up with nonlinear system with interesting choices and room for sinergy. And it called “Mechanisms system”. I hope I will tell you more about it in the next updates after I actually try to implement and play with it.

Now you know the four main pillars of the spaceport building. As always tell me what do you think and see you next time.

May Developer Update

Greetings!

Today I will talk about the rocket construction in “How do you like it, Elon Musk?”.

As I described in the January Developer Update I had three ideas how to develop this system. And I had one important requirement, that this system needs to be simple enough but at the same time giving the possibility to combine rocket parts in different ways. So after some experimenting and theorycrafting I decided to stay with the slot-based system. But the problem was that there were at least five different approaches to creation of this system with its own advantages and disadvantages!

Let's imagine that we have four classic rocket parts: command module, decoupler, fuel tank and liquid fuel engine.
Note: this and folowing images are from the prototyping process

I wanted the slot system to validate this set of rules:
  • you can attach as many fuel tanks to each other as you want;
  • you can not attach engine to command module or to decoupler;
  • you can not attach any of this parts on top of command module.

So the first thought was to restrict attachments by part type. For example, command module has two connection points: top and bottom.

Imagine that you can attach only utility parts on top and fuel tanks or coupling parts to bottom. Two problems immediately arise. The first one is how to visually tell the player what you may or may not to connect to each other. List of part types in the tooltip is not a good idea. And secondly, this system is too restrictive. What if I want to attach six small engines to fuel tank instead of one big engine? Or if only some of utility parts can be connected on top of command module?

After weeks of suffering in search of the best solution I finally came up with one. And as always, it seems very obvious when you found it. So, meet the two pillars of the attachment system:

Connector:


Connection slot:


Each part will have from one to seven connectors or slots arranged in a specific way. Attachments from the above rocket parts now look like:



You will ask: “How does it work?”. The answer is, that there is only one rule now. All connectors from rocket part should be placed into connection slots from another part. That’s basically all.


This system will provide me the ability to restrict some invalid part configurations. Also I can try to implement a bit more complex rocket physics now. At the same time it gives you a lot more freedom to construct different rockets from the same set of parts. For example, you can connect two or three medium engines (with two connectors) to the fuel tank above. Or from one to seven small engines with one connector!

Also part attachments can be easily represented on the part selection UI:

I also experimenting with the UI color scheme and you can see it here.

While this system is pretty simple from the player point of view, it is a nightmare from the implementation side and it will shift the game release further away. But I think it is totally worth it. Also I have several ideas how to further extend this system, without losing its basic simple rules.

So, what do you think about this system? I appreciate all feedback, always read it and take to consideration, so do not hesitate to comment.

Indie Battle



Hello everyone!

Just wanna share with you, that our game passed the first stage of "Indie Battle" contest from the Russian magazine Igromania and LG Electronics. And this is amazing! Despite I used the old screenshots in the pitch for the contest (the new ones are not ready yet), it got attention from the journalists. And now the industry experts and players will decide who wins.

I want to thank all of you for your interest in the game. Because of that I decided to apply and now gained +10 to productivity and chance to win. And it's time to get back to work.

P.S. Unfortunately, there is no English version of the contest web page, but here is the link if you are interested anyway.

April Developer Update



Hi there!

Another month have passed and it’s time to give you an idea about current work progress and state of the game in general. So, let’s get started. Note, that all screenshots listed in this post are presenting work in progress.

I can split this month of work into three main categories. The first one would be an assembling different game systems into the working game. I talked about these systems in the previous dev updates, they are: spaceport building, orbital mechanics, planet generation and everybody's favorite rockets and flight systems. Before, they existed separated from each other and you had basically four different mini-games without gameplay.

Now the spaceport is located in the right spot on the Earth and have a correct day-night cycle, Sun azimuth and altitude and also proper night skies with stars. This spot is taken from the longitude and latitude configured via file. Moreso it correctly calculates the altitude of this position on the planet and places the spaceport right on top of the planet’s surface. While this spot will be pre configured on the release (with the longitude and latitude of Vostochny Cosmodrome), it opens up opportunities for future features, like selecting the place of the spaceport on the start of the game or for user mods (It was interesting to place the spaceport on the Mount Everest even for me).

From the spaceport building named Control Center you can open the map of Solar System and look at all launched spacecrafts at this moment. You can select any spacecraft and load it in the flight mode. You can also launch the new rocket from here by selecting rocket draft and flight plan. And finally, you can design your own rocket in the Assembly Shop from the parts that you have.



There is nothing new here compared to other games, but the basic game loop was established and I can start to finally evolve other systems, like spaceport building and flight planning from there.

Speaking of which, I finished the work on the flight planning interface and it will fall into second category. So, what I would say about it? It was the hardest part of the game to develop at this moment. I spent almost half of month on this task (significantly more, than I planned). There were so many nuances and edge cases that I could not imagine. But it was completed (with some bugs of course).

This works as follows: you pause the time, select the rocket part, and its interface opens. You make changes and flight command is added to the timeline. Then you can resume the time and see how the command affects the state of the rocket. You can move forward and backward in time, add new commands and move or remove the existing ones how you would like. And flight planning system will recalculate the whole word state for you!



As I expected, this system turned out to be great for complex flight planning, where high accuracy is required, like docking with the space station. And it is also great for flights automatisation. But as I thought, it feels over complicated for simple things, for example, if you want just launch the rocket and fly around for fun. So I will rethink this part of the game and with the high chance will return the direct control over the rocket back to the player. Of course, you will not be able to turn the time back or even pause it outside of flight planning interface. Also all commands will be immediately applied to the rocket. So you will basically get the ability to control the rocket like in other games. I feel like more different ways to perform a flight are definitely better for the game. On the other hand, it will increase the required development time, but more on that later.

And the last but not least is the UI design. I feel like a lot of indie developers hate to work on UI for games, often postpone this task as long as possible and just slap some default grey panels and white buttons into the game and then push the release button. I am also not very enthusiastic about working on the UI (it contains a lot of repetitive tasks, that you did millions of times in the past), but more than that I hate such “made to fuck off” UI. So I spent the remaining part of the month to lay the groundwork for the best interface I could make. Nothing fantastic here, but it looks acceptable for me.

For those of you who read this dev update so far I prepared and published the Development Roadmap and you can find it here. You can get the basic idea about planned features and current work progress from it. As always, everything is subject to change, but as a time goes, it will happen less often.

The last thing I want to talk about is the release date. Initially it was scheduled for May 31. But I thought a lot about it and came to the conclusion that I don't want to release some smashed together and barely working systems and hope that it goes away. Even in the Early Access I want to give you some complete game experience and minimum three hours of gameplay. And one month left is not enough to reach this goal. So I decided to postpone the release date to July. The exact date will be announced later. But I hope I will manage to prepare the game trailer and update screenshots for the store page by the end of the May.

Thank you for your attention, don't forget to join to our community on Discord or follow me on Twitter or subscribe to my Youtube channel. See you next time.

March Developer Update



Hello, guys.

Today I want to talk about orbital mechanics and spacecraft physics in "How do you like it, Elon Musk?". Around the middle of December, I came to idea, that player will have no direct control over the spacecraft and all flights will be performed through the flight plans (you can read more about this in the January Developer Update). Before that I had an arcade prototype of flights in the 2.5D, like in the thousands of other games on mobile stores, where you can fly up as long as you have fuel. You should collect resources, repair kits, avoid obstacles and so on. In other words, it looked like this:



This was fun at the beginning, but as time goes by, and especially with the creation of planetary and atmospheric systems, it became more and more obvious, that this part of the game is out of place. Luckily, I got that idea about the flight plans during the discussion of this problem in the comments on the first article about the game. It sounded great, but I had several problems, that need to be solved.
  • Flight system should be moved to full 3D
  • Rocket assembly will became more complex due to p.1
  • Unity physics will not work for the flight planning interface and in general for the game.

While the first to points were solvable, I had no idea what to do with the last one. Let me explain, why it was the case. Here is the prototype of flight planning interface:



It is like timeline with commands. You will be able to scale the time, fast-forward it or move to any point on timeline and then add the command (thick vertical white lines). When the command reaches the white arrow, rocket will execute it. Command is an any action, that can be performed by rocket part: engine start/stop, turning the spacecraft or decoupling of empty fuel tank. The problem with standard physics in this case is that it state-dependent. That means if, for example, you need to jump to 10-th minute of the flight, the game have to simulate the whole world state for 10 minutes with the step of 0.02 seconds. As a result, the game will hang for several seconds even.on the most powerful computers, which was not acceptable.

So, I spent plenty of time searching and implementing the solution. And it called “Two-body solver” and this is basically the orbital mechanics for celestial bodies from the physics textbooks, where the state of all bodies became a function of time. Which was exactly what I needed for timeline. Moreover, I could use real orbital and body parameters for all planets and their satellites of our Solar System. I got it from NASA website, added to the game and you can see the result below.



This was great feeling, because the game suddenly acquired an additional value: I could set any date and see the real positions and rotations for all planets of Solar System. But what does it mean for gameplay? It means that the content of the game became almost infinitely expandable: in the far far future players will have an opportunity to fly around and explore not only Earth and Mars, but the whole Solar System! It sounds very bold, but it really has that potential. If we stop dreaming for a moment and go back to Early Access release, the whole system will be here, but initially you will be able to land only on Earth’s surface. The Moon will arrive in one of the next updates and then one by one will come other planets.

The only drawback of two-body solver is that it can not be used for accelerating bodies and you need to use the state-dependent integration solver in this case, which is a bit slow. That’s why you can't speed up the simulation more than four times in KSP, when the rocket is throttling. As I mentioned in the first dev update, I managed to partially solve this by simplifying simulation and calculating physics for the whole spacecraft at once, not for its parts. By doing that I got the maximum of x30 time warping without significant loss of accuracy when rocket engine was working. I think, it can be further improved in one of the following game updates.

That’s all for today. It is a bit short, but release is closer and closer and I have so much things to do. Now I have to work for at least seven hours a day, seven days a week, to complete the most critical systems for the game. But I am very inspired by seeing your interest and support. And if you interested to joining to our space loving community, you can do it by joining to our Discord channel. Thank you and see you in the next update.