Giter VIP home page Giter VIP logo

evennia / evennia Goto Github PK

View Code? Open in Web Editor NEW
1.7K 133.0 683.0 327.48 MB

Python MUD/MUX/MUSH/MU* development system

Home Page: http://www.evennia.com

License: BSD 3-Clause "New" or "Revised" License

Python 96.27% Emacs Lisp 0.04% CSS 0.52% HTML 1.10% JavaScript 1.88% Shell 0.12% Dockerfile 0.05% Makefile 0.02%
mud mux mush python multiplayer moo text-based text-based-adventure django twisted game-engine game-development gamedev webserver webclient text based engine hacktoberfest

evennia's Introduction

Evennia MUD/MU* Creation System

unittestciimg Coverage Status Pypi Version

Evennia is a modern library for creating online multiplayer text games (MUD, MUSH, MUX, MUCK, MOO etc) in pure Python. It allows game creators to design and flesh out their ideas with great freedom.

Evennia does not impose a particular style, genre or game mechanic. Instead it solves the boring networking and basic stuff all online games need. It provides a framework and tools for you to build the game you want. Coding in Evennia is done using normal Python modules imported into the server at runtime.

Evennia has extensive documentation. It also has a very active community with discussion forums and a discord server to help and support you!

Installation

pip install evennia
    (windows users once: py -m evennia)
evennia --init mygame
cd mygame
evennia migrate
evennia start / stop / reload

See the full installation instructions for more help.

Next, browse to http://localhost:4001 or use your third-party mud client to connect to localhost, port 4000 to see your working (if empty) game!

screenshot A game website is created automatically. Connect to your Evennia game from your web browser as well as using traditional third-party clients.

Where to go next

If this piqued your interest, there is a lengthier introduction to read. You can also read our Evennia in pictures overview. After that, why not check out the Evennia Beginner tutorial.

Welcome!

evennia's People

Contributors

ahmedcharles avatar aliceafterall avatar amiss-awry avatar aogier avatar blaufeuer avatar chiizujin avatar chrislr avatar cloudkeeper avatar davewiththenicehat avatar delizin avatar faangbait avatar fluttersprite avatar friarzen avatar griatch avatar gtaylor avatar henddher avatar holl0wstar avatar homeofpoe avatar ilpdev avatar inspectorcaracal avatar kelketek avatar ryanstein avatar strikaco avatar tajmone avatar tegiminis avatar tehomcd avatar titeuf87 avatar tsal avatar vincent-lg avatar volundmush avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

evennia's Issues

Warm Restart/Reload

From [email protected] on April 24, 2007 17:37:44

One of the perks of Python is its dynamic module re-loading capabilities.
We want admins to be able to re-compile the codebase while it's running and
see changes take place immediately. Obviously some really low level changes
won't play nicely, but 95% of them should be fine.

Basically, the command @restart needs to reload (at minimum) all of the
stuff under the apps directory. That's where people will be doing the bulk
of their extensions/modifications and would serve as a good starting point.

Original issue: http://code.google.com/p/evennia/issues/detail?id=10

Failure to start

From [email protected] on June 10, 2008 14:24:21

It looks like the latest Twisted doesn't play nicely with Evennia (on
Windows at least):

2008-06-10 08:21:31-0400 [-] Log opened.
2008-06-10 08:21:31-0400 [-] --------------------------------------------------
2008-06-10 08:21:31-0400 [-] Command Aliases Loaded: 9
2008-06-10 08:21:31-0400 [-] Evennia Test Site started on port(s):
2008-06-10 08:21:31-0400 [-] * 4000
2008-06-10 08:21:31-0400 [-] --------------------------------------------------
2008-06-10 08:21:31-0400 [-] Loaded.
2008-06-10 08:21:31-0400 [-] Traceback (most recent call last):
2008-06-10 08:21:31-0400 [-] File "C:\Python25\scripts\twistd.py", line
21, in
2008-06-10 08:21:31-0400 [-] run()
2008-06-10 08:21:31-0400 [-] File
"C:\Python25\Lib\site-packages\twisted\scripts\twistd.py", line 27, in run
2008-06-10 08:21:31-0400 [-] app.run(runApp, ServerOptions)
2008-06-10 08:21:31-0400 [-] File
"C:\Python25\Lib\site-packages\twisted\application\app.py", line 614, in run
2008-06-10 08:21:31-0400 [-] runApp(config)
2008-06-10 08:21:31-0400 [-] File
"C:\Python25\Lib\site-packages\twisted\scripts\twistd.py", line 23, in runApp
2008-06-10 08:21:31-0400 [-] _SomeApplicationRunner(config).run()
2008-06-10 08:21:31-0400 [-] File
"C:\Python25\Lib\site-packages\twisted\application\app.py", line 335, in run
2008-06-10 08:21:31-0400 [-] self.startLogging(self.getLogObserver())
2008-06-10 08:21:31-0400 [-] File
"C:\Python25\Lib\site-packages\twisted\application\app.py", line 367, in
startLogging
2008-06-10 08:21:31-0400 [-] log.startLoggingWithObserver(observer)
2008-06-10 08:21:31-0400 [-] File
"C:\Python25\Lib\site-packages\twisted\python\log.py", line 519, in
startLoggingWithObserver
2008-06-10 08:21:31-0400 [-] msg("Log opened.")
2008-06-10 08:21:31-0400 [-] File
"C:\Python25\Lib\site-packages\twisted\python\log.py", line 246, in msg
2008-06-10 08:21:31-0400 [-] o = self.observers.pop(i)
2008-06-10 08:21:31-0400 [-] IndexError: pop index out of range

Original issue: http://code.google.com/p/evennia/issues/detail?id=38

Dead Session Cleaning

From [email protected] on April 26, 2007 04:36:52

Fill in the stub in session_mgr.py for check_all_sessions() to remove dead
sessions. If a player disconnects via QUIT or by closing his client, the
session is removed as expected. However, if the player is behind a badly
configured NAT and times out silently, the session remains open. Clean out
these dead sessions so we don't have multiple logins of the same person
sitting on the WHO list, even if the player is no longer connected at all.

Original issue: http://code.google.com/p/evennia/issues/detail?id=11

Quotes-handling issue with MySQL and Aliases

From [email protected] on April 28, 2007 17:10:23

What steps will reproduce the problem? 1. Set up a MySQL database for Evennia
2. Run python manage.py syncdb
3. Watch the error occur What is the expected output? What do you see instead? The expected output is completion of table creation without error, instead
you get:

Installing custom SQL for genperms.CommandAlias model
Failed to install custom SQL for genperms.CommandAlias model: (1064, 'You
have an
error in your SQL syntax; check the manual that corresponds to your MySQL
server
version for the right syntax to use near '"config_commandalias" VALUES
(1,'l','look')' at line 1')Installing custom SQL for
genperms.ConfigValue model
Failed to install custom SQL for genperms.ConfigValue model: (1064, 'You
have an
error in your SQL syntax; check the manual that corresponds to your MySQL
server
version for the right syntax to use near '"config_configvalue" VALUES
(0,'site_name','Evennia Test Site')' at line 1')Installing custom SQL
for
genperms.Object model
Failed to install custom SQL for genperms.Object model: (1064, 'You have
an error in
your SQL syntax; check the manual that corresponds to your MySQL server
version for
the right syntax to use near '"objects_object" VALUES
(1,'Wizard','Wizard',1,0,2,1,'',2,'','CONNECTED','2007-04' at
line 1')
Installing custom SQL for genperms.HelpEntry model
Failed to install custom SQL for genperms.HelpEntry model: (1064, 'You
have an error
in your SQL syntax; check the manual that corresponds to your MySQL server
version
for the right syntax to use near '"helpsys_helpentry" VALUES(1,'Help
Index','This game has yet to customize its he' at line 1')Installing
index for
auth.Message model

Original issue: http://code.google.com/p/evennia/issues/detail?id=13

Player can @name & @alias themselves to another player's name

From [email protected] on June 13, 2008 20:26:53

What steps will reproduce the problem? 1. Login as a player
2. @name me=<another player's name>
3. @alias me=<another player's name> What is the expected output? What do you see instead? You should end up with the other player's name as your name and alias.

I figure I can take the code that I wrote for
commands/unlogged.py:cmd_create that checks for an existing player name &
alias and use it on these commands. Probably worth a common function of
some sort.

Original issue: http://code.google.com/p/evennia/issues/detail?id=39

@dig and the reuse of dbrefs

From [email protected] on August 07, 2007 18:21:49

What steps will reproduce the problem? 1. Create a room, give it some attributes, including a description.
2. @destroy the new room.
3. @dig a new room, and hopefully it will get the old room's DBREF - this
part is iffy, but it happened to me.

This should make a completely new room, even it is re-using the previous
rooms' id. Instead, the "new" room has the same description of the
previous room, but the name has changed.

Original issue: http://code.google.com/p/evennia/issues/detail?id=34

Strange unicode issues on gentoo, twisted and django SVN

From [email protected] on September 14, 2007 15:28:25

Traceback (most recent call last):
File "/home/mking/devel/python/personal/evennia/cmdhandler.py", line 150,
in handle
cmd(cdat)
File "/home/mking/devel/python/personal/evennia/commands/general.py",
line 466, in cmd_help
session.msg("\r\n%s%s%s" % (ansi.ansi["hilite"], topic.get_topicname(),
ansi.ansi["normal"]))
File "/home/mking/devel/python/personal/evennia/session.py", line 170, in msg
self.sendLine("%s" % (message,))
File "/usr/lib/python2.5/site-packages/twisted/protocols/basic.py", line
277, in sendLine
return self.transport.write(line + self.delimiter)
File "/usr/lib/python2.5/site-packages/twisted/internet/abstract.py",
line 165, in write
raise TypeError("Data must not be unicode")
TypeError: Data must not be unicode

Original issue: http://code.google.com/p/evennia/issues/detail?id=36

Command @boot

From [email protected] on May 27, 2007 19:32:40

Implement as follows:

Switches:
/port - Boot a specific session on a port. Iterate through the session list
and match by port.
/quiet - Just disconnect the user without any notification.

Default behavior is to boot all sessions associated with the object that is
@boot'd. Only allow @boot'ing player objects. Notify the player who booted
them unless /quiet is specified. See MUX2's handling of this for example.

Original issue: http://code.google.com/p/evennia/issues/detail?id=21

Command: Inventory

From [email protected] on June 11, 2007 03:42:18

general.py doesn't import gameconf breaking inventory command

What is the expected output?

You are carrying:
You have 0 Credits.

What do you see instead?

You are carrying:
Untrapped error, please file a bug report:
Traceback (most recent call last):
File "F:\pymuds\Evennia\cmdhandler.py", line 150, in handle
cmd(cdat)
File "F:\pymuds\Evennia\commands\general.py", line 94, in cmd_inventory
else:
NameError: global name 'gameconf' is not defined What version of the product are you using? On what operating system? rev 204
winxp

Original issue: http://code.google.com/p/evennia/issues/detail?id=30

wrong comments

From [email protected] on September 13, 2007 19:32:40

The first comment changed in the patch bellow shows a page with all
choices, the removed line don't.

The second comment is removed because you can only visit that link upon
registration.

Please apply this patch:

--- settings.py.dist 2007-09-13 18:28:09.000000000 +0100
+++ settings.py.dist.new 2007-09-13 18:29:19.000000000 +0100
@@ -46,12 +46,11 @@
DATABASE_PORT = ''

Local time zone for this installation. All choices can be found here:

-# http://www.postgresql.org/docs/current/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE +# http://www.timezoneconverter.com/cgi-bin/tzc.tzc TIME_ZONE = 'America/New_York'

Language code for this installation. All choices can be found here:

http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes -# http://blogs.law.harvard.edu/tech/stories/storyReader$15 LANGUAGE_CODE = 'en-us'

It's safe to dis-regard this, as it's a Django feature we only half use as a

Original issue: http://code.google.com/p/evennia/issues/detail?id=35

Feisty Fawn and compiling

From [email protected] on July 25, 2007 17:08:17

Running ubuntu Feisty, got all the dependencies, but when I go to try
and pull the initial 'python manage.py syncdb' I receive:

Error: Couldn't install apps, because there were errors in one or more
models:
apps.objects: cannot import name CommChannel

So it wont finish making the database tables :/ The only file I've
modified is the settings.py.dist, and yep it's renamed settings.py now.

Original issue: http://code.google.com/p/evennia/issues/detail?id=33

Scripting Support

From [email protected] on April 23, 2007 17:51:37

This is a tough one that will require some thought and discussion. Figure
out how to provide the capability to script individual or groups of object
to behave certain ways via source that is external to the codebase. We want
players to be able to extend and enrich their game with minimal
modifications to the actual base code. This allows us to keep everyone on
the same page and we all benefit from mutual developments rather than
branching off in our own directions.

The scripting should be in python, objects can be pointed at individual
scripts that implement behaviors via some kind of object interface. Players
should be able to execute commands from scripted objects, look at them and
see an external inherited description (if none on the object exists), etc.
It's essentially like MUX/MUSH's parent system, but with python files
instead of parent objects.

Original issue: http://code.google.com/p/evennia/issues/detail?id=3

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.