[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [gopher] Running a MUD, was: Re: cgod - a new prototype gopher daemon



Evennia has a pretty good "Getting Started" guide that got me started
pretty quickly.  Depending on your OS of choice, it should be too
difficult to set-up.  It does need Python 2.7+, so some older Linux
distros might not be-able to run it out of the box.  However, you can
easily install a Python version management tool, that lets you easily
install any version of Python on any Linux distribution.  I had to
recently discover this tool and use it to set-up a new Evennia server
on my workstation.  I only run Debian LTS Squeeze, which only has
packages for Python 2.6.  Here a link to "pyenv" which you can use to
download any version of Python:
https://github.com/yyuu/pyenv

As for port numbers, rarely any MUDs I visit use port 23, all PennMUSHs
use 4201 by default, and Evennia uses 4000 I believe.  So there are no
worries about port 23, and in fact having code that must switch UID and
run as root would require additional security auditing.  So, lets just
stick with a port > 1024.  All MUD clients support specifying a port
number.

Evennia has special admin commands which can be used to "restart" the
MUD server from within the game, "@restart", "@reset", and
"@shutdown".  The player running these commands will need a specific
permission in-game, but only a couple people should actually need shell
access.

Python is pretty easy to grasp, and there is a "tutorial_world" in
Evennia which has all the Python source code.  It's a basic single
player adventure.  It would be good to read up on how the rooms and
objects are scripted.  The code is very readable.

Not everybody developing this MUD needs to know Python, you can easily
@dig rooms, and @create objects with no Python skills.  Read the
Evennia builders builders guide to understand "@dig" and "@create":
https://github.com/evennia/evennia/wiki/Building%20Quickstart

Python is only needed to add more personality to the room or object,
but you can specify all the basics in-game, such as the room/object's
noun, and description.  Creating more generic Python room and objects,
allows anybody to easily create a room and object with personality.

So, the people who don't know Python very well can communicate to the
people who do on what types on room and object personalities they would
like to see available.  Then on a master list of sorts, we can list all
the current room and object types available in-game currently.  So,
when you go to build something, you can check this list, either via an
in-game command or on a Gopherhole to see what "typeclass" or "script"
you want to assign to your newly created room or object.

On Wed, 24 Dec 2014 15:57:26 +0100
Florian Teply <usenet@teply.info> wrote:

> Am Sun, 21 Dec 2014 16:01:16 -0700
> schrieb Kevin Veroneau <kevin@veroneau.net>:
> 
> > Looks like I'm a missing a message or two here for some reason or
> > another.
> > 
> > Anyways, for the actual MUD server development I was thinking of
> > using the rather awesome Python MUD framework called Evennia.  Since
> > everyone here seems to know at least some degree of Python(It's the
> > most talked about language since I joined this list), it seems like a
> > rather nice choice.  Evennia, I found was both powerful and fun to
> > work with.  The actually coding of game objects is therefore done
> > server-side rather than using a MUD client.  Although, building can
> > still be done on the client(@dig, and @create).
> > 
> > So my idea was to host a souce code repository somewhere which anyone
> > in the gopher community can grab and try adding new object, enemies,
> > etc...  Then the object code can either be committed to SCM or the
> > required Python classes be emailed to the individual who decided to
> > host the server.  Since this is Python code, the code should be
> > confirmed for any security type issues before being pasted and loaded
> > into the MUD server.
> > 
> Generally speaking, I'd consider having a source code repository (as in
> version control system) a must for about anything that might get
> changed over time. Together with a "commit early, commit often"
> approach this makes life so much easier.
> 
> Also, the mentioning of testing and security checks IMHO does apply to
> any code and is not specific to Python. Having a separate testbed
> somewhere (basically a copy of the MUD server, not necessarily publicly
> accessible) looks to me like a pretty good idea.
> 
> > You can take a look at the server software here(Sorry it's not on
> > Gopher): http://www.evennia.com/
> > 
> > So, if we want to go through with this, we'll need to determine the
> > following:
> > 
> > * Should we go with Evennia or a more traditional server?
> 
> I just had a look at it and tried installing it on my server. Will
> need some more work though as I need to install some of the
> prerequisites and have to find the right packages...
> The mention of Evennia came just in time as I was about to setup a
> HomeMUD anyways and was not sure what to choose. So I'll give it a try
> anyways, even though I still don't know any python.
> 
> > * Who is going to be the server God?(The person hosting the server)?
> 
> There's hardly any different solution IMHO. From my understanding, the
> MUD server god needs at least shell access on the host machine with
> sufficient rights, especially if the server is supposed to listen on
> port 23. In principle, this could someone else than the person hosting
> the server, and it might be good to have a few trusted people that
> could restart the server if the need arises, so it is not a strict
> requirement. But personally, I wouldn't want someone else running a
> server on MY hardware without me at least being able to have a close
> look at it.
> 
> > * Who here is creative and can think of a backstory and setting?
> 
> From what I see, this can be a pretty sketchy idea. I think it will
> evolve over time anyways, based on what those individuals that actually
> design the world have in mind.
> 
> > * Who here is willing to help out with creating the rooms and objects?
> 
> I would have a stab at it. If we go for Evennia, I'll have to get top
> terms with python though, so the learning curve is going to be pretty
> steep for me.
> 
> > * Who here has exceptional Python coding skills to code the actions
> > for rooms, objects, and players?(If we use Evennia)
> >
> Exceptional python coding skills essentially would exclude me for quite
> some time at least. I'd have a try however at having a second look at
> the code to check it.
> 
> > More than one person can do any specific task, with the exception of
> > server hosting.  Feel free to make additional suggestions.
> >
> 
> It's certainly a good idea to spread the work over many shoulders.
> 
> Best regards,
> Florian 
> 
> _______________________________________________
> Gopher-Project mailing list
> Gopher-Project@lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/gopher-project


-- 
Best Regards,
  Kevin Veroneau
  Kevin Veroneau Consulting Services
  kevin@veroneau.net
  https://www.veroneau.net/

_______________________________________________
Gopher-Project mailing list
Gopher-Project@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/gopher-project




Reply to: