Code & Design by KarstSkarn#7993
Art by JusGoat
Singularity is an action/exploration/challenge game where you must descend successive floors by exploring procedurally generated dungeons.
Each floor is purely random and its difficulty increases progressively as you descend. But that’s easier said than done; A Singularity is unleashed in these subterraneans and it will scourge you all!
In addition, due to the energy emitted from the singularity, an increasing number of electrical entities will try to stop your progress on each floor. Your best option is to use the objects you can find on these floors against these electrical entities.
But stay alert! Getting close to the Singularity can be fatal and there is nothing you can do to stop it!
Up to 6 players can play together.
Features a leaderboard tracking who reached the deepest floors ever.
Admits joining in the middle of the game / entering late. Likewise, leaving in the middle of the game does not cause any problem.
The number of floors that can be reached is virtually infinite although limited by the level of difficulty and perseverance of each player. According to the specifications of lua.org the deepest floor would possibly be - 2^31 ( -2.147.483.648 ). After that floor, although it is not very clear what would happen, what is certain is that the game would become unstable.
Because the game is fast paced, it includes an inactivity system that will send to “spectate mode” the players who remain inactive for 30 seconds.
All floors are purely random and due to the way they are generated, the probability of repeating the same floor is literally zero.
Features different “biomes” each one with its unique properties, chances and ambientation.
To access the next floor you have to find a lever that unlocks the exit. Although it is recommended that in your exploration you also locate (Even if you haven’t found yet the lever) where the exit is because time is vital.
The Singularity will not hesitate to attack any player in the level. When a player is targeted a yellow vortex appears around him. However, the Singularity can change its target without warning and even remain inactive for a few seconds before searching for its next victim.
The first floor is always well lit and free of hazards. It is also the smallest of all. Acting in such a way as a passive tutorial.
After this, the dangers progressively appear and increase in number. In the same way the tendency is that each floor is slightly larger and labyrinthine than the previous one.
Such hazards include Electrical Entities and traps. The Electrical Entities will start chasing any player who gets too close to them. They will also lose their target if the player moves far enough away.
When close enough to the player the Electric Entities will emit a peculiar sound that means they are charging their attack. Alone they are not much of a threat but if they manage to surround a player they can be fatal which makes them a priority to destroy while exploring each level.
These entities can be destroyed with the hand weapons that you can find randomly scattered throughout the levels.
Each weapon has a unique specific damage and a unique range area and despite its randomness, each one has a different probability of occurrence depending on its uniqueness.
There are also floors that have a tendency to generate more and better quality weapons than others.
Likewise, the deeper you go the more traps may appear. These traps are easy to recognize as a strange looking cylinder occupies the floor.
One way to avoid them is to dodge the cylinder, jump to dodge them or walk inside them; they are only activated if the player runs over the detector cylinder.
In order to pass to the next level, all players who are still alive must meet at the exit. As soon as all remaining players enter the exit, they will automatically go down to the next floor.
If you are a coder, a game dev, designer or just curious this section is for you! Here I’ll attempt to explain the inner workings of this game.
The game itself is based on a package that I have been developing lately that is able to generate mazes in a fully configurable area. Unlike other packages of the same kind this one works with tiles instead of preset rooms.
This allows a high level of customization and randomization.
This is an early image of the random area generator.
The package itself has nothing hard-coded for this game. In fact this package is oriented so that anyone adding templates can make their own dungeons totally to their liking.
This process is highly CPU and rendering intensive (That is why it features loading screens between levels). In addition, due to the size that the levels can reach, it generates many entities. Therefore, as soon as the game starts the Lobby (where the players meet at the beginning of the game) is completely eliminated and is only generated again if the game is over.
In the same way at the end of a level it is completely deleted and the next one is generated in the same place. In the meantime the players are transferred (and their inputs deactivated) to a room that is permanent throughout the game and far from the action zone. If you want to check this sequence I recorded this video where you can see a level being deleted on end and the next one being generated: YouTube: Singularity level sequence
It is actually a series of scripts that control the end of level conditions that command the level to be deleted and launch the level generator package script again with new parameters.
Originally this game was to be a simple showcase of the package so that people could see it in action and get ideas for their own projects. But after motivating us a little bit it ended up being a game itself.
This part may be a bit of a spoiler but the way the game determines which thematic biome to use is depending on the multiples of the number of each floor:
All sewers are in floors which number is multiple of 4 .
All “factories” are in floors which number is multiple of 7.
All “hotel/reddish” are in floors which number is multiple of 10.
In future updates we will surely make more themed biomes with their own characteristics and environment.
I decided that it would be a good idea to make such a game because the randomization factor dramatically increases the replayability and challenge that players face.
In the same way, our aspirations for this game are to update and maintain it periodically in order to always offer a fresh and new experience to the players.
Including adding special events and even more variety of enemies, items and areas.
We sincerely hope you have as much fun playing it as we have had developing it.