Kerbal Space Dev

Month

January 2012

5 posts

The Story of KSP -- KSP 0.2

So, continuing our revisit of all the old versions, here is KSP v0.2:

image

As you can see, quite a lot changed on this update. Some things for the better, others, well, everything was a ‘placeholder’ back then.

This version saw the first appearance of a game system to control rocket staging. You can see it on the bottom-right corner there. It was a very crude, very placeholder-ish thing that created a blue tab for each stage it detected on the ship. You could move stages up and down, but it wouldn’t affect the sequence. There was also a ‘Launch’ stage, that was there until you hit space for the first time. There were a LOT of bugs on this system, but it worked, kinda.

This version also got a movable camera on Flight Mode, so you could pan around and see to the sides, but the flying was still restricted to the XY plane. You couldn’t go forwards or backwards, only up or down, left or right.

image

But the main goal with this update was to create a spherical gravity system. One that allowed the ship to orbit a planet. On most games, the world is a flat place, and gravity pulls you downwards. But here, the world was about to become round, and ‘downwards’ would become a very relative term.

But modifying gravity is, in itself, quite straightforward enough, you just apply an acceleration to the ship in the direction of the planet. But it was around here that we had our first encounter with floating-point inaccuracy issues, a set of problems that would pose a challenge to development from then on.

The floating-point problem, or ‘distance shakes’, is caused by the limited precision of the numbers the game engine uses. Every game can potentially suffer from this, but most games restrict the playing area to a human-sized playfield, and they’ll never see these problems.

What happens is this: Let’s think about numbers representing distances. For distances near 0m, say about 100, these numbers are precise enough to tell the difference between 100.0000 and 100.0001 meters quite accurately. But what happens if you shift (or float) that decimal point towards the right, to get a 100,000.0 and a 100,000.1? as you can see, there is no more room for extra decimal cases, because the limited single-precision ‘float’ will only hold so much.

This is a rather crude example, because the way floats work internally is quite a lot more complex and boring, but it does paint the picture: At distances like 1,000,000.0m, the finest detail the floating point can tell apart is on the tens of centimeters scale. That means it can no longer know what happened in the space between that, and the result is a visible shaking in the game.

Now, space is big, mind-bogglingly big. A million meters is peanuts to space, so you can imagine, after a million kilometers, just how much precision we would be losing. Your ship’s parts could be anywhere inside a 100m-wide radius. 

image

Floating-point imprecision affects everything. Not just positions. If you make an object too big, it will start breaking the game engine, that can’t render it properly, can’t keep it’s textures mapped well enough, lots of issues. 

But we still needed a spherical gravity system here. And the game’s project called for a planet 1/10th the radius of Earth. That was our goal at least, and we were forced to compromise. The very first version of Kerbin was only 20km big, and it was nothing more than a very big sphere.

It was enough though, to allow us to build a spherical gravity system, and to enable orbiting. We even set down a smaller sphere some way away, to be a moon, and test out transfer flights and things like that.

Around this time, we felt a very serious need for some notion of what was going on while you were flying, and we had no UI to the game yet. So I quickly rigged up a very crude, barely useful panel which showed your orbital trajectory as you went along. It’s that ghastly black square you see at the top-left corner there. Note that there is no indication of the planet’s surface. The line would turn red where it went below the surface, and that was it.

This helped with visualizing the ship’s trajectory, but the ship was doing other things internally as well, and we couldn’t see if a tank was about to run out of fuel, for instance.

We now needed a proper way to display game information, and that’s what we set out to do on the next update.

Cheers

Jan 22, 20125 notes
The Story of KSP -- KSP 0.1

Sorry about the delay, what was supposed to have been a nice, normal work week turned into a mad crunch here.

Anyhow, continuing with our “KSP Legacy Tour”, I give you version 0.1:

image

In this one, we already had a few placeholder models in place, and a placeholder terrain as well. At this point here, there was no rocket construction yet. This rocket was assembled in the game scene, to test the part mechanics and code.

image

Also, the game was supposed to be 2D back then. Well, the idea was that the game world and assets would be 3D, but flight would be locked down to the horizontal and vertical.

It was around this time then, that we added in the first version of the VAB:

image

Note that the background terrain here is very much the same as the screenshots above. That is because this is the same scene. Instead of having separate scenes for the VAB and for flight, we first tried to build it all in a single scene that had these two modes. Needless to say, it was a nightmare of spaghetti code and poor practices and we were chasing bugs for days.

This VAB-mode also had the first implementation of a user-controlled camera. You could rotate it around the building area, and pan it up and down, and that was about it.

One of the weirder things about these versions is that, while the VAB camera was able to move in 3D, construction was limited to the same 2D plane the game was meant to be locked to.

Now, before you start thinking the terrain back then looked better than what we have now, here’s why:

image

Here you can see what happens. The terrain was nothing but a flat plane, set into a somewhat larger plane of water. If you flew too far to either side, you’d miss the ground coming back and never stop falling.

It was about time then, that we started worrying about making a round world to orbit around.

But that’s a story for another version, and another post ;)

Cheers

Jan 21, 20126 notes
One Year of KSP!

On January 17th, 2011, KSP was officially started. The project was already written at that point, but that was the day the first assets were produced, and the first lines of code set down.

I think completing a full year of KSP Development is something worth celebrating, and also, we should take a moment and look back on how far KSP has come in this time.

I give you then, a screenshot of the very first build of the game:

image

This here was the very first test prototype we did, just to prove the concept was possible. There were no controls, no camera work. A few static values had been set to make the rocket go up, and the joints (there were joints already) carefully set so that they would shear off while the rocket was still in the frame.

The ground you see was just a green plane, and the sky is a default Unity skybox.

Tomorrow I’ll post another screenshot, of KSP v0.1. Things were starting to shape up a little more after a couple of weeks of work, but that I’ll tell tomorrow.

Until then, happy launching!

Cheers

Jan 17, 20125 notes
KSP 0.13.1 Revision Update is Up!

Hi,

Just wanted to announce to everyone, the KSP 0.13.1 Revision Update is up and available at the Downloads section.

This was just a small update we did to have the demo compiled in the recently-released Unity 3.5 engine, and future-proof the demo against things we will add later. We also fixed a couple of bugs from the previous release.

The engine update has already been reported to have made a significant improvement in performance. Its new multithreaded rendering support and better memory management should mean a much smoother experience in KSP.

The full changelog for this update can be seen here.

Cheers

Jan 11, 20125 notes
We're Back!

Hi Everyone!

Just wanted to let everyone know we devs are all back from our much-needed holiday break.

Also, this is a good place to announce our plans for the very near future:

As most of you know, the 0.13 release was the last free demo update. From 0.14 onwards, you’ll need to order the game to get the latest version. 0.13 will remain forever available as a demo though.

That’s probably old news, but I want to announce that there will be a 0.13.1 update coming up soon, which will also be available for free, and will take the place of 0.13 as the latest demo release. 

This release will be a small update, just so we can have a demo compiled with the recently-released 3.5 version of Unity, which adds a heap of cool new features and does speed up the game quite a bit, and some tweaks to future-proof the demo against things we will add later.

For the main feature on the 0.14 update, we can’t really make any official announcements yet, but we already have a more or less solid notion of what it will be. We will tell you more about it when we announce the features list for 0.14.

Well, I wish everyone a very good year!

Cheers

Jan 3, 201218 notes
Next page →
2011 2012
  • January 5
  • February 2
  • March 4
  • April 1
  • May 2
  • June
  • July
  • August
  • September
  • October
  • November
  • December
2011 2012
  • January
  • February
  • March
  • April
  • May
  • June 2
  • July 19
  • August 4
  • September 2
  • October 2
  • November 1
  • December 1