Singularity

Unity Engine

Visual Studio

C#

GitHub

Summary

Singularity is a puzzle game based around gravity. The player's ship is drawn towards the celestial bodies around the map, what configuration of obstacles will get the ship home safely?

Singularity is still in development. Current features are character dialog and controlling the ship's trajectory through adjusting planet orbits and placing black holes. Some planets can be adjusted to orbit at different ranges, changing how they will effect the map. The player can place a limited number of black holes to pull them away from obstacles.

Singularity is made in the Unity Engine.

The first picture shows an example map with several objects with orbital paths. The second picture shows a dialog popup.

Design Choices

Gravity

The game's gravity is made to not be realistic, instead going for what feels good to play with. In previous iterations more realistic gravity, the game didn't feel right to play. Instead, gravity has a ceiling and floor affecting its strength as well as modifiers on different objects to make them pull with different strengths. These changes allow players to have a better understanding of how their changes will affect the puzzle.

Game Piece Setup

The player makes adjustments to the map while the map is paused and before watching the results. In previous versions of the game, actions were taken while the map was moving. These versions were much more chaotic as adding a new source of gravity while the simulation was running would often cause unpredictable results and launch the player into deep space. To give the player more control, and make the game less frustrating, adjustments are made while the game is still paused.

Dialog System

I created the dialog system to be easily portable to other projects. Dialog is able to be displayed a screen overlay or in world-space as a chat-bubble. The system uses a Speaker scriptable object containing the speaker's name and portrait.

Multiple dialog events can be queued in a Dialog Chain using multiple instances of dialog with a Speaker and the content string. Arrows on the dialog window allow the player to tab forward and back through the dialog chain.