evennia/docs/0.x/Tutorials.html
2023-12-20 19:10:09 +01:00

301 lines
No EOL
22 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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>Tutorials &#8212; Evennia 0.9.5 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="Contributing to Evennia Docs" href="Contributing-Docs.html" />
<link rel="prev" title="Developer Central" href="Developer-Central.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="Contributing-Docs.html" title="Contributing to Evennia Docs"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="Developer-Central.html" title="Developer Central"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Evennia 0.9.5</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Tutorials</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section class="tex2jax_ignore mathjax_ignore" id="tutorials">
<h1>Tutorials<a class="headerlink" href="#tutorials" title="Permalink to this headline"></a></h1>
<p>Before continuing to read these tutorials (and especially before you start to code or build your
game in earnest) its strongly recommended that you read the
<a class="reference internal" href="Coding-Introduction.html"><span class="doc std std-doc">Evennia coding introduction</span></a> as well as the <a class="reference internal" href="Game-Planning.html"><span class="doc std std-doc">Planning your own game</span></a> pages first.</p>
<p>Please note that its not within the scope of our tutorials to teach you basic Python. If you are
new to the language, expect to have to look up concepts you are unfamiliar with. Usually a quick
internet search will give you all info you need. Furthermore, our tutorials tend to focus on
implementation and concepts. As such they give only brief explanations to use Evennia features while
providing ample links to the relevant detailed documentation.</p>
<p>The main information resource for builders is the <a class="reference internal" href="Builder-Docs.html"><span class="doc std std-doc">Builder Documentation</span></a>. Coders
should refer to the <a class="reference internal" href="Developer-Central.html"><span class="doc std std-doc">Developer Central</span></a> for further information.</p>
<section id="building">
<h2>Building<a class="headerlink" href="#building" title="Permalink to this headline"></a></h2>
<p><em>Help with populating your game world.</em></p>
<ul class="simple">
<li><p><a class="reference internal" href="Building-Quickstart.html"><span class="doc std std-doc">Tutorial: Building Quick-start</span></a> - helps you build your first rocks and
crates using Evennias defaults.</p></li>
<li><p><a class="reference internal" href="Understanding-Color-Tags.html"><span class="doc std std-doc">Tutorial: Understanding Color Tags</span></a>- explains how you color your games
text.</p></li>
<li><p><a class="reference internal" href="Tutorial-World-Introduction.html"><span class="doc std std-doc">Introduction: The Tutorial World</span></a> - this introduces the full (if
small) solo-adventure game that comes with the Evennia distribution. It is useful both as an example
of building and of coding.</p></li>
<li><p><a class="reference internal" href="Building-a-mech-tutorial.html"><span class="doc std std-doc">Tutorial: Building a Giant Mech</span></a> - this starts as a building tutorial
and transitions into writing code.</p></li>
</ul>
</section>
<section id="general-development-tutorials">
<h2>General Development tutorials<a class="headerlink" href="#general-development-tutorials" title="Permalink to this headline"></a></h2>
<p><em>General code practices for newbie game developers.</em></p>
<p>To use Evennia, you will need basic understanding of Python
<a class="reference external" href="http://docs.python.org/3.7/tutorial/modules.html">modules</a>,
<a class="reference external" href="http://www.tutorialspoint.com/python/python_variable_types.htm">variables</a>, <a class="reference external" href="http://docs.python.org/tutorial/controlflow.html#if-statements">conditional statements</a>,
<a class="reference external" href="http://docs.python.org/tutorial/controlflow.html#for-statements">loops</a>,
<a class="reference external" href="http://docs.python.org/tutorial/controlflow.html#defining-functions">functions</a>, <a class="reference external" href="http://docs.python.org/tutorial/datastructures.html">lists, dictionaries, list comprehensions</a> and <a class="reference external" href="http://docs.python.org/tutorial/introduction.html#strings">string formatting</a>. You should also have a basic
understanding of <a class="reference external" href="http://www.tutorialspoint.com/python/python_classes_objects.htm">object-oriented programming</a> and what Python
<a class="reference external" href="http://docs.python.org/tutorial/classes.html">Classes</a> are.</p>
<ul class="simple">
<li><p><a class="reference external" href="https://wiki.python.org/moin/BeginnersGuide/NonProgrammers">Python tutorials for beginners</a> -
external link with tutorials for those not familiar with coding in general or Python in particular.</p></li>
<li><p><a class="reference internal" href="Version-Control.html"><span class="doc std std-doc">Tutorial: Version Control</span></a> - use GIT to organize your code both for your own
game project and for contributing to Evennia.</p></li>
<li><p>MIT offers free courses in many subjects. Their [Introduction to Computer Science and Programming](<a class="reference external" href="https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-">https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-</a>
introduction-to-computer-science-and-programming-spring-2011/) uses Python as its language of
choice. Longer path, but more in-depth. Definitely worth a look.</p></li>
</ul>
</section>
<section id="coding-first-step-tutorials">
<h2>Coding - First Step tutorials<a class="headerlink" href="#coding-first-step-tutorials" title="Permalink to this headline"></a></h2>
<p><em>Starting tutorials for you who are new to developing with Evennia.</em></p>
<ul class="simple">
<li><p><a class="reference internal" href="Python-basic-introduction.html"><span class="doc std std-doc">Python basic introduction</span></a> (part 1) - Python intro using Evennia.</p></li>
<li><p><a class="reference internal" href="Python-basic-tutorial-part-two.html"><span class="doc std std-doc">Python basic introduction</span></a> (part 2) - More on objects, classes
and finding where things are.</p></li>
<li><p><a class="reference internal" href="First-Steps-Coding.html"><span class="doc std std-doc">Tutorial: First Steps Coding</span></a> - learn each basic feature on their own through
step-by-step instruction.</p></li>
<li><p><a class="reference internal" href="Tutorial-for-basic-MUSH-like-game.html"><span class="doc std std-doc">Tutorial: A small first game</span></a> - learn basic features as part
of building a small but working game from scratch.</p></li>
<li><p><a class="reference internal" href="Adding-Command-Tutorial.html"><span class="doc std std-doc">Tutorial: Adding new commands</span></a> - focuses specifically on how to add new
commands.</p></li>
<li><p><a class="reference internal" href="Parsing-command-arguments%2C-theory-and-best-practices.html"><span class="doc std std-doc">Tutorial: Parsing command argument</span></a>.</p></li>
<li><p><a class="reference internal" href="Adding-Object-Typeclass-Tutorial.html"><span class="doc std std-doc">Tutorial: Adding new objects</span></a> - focuses specifically on how to
add new objects.</p></li>
<li><p><a class="reference internal" href="Tutorial-Searching-For-Objects.html"><span class="doc std std-doc">Tutorial: Searching objects in the database</span></a> - how to find
existing objects so you can operate on them.</p></li>
</ul>
</section>
<section id="custom-objects-and-typeclasses">
<h2>Custom objects and typeclasses<a class="headerlink" href="#custom-objects-and-typeclasses" title="Permalink to this headline"></a></h2>
<p><em>Examples of designing new objects for your game world</em></p>
<ul class="simple">
<li><p><a class="reference internal" href="Weather-Tutorial.html"><span class="doc std std-doc">Tutorial: Rooms with Weather</span></a></p></li>
<li><p><a class="reference internal" href="Tutorial-Aggressive-NPCs.html"><span class="doc std std-doc">Tutorial: Aggressive NPCs</span></a></p></li>
<li><p><a class="reference internal" href="Tutorial-NPCs-listening.html"><span class="doc std std-doc">Tutorial: Listening NPCs</span></a></p></li>
<li><p><a class="reference internal" href="Tutorial-Vehicles.html"><span class="doc std std-doc">Tutorial: Creating a vehicle</span></a></p></li>
<li><p><a class="reference internal" href="NPC-shop-Tutorial.html"><span class="doc std std-doc">Tutorial: Making an NPC shop</span></a> (also advanced <a class="reference internal" href="EvMenu.html"><span class="doc std std-doc">EvMenu</span></a> usage)</p></li>
<li><p><a class="reference internal" href="Static-In-Game-Map.html"><span class="doc std std-doc">Tutorial: Implementing a Static In Game Map</span></a> (also [Batch Code](Batch-Code-
Processor) usage)</p></li>
<li><p><a class="reference internal" href="Dynamic-In-Game-Map.html"><span class="doc std std-doc">Tutorial: Implementing a Dynamic In Game Map</span></a></p></li>
<li><p><a class="reference internal" href="Unit-Testing.html#testing-for-game-development-mini-tutorial"><span class="std std-doc">Tutorial: Writing your own unit tests</span></a></p></li>
</ul>
</section>
<section id="game-mechanics-tutorials">
<h2>Game mechanics tutorials<a class="headerlink" href="#game-mechanics-tutorials" title="Permalink to this headline"></a></h2>
<p><em>Creating the underlying game mechanics of game play.</em></p>
<ul class="simple">
<li><p><a class="reference internal" href="Implementing-a-game-rule-system.html"><span class="doc std std-doc">Hints: Implementing a game rule system</span></a></p></li>
<li><p><a class="reference internal" href="Turn-based-Combat-System.html"><span class="doc std std-doc">Tutorial: Implementing a Combat system</span></a></p></li>
<li><p><a class="reference internal" href="Evennia-for-roleplaying-sessions.html"><span class="doc std std-doc">Tutorial: Evennia for running tabletop rpgs</span></a></p></li>
</ul>
</section>
<section id="miscellaneous-system-tutorials">
<h2>Miscellaneous system tutorials<a class="headerlink" href="#miscellaneous-system-tutorials" title="Permalink to this headline"></a></h2>
<p><em>Design various game systems and achieve particular effects.</em></p>
<ul class="simple">
<li><p><a class="reference internal" href="Coding-FAQ.html"><span class="doc std std-doc">FAQ</span></a>: A place for users to enter their own hints on achieving various goals in
Evennia.</p></li>
<li><p><a class="reference internal" href="Command-Prompt.html"><span class="doc std std-doc">Tutorial: Adding a Command prompt</span></a></p></li>
<li><p><a class="reference internal" href="Zones.html"><span class="doc std std-doc">Tutorial: Creating a Zoning system</span></a></p></li>
<li><p><a class="reference internal" href="Manually-Configuring-Color.html"><span class="doc std std-doc">Tutorial: Letting players manually configure color settings</span></a></p></li>
<li><p><a class="reference internal" href="EvMenu.html#ask-for-simple-input"><span class="std std-doc">Hints: Asking the user a question and dealing with the result</span></a></p></li>
<li><p><a class="reference internal" href="Command-Duration.html"><span class="doc std std-doc">Hints: Designing commands that take time to finish</span></a></p></li>
<li><p><a class="reference internal" href="Command-Cooldown.html"><span class="doc std std-doc">Hints: Adding cooldowns to commands</span></a></p></li>
<li><p><a class="reference internal" href="Mass-and-weight-for-objects.html"><span class="doc std std-doc">Tutorial: Mass and weight for objects</span></a></p></li>
<li><p><a class="reference internal" href="Default-Exit-Errors.html"><span class="doc std std-doc">Hints: Show a different message when trying a non-existent exit</span></a></p></li>
<li><p><a class="reference internal" href="Tutorial-Tweeting-Game-Stats.html"><span class="doc std std-doc">Tutorial: Make automatic tweets of game statistics</span></a></p></li>
<li><p><a class="reference internal" href="Gametime-Tutorial.html"><span class="doc std std-doc">Tutorial: Handling virtual time in your game</span></a></p></li>
<li><p><a class="reference internal" href="Coordinates.html"><span class="doc std std-doc">Tutorial: Setting up a coordinate system for rooms</span></a></p></li>
<li><p><a class="reference internal" href="Customize-channels.html"><span class="doc std std-doc">Tutorial: customize the way channels and channel commands work in your game</span></a></p></li>
<li><p>[Tutorial: Adding unit tests to your game project](./Unit-Testing.md#testing-for-game-development-mini- tutorial)</p></li>
</ul>
</section>
<section id="contrib">
<h2>Contrib<a class="headerlink" href="#contrib" title="Permalink to this headline"></a></h2>
<p><em>This section contains tutorials linked with contribs. These contribs can be used in your game, but
youll need to install them explicitly. They add common features that can earn you time in
implementation.</em></p>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/evennia/evennia/blob/master/evennia/contrib/README.md">list of contribs</a></p></li>
<li><p><a class="reference internal" href="Dialogues-in-events.html"><span class="doc std std-doc">In-game Python: dialogues with characters</span></a>.</p></li>
<li><p><a class="reference internal" href="A-voice-operated-elevator-using-events.html"><span class="doc std std-doc">In-game Python: a voice-operated elevator</span></a>.</p></li>
</ul>
</section>
<section id="web-tutorials">
<h2>Web tutorials<a class="headerlink" href="#web-tutorials" title="Permalink to this headline"></a></h2>
<p><em>Expanding Evennias web presence.</em></p>
<ul class="simple">
<li><p><a class="reference internal" href="Add-a-simple-new-web-page.html"><span class="doc std std-doc">Tutorial: Add a new web page</span></a> - simple example to see how Django pages
hang together.</p></li>
<li><p><a class="reference internal" href="Web-Tutorial.html"><span class="doc std std-doc">Tutorial: Website customization</span></a> - learn how to start customizing your games web
presence.</p></li>
<li><p><a class="reference internal" href="Bootstrap-%26-Evennia.html"><span class="doc std std-doc">Tutorial: Bootstrap &amp; Evennia</span></a> - Learn more about Bootstrap, the current CSS
framework Evennia is using</p></li>
<li><p><a class="reference internal" href="Web-Character-View-Tutorial.html"><span class="doc std std-doc">Tutorial: Build a web page displaying a game character</span></a> - make a way
to view your character on the web page.</p></li>
<li><p><a class="reference internal" href="Help-System-Tutorial.html"><span class="doc std std-doc">Tutorial: access your help system from your website</span></a></p></li>
<li><p><a class="reference internal" href="Add-a-wiki-on-your-website.html"><span class="doc std std-doc">Tutorial: add a wiki on your website</span></a></p></li>
<li><p><a class="reference internal" href="Web-Character-Generation.html"><span class="doc std std-doc">Tutorial: Web Character Generation</span></a> - make a web-based character
application form.</p></li>
<li><p><a class="reference internal" href="Bootstrap-Components-and-Utilities.html"><span class="doc std std-doc">Tutorial: Bootstrap Components and Utilities</span></a> - Describes
some common Bootstrap Components and Utilities that might help in designing for Evennia</p></li>
</ul>
</section>
<section id="evennia-for-engine-users">
<h2>Evennia for [Engine]-Users<a class="headerlink" href="#evennia-for-engine-users" title="Permalink to this headline"></a></h2>
<p><em>Hints for new users more familiar with other game engines.</em></p>
<ul class="simple">
<li><p><a class="reference internal" href="Evennia-for-Diku-Users.html"><span class="doc std std-doc">Evennia for Diku Users</span></a> - read up on the differences between Diku style
muds and Evennia.</p></li>
<li><p><a class="reference internal" href="Evennia-for-MUSH-Users.html"><span class="doc std std-doc">Evennia for MUSH Users</span></a> - an introduction to Evennia for those accustomed
to MUSH-style servers.</p></li>
</ul>
<div class="toctree-wrapper compound">
</div>
</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="#">Tutorials</a><ul>
<li><a class="reference internal" href="#building">Building</a></li>
<li><a class="reference internal" href="#general-development-tutorials">General Development tutorials</a></li>
<li><a class="reference internal" href="#coding-first-step-tutorials">Coding - First Step tutorials</a></li>
<li><a class="reference internal" href="#custom-objects-and-typeclasses">Custom objects and typeclasses</a></li>
<li><a class="reference internal" href="#game-mechanics-tutorials">Game mechanics tutorials</a></li>
<li><a class="reference internal" href="#miscellaneous-system-tutorials">Miscellaneous system tutorials</a></li>
<li><a class="reference internal" href="#contrib">Contrib</a></li>
<li><a class="reference internal" href="#web-tutorials">Web tutorials</a></li>
<li><a class="reference internal" href="#evennia-for-engine-users">Evennia for [Engine]-Users</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="Developer-Central.html"
title="previous chapter">Developer Central</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="Contributing-Docs.html"
title="next chapter">Contributing to Evennia Docs</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="_sources/Tutorials.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="http://webchat.freenode.net/?channels=evennia&uio=MT1mYWxzZSY5PXRydWUmMTE9MTk1JjEyPXRydWUbb">IRC</a> -
<a href="https://discord.gg/NecFePw">Discord</a> -
<a href="https://groups.google.com/forum/#%21forum/evennia">Forums</a>
</li>
<li><a href="http://evennia.blogspot.com/">Evennia Dev blog</a> </li>
</ul>
<h3>Versions</h3>
<ul>
<li><a href="../1.0-dev/index.html">1.0-dev (develop branch)</a></li>
<li><a href="Tutorials.html">0.9.5 (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="Contributing-Docs.html" title="Contributing to Evennia Docs"
>next</a> |</li>
<li class="right" >
<a href="Developer-Central.html" title="Developer Central"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Evennia 0.9.5</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Tutorials</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>