Play it yourself at https://nathandimmer.itch.io/orbital-overload!
We were inspired to build this project by SpaceX’s recent launch of over 400 new Starlink communications satellites, and their plans to launch as many as 12,000 altogether. This many new satellites creates tremendous potential risks not only to themselves, but to everything else already in orbit.
Pretty much everything orbiting the Earth, from more than 2000 communication and research satellites, to manned spacecraft like the International Space Station all operate in a band called Low Earth Orbit. Unfortunately, they also share this region of space with more than 600,000 pieces of debris consisting of non-functioning satellites, spent rocket boosters, wreckage from anti-satellite weapon tests, and a huge assortment of other loose parts and broken pieces.
This debris can collide with orbiting satellites, creating even more debris. NASA scientist Donald Kessler wrote about the possibility of these collisions having a cascading effect (called the “Kessler Syndrome”) in which so much debris is created that Low Earth Orbit becomes virtually unusable.
Through playing Orbital Overload, we hope you experienced how quickly the Kessler Syndrome can get out of hand, reducing our ability to launch new satellites, and destroying our existing ones. This issue is pressing, and with the rise of privatized space travel, will only get worse.
What it does
Orbital Overload is a simulation game designed to show how the Kessler Syndrome is created, and the limited options we currently have to reduce the risks of them in LEO. Players launch satellites into orbit, choosing the altitudes and orbital spacings of each in order to maximize the total number of functioning satellites. When collisions occur, debris is created which can in turn cause more collisions. To try minimizing the risks and avoid future collisions, players can also choose individual satellites and adjust their orbits.
How we built it
We built Orbital Overload in Godot, due to it’s great physics engine, and due to it being open source. All of the code is written in GDScript, and all of the graphics were done in Photoshop.
Challenges we ran into
This was our first ever physics based simulation, and we spent the first 12 hours working with the Godot physics engine to simulate elliptical orbits, and when that didn’t work, we tried writing our own. This took a lot of time and manpower, and created quite a sleepless hackathon, but we are happy with what we accomplished.
After we made the physics engine, however, we realized that accurately modeling the earth and orbits, that it didn’t make for compelling game play. It was too difficult as a player to follow what was happening with the orbits, and manipulating elliptical orbits was unintuitive. We ended up slowing everything down, adding a pause feature, and switching to circular orbits. However, as sad as it makes us that our physics engine is mostly languishing, the end game is better due to the changes.
Accomplishments that we're proud of
We're really proud of the physics we are modeling, and that we finished the game at all! With such a short time frame to work in, especially after the physics engine, we're incredibly proud of the level of polish on the finished project.
This was also Andrew's first time working with Godot, and only Nathan's second, so the fact that we got the results we did with the level of experience that we have is definitely an accomplishment.
What we learned
We learned a lot about orbital motion, and Kepler's Laws, and a lot about Godot. This was our first time working with a Finite State machine, and with animation using sprite sheets.
What's next for Orbital Overload
In the future, we want to add a tutorial explaining the game, and a screen at the end talking more about the Kessler Syndrome, what solutions are currently being tried, and what players can do to help with the issue.