mirror of
https://github.com/evennia/evennia.git
synced 2026-03-18 22:06:30 +01:00
272 lines
No EOL
19 KiB
HTML
272 lines
No EOL
19 KiB
HTML
|
||
<!DOCTYPE html>
|
||
|
||
<html>
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||
|
||
<title>Evennia Introduction — Evennia 1.0-dev documentation</title>
|
||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||
<script src="_static/jquery.js"></script>
|
||
<script src="_static/underscore.js"></script>
|
||
<script src="_static/doctools.js"></script>
|
||
<script src="_static/language_data.js"></script>
|
||
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</script>
|
||
<link rel="shortcut icon" href="_static/favicon.ico"/>
|
||
<link rel="index" title="Index" href="genindex.html" />
|
||
<link rel="search" title="Search" href="search.html" />
|
||
<link rel="next" title="Setup quickstart" href="Setup/Setup-Quickstart.html" />
|
||
<link rel="prev" title="Evennia Documentation" href="index.html" />
|
||
</head><body>
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="genindex.html" title="General Index"
|
||
accesskey="I">index</a></li>
|
||
<li class="right" >
|
||
<a href="py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="right" >
|
||
<a href="Setup/Setup-Quickstart.html" title="Setup quickstart"
|
||
accesskey="N">next</a> |</li>
|
||
<li class="right" >
|
||
<a href="index.html" title="Evennia Documentation"
|
||
accesskey="P">previous</a> |</li>
|
||
<li class="nav-item nav-item-0"><a href="index.html">Evennia 1.0-dev</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href="">Evennia Introduction</a></li>
|
||
</ul>
|
||
<div class="develop">develop branch</div>
|
||
</div>
|
||
|
||
<div class="document">
|
||
<div class="documentwrapper">
|
||
<div class="bodywrapper">
|
||
<div class="body" role="main">
|
||
|
||
<section class="tex2jax_ignore mathjax_ignore" id="evennia-introduction">
|
||
<h1>Evennia Introduction<a class="headerlink" href="#evennia-introduction" title="Permalink to this headline">¶</a></h1>
|
||
<blockquote>
|
||
<div><p><em>A MUD (originally Multi-User Dungeon, with later variants Multi-User Dimension and Multi-User
|
||
Domain) is a multiplayer real-time virtual world described primarily in text. MUDs combine elements
|
||
of role-playing games, hack and slash, player versus player, interactive fiction and online chat.
|
||
Players can read or view descriptions of rooms, objects, other players, non-player characters, and
|
||
actions performed in the virtual world. Players typically interact with each other and the world by
|
||
typing commands that resemble a natural language.</em> - <a class="reference external" href="https://en.wikipedia.org/wiki/MUD">Wikipedia</a></p>
|
||
</div></blockquote>
|
||
<p>If you are reading this, it’s quite likely you are dreaming of creating and running a text-based
|
||
massively-multiplayer game (<a class="reference external" href="https://tinyurl.com/c5sc4bm">MUD/MUX/MUSH</a> etc) of your very own. You
|
||
might just be starting to think about it, or you might have lugged around that <em>perfect</em> game in
|
||
your mind for years … you know <em>just</em> how good it would be, if you could only make it come to
|
||
reality. We know how you feel. That is, after all, why Evennia came to be.</p>
|
||
<p>Evennia is a MU*-building system: a bare-bones Python codebase and server intended to
|
||
be highly extendable for any style of game. “Bare-bones” in this context means that we try to impose
|
||
as few game-specific things on you as possible. For convenience offer basic building
|
||
blocks like objects, characters, rooms, default commands for building and administration etc, we
|
||
don’t prescribe any combat rules, mob AI, races, skills, character classes or other things that will
|
||
be different from game to game anyway.</p>
|
||
<p>What we <em>do</em> however, is to provide a solid foundation for all the boring database, networking, and
|
||
behind-the-scenes administration stuff that all online games need whether they like it or not.
|
||
Evennia is <em>fully persistent</em>, that means things you drop on the ground somewhere will still be
|
||
there a dozen server reboots later. Through Django we support a large variety of different database
|
||
systems (a database is created for you automatically if you use the defaults).</p>
|
||
<p>We also include a growing list of <em>optional</em> <a class="reference internal" href="Contribs/Contrib-Overview.html"><span class="doc std std-doc">contribs</span></a> you can use for your game
|
||
would you want something to build from.</p>
|
||
<p>Using the full power of Python throughout the server offers some distinct advantages. All your
|
||
coding, from object definitions and custom commands to AI scripts and economic systems is done in
|
||
normal Python modules rather than some ad-hoc scripting language. The fact that you script the game
|
||
in the same high-level language that you code it in allows for very powerful and custom game
|
||
implementations indeed.</p>
|
||
<p>Out of the box, Evennia gives you a ‘talker’-type of game; you can walk around, chat, build rooms and objects,
|
||
do basic roleplaying and administration. The server ships with a default set of player commands that are
|
||
similar to the MUX command set. We <em>do not</em> aim specifically to be a MUX server, but we had to pick some
|
||
default to go with (see <a class="reference internal" href="Concepts/Soft-Code.html"><span class="doc std std-doc">this</span></a> for more about our original motivations). It’s easy to
|
||
remove or add commands, or to have the command syntax mimic other systems, like Diku, LP, MOO and so on.
|
||
Or why not create a new and better command system of your own design.</p>
|
||
<section id="can-i-test-it-somewhere">
|
||
<h2>Can I test it somewhere?<a class="headerlink" href="#can-i-test-it-somewhere" title="Permalink to this headline">¶</a></h2>
|
||
<p>Evennia’s demo server can be found at <a class="reference external" href="https://demo.evennia.com">https://demo.evennia.com</a>. If you prefer to
|
||
connect to the demo via your telnet client you can do so at <code class="docutils literal notranslate"><span class="pre">demo.evennia.com</span></code>, port <code class="docutils literal notranslate"><span class="pre">4000</span></code>.</p>
|
||
<p>Once you installed Evennia yourself it comes with its own tutorial - this shows off some of the
|
||
possibilities <em>and</em> gives you a small single-player quest to play. The tutorial takes only one
|
||
single in-game command to install as explained <a class="reference internal" href="Howto/Starting/Part1/Tutorial-World-Introduction.html"><span class="doc std std-doc">here</span></a>.</p>
|
||
</section>
|
||
<section id="what-you-need-to-know-to-work-with-evennia">
|
||
<h2>What you need to know to work with Evennia<a class="headerlink" href="#what-you-need-to-know-to-work-with-evennia" title="Permalink to this headline">¶</a></h2>
|
||
<p>Assuming you have Evennia working (see the <a class="reference internal" href="Setup/Setup-Quickstart.html"><span class="doc std std-doc">quick start instructions</span></a>) and have
|
||
gotten as far as to start the server and connect to it with the client of your choice, here’s what
|
||
you need to know depending on your skills and needs.</p>
|
||
<section id="i-dont-know-or-dont-want-to-do-any-programming-i-just-want-to-run-a-game">
|
||
<h3>I don’t know (or don’t want to do) any programming - I just want to run a game!<a class="headerlink" href="#i-dont-know-or-dont-want-to-do-any-programming-i-just-want-to-run-a-game" title="Permalink to this headline">¶</a></h3>
|
||
<p>Evennia comes with a default set of commands for the Python newbies and for those who need to get a
|
||
game running <em>now</em>. Stock Evennia is enough for running a simple ‘Talker’-type game - you can build
|
||
and describe rooms and basic objects, have chat channels, do emotes and other things suitable for a
|
||
social or free-form MU*. Combat, mobs and other game elements are not included, so you’ll have a
|
||
very basic game indeed if you are not willing to do at least <em>some</em> coding.</p>
|
||
</section>
|
||
<section id="i-know-basic-python-or-i-am-willing-to-learn">
|
||
<h3>I know basic Python, or I am willing to learn<a class="headerlink" href="#i-know-basic-python-or-i-am-willing-to-learn" title="Permalink to this headline">¶</a></h3>
|
||
<p>Evennia’s source code is extensively documented and is <a class="reference external" href="https://github.com/evennia/evennia">viewable
|
||
online</a>. We also have a comprehensive <a class="reference external" href="https://evennia.com/docs">online
|
||
manual</a> with lots of examples. But while Python is
|
||
considered a very easy programming language to get into, you do have a learning curve to climb if
|
||
you are new to programming. Evennia’s <a class="reference internal" href="Howto/Starting/Part1/Starting-Part1.html"><span class="doc std std-doc">Starting-tutorial</span></a> has a <a class="reference internal" href="Howto/Starting/Part1/Python-basic-introduction.html"><span class="doc std std-doc">basic introduction
|
||
to Python</span></a> but you should probably also sit down
|
||
with a full Python beginner’s tutorial at some point (there are plenty of them on
|
||
the web if you look around). See also our <a class="reference internal" href="Links.html"><span class="doc std std-doc">link
|
||
page</span></a> for some reading suggestions. To efficiently code your dream game in
|
||
Evennia you don’t need to be a Python guru, but you do need to be able to read example code
|
||
containing at least these basic Python features:</p>
|
||
<ul class="simple">
|
||
<li><p>Importing and using python <a class="reference external" href="https://docs.python.org/3.7/tutorial/modules.html">modules</a></p></li>
|
||
<li><p>Using <a class="reference external" href="https://www.tutorialspoint.com/python/python_variable_types.htm">variables</a>, <a class="reference external" href="https://docs.python.org/tutorial/controlflow.html#if-statements">conditional
|
||
statements</a>,
|
||
<a class="reference external" href="https://docs.python.org/tutorial/controlflow.html#for-statements">loops</a> and
|
||
<a class="reference external" href="https://docs.python.org/tutorial/controlflow.html#defining-functions">functions</a></p></li>
|
||
<li><p>Using <a class="reference external" href="https://docs.python.org/tutorial/datastructures.html">lists, dictionaries and list
|
||
comprehensions</a></p></li>
|
||
<li><p>Doing <a class="reference external" href="https://docs.python.org/tutorial/introduction.html#strings">string handling and formatting</a></p></li>
|
||
<li><p>Have a basic understanding of <a class="reference external" href="https://www.tutorialspoint.com/python/python_classes_objects.htm">object-oriented
|
||
programming</a>, using
|
||
<a class="reference external" href="https://docs.python.org/tutorial/classes.html">Classes</a>, their methods and properties</p></li>
|
||
</ul>
|
||
<p>Obviously, the more things you feel comfortable with, the easier time you’ll have to find your way.
|
||
With just basic knowledge you should be able to define your own <a class="reference internal" href="Components/Commands.html"><span class="doc std std-doc">Commands</span></a>, create custom
|
||
<a class="reference internal" href="Components/Objects.html"><span class="doc std std-doc">Objects</span></a> as well as make your world come alive with basic <a class="reference internal" href="Components/Scripts.html"><span class="doc std std-doc">Scripts</span></a>. You can
|
||
definitely build a whole advanced and customized game from extending Evennia’s examples only.</p>
|
||
</section>
|
||
<section id="i-know-my-python-stuff-and-i-am-willing-to-use-it">
|
||
<h3>I know my Python stuff and I am willing to use it!<a class="headerlink" href="#i-know-my-python-stuff-and-i-am-willing-to-use-it" title="Permalink to this headline">¶</a></h3>
|
||
<p>Even if you started out as a Python beginner, you will likely get to this point after working on
|
||
your game for a while. With more general knowledge in Python the full power of Evennia opens up for
|
||
you. Apart from modifying commands, objects and scripts, you can develop everything from advanced
|
||
mob AI and economic systems, through sophisticated combat and social mini games, to redefining how
|
||
commands, players, rooms or channels themselves work. Since you code your game by importing normal
|
||
Python modules, there are few limits to what you can accomplish.</p>
|
||
<p>If you <em>also</em> happen to know some web programming (HTML, CSS, Javascript) there is also a web
|
||
presence (a website and a mud web client) to play around with …</p>
|
||
</section>
|
||
<section id="where-to-from-here">
|
||
<h3>Where to from here?<a class="headerlink" href="#where-to-from-here" title="Permalink to this headline">¶</a></h3>
|
||
<p>From here you can continue browsing the <a class="reference internal" href="index.html"><span class="doc std std-doc">online documentation</span></a> to
|
||
find more info about Evennia. Or you can jump into the <a class="reference internal" href="Howto/Howto-Overview.html"><span class="doc std std-doc">Tutorials</span></a> and get your hands
|
||
dirty with code right away. You can also read the lead developer’s <a class="reference external" href="https://evennia.blogspot.com/">dev blog</a> for many tidbits and snippets about Evennia’s development and
|
||
structure.</p>
|
||
<p>Some more hints:</p>
|
||
<ol class="simple">
|
||
<li><p>Get engaged in the community. Make an introductory post to our <a class="reference external" href="https://groups.google.com/forum/#%21forum/evennia">mailing
|
||
list/forum</a> and get to know people. It’s also
|
||
highly recommended you hop onto our <a class="reference external" href="https://webchat.freenode.net/?channels=evennia&uio=MT1mYWxzZSY5PXRydWUmMTE9MTk1JjEyPXRydWUbb">Developer
|
||
chat</a>
|
||
on IRC. This allows you to chat directly with other developers new and old as well as with the devs
|
||
of Evennia itself. This chat is logged (you can find links on <a class="reference external" href="https://www.evennia.com">https://www.evennia.com</a>) and can also
|
||
be searched from the same place for discussion topics you are interested in.</p></li>
|
||
<li><p>Read the <a class="reference internal" href="Howto/Starting/Part2/Game-Planning.html"><span class="doc std std-doc">Game Planning</span></a> wiki page. It gives some ideas for your work flow and the
|
||
state of mind you should aim for - including cutting down the scope of your game for its first
|
||
release.</p></li>
|
||
<li><p>Do the <a class="reference internal" href="Howto/Starting/Part3/Tutorial-for-basic-MUSH-like-game.html"><span class="doc std std-doc">Tutorial for basic MUSH-like game</span></a> carefully from
|
||
beginning to end and try to understand what does what. Even if you are not interested in a MUSH for
|
||
your own game, you will end up with a small (very small) game that you can build or learn from.</p></li>
|
||
</ol>
|
||
</section>
|
||
</section>
|
||
</section>
|
||
|
||
|
||
<div class="clearer"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||
<div class="sphinxsidebarwrapper">
|
||
<p class="logo"><a href="index.html">
|
||
<img class="logo" src="_static/evennia_logo.png" alt="Logo"/>
|
||
</a></p>
|
||
<div id="searchbox" style="display: none" role="search">
|
||
<h3 id="searchlabel">Quick search</h3>
|
||
<div class="searchformwrapper">
|
||
<form class="search" action="search.html" method="get">
|
||
<input type="text" name="q" aria-labelledby="searchlabel" />
|
||
<input type="submit" value="Go" />
|
||
</form>
|
||
</div>
|
||
</div>
|
||
<script>$('#searchbox').show(0);</script>
|
||
<p><h3><a href="index.html">Table of Contents</a></h3>
|
||
<ul>
|
||
<li><a class="reference internal" href="#">Evennia Introduction</a><ul>
|
||
<li><a class="reference internal" href="#can-i-test-it-somewhere">Can I test it somewhere?</a></li>
|
||
<li><a class="reference internal" href="#what-you-need-to-know-to-work-with-evennia">What you need to know to work with Evennia</a><ul>
|
||
<li><a class="reference internal" href="#i-dont-know-or-dont-want-to-do-any-programming-i-just-want-to-run-a-game">I don’t know (or don’t want to do) any programming - I just want to run a game!</a></li>
|
||
<li><a class="reference internal" href="#i-know-basic-python-or-i-am-willing-to-learn">I know basic Python, or I am willing to learn</a></li>
|
||
<li><a class="reference internal" href="#i-know-my-python-stuff-and-i-am-willing-to-use-it">I know my Python stuff and I am willing to use it!</a></li>
|
||
<li><a class="reference internal" href="#where-to-from-here">Where to from here?</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<h4>Previous topic</h4>
|
||
<p class="topless"><a href="index.html"
|
||
title="previous chapter">Evennia Documentation</a></p>
|
||
<h4>Next topic</h4>
|
||
<p class="topless"><a href="Setup/Setup-Quickstart.html"
|
||
title="next chapter">Setup quickstart</a></p>
|
||
<div role="note" aria-label="source link">
|
||
<!--h3>This Page</h3-->
|
||
<ul class="this-page-menu">
|
||
<li><a href="_sources/Evennia-Introduction.md.txt"
|
||
rel="nofollow">Show Page Source</a></li>
|
||
</ul>
|
||
</div><h3>Links</h3>
|
||
<ul>
|
||
<li><a href="https://www.evennia.com">Home page</a> </li>
|
||
<li><a href="https://github.com/evennia/evennia">Evennia Github</a> </li>
|
||
<li><a href="http://games.evennia.com">Game Index</a> </li>
|
||
<li>
|
||
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
|
||
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
|
||
<a href="https://evennia.blogspot.com/">Blog</a>
|
||
</li>
|
||
</ul>
|
||
<h3>Versions</h3>
|
||
<ul>
|
||
<li><a href="Evennia-Introduction.html">1.0-dev (develop branch)</a></li>
|
||
<li><a href="../0.95/Evennia-Introduction.html">0.95 (v0.9.5 branch)</a></li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="clearer"></div>
|
||
</div>
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="genindex.html" title="General Index"
|
||
>index</a></li>
|
||
<li class="right" >
|
||
<a href="py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="right" >
|
||
<a href="Setup/Setup-Quickstart.html" title="Setup quickstart"
|
||
>next</a> |</li>
|
||
<li class="right" >
|
||
<a href="index.html" title="Evennia Documentation"
|
||
>previous</a> |</li>
|
||
<li class="nav-item nav-item-0"><a href="index.html">Evennia 1.0-dev</a> »</li>
|
||
<li class="nav-item nav-item-this"><a href="">Evennia Introduction</a></li>
|
||
</ul>
|
||
<div class="develop">develop branch</div>
|
||
</div>
|
||
<div class="footer" role="contentinfo">
|
||
© Copyright 2020, The Evennia developer community.
|
||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
|
||
</div>
|
||
</body>
|
||
</html> |