Code Monkey home page Code Monkey logo

limpingninja / netci Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 1.0 289 KB

This is a MUD (multi-user dungeon) engine lost a bit to time called NetCI (Network Command Interpreter). Essentially it is similar to ColdC/Cold-C in that it provides a MUD server that is database driven and is quite similar to LPMud in that it uses a simplified C-Like scripting language.

License: Mozilla Public License 2.0

Makefile 3.30% C 95.12% Shell 0.04% Roff 0.33% Yacc 0.03% Perl 0.16% EmberScript 0.09% Assembly 0.19% Brainfuck 0.17% R 0.05% HTML 0.02% JavaScript 0.03% Python 0.03% Batchfile 0.16% Slice 0.02% Objective-C 0.05% EJS 0.16% Bikeshed 0.02% Euphoria 0.05%
mud mud-server mud-engine mud-client mud-game-server mudlib coldcore lpc mudos

netci's Introduction

NetCI

NetCI - Network Command Interpreter

This is version 1.9.6 of NetCI.

Currently, the source code is being maintained by Kevin Morgan (LimpingNinja@github), with the original code having been written by Patrick Wetmore. The ci200fs mudlib that accompanies the codebase was written by Gregory Blake.

There is not currently a mailing list, documentation is minimal, but you will be able to compile this easily on Linux as of this version by simple use of build-essentials (or equivalent) on your system.

FAQ

1. What is this?

This is a database driven command interpreter for Networks. Just as the name implies. It allows you to write code in a C-like language that is interpreted and translated to byte code, then stored in a database, in order to make an interactive, network-connected, environment. In most cases, systems like this were used to create MUDs (Multi-user dungeons) and this is not an exception.

The popularity of NetCI as a MUD server was minimal, it was operating in a space where LPMud was popular and already had a fair throttle on the server/interpreter/lib pattern. The Mudlib written for the server (and included) is based after TinyMUD and very minimal. The interpreter itself also has some limitations (non-dynamic arrays, no mappings, etc.) which could have prevented some complexity.

2. What is the future here?

The question can apply to MUDs in general. Their heyday is well past, but I plan on doing the following initially:

  1. Cleaning up the C code structure where necessary.
  2. Adding/changing functionality of the interpreter to bring it inline with my standards.
  3. Creating an testsuite library, similar to lil for MudOS.
  4. Creating a new mudlib that acts as a base mudlib for design.

Now, is there any future use in a production environment? Probably not, but that doesn't mean you should ignore this. If you have spare cycles and nostalgia. Feel free to submit a pull request.

Compiling on OSX

Make sure you have installed xCode

xcode-select --install

Right now there is an issue with the autoconf, so please edit autoconf.h and modify the USE_BSD define to USE_POSIX, then go back to the main folder and simply run:

make

Compiling on Debian-based linux (tested)

Ensure that you have at least build-essentials installed:

sudo apt-get install build-essentials

Then simply:

make

There should be no gotcha's or surprises.

Running The Server

Simply run the server with ./netci or with ./netci <inifile>

Configuration Options

All of the command line values below are saved in the netci.ini file, you can edit this file as opposed to running the command line options. The default INI file values should be appropriate for running your system without modification, but feel free to modify as necessary as opposed to modifying the src/config.h file.

Command Line Options

Option Description
-load=[filename] Specifies the database file to load the world from
-save=[filename] Specifies the databse file to save the world to
-panic=[filename] Specifies the destination of the panic database on critical error
-filesystem=[directory] This is the path to the mudlib/filesystem to use for the interpreter
-syslog=[filename] The filename for the system log, essentially server related output
-xlog=[filename] The filename for the transaction log
-xlogsize=[#] The amount to store within the transaction log in KB
-tmpdb=[filename] Specifies the location of the temporary database files to use when operating
-create Force a recreation of the database file from the filesystem/mudlib
-multi Sets the interface type to multi (this is default)
-single Sets the interface type to single-mode
-detach Detach the NetCI session from the current
-noisy Verbose operating mode, good for console logging
-version Prints out the current version of NetCI
-protocol=[tcp|ipx|netbios] Determines the protocol to run the server under
-port=[#] Set the operant TCP port for the server
-ipxnet=[hex] IPX network configuration
-ipxnode=[hex] IPX node configuration
-ipxsocket=[hex] IPX socket configuration
-node=[name] Sets the NetBios node name for the server
-nbport=[#] Set the operant NetbBios port for the server

netci's People

Contributors

limpingninja avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

hexcolors60

netci's Issues

Implicit declaration of rmdir

Not really any sort of stopper, but an easy fix for this standard.

file.c: In function ‘SYSTEM_rmdir’:
file.c:43:7: warning: implicit declaration of function ‘rmdir’ [-Wimplicit-function-declaration]
if (rmdir(filename))

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.