Stable Orbit: It Works!

The bits which are important to read are in bold. Please read those if you are playing Stable Orbit. Everything else you can read if you want. I've done a lot better this time than last. The game does not cause you physical pain to play! I actually find it quite enjoyable to play. Last time sound didn't make it but this time I had time to add some in which is quite good considering my experience level with sound: zero.

I had two bugs on the deadline, which I fixed today so I've uploaded two versions. The two bug fixes are the only difference between the two versions. The bugs in the first version are:

-Lesser bug: The "Simulation speed increased" and "Fast-forwarding time" messages were displayed 60 (2.4 seconds) frames too early due to a fix I did to make them slightly after the beginning. I increased this, exaggerating the negative effect until it was 50 frames (2 seconds) too early. I changed this to be 10 frames (0.4 seconds) after. This is merely aesthetic: it makes no changes to actual gameplay.

-Greater bug: If you exit the game with ESC you gained 1000 bonus score. Considering that any score greater than 3570 is impossible, this is quite major. It is a side effect of the 1000 point bonus you get for completing the game.

These are the only changes that were made to the game after the deadline.

What have I learned? Check that fixes work and allow more time for testing.

The entire code for the game is just 588 lines (with fixes). Since a Terraria-style block game (very underdeveloped, more a plaything than a game at the moment) I've made is only 635 lines for the actual game but its world generator is 1035 I don't think (hope) lines of code is too telling about how good a game is. Additionally, I have a pong clone, Bouncy, that is 1477 lines. I think that it is more true to say that code lines ∝ number of times CTRL-V is pressed than code lines ∝ game goodness.

I am very pleased with the overall game at the end. The code for getting the collision point between the two bodies is wonderful. Here it is in case anybody else wants to use it in their future projects: location = [(a.position[0] * b.size + b.position[0] * a.size) / (a.size + b.size), (a.position[1] * b.size + b.position[1] * a.size) / (a.size + b.size)] a and b are the two objects. The graphics of the game, while simple, I think look nice. My favourite part of the graphics is the procedural starry background. I had a Background.png but I ditched it because I wanted to make the background scrollable. If you're wondering what the game is doing while it's initially loading it is generating the background. I am also pleased with the scientific accuracy and mathmaticalness of the game. I wish that Phobos & Deimos were created at 150 times their real size. That is how big I had to make them in the game. The orbits are quite realistic and everything attracts everything as it should. The time speed of the game is 2.5 days per second at normal speed and 50 days per second at hyper-speed ("Simulation speed increased" or "Fast-forwarding time"). This means that each simulation lasts 600 days, or almost one year and 8 months. This means that the entire game is set over 16 years, 5 months and 4 days excluding thinking, planning and simulation time.

My primary worry is that Stable Orbit will be too hard. It's a hard game. That's intentional. However, as the developer you naturally become very good at the game. I can beat anyone you ask at Bouncy: my brain has subconsciously memorised the way the ball goes after every bounce. If you find it too hard, read the tips in the README. Another worry is that the scrolling text gets annoying. It does take quite a long time to pass. You can change the text's scrolling speed (in pixels per second) by adjusting the variable "TDFPS" in line 20 of main.py

The game is only 3.9 MiB, over 75% of which is the background music (It was about 100 MiB before I reduced the image size for the planets and moons). I had some problems with it on Windows. It wouldn't play the MP3 file and came up with a confusing message about C++. I had to convert it to an OGG in order for it to play.

What would I like to do next time? My own sound. FreeSound.org is great, as is Kevin MacLeod's incompetech.com, but when you use somebody else's sound/music I think it seems to make the game less your own. I guess I could have recorded myself saying 'tk' for the menu clicking sound but it wouldn't have sounded that good anyway.

If you look at the code, watch out! It is a mass of tangled logic with may redundant lines and no comments.

A note: Venus's gravity is slightly lower than Earth's. Mars's is much lower.