Code Monkey home page Code Monkey logo

omega's Introduction

omega

v83 MapleStory Server emulator written in TypeScript. Inspired by projects like HeavenMS.

This project has been sidetracked for @perion/perion.

Features

  • Easy development environment
  • Uses a microservice architecture where state is decoupled into center, login, shop, and channel servers
  • Currently runs as a cluster of processes, with future support for running each service independently
  • Advanced metrics using Prometheus
  • Will support both the NX and WZ format
  • Will use multithreading to delegate compute-heavy tasks
  • Will use token-based authentication for intraserver communication

Setup and contribution

  • Fork the repository
  • Run npm install in the project directory to install the dependencies

Convention

  • Class names will use PascalCase
  • Filenames, functions, and variable names will use camelCase
  • SQL tables and columns will use snake_case
  • Tests will be written as *.test.ts and placed in the test/ directory

Running the server

  • Run the server with npm run start
  • Run the unit tests with npm run test

Client files

  • Download the client files here

Checklist

Milestones

  • Login
    • Get to login screen (handshake)
    • Auto register
    • Password verification
    • Accept TOS
    • Register gender
    • Register pin
    • Pin verification
    • Select a world
    • Select a channel
    • Character list
    • Create a character
    • Register PIC
    • Select a character
    • Delete a character
    • PIC verification

Short goals

  • Server infrastructure
    • Bootstrap process
    • Implement CenterServer
    • Implement LoginServer
    • Implement ChannelServer
    • Implement ShopServer
    • Implement packet delegation
    • Implement packet handling
  • Encryption
    • Implement AES encryption
    • Implement Shanda encryption
  • Implement packet readers/writers with Buffer
    • Output classes/interfaces
    • Input classes/interfaces
  • Implement WZ loading
    • Parse a single WZ XML file
    • Parse a WZ directory
  • Implement NX loading
    • Parse a single NX file
  • Scripting engine
  • Anti-cheat measures
    • Implement token authentication for intraserver communication
    • Implement multiclient check
  • Implement database layer
  • Implement logging
  • Implement configuration
  • Integrate Prometheus (performance benchmarking/metrics)

Long goals

  • Design cluster system to fork worker processes
  • De-couple state in order to achieve micro-service architecture
  • Use Redis as a memory store, and have a task to periodically update the DB
  • Design worker_threads system to delegate compute-heavy tasks
  • Docker support

omega's People

Contributors

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