Giter Club home page Giter Club logo

electronms's Introduction

ElectronMS

ElectronMS is an open-source project that aims to emulate KMS v316 servers.
This project is currently a Minimum Viable Product - it is plug-n-play, and compatible with a whole suite of other TeamSPIRIT products.
This project is based on AzureMS v316 (see more under AzureMS History below).

Compatible Products:

  • ElectronClient
    • Open-source project; launcher for ElectronMS, not required for localhost testing
    • Note: Change the IP address in Constant.cs to your server IP
  • Lapis
    • Feature-rich Discord bot
    • Lightweight and easy to set-up (see Wiki)
    • Built on Lazuli (see below)
  • Lazuli
    • A Python-based API for connecting to AzureMS-based servers.
    • Easy to use; complete with example code!

Quick Start Reference:

  • See the AzureMS Wiki for a detailed guide (with screenshots).
  • The AzureMS guide should work for this project, given the history of ElectronMS (see below)
  • We may choose to write a dedicated wiki at a later time, if there is sufficient demand.
  • Discord Link - feel free to join our community if you need any help!

ElectronMS

This project is based on (a snapshot of) a later build of AzureMS v316 than the official open-source repository made available by SoulGirlJP. This includes many of the fixes and feature updates that were the work of the other developers of the time, like Brandon, Dipi, and Desc. Considering that the v316 source is no longer in use, and that SoulGirlJP has other ideas in mind with AzureMS v352, Brandon thought it would be too much of a waste that the work of these Azure/ex-Azure developers never saw the light of day.
Note that most of the original commit logs are now lost, as the original repository was hosted on Bitbucket - access to which has since been restricted.

Most of the code written in ElectronMS is about 2 years old by this point, and from a point when many of AzureMS's developers were still new to programming. Hence, there are many areas with poorly-written code that can and should be optimised by contributors like yourself. Note that this release is purely for educational purposes, as well as the preservation of AzureMS history.

AzureMS History and Affiliations

Timeline of AzureMS Development

AzureMS is a KMS-based private server that had managed to reach some success during its v316 phase.
Despite the intention of making a WonderKing-MapleStory hybrid, this goal was never actually achieved (at the time of writing).

SoulGirlJP (Discord ID: SoulGirlJP#7859; now known as SoulyHS), the then owner of AzureMS, initially purchased the source code for a KMS v284 private server (ArielMS) from a server owner-developer Suho. Notably, Suho helped advertise AzureMS in the ArielMS Discord server, thereby helping to seed AzureMS with some initial players.

SoulGirlJP later went on to purchase a KMS v316 server emulator source code from their Korean contacts (at a significant mark-up) as part of a new source deal. During the v316 phase, there were numerous notable developers that either worked with or mentored SoulGirlJP, including (but not limited to) Asura (mentor), Wolly (developer/mentor), Brandon (developer), Dipi (developer), as well as Desc (WZ editor/developer).

Riding on the success of v316, there was interest in upgrading (yet again) to v329. This was in part driven by claims that the new v329 source code would not have the same set of bugs that plagued the v316 project, and in part due to the release of a new class (Adele) in v329. However, the former premise would later turn out to be false, as the v329 source code turned out to be in a worse state than the v316 project. During the closed-beta testing phase the astronomical numbers of breaking issues discovered meant that the team simply could not respond fast enough to keep up (see here for full bug list). In fact, most of the portals in the game did not even have portal scripts associated with them, leaving players stranded in many maps, and needing to rely on teleport commands/NPCs/rocks to move between maps. The fact that there were developers whose entire job was to deal with these scripts resulted in a number of PortalScript inside jokes (in reference to the JavaScript language used for writing these portal scripts). In this phase, the team grew even larger, with Rob (Discord ID: Min#4235) and Anxiety (Discord ID: Anxiety#7971) helping out as well.

At this point, SoulGirlJP (who thought the v329 source was too riddled with bugs to be worth fixing up) decided to switch gears and attempted to create a v337 source from scratch with Dipi, relegating Brandon/Desc/Rob to handle the v329 project. However, the v337 endeavour turned out to be too arduous at the time, due to changes in the KMS authentication system by v337. This caused the development focus to return to v329, until SoulGirlJP managed to nail the new authentication system (with the help of various different industry contacts).

After sorting out the new authentication, SoulGirlJP set sights on v342, since that was the release of a new class: Kain.

Soon after starting the upgrade towards v342, SoulGirlJP decided to migrate versions again, due to the new content (i.e. training areas, etc) that was slated to come in the subsequent v343 patch: Hotel Arc.

Some time later (with v343 still not ready for testing), SoulGirlJP elected to upgrade yet again - this time for a new class, Lara. Lara was released in v351. SoulGirlJP, however, had learnt from previous mistakes, and chose v352 over v351 this time, which was the last of the Maple LIVE trilogy of updates (the trilogy which contained Lara-related content). This is the version that AzureMS is currently at (at the time of writing). AzureMS v352.3 was initially expected to conduct their pre-Alpha testing from the 1st of October 2021 onwards, marking the first time that AzureMS is re-opening to the public since its v316 days.
This date was brought forward to the night of 21st Sept 2021 (Korean time), in line with the chuseok holidays.
The v352.3 pre-alpha launch brought many new features to the table (courtesy of Brandon), including the use of Auth Hook, Discord RPC, and auto-registration upon login. Nonetheless, the launch was marred by numerous critical issues plaguing the gameplay. This included a faulty damage calculation system that prevented players from killing monsters (unless the player has SP put into a mastery skill, has a working weapon, and can one-shot the monster - this was further compounded by the fact that players started at level 1 in Henesys making it impossible to progress past level 1 without GM intervention), numerous improperly-handled weapons/equipment, lack of methods to obtain equipment, lack of methods to obtain potions, numerous unhandled portals, lack of mobility options (hyper teleport rocks were not coded, warp NPC was not coded, and at initial launch the taxi only had Henesys and Hotel Arc which was level 270+ content), as well as obvious signs of memory leaks. As a consequence of the latter issue, the game gradually slowed down and grinded to a halt (i.e. players could no longer log in) in less than 24 hours after its launch. This was later circumvented by SoulGirlJP specifying the process to utilise more memory.

Within a week of the pre-alpha launch, SoulGirlJP made the announcement that AzureMS is once again upgrading versions. This time, it is a migration to v354.4 for the 64-bit client, as SoulGirlJP "(is) 95% sure the upgrade will fix all launching problems". Most notably in the announcement, SoulGirlJP mentioned that the new client would mean "no unnecessary crashes (if there's too much (sic) mobs in 1 map, leveling to (sic) fast, etc.)", whilst also noting that they are "currently upgrading/fixing (their) tools because of the 64 bit client".

On the 30th of September, SoulGirlJP announced an upgrade to v354.5, rather than the previously stated v354.4, for "better performance in the loading of the characters". The upgrade to 64-bit is supposedly meant to gfive "more performance in every way", and players' "will see a very big difference of performance, (and their) client will go faster no lagg at all (sic)".

Timeline: 284 -> 316 -> 329 -> 337 -> 329 -> 342 -> 343 -> 352 -> 354  

Note: There was a brief period of v334 development but it was short-lived, without significant surviving documentation, and is thus left out of this timeline sequence.

SoulGirlJP

A KMS-enthusiast who sought to revive their favourite game (WonderKing) through the graphical assets of MapleStory. Although not formally trained in computation (at the time of writing), SoulGirlJP learnt to develop MapleStory private server emulators under the tutelage of the well-known developer Asura (of Swordie fame). SoulGirlJP can often be seen commenting in various MapleStory private server development forums, including RaGEZONE, Swordie's #server-development channel, the MapleStory Development Discord server, as well as the M. Development C. Discord server.

Disparaging Comments

We (the maintainers of ElectronMS) understand that SoulGirlJP has publicly expressed their displeasure with the text contained within this README document. We, nonetheless, view this document as an important step in preserving the history of this server's development for posterity, regardless of SoulGirlJP's opinions. Furthermore, given that this is an open-source project, SoulGirlJP is more than welcome to either speak with us or submit pull requests to correct any perceived inaccuracies. As such, we will continue to document the history of AzureMS as it continues to unfold, in spite of SoulGirlJP's comments.

Azure v316

After numerous discussions with Brandon about going open-source, SoulGirlJP finally made an announcement on RaGEZONE on the 9th of September 2020 about going open-source with Azure v316. However, contrary to expectations, the version released was an early build of the project, and did not include many of the fixes/features that came later. When quized about this, SoulGirlJP gave markedly different explanations on different occasions - as such, the actual reason behind this difference is not well understood (at the time of writing).
It should be noted that many of the contributors (including Brandon, Desc, and KOOKIIE) have had their permissions revoked, and can no longer update/maintain the project (see here where KOOKIIE posted an issues post WRT to outdated docs, alongside all changes that needed to be made in order to remedy the situation, which ended up being closed without explanation nor remedy). In July 2021, SoulGirlJP expressed that the project is abandoned, and that "nobody was really contributing to it". It should be safe to hence consider this a dead project.

Duck's Restoration Project

A_Duck (also known as a_real_duck or Dylan) forked SoulGirlJP's open-source repository on the 18th of March 2021. Dylan thoroughly enjoyed the AzureMS v316 experience and thought it was a shame that it was discontinued. This inspired him to attempt to re-create AzureMS v316. Ex-Azure staff were supportive of this move. Noting his desire to have all the Korean text in-game replaced with English translations, KOOKIIE generated a set of reference files highlighting all files that contain Korean characters in the repository (along with their line numbers), to simplify Dylan's workload. This was because the AzureMS source code used large .java classes spanning several thousands (if not tens of thousands) of lines of code each - manually checking for Korean text would have been a gargantuan task in and of itself. On the 23rd of September 2021, the then existing repository was flagged as deprecated when Dylan migrated to ElectronMS for his restoration project.

Parallels with TomatoMS

Azure v316 and v329 were based on commercially-available projects, sold by Korean developers. Whilst TomatoMS staff were using certain tools built for/by Azure/SoulGirlJP, there is no other evidence to suggest any relationship or plagiarism between them, since TomatoMS could well have just purchased the source code and/or tools. TomatoMS staff did, however, consult with Azure/ex-Azure staff like Brandon and attempt to solicit code (e.g. via interview scams) - as much as their owner would like to sweep these incidents under the rug. Granted, Tomato claims that these actions by individual members of their staff do not reflect their team.

Team SPIRT

Team SPIRIT is a group of developers comprising largely of ex-Azure staff who are/were computing majors.
For a period of time, they were actively contributing to the open-source AzureMS v316 repository (despite having started their own non-KMS server), either in code or in documentation. This ended, however, when SoulGirlJP revoked their permissions (likely a result of personal feuds, which are beyond the scope of this document), despite them being the main contributors and maintainers of the repository. This move was never publicly explained nor acknowledged by SoulGirlJP.


Features:

  • Custom NPCs
    • Cash NPC: allows searching for cash equipment via keyword - accessible in lobby (@town)
    • Statted Cash NPC: Similar to cash NPC, but consumes JCoins - accessible in boss lobby (@boss)
    • Warp NPC - accessible in lobby (@town)
    • Shops: Class equipment shops, Lionheart EQ shop, Consumables shop, etc. - accessible in custom menu
    • Meso Exchange: buys STs from players for meso. - accessible in lobby (@town)
    • Blue Orb shop - accessible in lobby (@town)
    • Pet Shop: (Orchid) sells permanent pet and pet equipment for Purple Orbs. - accessible in lobby (@town)
    • Styler - accessible in lobby (@town)
    • DPM tester - accessible in lobby (@town)
    • Jump Quest NPC - accessible in lobby (@town)
    • DP and VP shop - accessible in lobby (@town)
    • Item Transfer NPC (Duey) - accessible in lobby (@town)
    • Cash equipment disposal NPC - accessible in lobby (@town)
    • And more!
  • Custom Menu - accessible via the grave key `
  • Additonal Damage system
  • Rebirth System - with rewards and shop
  • Custom Currency - Blue and Purple orbs, Justice Coins, etc.
  • Custom Bossing system
  • Universal Smega: use a Tilda at the start of a message in the chatbox to send a smega
  • Auto-registration
  • Hashed passwords

Disclaimer:

ElectronMS is an open-source third-party implementation of a particular MapleStory server emulation project (AzureMSv316). ElectronMS is non-monetised, provided as is, and is unaffiliated with NEXON. Every effort has been taken to ensure correctness and reliability of ElectronMS and its documents. We will not be liable for any special, direct, indirect, or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action if contract, negligence or other tortious action, arising out of or in connection with the use of ElectronMS (in part or in whole).

electronms's People

Contributors

bratah123 avatar kookiiestudios avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.