Wednesday, November 19, 2014

NodeMUD

After some Googling it appears there are several Node.js MUD engines. I'm going to play around with rolling my own first.

I started by going to nodejs.org and clicking the nice Install button. After downloading I've gotten the install screen:











Node is now installed.

Running npm gives the following:

npm : Error: ENOENT, stat 'C:\Users\XXXXXXXXX\AppData\Roaming\npm'
At line:1 char:1
+ npm
+ ~~~
    + CategoryInfo          : NotSpecified: (Error: ENOENT, ...ta\Roaming\npm':String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

Googling error gives:

http://stackoverflow.com/questions/25093276/nodejs-windows-error-enoent-stat-c-users-rt-appdata-roaming-npm

Making the director in Roaming fixes this.

First installing telnet via:
 npm install telnet
 
Windows does seem to install telnet by default anymore so...
 
pkgmgr /iu:"TelnetClient"
 
will add it via the shell.



MUD Game Programming

I recently obtained a copy of a book I lost a few years ago.

http://www.amazon.com/Game-Programming-Premier-Press-Development/dp/1592000908

It is a great niche book which covers building a MUD from start to finish (a MUD is never really finished)

Now that I am rearmed with this guide book I am going to make a MUD. I'm going to document my process from start to finish*.

The first choice I need to make is languages. The guides in the book are C++ and eventually plugin support with Python.

I could follow the book exactly, but the opportunity to enhance the design. I am considering the trade off between native network access and a web interface. I could go with a web framework and use SignalR and make a slick web client and/or make a standard network connection via telnet and or dialup access. 

Here is what I am considering:

C++ or C# for telnet and dialup connection to the MUD
C# for the MUD engineC# for the Web Server interface
Python for plugins
SignalR to allow enhanced web connection
WebAPI for native user bot support

After some consideration this stack will not work well on my RasberryPi which would be a great dedicated machine for a MUD.

I think I am going to use Node.js for everything.

Saturday, November 1, 2014

PHP data

A friend of mine suggested I split off my my data layer portion from my heraldry project and put it up on GitHub and include it in my other project. I've got one little part I found online that I am checking on the license, but should be posting pretty soon. If the license isn't compatible I'll need to write something to fill in that piece. Basically it connects a MariaDB to an Object Layer and has a RESTful API. I've got a nice example file that uses Knockout to connect to the API.