Important Helios Custom Source: Sequoia

Discussion in 'Announcements' started by Austin, Jul 1, 2019.

  1. Austin

    Austin Spaghetti Connoisseur Development Helios Team

    Joined:
    Apr 18, 2018
    Messages:
    318
    Likes Received:
    169
    Gender:
    Male
    Location:
    United States
    [​IMG]

    Over the past few months, we've been working hard to bring you all of the changes that were announced in https://forums.maplehelios.com/threads/game-patch-13-early-june-2019.1467/.

    While we may have announced this as a typical update, there were actually numerous large scale changes internally. Most noteworthy is the fact that we have now migrated to a new server source entirely!
    This new source, which we call “Sequoia”, is a brand new source written from scratch and therefore isn’t based on any existing source out there. We initially decided to keep this quiet just in case the update didn't go smoothly, but after over a week of it being live, we feel it is safe to announce it. We also didn't want to hype it up or rush to release it before it was ready, which proved to be a good idea considering it took an extra five months of work to get it to a launchable state after our alpha testing began in January 2019.

    After working with our old source for a while, it became clear that it wasn't going to be worth the time and effort to update it due to the sheer bugginess, poorly optimized spaghetti-like code quality, and countless random, hard to replicate issues. Here are some snippets from our internal development chat from our initial launch:
    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG][​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    What started as a joke in our development chat ended up being exactly what we did: [​IMG]

    Unlike our previous source, Sequoia is written from the ground up and is no longer Odin-based like nearly all of the open source servers out there. It also uses a more modern technology stack, with Kotlin as the primary language instead of Java, along with Netty as the networking library. All of the scripts were also rewritten in Lua in a much safer way than the old JavaScript scripts, which ended up fixing numerous bugs in the process. Lastly, all synchronization handling was written in such a way that deadlocks should be nearly impossible. As a result, it is much more stable overall and will be infinitely more manageable for us to work with, which enabled some of the new features such as being able to log into multiple characters within the same account simultaneously. We also have some notable new internal features and improvements:
    • Better channel crash detection. Channels can be restarted without having to restart the entire server, and you can't accidentally log into a channel while it's down.
    • Characters can no longer get stuck.
    • Significantly improved data saving and autosaving that should make data loss and rollbacks virtually non-existent outside of major crashes.
    • Isolated login server, allowing players to wait on the login screen without having to reopen a client when we restart the game server to apply updates.
    • Much faster server startup time, speeding up server restarts. Our old source would take up to 20-30 seconds to start, while this new source typically takes under 2.
    • Brand new anti-cheat with extensive improvements.
    Another major selling point for deciding to write a source from scratch was to better support our future custom client. Being able to write the server from scratch while thinking of the client at the same time enabled some internal design decisions that will make it much easier for us to make custom changes to the server in the future. Also, what's the point of having a custom client when the server barely runs in the first place? For those of you who were around when we launched back in August 2018, you may remember the constant server crashing and deadlocks that were happening. These were all due to the poor autosaving system and synchronization handling of the old source. With Sequoia, neither of those should be an issue anymore!

    With all of that said, we will be releasing a steady stream of new content from this point on, including party quests, GM events, and seasonal events, along with bug fixes as they come up.
     
    John, William, Arizona and 14 others like this.
  2. akash

    akash Booper Scarlion Contributor

    Joined:
    Aug 10, 2018
    Messages:
    274
    Likes Received:
    169
    Gender:
    Male
    IGN:
    Noob
    Level:
    136
    Very impressive! I can't wait to see what you guys end up doing with the custom client!
     
    Chance likes this.
  3. Arizona

    Arizona Desert Rabbit

    Joined:
    Apr 15, 2018
    Messages:
    30
    Likes Received:
    36
    Location:
    Connecticut, USA
    IGN:
    Capella
    Level:
    44
    Guild:
    Solaris
    Y'all have come so far. From beta to here looks unrecognizable, I couldn't be happier
     
    Mike likes this.
  4. Rodrigo

    Rodrigo Snail

    Joined:
    Mar 10, 2018
    Messages:
    4
    Likes Received:
    27
    Gender:
    Male
    Location:
    Lima
    nice
     
    John likes this.
  5. sugarplum

    sugarplum Orange Mushroom

    Joined:
    Aug 30, 2019
    Messages:
    5
    Likes Received:
    6
    Gender:
    Male
    I just recently joined but I wanted to commend you guys on writing your own custom source, and ditching the Java/JS of OdinMS based sources.

    I've played MS from 04-2010, and in 2007/2008 when the first OdinMS sources came out on Ragezone I used to help code servers. I remember all the rollbacks, crashes, login issues, character stuck, etc that plagued those servers.

    It is no small task to write your own source, so props to y'all. I hope that we can get a bigger community going to support this server with the love it deserves. My fiance and I will be playing for some time to come. Looking forward to all the future patches and updates.

    Cheers!
     
    Ario likes this.