Giter VIP home page Giter VIP logo

natchuz-hub's Introduction

Disclamer: No longer in development. Might reboot in the future.

Natchuz Hub

Open source Minecraft minigames server targeting the latest versions of game. Project is licensed under AGPL v3 License

General info

Our goal is to build both fun and competitive minigames. We decided to utilize all new Minecraft features added since the 1.8 release of the game, that would be used to create new and uniques games.

Project is currently under bigger architecture redesign. See below

Existing features, but not yet migrated, features:

  • Friends
  • Basic KitPvP gamemode
  • Multi server system
  • Map loading

Contributing

This project is still in early development, so we don't need any maps yet etc. If you are not a developer, somehow got here, and still wanna get involved, you can jump in our Discord and ask if there is anything to do. Otherwise, please see instructions below.

Note: All instructions described here target the GNU/Linux system. This may differ for Windows and other UNIX-like systems.

Preparing

You will need Java 8, the Kotlin compiler and Docker along with Docker Compose to work without root privileges. You will also need a good IDE with lombok support - We highly recommend IntelliJ.

After cloning, all you need to do is to simply import as a Gradle project to your IDE of choice (We use IntelliJ).

Building & Running

Note: Project still runs on 1.12.2 due to current version of Sponge

You can build using the docker task. This will produce several Docker images. They can be launched using docker-compose up. This will perform a full launch of the network, with all backends and one server per gamemode.

Since running the full network consumes a lot of resources, and it's a lot harder to debug in docker containers, you can use the task run from GamemodePlugin located under ./buildSrc. It's a gradle project that sets up a simple testing server (using LOCAL_SERVER_CONFIGURATION from the core project) and launches only one server, spoofing all backends. Supporting commands like creating fake users on-the fly are planned to be implemented soon. This is also the reason you can see ServerContext concept in core project.

For more information about a specific part of the project, search for a README inside its respective directory.

Note: Running full network may not work now

Coding conventions and Future

Currently goal is to rewrite everything to Kotlin, migrate entire business logic to microservices. As for now microservices are called directly using simple REST, but implementation will be hidden under GraphQL API Gateway, and maybe ditched in favor of rpc because speeeeed

Longer term plan is to fully replace NMS with an alternative server engine like Cuberite, or even better - Feather, once it becomes fully functional and stable. I will consider creating Java binds for Cuberite or even creating a full rewrite into Rust for Feather.

natchuz-hub's People

Contributors

natchuz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

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