/riftshadow

Dedicated to the preservation of the game and modernization of a classic mud codebase.

Primary LanguageCMIT LicenseMIT

Riftshadow MUD

Build Status

Table of Contents
Summary
Goals
Build Requirements
SQL Setup
config json

Summary

Riftshadow (RS) is a swords and sorcery style PVP-enabled multi-user dungeon (MUD) from the early 2000s. As the original server is no longer live, the original authors provided the source code to the community to use and modify so that RS can live on. The primary goals for this community are to restore RS to a fully-functional state capable of operating on modern hardware with all features finished and bugs eliminated or codified as features. Preservation of the game for future generations requires adapting the code to be easier to read and maintain, but without changing the feel of the core gameplay.

Goals

  • With preservation in mind, act to maintain and improve the codebase with modern standards.
  • Add appropriate commenting, and remove inappropriate comments that exist.
  • adapt code to be readable and maintainable over time by future developers.
  • Preserve core gameplay.
  • Improve security (ex. data storage of passwords) and thus safety for players and maintainers.
  • Decouple storage types from the code to support multiple backends with limited code changes.

Build Reqs

The following packages are required to build on linux x86 and test the application at this time.

  • make
  • cmake
  • git
  • g++
  • sql-server (mariadb suggested)
  • libmariadb-dev
  • libmariadb-dev-compat

Building

To build, run cmake . at the root of the project directory which will build system-appropriate Makefile configs. Then, run make to begin the build process. Afterward if successful the binary is located in the ./code/ directory and ready to execute.

Database injection

You will also need to inject the databases into the mysql server, add a user named 'rift', and set up your connection strings properly in order to start up.

Note: If you have issues getting the project to run properly you're likely missing the area files or the log 'area/login.txt'. (this is going to be refactored out eventually).

SQL Setup

required DBs and assoc. files

Database SQL struct file
rift_core rift_core.sql
rift rift.sql
riftforum unknown / needs creation

default user: rift default pwd: rift123

The username and password can be changed using the config json and no longer need to be hosted on the same system. See the config json section for information on updating credentials.

config json

The following is an example config.json file, which needs to be located in the root directory for the project. The defaults listed for the db connections are customizable, so if you want to name your databases differently use the same key name here but change the db value to match your setup.

{
    "Port" : 9999,
     "DbConnections": {
          "rift" : {
               "Host" : "localhost",
               "User" : "rift",
               "Pwd" : "rift123",
               "Db" : "rift"
          },
          "rift_core" : {
              ...
          },
          "riftforum" : {
              ...
          }
     }
}