Seismic Planet was developed for the Two Button Game Jam over 10 days. It was developed as a solo project where the goal was for a game to be playable using only two buttons that went along with the theme of "Crumble".
For Seismic Planet, the two new things I set out to learn were breaking objects apart and simulating gravity around a spherical object.
Created offset movement, allowing players to rotate around every part of the planet's surface
Simulated gravity around a sphere
Used an area of effect to trigger events
The movement in Seismic Planet was probably the most challenging design problem I faced. Due to the game jam limitations, I could only give players two buttons to rotate around the planet. I also had to deal with the buildings on the planet's surface, so I put the camera on an arm coming from the center of the planet object and rotated the camera. This way no the surface and the buildings would not need to move. The rotation of the camera was then set to be not a perfect 90 degrees. This allowed the player to have a more up and down angle instead of just left and right, so all of the planet's surface could be reached with only two buttons.
To create the collapsing effect, I used Kenney's Modular Buildings asset pack to create the buildings from pieces in Blender. This allowed me to have two separate building assets, one solid building and one broken into multiple blocks, and I was able to switch the solid building out for the broken one when the building would need to crumble. The most difficult part of this entire game was creating the simulated gravity around the sphere. I achieved this effect by applying force on the separated building blocks toward an object hidden in the center of the sphere, and I made this effect feel nicer by first applying an outward impulse of force toward the planet's sky. This made the buildings look like they were popping up while having the added benefit of spreading the pieces out. After all the force was applied the pieces were able to just sit on the planet's surface.
Area of Effect
The earthquake is created mostly by screen shake, but includes the area of effect and is followed by any buildings in that area collapsing. To make the area, I used a sphere with a slightly transparent material that is moved by a raycast coming from the center of the camera and hits the surface of the sphere. From there, it was simply about triggering the buildings within the sphere to switch to their broken look alike and collapse.
What I Learned
If I were to recreate this project, I would come up with a different system for the building collapse. I think it's a great effect, but given another chance and more time there are definitely better ways to achieve this. My solution was heavy on performance and in the web build of Seismic Planet caused low frame rates. There was simply too much physics being applied to too many objects at once.