evennia/index.html
2020-10-31 19:04:34 +01:00

252 lines
11 KiB
HTML

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<title>Evennia Python MUD/MU creation system</title>
<link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico">
<link rel="stylesheet" href="stylesheets/styles.css">
<link rel="stylesheet" href="stylesheets/pygment_trac.css">
<link href='https://fonts.googleapis.com/css?family=Open Sans' rel='stylesheet'>
<link href='https://fonts.googleapis.com/css?family=Arvo' rel='stylesheet'>
<script src="javascripts/scale.fix.js"></script>
<script src="javascripts/newsfeed.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="description" content="Evennia is a modern Python library and server for creating text-based
multi-player games and virtual worlds (also known as MUD, MUSH, MU, MUX, MUCK, etc).
While Evennia handles all the necessary things every online game needs, like database and
networking, you create the game of your dreams by writing normal Python modules.">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<div class="wrapper">
<header>
<p>
<img class="logo" src="images/evennia_logo.png" alt="Evennia logo">
</p>
<h1 class="header">Evennia</h1>
<p class="header header-text">The Python MU* Development Library</p>
<div class="linksection">
<ul>
<div class="buttonsection">
<li><a class="buttons" href="https://github.com/evennia/evennia">Download (GitHub)</a></li>
<li class="documentation"><a class="buttons" href="docs/latest/index.html">Documentation</a></li>
<div class="buttonsidetext" style="padding-left:18px;">CODE</div>
</div>
<div class="buttonsection">
<li><a class="buttons community" href="http://webchat.freenode.net/?channels=evennia&uio=MT1mYWxzZSY5PXRydWUmMTE9MTk1JjEyPXRydWUbb">IRC channel</a></li>
<li><a class="buttons community" href="https://discord.gg/NecFePw">Discord channel</a></li>
<li><a class="buttons community" href="https://groups.google.com/forum/#%21forum/evennia">Forum</a></li>
<div class="buttonsidetext">COMMUNITY</div>
</div>
<li><a class="buttons community" href="http://evennia.blogspot.com/">Dev Blog</a></li>
</ul>
</div>
<div class="newsfeed">
<h3>Latest events</h3>
<div id="latest-events" class="eventslist">
<div class="events-fetch">
Fetching events ...
</div>
</div>
</div>
<div class="sponsor">
<div class="sponsor-column">
<a href="https://www.patreon.com/griatch"><img class="patreon" src="images/evennia_patreon_100x100.png" alt="Patreon"></a>
</div>
<div class="sponsor-column">
<a href="https://www.paypal.me/GriatchEvennia"><img class="paypal" src="images/btn_donateCC_LG.gif" alt="Paypal donate"></a>
</div>
</div>
</header>
<section>
<h1>
<a name="evennia-mudmu-creation-system" class="anchor"
href="#evennia-mudmu-creation-system"><span class="octicon
octicon-link"></span></a>Evennia MUD/MU* Creation System</h1>
<p><em>Evennia</em> is an open-source Python-based framework, codebase and
server for creating text-based multiplayer online games (aka MUD/MU* etc) using modern
technologies and tools.</p>
<h2>
<a name="installation" class="anchor"
href="#installation"><span class="octicon
octicon-link"></span></a>Live demo</h2>
<img class="img floatright" src="images/book.png" alt="Book">
<p>
<a href="https://demo.evennia.com">https://demo.evennia.com</a> hosts an
almost default Evennia server with some extra examples. Use it to get a taste for
what's possible. You can also send questions to our support channel directly
from inside the demo!</p>
<h2>
<a name="installation" class="anchor"
href="#installation"><span class="octicon
octicon-link"></span></a>Installation</h2>
Evennia is installed by cloning and installing its repo from
<a href="https://github.com/evennia/evennia">github</a>. The
<a href="docs/latest/Getting-Started.html">Getting Started</a> instructions will
help you get things set up. Once installed, creating your new game is quick:
<div class="codeblock">
<code>
evennia --init mygame<br>
cd mygame<br>
evennia start
</code>
</div>
You can now browse your new game's website and play locally in your browser at
<a href="http://127.0.0.1:4001">http://localhost:4001</a>. You can also
connect to it with a traditional third-party MUD client on <code>localhost, port 4000</code>.
<img class="img screenshot" src="images/evennia_screenshot.jpg" alt="Screenshot">
<div class="screenshot-caption">
An example of a default Evennia install (hover to enlarge). Top left:
Running server just started. Top right: Default website served by
Evennia. Bottom left: Game open in included HTML5 webclient. Bottom right:
Game open in traditional telnet client
(<a href="https://tintin.mudhalla.net/">tintin++</a>).
</div>
<h2><a name="overview" class="anchor"
href="#overview"><span class="octicon
octicon-link"></span></a>Overview</h2>
<img class="img floatleft" src="images/inkwell.png" alt="Inkwell">
<ul>
<li>
<strong>A toolbox and framework:</strong> Evennia is intended for game developers
who want to make a game uniquely theirs. But it's also easy enough to be a
popular tool for quick game prototyping and for those who want an
educational project for learning Python.
</li>
<li>
<strong>Game agnostic:</strong> Evennia does not prescribe a genre, game
rules, skills, classes, combat system or other things that will be specific
for your game anyway.
</li>
<li>
<strong>Optionally a little less unique:</strong> We have a growing library of
commonly needed code-snippets and bigger game systems that you can choose to
build from, copy or be inspired by.
<li>
<strong>What we do:</strong> Evennia takes care of all the gritty
networking, database-handling and other boring details that all online
games need. The idea is to allow you, the game developer, to focus on
designing your game's systems and content.
</li>
<li>
<strong>Modern workflow:</strong> Coding in Evennia is primarily done by
normal Python modules and classes, making the codebase extremely flexible -
you don't tweak the library itself, you just override the defaults and tell
Evennia where to find your changes. For experienced developers, not relying
on some custom in-game scripting language means you can use modern
development tools, version control and workflows.
</li>
<strong>A lot of help:</strong> Evennia's code is heavily documented should
you want to dive in. We have also spent a lot of time on our <a
href="docs/latest/index.html">extensive documentation</a>. Finally, our
active and friendly developer community is always there to help you if you
get stuck!
</li>
</ul>
<h2><a name="default-content" class="anchor"
href="#default-content"><span class="octicon
octicon-link"></span></a>Default Content</h2>
<p>Whereas your Evennia game starts out with no game-specific content, it's not
empty! Out of the box you get a 'talker'-style game with basic functionality:
You can create rooms and items, pick up stuff, talk to people, walk around, do
light roleplay with emotes ... this starting point is easy to extend or
completely replace as you prefer.</p>
<p>Here are some of the default resources and tools available out of the box:</p>
<ul>
<li>Classes for persistent objects, exits, rooms and characters.</li>
<li>Separation between character and their accounts (multi-character play, if desired).</li>
<li>In-game channels and chats (including linking to external chat channels).
<li>Some 90 commands for administration, building, chatting, basic roleplay etc.</li>
<li>Available commands and even their function can vary with circumstance and game state.</li>
<li>Delays, tickers, timers (fully asynchronous, no threading so no risk of race conditions).</li>
<li>In-game menu-creation system.</li>
<li>Prototype system, for making variations of objects (like monsters or items) without new classes.</li>
<li>Lock and access mini-language for very flexible access control.</li>
<li>Tutorial-world with examples.</li>
<li>Easy storage of custom data on all game objects.</li>
<li>Search, creation, and a large number of coding utilities.</li>
<li>A <code>contrib/</code> folder with optional full systems and shorter snippets.</li>
</ul>
<img class="img floatright" src="images/dice.png" alt="Dice">
<h2><a name="some server features" class="anchor"
href="#some-server-features"><span class="octicon
octicon-link"></span></a>Technical features</h2>
<ul>
<li>Uses Python 3.7+, Django and Twisted frameworks</li>
<li>HTML5 webclient (websocket with ajax/comet fallback)</li>
<li>Website via own webserver (HTTP, HTTPS with external proxy)</li>
<li>Telnet, Telnet+SSL, SSH</li>
<li>MUD-specific telnet protocols (Webclient uses custom JSON protocol instead):
<ul style="margin-bottom:0px;">
<li>GMCP and MSDP out-of-band protocols</li>
<li>MXP (inline links only)</li>
<li>ANSI and XTerm256 color support</li>
<li>MSSP status for websites tracking MUDs</li>
<li>NAWS, TTYPE, MCCP etc ...</li>
</ul></li>
<li>In-Game channels can link to IRC, Grapevine</li>
<li>RSS feed, Twitter feed (with snippet from docs)</li>
<li>Different databases supported via Django: Sqlite3, PostgreSQL, MySQL ...</li>
<li>Asynchronous, event-driven architecture without risk of race-conditions</i>
<li>Reload server without disconnecting players</li>
<li>Extendable protocols for adding custom integrations</li>
<li>BSD open-source license</li>
</ul>
<img class="img floatleft" src="images/ships.png" alt="Ships">
<h2>
<a name="more-information" class="anchor" href="#more-information"><span
class="octicon octicon-link"></span></a>More Information</h2>
<p>If this piqued your interest, there is a <a
href="docs/latest/Evennia-Introduction.html">lengthier
introduction</a> to Evennia to read.</p>
<p>To learn how to get your hands on the code base, the <a
href="docs/latest/Getting-Started.html">Getting Started</a> page is the way to go. Otherwise you could browse the <a
href="docs/latest/index.html">Documentation</a> or why
not come join one of the Evennia's community's chat channels or forums. Welcome! </p>
<footer>
<p><small>
(Images ©<a href="https://www.deviantart.com/griatch-art">Griatch</a>)
</small></p>
</footer>
</section>
</div>
<!--[if !IE]><script>fixScale(document);</script><![endif]-->
<script type="text/javascript">
fetchGithubData();
</script>
</body>
</html>