Code Monkey home page Code Monkey logo

giganticemu's Introduction

GiganticEmu

Experimenting with recreating a custom client for Gigantic. This repo is just a reference implementation for building up on and documenting the existing work done by Gabs.

Architecture

The game is required to be patched in a few ways in order to be playable. Each (soon to be) root folder in the repo corresponds to a required component in the architecture that is in need of patching or rewrite.

ArcSDK

The Gigantic client uses arksdk.dll in order to obtain user info, friends and an authorization token. In order for the client to connect to the custom server (instead of Arc/Motiga servers), a different dll needs to be compiled with the code in the ArcSDK folder and the resulting binary (arksdk.dll) replacing the existing one in Gigantic's folder.

Launcher

This embodies a modified launcher used to launch Gigantic rather than relying on Arc's laucher. The launcher itself takes in:

  • a server address to connect to
  • the clients username
  • the clients password

and sends this information to the Http Server located at the server address to retrieve an authentication token.The launcher now launches the game (Gigantic, usually Binaries\Win64\RxGame-Win64-Test.exe) as well as a tcp server. The patched ArcSDK in the game connects to this tcp server and receives the token & user info.

In order for the game itself to connect to the http server, the AuthUrlPrefix fields in RxGame\Config\DefaultEngine.ini needs to be changed with the server address inputted from the launcher (still need to find a better way to do this).

DataServer

The data server contains both the Http Server and the Mice Server as an umbrella-ish project.

HttpServer

The http server (from what I can tell) is reponsibly for handling sign-in information and responding with authenticated information (username, token, friends, etc.) as well as an address to the Mice Server. It seems to also handle match history, leaderboards and cdn inventory items? (More info is needed here)

MiceServer

The mice server is in charge of party matches, queuing up and starting games. Gigantic, using the data received from the http server, connects to the mice server through TCP and has the option to utilize Salsa/(12 or 15) for encryption. Once a party and match are found, each client for the match is sent some session info which contains the address of the Match Server used to communicate game data while playing with each other. Some of the features the mice server handles are:

  • Party Queuing/Messaging/Hosting/Inviting
  • Friend List/Request/Response/Notification
  • Player Status/Messaging/Inventory/Shop/Lobbying

MatchServer

TODO: needs to be documented

giganticemu's People

Contributors

king1600 avatar kprotty 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.