SurviveTheNight

There are currently 0 players online.

Connect now using the IP mc.survivethenight.net

Internet Explorer

Internet Explorer is not supported. Please upgrade to a more modern browser.

zProxxy

Administrator Development Game Design

Feed

There are no wall posts here yet.

About

Registered:
6 months ago
Last Seen:
1 day ago
Profile Views:
107
About me
Main Developer/Coder on SurviveTheNight
Minecraft
zProxxy

Latest Posts

1 day ago
Upcoming Major Changes To SurviveTheNight & Player Reset

Hi everyone!

On Sunday (June 1st, 2025), SurviveTheNight will shut down for a decent amount of time and here's why!

With our recent decision of upgrading to a higher Minecraft version (1.21.4) to provide you new unique features, content and gamemechanics, we've stumbled upon a big issue.

While upgrading to that version would be possible, it takes a lot of time fixing and properly reimplementing all the mechanics, items, creatures and the rest of the content we're currently having on SurviveTheNight.
As well as that, we recently also received a lot more feedback from new players about the early game of SurviveTheNight and how it's still a problem. We did come up with some possible solutions, however there was more that had to be done about SurviveTheNight and the current amount of features and content would lead into a long time without any content updates as everything has to be adjusted to the new version with me being the only developer.

This is why we decided to change SurviveTheNight completely - once again!
The reason SurviveTheNight is shutting down for a while is that we're working on STN v4.0!
This version doesn't only provide new features of the newer Minecraft versions, but also a whole rework of the current system.

We're working on a new map, new quests, whole new systems, new items and basically everything else is getting an upgrade too!

However, the only downside of that is that we cannot keep the current player's progress. With new items and new systems it's getting quite hard to properly merge the current player's progress onto the new server with the new items.

After a long staff meeting we came to the conclusion that the best way of going about this would be resetting all the players. This way we can focus on new content without having to worry about any conflicts in terms of outdated data. While this wasn't an easy decision, it's probably the best we can do.

⇒ Refunding
While we cannot directly refund players, we've decided to implement a new armor set in STN v4 called the "Legacy Set". This set will contain your name, your achieved STN Level, your leaderboard ranking and your playtime.

This set doesn't come with any stats and is purely cosmetic.

Depending on the mechanics we're keeping in STN v4, you may also receive certain refunds based on your progression on the current SurviveTheNight.

 

⇒ History
Since SurviveTheNight will change forever, I'd like to go through our biggest milestones we've had while developing SurviveTheNight as a memento.

  • Early 2020 - STN v1: Release of a very basic dungeon system with different floors, item upgrades and a boss at the rooftop as a minigame for my own minecraft server
  • Late 2020 - STN v2: Revamping SurviveTheNight to today's dungeons. This included a few base stats (Damage, Defense, Explosion Damage, Magic Damage) and the random room generation with a new Boss: Saliva
  • Early 2021 - STN v2.1: Improvements of many areas in the game, addition of new room layouts, new mobs and much more
  • Late 2021 - STN v2.3: Added the Duo Mode, Added today's Saliva's Ghost Quests and added Phase 3 to the Saliva Boss Fight
  • Mid 2022: @GGJay has joined the Staff team
  • Mid 2022: Started working on a system around the dungeons, with a main lobby, items, quests and much more
  • Early 2023 - STN v2.4: Reworked most parts of the game, added new Damage Types and overall improvements. Started some internal testings on the main lobby.
  • Mid 2023 - STN v2.5: First proper Alpha Testing phase of 1 week! With a new main lobby, players would be able to grind the basic skills (Mining and Combat), we've added a prototype of the Forge, level up STN Levels and play dungeons
  • Late 2023 - STN v2.6: Updated Mining, added the custom mining system, the Sewers, the Obsidianized Drakgoo, improved the Forge and much much more
  • Late 2023 - STN v2.6.1: Added the Calendar with the first ever scheduled event - The Forest Storm. Also added the bestiary.
  • Early 2024 - STN v2.7: Added the Scarlett Questline and properly implemented today's magic damage.
  • Mid 2024 - STN v3: Whole new game code, added Bows to the game, balancing and overall performance improvements
  • Mid 2024: @zRelt @Fertid25 and @Quackylool have joined the Staff team
  • Late 2024 - STN v3.1: Added Enchantments to the game
  • Late 2024 - STN v3.2: Added the Foraging skill, Pigeons, Advanced Pigeons and the Amulet Central to the game
  • Early 2025 - STN v3.3: Added Dyes, the Armoire and some other QoL features to the game

And this is where we're at right now!


⇒ What's next?
Not only do we want to upgrade the version from 1.8.9 to 1.21.4 but we also want to completely change SurviveTheNight.

While the game was fine on its own, it didn't really feel like an MMORPG but more like a grindy and competitive game. We have learned a lot during this time in many ways, want to improve and release a proper and more fun game for all of you.

This includes a brand-new giant map filled with content, new mechanics for many aspects of the game but we're also keeping core parts of SurviveTheNight. Not only because it saves time coding, but also because we think they work fine the way they are.

Also - the original part of SurviveTheNight - the Dungeons, will stay in STN v4, but changed!


⇒ During the Development Phase
While we are not fully starting this project from 0 again, it will take some time developing, testing and balancing.

During this time you'll receive development logs (probably even in form of videos on our SurviveTheNight youtube channel) of gamedesign, development, map building and much more.
You'll also receive Sneak Peeks in our discord every once in a while so stay tuned for that too ;)


⇒ Credits
Over the past 4 years, many people have put time into SurviveTheNight which I'd like to quickly give credits to.

  • @GGJay (Part of the Staff team since mid 2022): A lot of Gamedesign, Map building and much more
  • @zRelt (Part of the Staff team since mid 2024): Gamedesign and Map building
  • @Fertid25 (Part of the Staff team since mid 2024): Gamedesign and Balancing
  • @Quackylool (Part of the Staff team since mid 2024): Gamedesign and Balancing
  • Nietvries: Map building and some graphic design
  • Eloldur: Testing and some help with development
  • LincolnMiller: Testing


⇒ Conclusion
I'd like to thank all of you for taking part of our journey through especially STN v2 and STN v3.
Thank you for all of your feedback, thank you for playing and enjoying the game!

While STN will somewhat stay the same, it will also change a lot - but in a good way, trust me!

We really hope to see all of you again when STN v4.0 releases and until then have a great and amazing time!
Stay on the discord to receive updates on STN v4.0!

Thank you all again, much love!

~ GGJay, zProxxy and the SurviveTheNight team

5 months ago
Current situation on SurviveTheNight

Hi everyone!

Today, I'd like to talk about the current situation regarding the major performance loss on our instances of SurviveTheNight.
This post will go a bit more into detail on what exactly is going on (technical side) but I'll try to explain it as simple as possible so as many people as possible understand what's going on.

⇒ The Past
As some of you may remember, before STN went into our 6-month maintenance, we've had a similar situation. 

Instances were lagging as soon as they would boot up, we had to cap our dungeon instances to save resources and some players would even experience wipes/dupes upon switching instances due to lag and database desync.

Back then, most of the issues were caused by extremely non-optimized code running on our main lobbies.
Database connections weren't secure enough as well as running sync (on the main server thread) instead of async (on a separate thread to make potentially caused lag by them not noticeable) and the code itself just had a bunch of memory leaks.


⇒ Current Situation
This time, the lags are still caused by inefficient code, however it isn't any sort of memory leak (most likely) this time.

Some of you may ask: What is a memory leak?
Basically, any sort of system stores temporary data in the server's memory. It can then access the data from there or remove it and adding new data to it.
Once certain objects of the code saved in the memory are no longer being used and cannot be accessed, they will automatically be removed from the server's memory to make space for new stuff.

A memory leak is when the system keeps adding certain objects to the memory for future uses but never removes the old ones or still has references to the previous objects somewhere. This can happen easily in some sort of loop, where it keeps adding an object with each cycle but never removes the object from previous cycles.
This, effectively, ends up in stacking unused objects (that still have a reference somewhere and therefore non-removable objects) in the memory and consuming large amounts of memory. When the server is running low on memory, the performance goes conspiciously down.

However, this isn't the case as of right now (or atleast not the major reason why we are experiencing performance loss).


⇒ Garbage Collector
Our servers and plugins are running with Java.
Java has a built-in feature called "Garbage Collection".

As already mentioned when explaining memory leaks, objects without any reference or use are being removed automatically from the memory. This is exactly what the garbage collector does.

The garbage collector manages heap memory, this is the part of the memory that stores dynamically created objects by the code.

Heap memory is split up into 2 different sections:

The old generation: This section of the heap memory stores objects that survived a bunch of deletion cycles by the garbage collector. An example would be a static object in the code that contains the name of the plugin. This object would always exist and always be accessible during the entire runtime - would be bad if it wasn't right? haha.

The young generation: This section of the heap memory stores newly generated objects.
In fact, the young generation is split up even further, into 2 different spaces.

The Eden space: This space of the young generation contains objects that were just created. The garbage collector has not gone through them and checked whether they are still being used or not. Most of the objects in that space usually are objects that aren't being used anymore after an extremely short amount of time - so like very short-lived temporary objects.

The Survivor space: This space contains objects that survived atleast one cycle of the garbage collector, so objects that have been created recently and are still being used in the code even after one or multiple cycles.

As already mentioned, most of the objects from Eden space don't make it to the Survivor space.
Once the Eden space is full, a cycle of the garbage collector is being triggered to make space for new objects for the Eden space. During that cycle, the application is being paused for a split second, however you don't really notice that usually as it doesn't take long.

If an object survives a bunch of cycles while in the Survivor space, it's being promoted to the old generation where garbage collector cycles happen way less frequent due to all of the objects inside having longer lifespans (or atleast they are supposed to have longer lifespans).

Due to the fact that most objects don't make it to the Eden space, the size of the Survivor space is much smaller compared to the Eden space.


⇒ The Issue
Now that you know how the garbage collection works in Java, it's time to explain what's going on with SurviveTheNight.

It currently seems as if many objects created by our plugins are objects that survive atleast one garbage collector cycle.

Due to the Survivor space being much smaller compared to the Eden space, the Survivor space runs out of space quickly. Objects not fitting in the Survivor space are being promoted to the old generation immediately, which - as you may have guessed - is not good.

You may think now, why don't we just increase the size of the Survivor space?
While this may sound like a good idea, this doesn't work.
The size of the Survivor space is relative to the size of the Eden space. While we could increase the Survivor spaces size, this would decrease the size of the Eden space effectively leading into the Eden space filling up quicker and more garbage collector cycles occurring.
As well as that, most objects aren't supposed to end up being in the Survivor space, instead of increasing the size, we would have to check our code for longer living objects rather than temporary ones.

Another solution could be increasing the overall memory on the main lobbies.
This isn't a good idea either.
While this does technically increase the size of the Survivor and Eden space, this would also just end up consuming a bunch of memory for no reason from our virtual server we're running STN on.
The Survivor and Eden space don't take up much space of the memory compared to the overall allocated memory. We would literally have to end up allocating gigabytes of memory to even see a difference in size of these spaces. And most of that allocated memory would just be unused either way.


⇒ Conclusion
While we know what's going on now, we're still unable to fix it.
Unfortunately we couldn't exactly identify what objects are inside the Survivor space (or rather identify where they are coming from), so we're unable to improve our systems as of right now. Until then it's just a bunch of testing and disabling newly added systems hoping to see a difference and identify the system which is causing the lag.

As well as that, I don't have that much knowledge about how memory works myself. While I have a rough idea of what's going on, I've never ever had a situation or theoretical situation like this in my past projects nor my apprenticeship.
(I could also be wrong about some things in my explanation of the garbage collector, I'm not 100% sure about that either)


I'll keep you updated and once again, we're extremely sorry for the inconvenience.
~ zProxxy