Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tleguern/crlserver

C RogueLike SERVER
https://github.com/tleguern/crlserver

c roguelike

Last synced: 3 days ago
JSON representation

C RogueLike SERVER

Awesome Lists containing this project

README

        

crlserver
=========

crlserver is a roguelike server in the spirit of dgamelaunch, but it
manages users logins and scores for far more than just nethack.

Features
--------

* It's not GPL'ed
* Multiple game
* Simple configuration
* SQL or LDAP authentification backend
* Simple and clean UI
* Easy username filtering

TODO
----

* Support of ttyrec for games record
* Support of ttyplay for real time games watching
* Configurable menus via the configuration file, like dgamelaunch does

Known working plateforms
------------------------

* OpenBSD i386, amd64 and loongson
* Ubuntu i386 and amd64

Compilation
-----------

* Edit 'pathnames.h', to suit your needs (there is documentation inside)
* Use 'make' or 'gmake' depending on your plateform

Installation
------------

* Put the binary somewhere and the content of 'data' in the directories
you have specified in 'pathnames.h'.
* Create the 'playground' and 'userdata' directories.
* Create a user (eg: 'crlserver')
* Edit your sshd_config and add those lines:
Match User crlserver
ForceCommand /path/to/crlserver
* Alternatively you can use telnet or put crlserver as a login shell
but it's not the recommended way.
* Create a crlserver configuration file and put it in /etc or crlserver's
home
* It works (or if not, mail me) !

Configuration
-------------

Grab the sample.conf in 'data' and change the values to what you want.

game nethack {
longname = "NetHack"
version = "3.4.3"
description = "This is the vanilla version of NetHack"
key = "n"
path = "/usr/games/nethack"
params = {"-u","%user%"}
}

When the string '%user%' is found somewhere in the variables 'env' and 'params',
it is automatically replaced by the username at login-time.

You can do the same thing for text editors.

editor rledit {
longname = "RogueLike Editor"
version = "?"
description = "This is an example"
key = "r"
path = "/usr/local/bin/rledit"
}