8000 GitHub - OpenExonaut/OpenExonaut: Game server software for Project Exonaut - Derivative of https://github.com/OpenATBP/OpenATBP
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

OpenExonaut/OpenExonaut

Repository files navigation

OpenExonaut

License Badge

An open-source lobby, service, and game server for Project Exonaut, built upon the foundation of OpenATBP.

Status

Currently, games can be entered and played, though not ended, and the metagame can be logged into. Explosives, motion interpolation, game termination, and achievements still need to be worked on.

Server Architecture

Originally, Project Exonaut required several server-side components in order to to function:

  • Web server to serve static content/streaming assets
  • Web server that provides service/API endpoints
  • Socket policy server to satisfy the Unity Web Player security sandbox
  • SmartFoxServer2X with custom zone and room extensions acting as the matchmaking server and actual game server respectively

To simplify development and deployment, all but the last component have been combined into one piece of software, which is available under the ExonautServer directory. The SmartFoxServer2X extensions live under the ExonautExtension directory.

More in-depth explanations of each component, how the client interacts with them, and how request/response packets are structured can be found in the docs/ folder. This is unfortunately not available yet, but work is slowly being done. For the time being, feel free to reference decompiled client code generated via ILSpy/dnSpy.

Development

Prerequisites

Ensure these are all installed before proceeding!

  • Git
  • Java Development Kit 11
  • SFS2X Community Edition
  • NodeJS and NPM
  • MongoDB Server

Setting up

  1. Clone the repository: git clone https://github.com/OpenExonaut/OpenExonaut
  2. Open a new terminal inside of the ExonautServer directory
  3. In this new terminal window, run the following command to install dependencies and download required asset files - this may take a while! npm install
  4. Copy the example config in the ExonautServer directory: cp config.js.example config.js - once copied, edit it to include the connection string URI for your MongoDB server
  5. Run ExonautServer using the following command: npm run start - if done correctly you should see Express server running on port 80!
  6. Start SmartFoxServer2X once so it can generate the correct files and folders, then close it
  7. Open another terminal, this time in the root of the repository
  8. Run the following commands to copy necessary files, then compile the game extensions: .\gradlew ExonautExtension:copySFS2XLibs, .\gradlew ExonautExtension:allJars
  9. Provided there weren't any errors, deploy the SmartFox extensions and library: .\gradlew ExonautExtension:copyDataFiles, .\gradlew ExonautExtension:deployAllJars
  10. Copy the example config in the SFS2X extension directory (SFS2X/extensions/Exonaut, should be right next to two jar files): cp config.properties.example config.properties - once copied, edit it to include the same URI string you did in step 4.
  11. Start SmartFoxServer2X, you should see a log line indicating the zone extension is working: Exonaut Zone Extension init finished
  12. Finally, connect to http://127.0.0.1:80 with an NPAPI-compatible browser such as Pale Moon to test the game!

Note that you can also run any Gradle task (gradlew commands) graphically through an IDE such as IntelliJ IDEA or Eclipse.

These instructions are subject to change, if you run into any problems or have questions feel free to open an issue here on Github.

License

MIT unless specified otherwise

SFS2X Logo

About

Game server software for Project Exonaut - Derivative of https://github.com/OpenATBP/OpenATBP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0