Singularity


Code & Design by KarstSkarn#7993
Art by JusGoat
https://launch.crayta.com/play/9d3vn7w3


Note: Singularity has been extensively reworked in a recent update, please reffer to the comments below for updated information about the game!
Update-Related reply: https://forum.crayta.com/t/singularity/2884/4

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!

Game specifications


The rule is: If you see it just run!

  • 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.

Game Guide


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.


Behind the scenes

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.

Creator’s note


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.

2 Likes

Post Launch Feedback Update!


After the great feedback you all gave me in the launch day I corrected some things:

Forum

  • Fixed forum post and minor mispellings.

Game

  • Now you can’t mantle outside of the lobby. Lobby mantling is still enabled for “easter egg” purposes! :eyes:
  • Help screen added.
  • The current ingame goals now appear in the bottom right corner of the screen. Also includes a subtle sound effect.
  • Visual damage radial gradient is now a bit more visible.
  • When you are low on HP now you have a couple of sound effects ( Geiger counter ones! ) that change its volume depending of how low is your health!
  • Minor polishing and decorations in the lobby.

Incoming stuff to be fixed / added

  • As some of you seen there’s a bug which appears like “once in several times” where the start room has the way obstructed; despite this is related to some lag serverside there’s multiple workarrounds this.
  • The player number is gonna be balanced to enhance the gameplay experience.

Post Feedback Friday Update


  • Maximum players reduced to 6. This not just will make the game less chaotic; it will reduce the stress the server has sometimes.

  • Addressed the bug that made the entry room to have no exit; It was a mixture of that the code it was too quick and the server too stressed with that many players!.

  • Minor script optimization.

  • Minor edits to the Lobby (Yeah, again!).

  • Minor text edits to the Challenges.

Saturday Mini-Update


  • Added a sample trap in the lobby.

  • Minor opacity changes in some widgets.

This game… is on my favorites list forever! We had the best time as a group discovering the levers in the many rooms and making it through to the end… Beautiful clean UI. The interior decoration is perfect eerie elegant. The lighting and post-processing is spot on! Spooky panic energy high! :eyes: Absolutely Love this Game. It is beautiful! 10/10 for streaming with friends! :sparkling_heart:

1 Like

Singularity Update / Relaunch


After a relatively long time we have decided to implement some of the things we were looking forward to add to Singularity. We hope you are ready because there are a lot of changes!

A renewed interface, new enemies, weapons and mechanics are just some of the changes we have introduced in this update.

(Some of the) New Features

  • New enemies added; magical towers.
  • Complete UI rework and polishing.
  • New weapons added; ranged and magical weapons.
  • New in-game mechanics.
  • Loading times reduced.
  • Major bug fixes and overall optimization.
  • Loading screen completely reworked.
  • Post process effects been added as an option.
  • Game imagery (Logo, screenshots…) been redone from scratch.
  • Damage balanced for all enemies and weapons.
  • Randomization of the levels been heavily enhanced.
  • Added a Health-Bar!
  • New player-related effects and sounds enhanced.
  • New challenges been added.
  • Maximum number of players expanded from 6 to 8!
  • The inactivity detection system and UI been completely enhanced.

Features Insight


New Enemy: Magical Towers


The magic towers are static enemies that appear in the levels. The deeper the level the more towers will appear!

These towers will not hesitate to shoot projectiles at you when they see you. There are different types of magic and each type of magic causes more or less damage! It’s up to you to find out the hard way which one is which!


The best way to finish them off is to dive on them or shoot projectiles at them with the new magical ranged weapons.

Here is a spoiler of the mechanics of the turrets. We recommend reading it at your own discretion and judgment:

You can avoid being hit by projectiles and even in some cases completely avoid being marked as a target by crouching.

New Singularity-related mechanics

Singularity Slow-Down

Now you can interact with the Singularity itself in order to complete the levels!

If you shoot the Singularity with a magic weapon and hit it with the projectile, it will emit a series of sounds and stay still for 5 seconds. It will also emit a huge orange glow that will fade as the time it is still runs out.

This can be repeated as many times as necessary, but be careful! If you have no ranged magic weapons you will not be able to do this!

Shrine Statue

In addition, there is now also a high probability that the shrine statue will appear in the level.

This statue can only be activated once per level, it is easy to find as it emits a bright blue light until it is activated.

This statue will make the Singularity disappear for about 10 seconds of the level, leaving an electric sphere and a strong violet glow where the Singularity will return after that time.

Use this wisely because can save you from the Singularity if used properly.

Post-Processing changes

Since some people did not like the post-processing used by default in the game it is now optional to use it; by default it is enabled.
But by pressing the [G] key on computers (See the Crayta control sheet for other controllers and/or platforms) you can enable/disable it at any time according to your taste!

New weapons!

There are now 3 new weapons which not only cause melee damage but also fire projectiles! The speed and damage of these projectiles is different in each of them as well as their melee damage is also different in each of them.

You can get them by finding them randomly in the levels and there is one hidden in the lobby!

Note: The weapons in the Lobby are ordered from lowest damage (reddish) to greatest damage (bluish)

Epilogue


In addition to all these improvements there are some more minor improvements that we hope will surprise you! We want to emphasize that it is a lot of fun for us to improve and play with you our creations and that we have many more improvements we want to make in the near future to Singularity.

We hope you have as much fun playing it as we did making the game!

Nerd Note: Singularity currently has 11968 lines of code of which 3287 are from widgets! Has 72 Scripts, 27 Widgets and a total of 195 Templates.