Giter Site home page Giter Site logo

themaximum / mania-pp Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 13.53 MB

An in-development Server Controller for TrackMania 2 servers.

Home Page: https://themaximum.github.io/mania-pp/

License: GNU General Public License v3.0

CMake 1.51% Shell 0.45% C++ 98.04%
maniaplanet dedicated-server controller cpp11 linux trackmania

mania-pp's Introduction

Mania++

Mania++ is an in-development Server Controller for TrackMania 2 (ManiaPlanet) servers. It is written in C++ and is at this moment basically a hobby-project. You're free to try it and contribute to the system, all ideas and assitance is welcome. No guarantee this makes it to a release-ready state, so be aware of that before using it on your servers.

Current build status

  • Master: Build Status
  • Develop: Build Status

Also checkout the Mania++ versioning system for more about the software versions and branches.

License

Mania++ and its sources are available under the GNU General Public License v3. This allows users/contributors to make changes to the source code, as long as those changes are made available under the same license as the original. The copyright/license notices should not be removed from the sources/workspace.

Tested environments

  • Ubuntu 16.10 (Linux 4.8.0-30), 64-bit with gcc 6.2.0 (development)
  • Ubuntu 16.04.1 LTS (Linux 4.4.0-31), 32-bit with gcc 5.4.0 (testing)
  • Ubuntu 14.04.5 LTS (Linux 4.4.0-51), 64-bit with gcc 4.9.4 (Travis)
  • Debian 8.6 (Linux 3.16.0-4), 64-bit with gcc 4.9.2 (production)
  • "Bash on Ubuntu 14.04.5 LTS on Windows 10" (Linux 4.4.0-51), 64-bit with gcc 4.9.4 (development)

The ./install.sh-script requires a Debian-like system to function (with apt-get). The JSON library requires gcc/g++ v4.9+, the 14.04 LTS only comes with 4.8.4, so you will have to upgrade the version by hand and tell the build script that you want to use that version: -DCMAKE_CXX_COMPILER=g++-4.9 -DCMAKE_C_COMPILER=gcc-4.9.

Requirements

  • Minimum gcc 4.9 / C++11
  • Git
  • CMake

Aims and working points

Achieved goals

  • Working GbxRemote module
    • Send methods and receive responses
    • Receive callbacks
    • De-XMLify responses and callbacks
  • Easy-to-use objects (f.e. Player and Map)
  • Working configuration system (YAML)
  • Database support (MySQL)
  • ManiaLink support
    • ManiaLink handler (UIManager)
    • Easy use of a ManiaLink list (UIList)
  • Chat command handling
  • Working plugin system
    • Plugin interface
    • Callback handling
    • Access to server, database, playerlist, maplist and ManiaLink
    • Chat commands
    • Receive settings from configuration file
    • Welcome/goodbye, maplist/jukebox, local records, map karma and mapinfo widget

Installing for the first time

Building

  • ./build.sh
  • Move config.dist.yaml to config.yaml
  • Edit the configuration file with the server/database information

Running

  • ./Mania++

Check documentation of latest develop commit

Generate code documentation for current code

Requires Doxygen to be installed on your system: sudo apt-get install doxygen

To make it easier to contribute, you can check out the (automatic) documentation. To do this, do:

  • cd ./doc/
  • doxygen
  • Open the documentation either in HTML or LaTeX format (in subdirectories)

mania-pp's People

Contributors

themaximum avatar

Watchers

 avatar  avatar

mania-pp's Issues

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.