Updated HTML docs

This commit is contained in:
Evennia docbuilder action 2022-02-06 18:34:09 +00:00
parent c81a30b229
commit 3165f49b4c
968 changed files with 23111 additions and 14203 deletions

View file

@ -0,0 +1,280 @@
<!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>Part 2: What we want &#8212; 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>
<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="Where do I begin?" href="Planning-Where-Do-I-Begin.html" />
<link rel="prev" title="12. Advanced searching - Django Database queries" href="../Part1/Django-queries.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="Planning-Where-Do-I-Begin.html" title="Where do I begin?"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="../Part1/Django-queries.html" title="12. Advanced searching - Django Database queries"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../../../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../../Howtos-Overview.html" >Tutorials and Howtos</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="../Beginner-Tutorial-Intro.html" accesskey="U">Beginner Tutorial</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Part 2: What we want</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="part-2-what-we-want">
<h1>Part 2: What we want<a class="headerlink" href="#part-2-what-we-want" title="Permalink to this headline"></a></h1>
<aside class="sidebar">
<p class="sidebar-title">Beginner Tutorial Parts</p>
<dl class="simple">
<dt><a class="reference external" href="../Beginner-Tutorial-Intro.html">Introduction</a></dt><dd><p>Getting set up.</p>
</dd>
<dt>Part 1: <a class="reference external" href="../Part1/Beginner-Tutorial-Part1-Intro.html">What we have</a></dt><dd><p>A tour of Evennia and how to use the tools, including an introduction to Python.</p>
</dd>
<dt><strong>Part 2: What we want</strong></dt><dd><p>Planning our tutorial game and what to think about when planning your own in the future.</p>
</dd>
<dt>Part 3: <a class="reference external" href="../Part3/Beginner-Tutorial-Part3-Intro.html">How we get there</a></dt><dd><p>Getting down to the meat of extending Evennia to make our game</p>
</dd>
<dt>Part 4: <a class="reference external" href="../Part4/Beginner-Tutorial-Part4-Intro.html">Using what we created</a></dt><dd><p>Building a tech-demo and world content to go with our code</p>
</dd>
<dt>Part 5: <a class="reference external" href="../Part5/Beginner-Tutorial-Part5-Intro.html">Showing the world</a></dt><dd><p>Taking our new game online and let players try it out</p>
</dd>
</dl>
</aside>
<p>In Part two of the Beginner Tutorial well take a step back and plan out the kind of tutorial
game we want to make. This is a more theoretical part where we wont do any hands-on
programming.</p>
<p>In the process well go through the common questions of “where to start”
and “what to think about” when creating a multiplayer online text game.</p>
<section id="lessons">
<h2>Lessons<a class="headerlink" href="#lessons" title="Permalink to this headline"></a></h2>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="Planning-Where-Do-I-Begin.html">Where do I begin?</a></li>
<li class="toctree-l1"><a class="reference internal" href="Game-Planning.html">On Planning a Game</a></li>
<li class="toctree-l1"><a class="reference internal" href="Planning-Some-Useful-Contribs.html">Planning the use of some useful contribs</a></li>
<li class="toctree-l1"><a class="reference internal" href="Planning-The-Tutorial-Game.html">Planning our tutorial game</a></li>
</ul>
</div>
</section>
<section id="table-of-contents">
<h2>Table of Contents<a class="headerlink" href="#table-of-contents" title="Permalink to this headline"></a></h2>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="Planning-Where-Do-I-Begin.html">Where do I begin?</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Planning-Where-Do-I-Begin.html#what-is-your-motivation-for-doing-this">What is your motivation for doing this?</a></li>
<li class="toctree-l2"><a class="reference internal" href="Planning-Where-Do-I-Begin.html#what-are-your-skills">What are your skills?</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Planning-Where-Do-I-Begin.html#the-game-engine">The game engine</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-Where-Do-I-Begin.html#asset-creation">Asset creation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="Planning-Where-Do-I-Begin.html#so-where-do-i-begin-then">So, where do I begin, then?</a></li>
<li class="toctree-l2"><a class="reference internal" href="Planning-Where-Do-I-Begin.html#conclusions">Conclusions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Game-Planning.html">On Planning a Game</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Game-Planning.html#the-steps">The steps</a></li>
<li class="toctree-l2"><a class="reference internal" href="Game-Planning.html#planning">Planning</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Game-Planning.html#administration">Administration</a></li>
<li class="toctree-l3"><a class="reference internal" href="Game-Planning.html#building">Building</a></li>
<li class="toctree-l3"><a class="reference internal" href="Game-Planning.html#systems">Systems</a></li>
<li class="toctree-l3"><a class="reference internal" href="Game-Planning.html#rooms">Rooms</a></li>
<li class="toctree-l3"><a class="reference internal" href="Game-Planning.html#objects-items">Objects / items</a></li>
<li class="toctree-l3"><a class="reference internal" href="Game-Planning.html#characters">Characters</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="Game-Planning.html#coding-and-tech-demo">Coding and Tech demo</a></li>
<li class="toctree-l2"><a class="reference internal" href="Game-Planning.html#world-building">World Building</a></li>
<li class="toctree-l2"><a class="reference internal" href="Game-Planning.html#alpha-release">Alpha Release</a></li>
<li class="toctree-l2"><a class="reference internal" href="Game-Planning.html#beta-release-perpetual-beta">Beta Release/Perpetual Beta</a></li>
<li class="toctree-l2"><a class="reference internal" href="Game-Planning.html#congratulate-yourself">Congratulate yourself!</a></li>
<li class="toctree-l2"><a class="reference internal" href="Game-Planning.html#planning-our-tutorial-game">Planning our tutorial game</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Planning-Some-Useful-Contribs.html">Planning the use of some useful contribs</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Planning-Some-Useful-Contribs.html#barter-contrib">Barter contrib</a></li>
<li class="toctree-l2"><a class="reference internal" href="Planning-Some-Useful-Contribs.html#clothing-contrib">Clothing contrib</a></li>
<li class="toctree-l2"><a class="reference internal" href="Planning-Some-Useful-Contribs.html#dice-contrib">Dice contrib</a></li>
<li class="toctree-l2"><a class="reference internal" href="Planning-Some-Useful-Contribs.html#extended-room-contrib">Extended room contrib</a></li>
<li class="toctree-l2"><a class="reference internal" href="Planning-Some-Useful-Contribs.html#rp-system-contrib">RP-System contrib</a></li>
<li class="toctree-l2"><a class="reference internal" href="Planning-Some-Useful-Contribs.html#talking-npc-contrib">Talking NPC contrib</a></li>
<li class="toctree-l2"><a class="reference internal" href="Planning-Some-Useful-Contribs.html#traits-contrib">Traits contrib</a></li>
<li class="toctree-l2"><a class="reference internal" href="Planning-Some-Useful-Contribs.html#turnbattle-contrib">Turnbattle contrib</a></li>
<li class="toctree-l2"><a class="reference internal" href="Planning-Some-Useful-Contribs.html#conclusions">Conclusions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Planning-The-Tutorial-Game.html">Planning our tutorial game</a><ul>
<li class="toctree-l2"><a class="reference internal" href="Planning-The-Tutorial-Game.html#administration">Administration</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#should-your-game-rules-be-enforced-by-coded-systems-by-human-game-masters">Should your game rules be enforced by coded systems by human game masters?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#what-is-the-staff-hierarchy-in-your-game-is-vanilla-evennia-roles-enough-or-do-you-need-something-else">What is the staff hierarchy in your game? Is vanilla Evennia roles enough or do you need something else?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#should-players-be-able-to-post-out-of-characters-on-channels-and-via-other-means-like-bulletin-boards">Should players be able to post out-of-characters on channels and via other means like bulletin-boards?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="Planning-The-Tutorial-Game.html#building">Building</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#how-will-the-world-be-built">How will the world be built?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#can-only-privileged-builders-create-things-or-should-regular-players-also-have-limited-build-capability">Can only privileged Builders create things or should regular players also have limited build-capability?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="Planning-The-Tutorial-Game.html#systems">Systems</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#do-you-base-your-game-off-an-existing-rpg-system-or-make-up-your-own">Do you base your game off an existing RPG system or make up your own?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#what-are-the-game-mechanics-how-do-you-decide-if-an-action-succeeds-or-fails">What are the game mechanics? How do you decide if an action succeeds or fails?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#does-the-flow-of-time-matter-in-your-game-does-night-and-day-change-what-about-seasons">Does the flow of time matter in your game - does night and day change? What about seasons?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#do-you-want-changing-global-weather-or-should-weather-just-be-set-manually-in-roleplay">Do you want changing, global weather or should weather just be set manually in roleplay?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#do-you-want-a-coded-world-economy-or-just-a-simple-barter-system-or-no-formal-economy-at-all">Do you want a coded world-economy or just a simple barter system? Or no formal economy at all?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#do-you-have-concepts-like-reputation-and-influence">Do you have concepts like reputation and influence?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#will-your-characters-be-known-by-their-name-or-only-by-their-physical-appearance">Will your characters be known by their name or only by their physical appearance?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="Planning-The-Tutorial-Game.html#rooms">Rooms</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#is-a-simple-room-description-enough-or-should-the-description-be-able-to-change">Is a simple room description enough or should the description be able to change?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#should-the-room-have-different-statuses">Should the room have different statuses?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#can-objects-be-hidden-in-the-room-can-a-person-hide-in-the-room">Can objects be hidden in the room? Can a person hide in the room?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="Planning-The-Tutorial-Game.html#objects">Objects</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#how-numerous-are-your-objects-do-you-want-large-loot-lists-or-are-objects-just-role-playing-props">How numerous are your objects? Do you want large loot-lists or are objects just role playing props?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#is-each-coin-a-separate-object-or-do-you-just-store-a-bank-account-value">Is each coin a separate object or do you just store a bank account value?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#do-multiple-similar-objects-form-stacks-and-how-are-those-stacks-handled-in-that-case">Do multiple similar objects form stacks and how are those stacks handled in that case?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#does-an-object-have-weight-or-volume-so-you-cannot-carry-an-infinite-amount-of-them">Does an object have weight or volume (so you cannot carry an infinite amount of them)?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#can-objects-be-broken-can-they-be-repaired">Can objects be broken? Can they be repaired?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#can-you-fight-with-a-chair-or-a-flower-or-must-you-use-a-special-weapon-kind-of-thing">Can you fight with a chair or a flower or must you use a special weapon kind of thing?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#will-characters-be-able-to-craft-new-objects">Will characters be able to craft new objects?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#should-mobs-npcs-have-some-sort-of-ai">Should mobs/NPCs have some sort of AI?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#are-npcs-and-mobs-different-entities-how-do-they-differ">Are NPCs and mobs different entities? How do they differ?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#should-there-be-npcs-giving-quests-if-so-how-do-you-track-quest-status">_Should there be NPCs giving quests? If so, how do you track Quest status?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="Planning-The-Tutorial-Game.html#characters">Characters</a><ul>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#can-players-have-more-than-one-character-active-at-a-time-or-are-they-allowed-to-multi-play">Can players have more than one Character active at a time or are they allowed to multi-play?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#how-does-the-character-generation-work">How does the character-generation work?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#how-do-you-implement-different-classes-or-races">How do you implement different “classes” or “races”?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#if-a-character-can-hide-in-a-room-what-skill-will-decide-if-they-are-detected">If a Character can hide in a room, what skill will decide if they are detected?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#what-does-the-skill-tree-look-like-can-a-character-gain-experience-to-improve-by-killing-enemies-solving-quests-by-roleplaying">What does the skill tree look like? Can a Character gain experience to improve? By killing enemies? Solving quests? By roleplaying?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#may-player-characters-attack-each-other-pvp">May player-characters attack each other (PvP)?</a></li>
<li class="toctree-l3"><a class="reference internal" href="Planning-The-Tutorial-Game.html#what-are-the-penalties-of-defeat-permanent-death-quick-respawn-time-in-prison">What are the penalties of defeat? Permanent death? Quick respawn? Time in prison?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="Planning-The-Tutorial-Game.html#conclusions">Conclusions</a></li>
</ul>
</li>
</ul>
</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="#">Part 2: What we want</a><ul>
<li><a class="reference internal" href="#lessons">Lessons</a></li>
<li><a class="reference internal" href="#table-of-contents">Table of Contents</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="../Part1/Django-queries.html"
title="previous chapter"><span class="section-number">12. </span>Advanced searching - Django Database queries</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="Planning-Where-Do-I-Begin.html"
title="next chapter">Where do I begin?</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../../../_sources/Howtos/Beginner-Tutorial/Part2/Beginner-Tutorial-Part2-Intro.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="Beginner-Tutorial-Part2-Intro.html">1.0-dev (develop branch)</a></li>
<li><a href="../../../../0.9.5/index.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="Planning-Where-Do-I-Begin.html" title="Where do I begin?"
>next</a> |</li>
<li class="right" >
<a href="../Part1/Django-queries.html" title="12. Advanced searching - Django Database queries"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../../../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../../Howtos-Overview.html" >Tutorials and Howtos</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="../Beginner-Tutorial-Intro.html" >Beginner Tutorial</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Part 2: What we want</a></li>
</ul>
<div class="develop">develop branch</div>
</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>

View file

@ -0,0 +1,361 @@
<!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>On Planning a Game &#8212; 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>
<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="Planning the use of some useful contribs" href="Planning-Some-Useful-Contribs.html" />
<link rel="prev" title="Where do I begin?" href="Planning-Where-Do-I-Begin.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="Planning-Some-Useful-Contribs.html" title="Planning the use of some useful contribs"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="Planning-Where-Do-I-Begin.html" title="Where do I begin?"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../../../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../../Howtos-Overview.html" >Tutorials and Howtos</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="../Beginner-Tutorial-Intro.html" >Beginner Tutorial</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="Beginner-Tutorial-Part2-Intro.html" accesskey="U">Part 2: What we want</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">On Planning a Game</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="on-planning-a-game">
<h1>On Planning a Game<a class="headerlink" href="#on-planning-a-game" title="Permalink to this headline"></a></h1>
<p>Last lesson we asked ourselves some questions about our motivation. In this one well present
some more technical questions to consider. In the next lesson well answer them for the sake of
our tutorial game.</p>
<p>Note that the suggestions on this page are just that - suggestions. Also, they are primarily aimed at a lone
hobby designer or a small team developing a game in their free time.</p>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>Your first all overshadowing goal is to beat the odds and get <strong>something</strong> out the door!
Even if its a scaled-down version of your dream game, lacking many “must-have” features!</p>
</div>
<p>Remember: <em>99.99999% of all great game ideas never lead to a game</em>. Especially not to an online
game that people can actually play and enjoy. Its better to get your game out there and expand on it
later than to code in isolation until you burn out, lose interest or your hard drive crashes.</p>
<ul class="simple">
<li><p>Keep the scope of your initial release down. Way down.</p></li>
<li><p>Start small, with an eye towards expansions later, after first release.</p></li>
<li><p>If the suggestions here seems boring or a chore to you, do it your way instead. Everyones different.</p></li>
<li><p>Keep having <em>fun</em>. You must keep your motivation up, whichever way works for <em>you</em>.</p></li>
</ul>
<section id="the-steps">
<h2>The steps<a class="headerlink" href="#the-steps" title="Permalink to this headline"></a></h2>
<p>Here are the rough steps towards your goal.</p>
<ol class="simple">
<li><p>Planning</p></li>
<li><p>Coding + Gradually building a tech-demo</p></li>
<li><p>Building the actual game world</p></li>
<li><p>Release</p></li>
<li><p>Celebrate</p></li>
</ol>
</section>
<section id="planning">
<h2>Planning<a class="headerlink" href="#planning" title="Permalink to this headline"></a></h2>
<p>You need to have at least a rough idea about what you want to create. Some like a lot of planning, others
do it more seat-of-the-pants style. Regardless, while <em>some</em> planning is always good to do, its common
to have your plans change on you as you create your code prototypes. So dont get <em>too</em> bogged down in
the details out of the gate.</p>
<p>Many prospective game developers are very good at <em>parts</em> of this process, namely in defining what their
world is “about”: The theme, the world concept, cool monsters and so on. Such things are very important. But
unfortunately, they are not enough to make your game. You need to figure out how to accomplish your ideas in
Evennia.</p>
<p>Below are some questions to get you going. In the next lesson we will try to answer them for our particular
tutorial game. There are of course many more questions you could be asking yourself.</p>
<section id="administration">
<h3>Administration<a class="headerlink" href="#administration" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Should your game rules be enforced by coded systems or by human game masters?</p></li>
<li><p>What is the staff hierarchy in your game? Is vanilla Evennia roles enough or do you need something else?</p></li>
<li><p>Should players be able to post out-of-characters on channels and via other means like bulletin-boards?</p></li>
</ul>
</section>
<section id="building">
<h3>Building<a class="headerlink" href="#building" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>How will the world be built? Traditionally (from in-game with build-commands) or externally (by batchcmds/code
or directly with custom code)?</p></li>
<li><p>Can only privileged Builders create things or should regular players also have limited build-capability?</p></li>
</ul>
</section>
<section id="systems">
<h3>Systems<a class="headerlink" href="#systems" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Do you base your game off an existing RPG system or make up your own?</p></li>
<li><p>What are the game mechanics? How do you decide if an action succeeds or fails?</p></li>
<li><p>Does the flow of time matter in your game - does night and day change? What about seasons?</p></li>
<li><p>Do you want changing, global weather or should weather just be set manually in roleplay?</p></li>
<li><p>Do you want a coded world-economy or just a simple barter system? Or no formal economy at all?</p></li>
<li><p>Do you have concepts like reputation and influence?</p></li>
<li><p>Will your characters be known by their name or only by their physical appearance?</p></li>
</ul>
</section>
<section id="rooms">
<h3>Rooms<a class="headerlink" href="#rooms" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Is a simple room description enough or should the description be able to change (such as with time, by
light conditions, weather or season)?</p></li>
<li><p>Should the room have different statuses? Can it have smells, sounds? Can it be affected by
dramatic weather, fire or magical effects? If so, how would this affect things in the room? Or are
these things something admins/game masters should handle manually?</p></li>
<li><p>Can objects be hidden in the room? Can a person hide in the room? How does the room display this?</p></li>
</ul>
</section>
<section id="objects-items">
<h3>Objects / items<a class="headerlink" href="#objects-items" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>How numerous are your objects? Do you want large loot-lists or are objects just role playing props
created on demand?</p></li>
<li><p>If you use money, is each coin a separate object or do you just store a bank account value?</p></li>
<li><p>Do multiple similar objects form stacks and how are those stacks handled in that case?</p></li>
<li><p>Does an object have weight or volume (so you cannot carry an infinite amount of them)?</p></li>
<li><p>Can objects be broken? Can they be repaired?</p></li>
<li><p>Can you fight with a chair or a flower or must you use a specific weapon kind of thing?</p></li>
<li><p>Will characters be able to craft new objects?</p></li>
<li><p>Should mobs/NPCs have some sort of AI?</p></li>
<li><p>Are NPCs and mobs different entities? How do they differ?</p></li>
<li><p>Should there be NPCs giving quests? If so, how do you track Quest status?</p></li>
</ul>
</section>
<section id="characters">
<h3>Characters<a class="headerlink" href="#characters" title="Permalink to this headline"></a></h3>
<ul class="simple">
<li><p>Can players have more than one Character active at a time or are they allowed to multi-play?</p></li>
<li><p>How does the character-generation work? Walk from room-to-room? A menu?</p></li>
<li><p>How do you implement different “classes” or “races”? Are they separate types of objects or do you
simply load different stats on a basic object depending on what the Player wants?</p></li>
<li><p>If a Character can hide in a room, what skill will decide if they are detected?</p></li>
<li><p>What does the skill tree look like? Can a Character gain experience to improve? By killing
enemies? Solving quests? By roleplaying?</p></li>
<li><p>May player-characters attack each other (PvP)?</p></li>
<li><p>What are the penalties of defeat? Permanent death? Quick respawn? Time in prison?</p></li>
</ul>
<p>A MUDs a lot more involved than you would think and these things hang together in a complex web. It
can easily become overwhelming and its tempting to want <em>all</em> functionality right out of the door.
Try to identify the basic things that “make” your game and focus <em>only</em> on them for your first
release. Make a list. Keep future expansions in mind but limit yourself.</p>
</section>
</section>
<section id="coding-and-tech-demo">
<h2>Coding and Tech demo<a class="headerlink" href="#coding-and-tech-demo" title="Permalink to this headline"></a></h2>
<p>This is the actual work of creating the “game” part of your game. As you code and test systems you should
build a little “tech demo” along the way.</p>
<aside class="sidebar">
<p class="sidebar-title">Tech demo</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>With &quot;tech demo&quot; we mean a small example of your code in-action: A room with a mob,
a way to jump into and test character-creation etc. The tech demo need not be pretty, it&#39;s
there to test functionality. It&#39;s not the beginning of your game world (unless you find that
to be more fun).
</pre></div>
</div>
</aside>
<p>Try to avoid going wild with building a huge game world before you have a tech-demo showing off all parts
you expect to have in the first version of your game. Otherwise you run the risk of having to redo it all
again.</p>
<p>Evennia tries hard to make the coding easier for you, but there is no way around the fact that if you want
anything but a basic chat room you <em>will</em> have to bite the bullet and code your game (or find a coder willing
to do it for you).</p>
<blockquote>
<div><p>Even if you wont code anything yourself, as a designer you need to at least understand the basic
paradigms and components of Evennia. Its recommended you look over the rest of this Beginner Tutorial to learn
what tools you have available.</p>
</div></blockquote>
<p>During Coding you look back at the things you wanted during the <strong>Planning</strong> phase and try to
implement them. Dont be shy to update your plans if you find things easier/harder than you thought.
The earlier you revise problems, the easier they will be to fix.</p>
<p>A good idea is to host your code online using <em>version control</em>. <a class="reference external" href="http://Github.com">Github.com</a> offers free Private repos
these days if you dont want the world to learn your secrets. Not only version control
make it easy for your team to collaborate, it also means
your work is backed up at all times. The page on <a class="reference internal" href="../../../Coding/Version-Control.html"><span class="doc std std-doc">Version Control</span></a>
will help you to setting up a sane developer environment with proper version control.</p>
</section>
<section id="world-building">
<h2>World Building<a class="headerlink" href="#world-building" title="Permalink to this headline"></a></h2>
<p>Up until this point weve only had a few tech-demo objects in the database. This step is the act of
populating the database with a larger, thematic world. Too many would-be developers jump to this
stage too soon (skipping the <strong>Coding</strong> or even <strong>Planning</strong> stages). What if the rooms you build
now doesnt include all the nice weather messages the code grows to support? Or the way you store
data changes under the hood? Your building work would at best require some rework and at worst you
would have to redo the whole thing. You could be in for a <em>lot</em> of unnecessary work if you build stuff
en masse without having the underlying code systems in some reasonable shape first.</p>
<p>So before starting to build, the “game” bit (<strong>Coding</strong> + <strong>Testing</strong>) should be more or less
<strong>complete</strong>, <em>at least to the level of your initial release</em>.</p>
<p>Make sure it is clear to yourself and your eventual builders just which parts of the world you want
for your initial release. Establish for everyone which style, quality and level of detail you expect.</p>
<p>Your goal should <em>not</em> be to complete your entire world in one go. You want just enough to make the
games “feel” come across. You want a minimal but functioning world where the intended game play can
be tested and roughly balanced. You can always add new areas later.</p>
<p>During building you get free and extensive testing of whatever custom build commands and systems you
have made at this point. If Builders and coders are different people you also
get a chance to hear if some things are hard to understand or non-intuitive. Make sure to respond
to this feedback.</p>
</section>
<section id="alpha-release">
<h2>Alpha Release<a class="headerlink" href="#alpha-release" title="Permalink to this headline"></a></h2>
<p>As mentioned, dont hold onto your world more than necessary. <em>Get it out there</em> with a huge <em>Alpha</em>
flag and let people try it!</p>
<p>Call upon your alpha-players to try everything - they <em>will</em> find ways to break your game in ways that
you never could have imagined. In Alpha you might be best off to
focus on inviting friends and maybe other MUD developers, people who you can pester to give proper
feedback and bug reports (there <em>will</em> be bugs, there is no way around it).</p>
<p>Follow the quick instructions for <a class="reference internal" href="../../../Setup/Online-Setup.html"><span class="doc std std-doc">Online Setup</span></a> to make your
game visible online.</p>
<p>If you hadnt already, make sure to put up your game on the
<a class="reference external" href="http://games.evennia.com/">Evennia game index</a> so people know its in the works (actually, even
pre-alpha games are allowed in the index so dont be shy)!</p>
</section>
<section id="beta-release-perpetual-beta">
<h2>Beta Release/Perpetual Beta<a class="headerlink" href="#beta-release-perpetual-beta" title="Permalink to this headline"></a></h2>
<p>Once things stabilize in Alpha you can move to <em>Beta</em> and let more people in. Many MUDs are in
<a class="reference external" href="https://en.wikipedia.org/wiki/Perpetual_beta">perpetual beta</a>, meaning they are never considered
“finished”, but just repeat the cycle of Planning, Coding, Testing and Building over and over as new
features get implemented or Players come with suggestions. As the game designer it is now up to you
to gradually perfect your vision.</p>
</section>
<section id="congratulate-yourself">
<h2>Congratulate yourself!<a class="headerlink" href="#congratulate-yourself" title="Permalink to this headline"></a></h2>
<p>You are worthy of a celebration since at this point you have joined the small, exclusive crowd who
have made their dream game a reality!</p>
</section>
<section id="planning-our-tutorial-game">
<h2>Planning our tutorial game<a class="headerlink" href="#planning-our-tutorial-game" title="Permalink to this headline"></a></h2>
<p>In the next lesson well make use of these general points and try to plan out our tutorial game.</p>
</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="#">On Planning a Game</a><ul>
<li><a class="reference internal" href="#the-steps">The steps</a></li>
<li><a class="reference internal" href="#planning">Planning</a><ul>
<li><a class="reference internal" href="#administration">Administration</a></li>
<li><a class="reference internal" href="#building">Building</a></li>
<li><a class="reference internal" href="#systems">Systems</a></li>
<li><a class="reference internal" href="#rooms">Rooms</a></li>
<li><a class="reference internal" href="#objects-items">Objects / items</a></li>
<li><a class="reference internal" href="#characters">Characters</a></li>
</ul>
</li>
<li><a class="reference internal" href="#coding-and-tech-demo">Coding and Tech demo</a></li>
<li><a class="reference internal" href="#world-building">World Building</a></li>
<li><a class="reference internal" href="#alpha-release">Alpha Release</a></li>
<li><a class="reference internal" href="#beta-release-perpetual-beta">Beta Release/Perpetual Beta</a></li>
<li><a class="reference internal" href="#congratulate-yourself">Congratulate yourself!</a></li>
<li><a class="reference internal" href="#planning-our-tutorial-game">Planning our tutorial game</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="Planning-Where-Do-I-Begin.html"
title="previous chapter">Where do I begin?</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="Planning-Some-Useful-Contribs.html"
title="next chapter">Planning the use of some useful contribs</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../../../_sources/Howtos/Beginner-Tutorial/Part2/Game-Planning.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="Game-Planning.html">1.0-dev (develop branch)</a></li>
<li><a href="../../../../0.9.5/index.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="Planning-Some-Useful-Contribs.html" title="Planning the use of some useful contribs"
>next</a> |</li>
<li class="right" >
<a href="Planning-Where-Do-I-Begin.html" title="Where do I begin?"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../../../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../../Howtos-Overview.html" >Tutorials and Howtos</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="../Beginner-Tutorial-Intro.html" >Beginner Tutorial</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="Beginner-Tutorial-Part2-Intro.html" >Part 2: What we want</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">On Planning a Game</a></li>
</ul>
<div class="develop">develop branch</div>
</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>

View file

@ -0,0 +1,370 @@
<!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>Planning the use of some useful contribs &#8212; 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>
<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="Planning our tutorial game" href="Planning-The-Tutorial-Game.html" />
<link rel="prev" title="On Planning a Game" href="Game-Planning.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="Planning-The-Tutorial-Game.html" title="Planning our tutorial game"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="Game-Planning.html" title="On Planning a Game"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../../../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../../Howtos-Overview.html" >Tutorials and Howtos</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="../Beginner-Tutorial-Intro.html" >Beginner Tutorial</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="Beginner-Tutorial-Part2-Intro.html" accesskey="U">Part 2: What we want</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Planning the use of some useful contribs</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="planning-the-use-of-some-useful-contribs">
<h1>Planning the use of some useful contribs<a class="headerlink" href="#planning-the-use-of-some-useful-contribs" title="Permalink to this headline"></a></h1>
<p>Evennia is deliberately bare-bones out of the box. The idea is that you should be as unrestricted as possible
in designing your game. This is why you can easily replace the few defaults we have and why we dont try to
prescribe any major game systems on you.</p>
<p>That said, Evennia <em>does</em> offer some more game-opinionated <em>optional</em> stuff. These are referred to as <em>Contribs</em>
and is an ever-growing treasure trove of code snippets, concepts and even full systems you can pick and choose
from to use, tweak or take inspiration from when you make your game.</p>
<p>The <a class="reference internal" href="../../../Contribs/Contribs-Overview.html"><span class="doc std std-doc">Contrib overview</span></a> page gives the full list of the current roster of contributions. On
this page we will review a few contribs we will make use of for our game. We will do the actual installation
of them when we start coding in the next part of this tutorial series. While we will introduce them here, you
are wise to read their doc-strings yourself for the details.</p>
<p>This is the things we know we need:</p>
<ul class="simple">
<li><p>A barter system</p></li>
<li><p>Character generation</p></li>
<li><p>Some concept of wearing armor</p></li>
<li><p>The ability to roll dice</p></li>
<li><p>Rooms with awareness of day, night and season</p></li>
<li><p>Roleplaying with short-descs, poses and emotes</p></li>
<li><p>Quests</p></li>
<li><p>Combat (with players and against monsters)</p></li>
</ul>
<section id="barter-contrib">
<h2>Barter contrib<a class="headerlink" href="#barter-contrib" title="Permalink to this headline"></a></h2>
<p><a class="reference internal" href="../../../api/evennia.contrib.game_systems.barter.html"><span class="doc std std-doc">source</span></a></p>
<p>Reviewing this contrib suggests that it allows for safe trading between two parties. The basic principle
is that the parties puts up the stuff they want to sell and the system will guarantee that these systems are
exactly what is being offered. Both sides can modify their offers (bartering) until both mark themselves happy
with the deal. Only then the deal is sealed and the objects are exchanged automatically. Interestingly, this
works just fine for money too - just put coin objects on one side of the transaction.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Sue &gt; trade Tom: Hi, I have a necklace to sell; wanna trade for a healing potion?
Tom &gt; trade Sue: Hm, I could use a necklace ...
&lt;both accepted trade. Start trade&gt;
Sue &gt; offer necklace: This necklace is really worth it.
Tom &gt; evaluate necklace:
&lt;Tom sees necklace stats&gt;
Tom &gt; offer ration: I don&#39;t have a healing potion, but I&#39;ll trade you an iron ration!
Sue &gt; Hey, this is a nice necklace, I need more than a ration for it...
Tom &gt; offer ration, 10gold: Ok, a ration and 10 gold as well.
Sue &gt; accept: Ok, that sounds fair!
Tom &gt; accept: Good! Nice doing business with you.
&lt;goods change hands automatically. Trade ends&gt;
</pre></div>
</div>
<p>Arguably, in a small game you are just fine to just talk to people and use <code class="docutils literal notranslate"><span class="pre">give</span></code> to do the exchange. The
barter system guarantees trading safety if you dont trust your counterpart to try to give you the wrong thing or
to run away with your money.</p>
<p>We will use the barter contrib as an optional feature for player-player bartering. More importantly we can
add it for NPC shopkeepers and expand it with a little AI, which allows them to potentially trade in other
things than boring gold coin.</p>
</section>
<section id="clothing-contrib">
<h2>Clothing contrib<a class="headerlink" href="#clothing-contrib" title="Permalink to this headline"></a></h2>
<p><a class="reference internal" href="../../../api/evennia.contrib.game_systems.clothing.html"><span class="doc std std-doc">source</span></a></p>
<p>This contrib provides a full system primarily aimed at wearing clothes, but it could also work for armor. You wear
an object in a particular location and this will then be reflected in your characters description. You can
also add roleplaying flavor:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>&gt; wear helmet slightly askew on her head
look self
Username is wearing a helmet slightly askew on her head.
</pre></div>
</div>
<p>By default there are no body locations in this contrib, we will need to expand on it a little to make it useful
for things like armor. Its a good contrib to build from though, so thats what well do.</p>
</section>
<section id="dice-contrib">
<h2>Dice contrib<a class="headerlink" href="#dice-contrib" title="Permalink to this headline"></a></h2>
<p><a class="reference internal" href="../../../api/evennia.contrib.rpg.dice.html"><span class="doc std std-doc">source</span></a></p>
<p>The dice contrib presents a general dice roller to use in game.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>&gt; roll 2d6
Roll(s): 2 and 5. Total result is 7.
&gt; roll 1d100 + 2
Roll(s): 43. Total result is 47
&gt; roll 1d20 &gt; 12
Roll(s): 7. Total result is 7. This is a failure (by 5)
&gt; roll/hidden 1d20 &gt; 12
Roll(s): 18. Total result is 17. This is a success (by 6). (not echoed)
</pre></div>
</div>
<p>The contrib also has a python function for producing these results in-code. However, while
we will emulate rolls for our rule system, well do this as simply as possible with Pythons <code class="docutils literal notranslate"><span class="pre">random</span></code>
module.</p>
<p>So while this contrib is fun to have around for GMs or for players who want to get a random result
or play a game, we will not need it for the core of our game.</p>
</section>
<section id="extended-room-contrib">
<h2>Extended room contrib<a class="headerlink" href="#extended-room-contrib" title="Permalink to this headline"></a></h2>
<p><a class="reference internal" href="../../../api/evennia.contrib.grid.extended_room.html"><span class="doc std std-doc">source</span></a></p>
<p>This is a custom Room typeclass that changes its description based on time of day and season.</p>
<p>For example, at night, in wintertime you could show the room as being dark and frost-covered while in daylight
at summer it could describe a flowering meadow. The description can also contain special markers, so
<code class="docutils literal notranslate"><span class="pre">&lt;morning&gt;</span> <span class="pre">...</span> <span class="pre">&lt;/morning&gt;</span></code> would include text only visible at morning.</p>
<p>The extended room also supports <em>details</em>, which are things to “look at” in the room without there having
to be a separate database object created for it. For example, a player in a church may do <code class="docutils literal notranslate"><span class="pre">look</span> <span class="pre">window</span></code> and
get a description of the windows without there needing to be an actual <code class="docutils literal notranslate"><span class="pre">window</span></code> object in the room.</p>
<p>Adding all those extra descriptions can be a lot of work, so they are optional; if not given the room works
like a normal room.</p>
<p>The contrib is simple to add and provides a lot of optional flexibility, so well add it to our
game, why not!</p>
</section>
<section id="rp-system-contrib">
<h2>RP-System contrib<a class="headerlink" href="#rp-system-contrib" title="Permalink to this headline"></a></h2>
<p><a class="reference internal" href="../../../api/evennia.contrib.rpg.rpsystem.html"><span class="doc std std-doc">source</span></a></p>
<p>This contrib adds a full roleplaying subsystem to your game. It gives every character a “short-description”
(sdesc) that is what people will see when first meeting them. Lets say Tom has an sdesc “A tall man” and
Sue has the sdesc “A muscular, blonde woman”</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Tom &gt; look
Tom: &lt;room desc&gt; ... You see: A muscular, blonde woman
Tom &gt; emote /me smiles to /muscular.
Tom: Tom smiles to A muscular, blonde woman.
Sue: A tall man smiles to Sue.
Tom &gt; emote Leaning forward, /me says, &quot;Well hello, what&#39;s yer name?&quot;
Tom: Leaning forward, Tom says, &quot;Well hello...&quot;
Sue: Leaning forward, A tall man says, &quot;Well hello, what&#39;s yer name?&quot;
Sue &gt; emote /me grins. &quot;I&#39;m Angelica&quot;, she says.
Sue: Sue grins. &quot;I&#39;m Angelica&quot;, she says.
Tom: A muscular, blonde woman grins. &quot;I&#39;m Angelica&quot;, she says.
Tom &gt; recog muscular Angelica
Tom &gt; emote /me nods to /angelica: &quot;I have a message for you ...&quot;
Tom: Tom nods to Angelica: &quot;I have a message for you ...&quot;
Sue: A tall man nods to Sue: &quot;I have a message for you ...&quot;
</pre></div>
</div>
<p>Above, Sue introduces herself as “Angelica” and Tom uses this info to <code class="docutils literal notranslate"><span class="pre">recoc</span></code> her as “Angelica” hereafter. He
could have <code class="docutils literal notranslate"><span class="pre">recoc</span></code>-ed her with whatever name he liked - its only for his own benefit. There is no separate
<code class="docutils literal notranslate"><span class="pre">say</span></code>, the spoken words are embedded in the emotes in quotes <code class="docutils literal notranslate"><span class="pre">&quot;...&quot;</span></code>.</p>
<p>The RPSystem module also includes options for <code class="docutils literal notranslate"><span class="pre">poses</span></code>, which help to establish your position in the room
when others look at you.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Tom &gt; pose stands by the bar, looking bored.
Sue &gt; look
Sue: &lt;room desc&gt; ... A tall man stands by the bar, looking bored.
</pre></div>
</div>
<p>You can also wear a mask to hide your identity; your sdesc will then be changed to the sdesc of the mask,
like <code class="docutils literal notranslate"><span class="pre">a</span> <span class="pre">person</span> <span class="pre">with</span> <span class="pre">a</span> <span class="pre">mask</span></code>.</p>
<p>The RPSystem gives a lot of roleplaying power out of the box, so we will add it. There is also a separate
<a class="reference internal" href="../../../api/evennia.contrib.rpg.rpsystem.html"><span class="doc std std-doc">rplanguage</span></a> module that integrates with the spoken words in your emotes and garbles them if you dont understand
the language spoken. In order to restrict the scope we will not include languages for the tutorial game.</p>
</section>
<section id="talking-npc-contrib">
<h2>Talking NPC contrib<a class="headerlink" href="#talking-npc-contrib" title="Permalink to this headline"></a></h2>
<p><a class="reference internal" href="../../../api/evennia.contrib.tutorials.talking_npc.html"><span class="doc std std-doc">source</span></a></p>
<p>This exemplifies an NPC with a menu-driven dialogue tree. We will not use this contrib explicitly, but its
good as inspiration for how well do quest-givers later.</p>
</section>
<section id="traits-contrib">
<h2>Traits contrib<a class="headerlink" href="#traits-contrib" title="Permalink to this headline"></a></h2>
<p><a class="reference internal" href="../../../api/evennia.contrib.rpg.traits.html"><span class="doc std std-doc">source</span></a></p>
<p>An issue with dealing with roleplaying attributes like strength, dexterity, or skills like hunting, sword etc
is how to keep track of the values in the moment. Your strength may temporarily be buffed by a strength-potion.
Your swordmanship may be worse because you are encumbered. And when you drink your health potion you must make
sure that those +20 health does not bring your health higher than its maximum. All this adds complexity.</p>
<p>The <em>Traits</em> contrib consists of several types of objects to help track and manage values like this. When
installed, the traits are accessed on a new handler <code class="docutils literal notranslate"><span class="pre">.traits</span></code>, for example</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>&gt; py self.traits.hp.value
100
&gt; py self.traits.hp -= 20 # getting hurt
&gt; py self.traits.hp.value
80
&gt; py self.traits.hp.reset() # drink a potion
&gt; py self.traits.hp.value
100
</pre></div>
</div>
<p>A Trait is persistent (it uses an Attribute under the hood) and tracks changes, min/max and other things
automatically. They can also be added together in various mathematical operations.</p>
<p>The contrib introduces three main Trait-classes</p>
<ul class="simple">
<li><p><em>Static</em> traits for single values like str, dex, things that at most gets a modifier.</p></li>
<li><p><em>Counters</em> is a value that never moves outside a given range, even with modifiers. For example a skill
that can at most get a maximum amount of buff. Counters can also easily be <em>timed</em> so that they decrease
or increase with a certain rate per second. This could be good for a time-limited curse for example.</p></li>
<li><p><em>Gauge</em> is like a fuel-gauge; it starts at a max value and then empties gradually. This is perfect for
things like health, stamina and the like. Gauges can also change with a rate, which works well for the
effects of slow poisons and healing both.</p></li>
</ul>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">&gt;</span> <span class="n">py</span> <span class="bp">self</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">value</span>
<span class="mi">100</span>
<span class="o">&gt;</span> <span class="n">py</span> <span class="bp">self</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">rate</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span> <span class="c1"># poisoned!</span>
<span class="o">&gt;</span> <span class="n">py</span> <span class="bp">self</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">ratetarget</span> <span class="o">=</span> <span class="mi">50</span> <span class="c1"># stop at 50 hp</span>
<span class="c1"># Wait 30s</span>
<span class="o">&gt;</span> <span class="n">py</span> <span class="bp">self</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">value</span>
<span class="mi">70</span>
<span class="c1"># Wait another 30s</span>
<span class="o">&gt;</span> <span class="n">py</span> <span class="bp">self</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">value</span>
<span class="mi">50</span> <span class="c1"># stopped at 50</span>
<span class="o">&gt;</span> <span class="n">py</span> <span class="bp">self</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">rate</span> <span class="o">=</span> <span class="mi">0</span> <span class="c1"># no more poison</span>
<span class="o">&gt;</span> <span class="n">py</span> <span class="bp">self</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">rate</span> <span class="o">=</span> <span class="mi">5</span> <span class="c1"># healing magic!</span>
<span class="c1"># wait 5s</span>
<span class="o">&gt;</span> <span class="n">pyself</span><span class="o">.</span><span class="n">traits</span><span class="o">.</span><span class="n">hp</span><span class="o">.</span><span class="n">value</span>
<span class="mi">75</span>
</pre></div>
</div>
<p>Traits will be very practical to use for our character sheets.</p>
</section>
<section id="turnbattle-contrib">
<h2>Turnbattle contrib<a class="headerlink" href="#turnbattle-contrib" title="Permalink to this headline"></a></h2>
<p><a class="reference internal" href="../../../api/evennia.contrib.game_systems.turnbattle.html"><span class="doc std std-doc">source</span></a></p>
<p>This contrib consists of several implementations of a turn-based combat system, divivided into complexity:</p>
<ul class="simple">
<li><p>basic - initiative and turn order, attacks against defense values, damage.</p></li>
<li><p>equip - considers weapons and armor, wielding and weapon accuracy.</p></li>
<li><p>items - adds usable items with conditions and status effects</p></li>
<li><p>magic - adds spellcasting system using MP.</p></li>
<li><p>range - adds abstract positioning and 1D movement to differentiate between melee and ranged attacks.</p></li>
</ul>
<p>The turnbattle system is comprehensive, but its meant as a base to start from rather than offer
a complete system. Its also not built with <em>Traits</em> in mind, so we will need to adjust it for that.</p>
</section>
<section id="conclusions">
<h2>Conclusions<a class="headerlink" href="#conclusions" title="Permalink to this headline"></a></h2>
<p>With some contribs selected, we have pieces to build from and dont have to write everything from scratch.
We will need Quests and will likely need to do a bunch of work on Combat to adapt the combat contrib
to our needs.</p>
<p>We will now move into actually starting to implement our tutorial game
in the next part of this tutorial series. When doing this for yourself, remember to refer
back to your planning and adjust it as you learn what works and what does not.</p>
</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="#">Planning the use of some useful contribs</a><ul>
<li><a class="reference internal" href="#barter-contrib">Barter contrib</a></li>
<li><a class="reference internal" href="#clothing-contrib">Clothing contrib</a></li>
<li><a class="reference internal" href="#dice-contrib">Dice contrib</a></li>
<li><a class="reference internal" href="#extended-room-contrib">Extended room contrib</a></li>
<li><a class="reference internal" href="#rp-system-contrib">RP-System contrib</a></li>
<li><a class="reference internal" href="#talking-npc-contrib">Talking NPC contrib</a></li>
<li><a class="reference internal" href="#traits-contrib">Traits contrib</a></li>
<li><a class="reference internal" href="#turnbattle-contrib">Turnbattle contrib</a></li>
<li><a class="reference internal" href="#conclusions">Conclusions</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="Game-Planning.html"
title="previous chapter">On Planning a Game</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="Planning-The-Tutorial-Game.html"
title="next chapter">Planning our tutorial game</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../../../_sources/Howtos/Beginner-Tutorial/Part2/Planning-Some-Useful-Contribs.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="Planning-Some-Useful-Contribs.html">1.0-dev (develop branch)</a></li>
<li><a href="../../../../0.9.5/index.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="Planning-The-Tutorial-Game.html" title="Planning our tutorial game"
>next</a> |</li>
<li class="right" >
<a href="Game-Planning.html" title="On Planning a Game"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../../../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../../Howtos-Overview.html" >Tutorials and Howtos</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="../Beginner-Tutorial-Intro.html" >Beginner Tutorial</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="Beginner-Tutorial-Part2-Intro.html" >Part 2: What we want</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Planning the use of some useful contribs</a></li>
</ul>
<div class="develop">develop branch</div>
</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>

View file

@ -0,0 +1,611 @@
<!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>Planning our tutorial game &#8212; 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>
<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="Part 3: How we get there" href="../Part3/Beginner-Tutorial-Part3-Intro.html" />
<link rel="prev" title="Planning the use of some useful contribs" href="Planning-Some-Useful-Contribs.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="../Part3/Beginner-Tutorial-Part3-Intro.html" title="Part 3: How we get there"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="Planning-Some-Useful-Contribs.html" title="Planning the use of some useful contribs"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../../../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../../Howtos-Overview.html" >Tutorials and Howtos</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="../Beginner-Tutorial-Intro.html" >Beginner Tutorial</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="Beginner-Tutorial-Part2-Intro.html" accesskey="U">Part 2: What we want</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Planning our tutorial game</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="planning-our-tutorial-game">
<h1>Planning our tutorial game<a class="headerlink" href="#planning-our-tutorial-game" title="Permalink to this headline"></a></h1>
<p>Using the general plan from last lesson well now establish what kind of game we want to create for this tutorial.
Remembering that we need to keep the scope down, lets establish some parameters.
Note that for your own
game you dont <em>need</em> to agree/adopt any of these. Many game-types need more or much less than this.
But this makes for good, instructive examples.</p>
<ul class="simple">
<li><p>To have something to refer to rather than just saying “our tutorial game” over and over, well
name it … <em>EvAdventure</em>.</p></li>
<li><p>We want EvAdventure be a small game we can play ourselves for fun, but which could in principle be expanded
to something more later.</p></li>
<li><p>Lets go with a fantasy theme, its well understood.</p></li>
<li><p>Well use some existing, simple RPG system.</p></li>
<li><p>We want to be able to create and customize a character of our own.</p></li>
<li><p>We want the tools to roleplay with other players.</p></li>
<li><p>We dont want to have to rely on a Game master to resolve things, but will rely on code for skill resolution
and combat.</p></li>
<li><p>We want monsters to fight and NPCs we can talk to. So some sort of AI.</p></li>
<li><p>We want to be able to buy and sell stuff, both with NPCs and other players.</p></li>
<li><p>We want some sort of crafting system.</p></li>
<li><p>We want some sort of quest system.</p></li>
</ul>
<p>Lets answer the questions from the previous lesson and discuss some of the possibilities.</p>
<section id="administration">
<h2>Administration<a class="headerlink" href="#administration" title="Permalink to this headline"></a></h2>
<section id="should-your-game-rules-be-enforced-by-coded-systems-by-human-game-masters">
<h3>Should your game rules be enforced by coded systems by human game masters?<a class="headerlink" href="#should-your-game-rules-be-enforced-by-coded-systems-by-human-game-masters" title="Permalink to this headline"></a></h3>
<p>Generally, the more work you expect human staffers/GMs to do, the less your code needs to work. To
support GMs youd need to design commands to support GM-specific actions and the type of game-mastering
you want them to do. You may need to expand communication channels so you can easily
talk to groups people in private and split off gaming groups from each other. RPG rules could be as simple
as the GM sitting with the rule books and using a dice-roller for visibility.</p>
<p>GM:ing is work-intensive however, and even the most skilled and enthusiastic GM cant be awake all hours
of the day to serve an international player base. The computer never needs sleep, so having the ability for
players to “self-serve” their RP itch when no GMs are around is a good idea even for the most GM-heavy games.</p>
<p>On the other side of the spectrum are games with no GMs at all; all gameplay are driven either by the computer
or by the interactions between players. Such games still need an active staff, but nowhere as much active
involvement. Allowing for solo-play with the computer also allows players to have fun when the number of active
players is low.</p>
<p>We want EvAdventure to work entirely without depending on human GMs. That said, thered be nothing
stopping a GM from stepping in and run an adventure for some players should they want to.</p>
</section>
<section id="what-is-the-staff-hierarchy-in-your-game-is-vanilla-evennia-roles-enough-or-do-you-need-something-else">
<h3>What is the staff hierarchy in your game? Is vanilla Evennia roles enough or do you need something else?<a class="headerlink" href="#what-is-the-staff-hierarchy-in-your-game-is-vanilla-evennia-roles-enough-or-do-you-need-something-else" title="Permalink to this headline"></a></h3>
<p>The default hierarchy is</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">Player</span></code> - regular players</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Player</span> <span class="pre">Helper</span></code> - can create/edit help entries</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Builder</span></code> - can use build commands</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Admin</span></code> - can kick and ban accounts</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Developer</span></code> - full access, usually also trusted with server access</p></li>
</ul>
<p>There is also the <em>superuser</em>, the “owner” of the game you create when you first set up your database. This user
goes outside the regular hierarchy and should usually only.</p>
<p>We are okay with keeping this structure for our game.</p>
</section>
<section id="should-players-be-able-to-post-out-of-characters-on-channels-and-via-other-means-like-bulletin-boards">
<h3>Should players be able to post out-of-characters on channels and via other means like bulletin-boards?<a class="headerlink" href="#should-players-be-able-to-post-out-of-characters-on-channels-and-via-other-means-like-bulletin-boards" title="Permalink to this headline"></a></h3>
<p>Evennias <em>Channels</em> are by default only available between <em>Accounts</em>. That is, for players to communicate with each
other. By default, the <code class="docutils literal notranslate"><span class="pre">public</span></code> channel is created for general discourse.
Channels are logged to a file and when you are coming back to the game you can view the history of a channel
in case you missed something.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>&gt; public Hello world!
[Public] MyName: Hello world!
</pre></div>
</div>
<p>But Channels can also be set up to work between Characters instead of Accounts. This would mean the channels
would have an in-game meaning:</p>
<ul class="simple">
<li><p>Members of a guild could be linked telepathically.</p></li>
<li><p>Survivors of the apocalypse can communicate over walkie-talkies.</p></li>
<li><p>Radio stations you can tune into or have to discover.</p></li>
</ul>
<p><em>Bulletin boards</em> are a sort of in-game forum where posts are made publicly or privately. Contrary to a channel,
the messages are usually stored and are grouped into topics with replies. Evennia has no default bulletin-board
system.</p>
<p>In EvAdventure we will just use the default inter-account channels. We will also not be implementing any
bulletin boards.</p>
</section>
</section>
<section id="building">
<h2>Building<a class="headerlink" href="#building" title="Permalink to this headline"></a></h2>
<section id="how-will-the-world-be-built">
<h3>How will the world be built?<a class="headerlink" href="#how-will-the-world-be-built" title="Permalink to this headline"></a></h3>
<p>There are two main ways to handle this:</p>
<ul class="simple">
<li><p>Traditionally, from in-game with build-commands: This means builders creating content in their game
client. This has the advantage of not requiring Python skills nor server access. This can often be a quite
intuitive way to build since you are sort-of walking around in your creation as you build it. However, the
developer (you) must make sure to provide build-commands that are flexible enough for builders to be able to
create the content you want for your game.</p></li>
<li><p>Externally (by batchcmds): Evennias <code class="docutils literal notranslate"><span class="pre">batchcmd</span></code> takes a text file with Evennia Commands and executes them
in sequence. This allows the build process to be repeated and applied quickly to a new database during development.
It also allows builders to use proper text-editing tools rather than writing things line-by-line in their clients.
The drawback is that for their changes to go live they either need server access or they need to send their
batchcode to the game administrator so they can apply the changes. Or use version control.</p></li>
<li><p>Externally (with batchcode or custom code): This is the “professional game development” approach. This gives the
builders maximum power by creating the content in Python using Evennia primitives. The <code class="docutils literal notranslate"><span class="pre">batchcode</span></code> processor
allows Evennia to apply and re-apply build-scripts that are raw Python modules. Again, this would require the
builder to have server access or to use version control to share their work with the rest of the development team.</p></li>
</ul>
<p>In this tutorial, we will show examples of all these ways, but since we dont have a team of builders well
build the brunt of things using Evennias Batchcode system.</p>
</section>
<section id="can-only-privileged-builders-create-things-or-should-regular-players-also-have-limited-build-capability">
<h3>Can only privileged Builders create things or should regular players also have limited build-capability?<a class="headerlink" href="#can-only-privileged-builders-create-things-or-should-regular-players-also-have-limited-build-capability" title="Permalink to this headline"></a></h3>
<p>In some game styles, players have the ability to create objects and even script them. While giving regular users
the ability to create objects with in-built commands is easy and safe, actual code-creation (aka <em>softcode</em> ) is
not something Evennia supports natively. Regular, untrusted users should never be allowed to execute raw Python
code (such as what you can do with the <code class="docutils literal notranslate"><span class="pre">py</span></code> command). You can
<a class="reference internal" href="../../../Concepts/Soft-Code.html"><span class="doc std std-doc">read more about Evennias stance on softcode here</span></a>. If you want users to do limited scripting,
its suggested that this is accomplished by adding more powerful build-commands for them to use.</p>
<p>For our tutorial-game, we will only allow privileged builders to modify the world. The exception is crafting,
which we will limit to repairing broken items by combining them with other repair-related items.</p>
</section>
</section>
<section id="systems">
<h2>Systems<a class="headerlink" href="#systems" title="Permalink to this headline"></a></h2>
<section id="do-you-base-your-game-off-an-existing-rpg-system-or-make-up-your-own">
<h3>Do you base your game off an existing RPG system or make up your own?<a class="headerlink" href="#do-you-base-your-game-off-an-existing-rpg-system-or-make-up-your-own" title="Permalink to this headline"></a></h3>
<p>We will make use of <a class="reference external" href="http://www.geekguild.com/openadventure/">Open Adventure</a>, a simple old school RPG-system
that is available for free under the Creative Commons license. Well only use a subset of the rules from
the blue “basic” book. For the sake of keeping down the length of this tutorial we will limit what features
we will include:</p>
<ul class="simple">
<li><p>Only two archetypes (classes) - Arcanist (wizard) and Warrior, these are examples of two different play
styles.</p></li>
<li><p>Two races only (dwarves and elves), to show off how to implement races and race bonuses.</p></li>
<li><p>No extra features of the races/archetypes such as foci and special feats. While these are good for fleshing
out a character, these will work the same as other bonuses and are thus not that instructive.</p></li>
<li><p>We will add only a small number of items/weapons from the Open Adventure rulebook to show how its done.</p></li>
</ul>
</section>
<section id="what-are-the-game-mechanics-how-do-you-decide-if-an-action-succeeds-or-fails">
<h3>What are the game mechanics? How do you decide if an action succeeds or fails?<a class="headerlink" href="#what-are-the-game-mechanics-how-do-you-decide-if-an-action-succeeds-or-fails" title="Permalink to this headline"></a></h3>
<p>Open Adventures conflict resolution is based on adding a trait (such as Strength) with a random number in
order to beat a target. We will emulate this in code.</p>
<p>Having a “skill” means getting a bonus to that roll for a more narrow action.
Since the computer will need to know exactly what those skills are, we will add them more explicitly than
in the rules, but we will only add the minimum to show off the functionality we need.</p>
</section>
<section id="does-the-flow-of-time-matter-in-your-game-does-night-and-day-change-what-about-seasons">
<h3>Does the flow of time matter in your game - does night and day change? What about seasons?<a class="headerlink" href="#does-the-flow-of-time-matter-in-your-game-does-night-and-day-change-what-about-seasons" title="Permalink to this headline"></a></h3>
<p>Most commonly, game-time runs faster than real-world time. There are
a few advantages with this:</p>
<ul class="simple">
<li><p>Unlike in a single-player game, you cant fast-forward time in a multiplayer game if you are waiting for
something, like NPC shops opening.</p></li>
<li><p>Healing and other things that we know takes time will go faster while still being reasonably realistic.</p></li>
</ul>
<p>The main drawback is for games with slower roleplay pace. While you are having a thoughtful roleplaying scene
over dinner, the game world reports that two days have passed. Having a slower game time than real-time is
a less common, but possible solution for such games.</p>
<p>It is however <em>not</em> recommended to let game-time exactly equal the speed of real time. The reason for this
is that people will join your game from all around the world, and they will often only be able to play at
particular times of their day. With a game-time drifting relative real-time, everyone will eventually be
able to experience both day and night in the game.</p>
<p>For this tutorial-game we will go with Evennias default, which is that the game-time runs two times faster
than real time.</p>
</section>
<section id="do-you-want-changing-global-weather-or-should-weather-just-be-set-manually-in-roleplay">
<h3>Do you want changing, global weather or should weather just be set manually in roleplay?<a class="headerlink" href="#do-you-want-changing-global-weather-or-should-weather-just-be-set-manually-in-roleplay" title="Permalink to this headline"></a></h3>
<p>A weather system is a good example of a game-global system that affects a subset of game entities
(outdoor rooms). We will not be doing any advanced weather simulation, but well show how to do
random weather changes happening across the game world.</p>
</section>
<section id="do-you-want-a-coded-world-economy-or-just-a-simple-barter-system-or-no-formal-economy-at-all">
<h3>Do you want a coded world-economy or just a simple barter system? Or no formal economy at all?<a class="headerlink" href="#do-you-want-a-coded-world-economy-or-just-a-simple-barter-system-or-no-formal-economy-at-all" title="Permalink to this headline"></a></h3>
<p>We will allow for money and barter/trade between NPCs/Players and Player/Player, but will not care about
inflation. A real economic simulation could do things like modify shop prices based on supply and demand.
We will not go down that rabbit hole.</p>
</section>
<section id="do-you-have-concepts-like-reputation-and-influence">
<h3>Do you have concepts like reputation and influence?<a class="headerlink" href="#do-you-have-concepts-like-reputation-and-influence" title="Permalink to this headline"></a></h3>
<p>These are useful things for a more social-interaction heavy game. We will not include them for this
tutorial however.</p>
</section>
<section id="will-your-characters-be-known-by-their-name-or-only-by-their-physical-appearance">
<h3>Will your characters be known by their name or only by their physical appearance?<a class="headerlink" href="#will-your-characters-be-known-by-their-name-or-only-by-their-physical-appearance" title="Permalink to this headline"></a></h3>
<p>This is a common thing in RP-heavy games. Others will only see you as “The tall woman” until you
introduce yourself and they recognize you with a name. Linked to this is the concept of more complex
emoting and posing.</p>
<p>Adding such a system from scratch is complex and way beyond the scope of this tutorial. However,
there is an existing Evennia contrib that adds all of this functionality and more, so we will
include that and explain briefly how it works.</p>
</section>
</section>
<section id="rooms">
<h2>Rooms<a class="headerlink" href="#rooms" title="Permalink to this headline"></a></h2>
<section id="is-a-simple-room-description-enough-or-should-the-description-be-able-to-change">
<h3>Is a simple room description enough or should the description be able to change?<a class="headerlink" href="#is-a-simple-room-description-enough-or-should-the-description-be-able-to-change" title="Permalink to this headline"></a></h3>
<p>Changing room descriptions for day and night, winder and summer is actually quite easy to do, but looks
very impressive. We happen to know there is also a contrib that helps with this, so well show how to
include that.</p>
</section>
<section id="should-the-room-have-different-statuses">
<h3>Should the room have different statuses?<a class="headerlink" href="#should-the-room-have-different-statuses" title="Permalink to this headline"></a></h3>
<p>We will have different weather in outdoor rooms, but this will not have any gameplay effect - bow strings
will not get wet and fireballs will not fizzle if it rains.</p>
</section>
<section id="can-objects-be-hidden-in-the-room-can-a-person-hide-in-the-room">
<h3>Can objects be hidden in the room? Can a person hide in the room?<a class="headerlink" href="#can-objects-be-hidden-in-the-room-can-a-person-hide-in-the-room" title="Permalink to this headline"></a></h3>
<p>We will not model hiding and stealth. This will be a game of honorable face-to-face conflict.</p>
</section>
</section>
<section id="objects">
<h2>Objects<a class="headerlink" href="#objects" title="Permalink to this headline"></a></h2>
<section id="how-numerous-are-your-objects-do-you-want-large-loot-lists-or-are-objects-just-role-playing-props">
<h3>How numerous are your objects? Do you want large loot-lists or are objects just role playing props?<a class="headerlink" href="#how-numerous-are-your-objects-do-you-want-large-loot-lists-or-are-objects-just-role-playing-props" title="Permalink to this headline"></a></h3>
<p>Since we are not going for a pure freeform RPG here, we will want objects with properties, like weapons
and potions and such. Monsters should drop loot even though our list of objects will not be huge.</p>
</section>
<section id="is-each-coin-a-separate-object-or-do-you-just-store-a-bank-account-value">
<h3>Is each coin a separate object or do you just store a bank account value?<a class="headerlink" href="#is-each-coin-a-separate-object-or-do-you-just-store-a-bank-account-value" title="Permalink to this headline"></a></h3>
<p>Since we will use bartering, placing coin objects on one side of the barter makes for a simple way to
handle payments. So we will use coins as-objects.</p>
</section>
<section id="do-multiple-similar-objects-form-stacks-and-how-are-those-stacks-handled-in-that-case">
<h3>Do multiple similar objects form stacks and how are those stacks handled in that case?<a class="headerlink" href="#do-multiple-similar-objects-form-stacks-and-how-are-those-stacks-handled-in-that-case" title="Permalink to this headline"></a></h3>
<p>Since well use coins, its practical to have them and other items stack together. While Evennia does not
do this natively, we will make use of a contrib for this.</p>
</section>
<section id="does-an-object-have-weight-or-volume-so-you-cannot-carry-an-infinite-amount-of-them">
<h3>Does an object have weight or volume (so you cannot carry an infinite amount of them)?<a class="headerlink" href="#does-an-object-have-weight-or-volume-so-you-cannot-carry-an-infinite-amount-of-them" title="Permalink to this headline"></a></h3>
<p>Limiting carrying weight is one way to stop players from hoarding. It also makes it more important
for players to pick only the equipment they need. Carrying limits can easily come across as
annoying to players though, so one needs to be careful with it.</p>
<p>Open Adventure rules include weight limits, so we will include them.</p>
</section>
<section id="can-objects-be-broken-can-they-be-repaired">
<h3>Can objects be broken? Can they be repaired?<a class="headerlink" href="#can-objects-be-broken-can-they-be-repaired" title="Permalink to this headline"></a></h3>
<p>Item breakage is very useful for a game economy; breaking weapons adds tactical considerations (if its not
too common, then it becomes annoying) and repairing things gives work for crafting players.</p>
<p>We wanted a crafting system, so this is what we will limit it to - repairing items using some sort
of raw materials.</p>
</section>
<section id="can-you-fight-with-a-chair-or-a-flower-or-must-you-use-a-special-weapon-kind-of-thing">
<h3>Can you fight with a chair or a flower or must you use a special weapon kind of thing?<a class="headerlink" href="#can-you-fight-with-a-chair-or-a-flower-or-must-you-use-a-special-weapon-kind-of-thing" title="Permalink to this headline"></a></h3>
<p>Traditionally, only weapons could be used to fight with. In the past this was a useful
simplification, but with Python classes and inheritance, its not actually more work to just
let all items in game work as a weapon in a pinch.</p>
<p>So for our game we will let a character use any item they want as a weapon. The difference will
be that non-weapon items will do less damage and also break and become unusable much quicker.</p>
</section>
<section id="will-characters-be-able-to-craft-new-objects">
<h3>Will characters be able to craft new objects?<a class="headerlink" href="#will-characters-be-able-to-craft-new-objects" title="Permalink to this headline"></a></h3>
<p>Crafting is a common feature in multiplayer games. In code it usually means using a skill-check
to combine base ingredients from a fixed recipe in order to create a new item. The classic
example is to combine <em>leather straps</em>, a <em>hilt</em>, a <em>pommel</em> and a <em>blade</em> to make a new <em>sword</em>.
A full-fledged crafting system could require multiple levels of crafting, including having to mine
for ore or cut down trees for wood.</p>
<p>In our case we will limit our crafting to repairing broken items. To show how its done, we will require
extra items (a recipe) in order to facilitate the repairs.</p>
</section>
<section id="should-mobs-npcs-have-some-sort-of-ai">
<h3>Should mobs/NPCs have some sort of AI?<a class="headerlink" href="#should-mobs-npcs-have-some-sort-of-ai" title="Permalink to this headline"></a></h3>
<p>A rule of adding Artificial Intelligence is that with todays technology you should not hope to fool
anyone with it anytime soon. Unless you have a side-gig as an AI researcher, users will likely
not notice any practical difference between a simple state-machine and you spending a lot of time learning
how to train a neural net.</p>
<p>For this tutorial, we will show how to add a simple state-machine for monsters. NPCs will only be
shop-keepers and quest-gives so they wont need any real AI to speak of.</p>
</section>
<section id="are-npcs-and-mobs-different-entities-how-do-they-differ">
<h3>Are NPCs and mobs different entities? How do they differ?<a class="headerlink" href="#are-npcs-and-mobs-different-entities-how-do-they-differ" title="Permalink to this headline"></a></h3>
<p>“Mobs” or “mobiles” are things that move around. This is traditionally monsters you can fight with, but could
also be city guards or the baker going to chat with the neighbor. Back in the day, they were often fundamentally
different these days its often easier to just make NPCs and mobs essentially the same thing.</p>
<p>In EvAdventure, both Monsters and NPCs will be the same type of thing; A monster could give you a quest
and an NPC might fight you as a mob as well as trade with you.</p>
</section>
<section id="should-there-be-npcs-giving-quests-if-so-how-do-you-track-quest-status">
<h3>_Should there be NPCs giving quests? If so, how do you track Quest status?<a class="headerlink" href="#should-there-be-npcs-giving-quests-if-so-how-do-you-track-quest-status" title="Permalink to this headline"></a></h3>
<p>We will design a simple quest system to track the status of ongoing quests.</p>
</section>
</section>
<section id="characters">
<h2>Characters<a class="headerlink" href="#characters" title="Permalink to this headline"></a></h2>
<section id="can-players-have-more-than-one-character-active-at-a-time-or-are-they-allowed-to-multi-play">
<h3>Can players have more than one Character active at a time or are they allowed to multi-play?<a class="headerlink" href="#can-players-have-more-than-one-character-active-at-a-time-or-are-they-allowed-to-multi-play" title="Permalink to this headline"></a></h3>
<p>Since Evennia differentiates between <code class="docutils literal notranslate"><span class="pre">Sessions</span></code> (the client-connection to the game), <code class="docutils literal notranslate"><span class="pre">Accounts</span></code>
and <code class="docutils literal notranslate"><span class="pre">Character</span></code>s, it natively supports multi-play. This is controlled by the <code class="docutils literal notranslate"><span class="pre">MULTISESSION_MODE</span></code>
setting, which has a value from <code class="docutils literal notranslate"><span class="pre">0</span></code> (default) to <code class="docutils literal notranslate"><span class="pre">3</span></code>.</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">0</span></code>- One Character per Account and one Session per Account. This means that if you login to the same
account from another client youll be disconnected from the first. When creating a new account, a Character
will be auto-created with the same name as your Account. This is default mode and mimics legacy code bases
which had no separation between Account and Character.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">1</span></code> - One Character per Account, multiple Sessions per Account. So you can connect simultaneously from
multiple clients and see the same output in all of them.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">2</span></code> - Multiple Characters per Account, one Session per Character. This will not auto-create a same-named
Character for you, instead you get to create/choose between a number of Characters up to a max limit given by
the <code class="docutils literal notranslate"><span class="pre">MAX_NR_CHARACTERS</span></code> setting (default 1). You can play them all simultaneously if you have multiple clients
open, but only one client per Character.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">3</span></code> - Multiple Characters per Account, Multiple Sessions per Character. This is like mode 2, except players
can control each Character from multiple clients, seeing the same output from each Character.</p></li>
</ul>
<p>We will go with a multi-role game, so we will use <code class="docutils literal notranslate"><span class="pre">MULTISESSION_MODE=3</span></code> for this tutorial.</p>
</section>
<section id="how-does-the-character-generation-work">
<h3>How does the character-generation work?<a class="headerlink" href="#how-does-the-character-generation-work" title="Permalink to this headline"></a></h3>
<p>There are a few common ways to do character generation:</p>
<ul class="simple">
<li><p>Rooms. This is the traditional way. Each rooms description tells you what command to use to modify
your character. When you are done you move to the next room. Only use this if you have another reason for
using a room, like having a training dummy to test skills on, for example.</p></li>
<li><p>A Menu. The Evennia <em>EvMenu</em> system allows you to code very flexible in-game menus without needing to walk
between rooms. You can both have a step-by-step menu (a wizard) or allow the user to jump between the
steps as they please. This tends to be a lot easier for newcomers to understand since it doesnt require
using custom commands they will likely never use again after this.</p></li>
<li><p>Questions. A fun way to build a character is to answer a series of questions. This is usually implemented
with a sequential menu.</p></li>
</ul>
<p>For the tutorial we will use a menu to let the user modify each section of their character sheet in any order
until they are happy.</p>
</section>
<section id="how-do-you-implement-different-classes-or-races">
<h3>How do you implement different “classes” or “races”?<a class="headerlink" href="#how-do-you-implement-different-classes-or-races" title="Permalink to this headline"></a></h3>
<p>The way classes and races work in most RPGs (as well as in OpenAdventure) is that they act as static templates
that inform which bonuses and special abilities you have. This means that all we need to store on the
Character is <em>which</em> class and <em>which</em> race they have; the actual logic can sit in Python code and just
be looked up when we need it.</p>
</section>
<section id="if-a-character-can-hide-in-a-room-what-skill-will-decide-if-they-are-detected">
<h3>If a Character can hide in a room, what skill will decide if they are detected?<a class="headerlink" href="#if-a-character-can-hide-in-a-room-what-skill-will-decide-if-they-are-detected" title="Permalink to this headline"></a></h3>
<p>Hiding means a few things.</p>
<ul class="simple">
<li><p>The Character should not appear in the rooms description / character list</p></li>
<li><p>Others hould not be able to interact with a hidden character. Itd be weird if you could do <code class="docutils literal notranslate"><span class="pre">attack</span> <span class="pre">&lt;name&gt;</span></code>
or <code class="docutils literal notranslate"><span class="pre">look</span> <span class="pre">&lt;name&gt;</span></code> if the named character is in hiding.</p></li>
<li><p>There must be a way for the person to come out of hiding, and probably for others to search or accidentally
find the person (probably based on skill checks).</p></li>
<li><p>The room will also need to be involved, maybe with some modifier as to how easy it is to hide in the room.</p></li>
</ul>
<p>We will <em>not</em> be including a hide-mechanic in EvAdventure though.</p>
</section>
<section id="what-does-the-skill-tree-look-like-can-a-character-gain-experience-to-improve-by-killing-enemies-solving-quests-by-roleplaying">
<h3>What does the skill tree look like? Can a Character gain experience to improve? By killing enemies? Solving quests? By roleplaying?<a class="headerlink" href="#what-does-the-skill-tree-look-like-can-a-character-gain-experience-to-improve-by-killing-enemies-solving-quests-by-roleplaying" title="Permalink to this headline"></a></h3>
<p>Gaining experience points (XP) and improving ones character is a staple of roleplaying games. There are many
ways to implement this:</p>
<ul class="simple">
<li><p>Gaining XP from kills is very common; its easy to let a monster be worth a certain number of XP and its
easy to tell when you should gain it.</p></li>
<li><p>Gaining XP from quests is the same - each quest is worth XP and you get them when completing the test.</p></li>
<li><p>Gaining XP from roleplay is harder to define. Different games have tried a lot of different ways to do this:</p>
<ul>
<li><p>XP from being online - just being online gains you XP. This inflates player numbers but many players may
just be lurking and not be actually playing the game at any given time.</p></li>
<li><p>XP from roleplaying scenes - you gain XP according to some algorithm analyzing your emotes for quality,
how often you post, how long your emotes are etc.</p></li>
<li><p>XP from actions - you gain XP when doing things, anything. Maybe your XP is even specific to each action, so
you gain XP only for running when you run, XP for your axe skill when you fight with an axe etc.</p></li>
<li><p>XP from fails - you only gain XP when failing rolls.</p></li>
<li><p>XP from other players - other players can award you XP for good RP.</p></li>
</ul>
</li>
</ul>
<p>For EvAdventure we will use Open Adventures rules for XP, which will be driven by kills and quest successes.</p>
</section>
<section id="may-player-characters-attack-each-other-pvp">
<h3>May player-characters attack each other (PvP)?<a class="headerlink" href="#may-player-characters-attack-each-other-pvp" title="Permalink to this headline"></a></h3>
<p>Deciding this affects the style of your entire game. PvP makes for exciting gameplay but it opens a whole new
can of worms when it comes to “fairness”. Players will usually accept dying to an overpowered NPC dragon. They
will not be as accepting if they perceive another player is perceived as being overpowered. PvP means that you
have to be very careful to balance the game - all characters does not have to be exactly equal but they should
all be viable to play a fun game with. PvP does not only mean combat though. Players can compete in all sorts of ways, including gaining influence in
a political game or gaining market share when selling their crafted merchandise.</p>
<p>For the EvAdventure we will support both Player-vs-environment combat and turn-based PvP. We will allow players
to barter with each other (so potentially scam others?) but thats the extent of it. We will focus on showing
off techniques and will not focus on making a balanced game.</p>
</section>
<section id="what-are-the-penalties-of-defeat-permanent-death-quick-respawn-time-in-prison">
<h3>What are the penalties of defeat? Permanent death? Quick respawn? Time in prison?<a class="headerlink" href="#what-are-the-penalties-of-defeat-permanent-death-quick-respawn-time-in-prison" title="Permalink to this headline"></a></h3>
<p>This is another big decision that strongly affects the mood and style of your game.</p>
<p>Perma-death means that once your character dies, its gone and you have to make a new one.</p>
<ul class="simple">
<li><p>It allows for true heroism. If you genuinely risk losing your character of two years to fight the dragon,
your triumph is an actual feat.</p></li>
<li><p>It limits the old-timer dominance problem. If long-time players dies occationally, it will open things
up for newcomers.</p></li>
<li><p>It lowers inflation, since the hoarded resources of a dead character can be removed.</p></li>
<li><p>It gives capital punishment genuine discouraging power.</p></li>
<li><p>Its realistic.</p></li>
</ul>
<p>Perma-death comes with some severe disadvantages however.</p>
<ul class="simple">
<li><p>Its impopular. Many players will just not play a game where they risk losing their beloved character
just like that.</p></li>
<li><p>Many players say they like the <em>idea</em> of permadeath except when it could happen to them.</p></li>
<li><p>It can limit roleplaying freedom and make people refuse to take any risks.</p></li>
<li><p>It may make players even more reluctant to play conflict-driving bad guys.</p></li>
<li><p>Game balance is much, much more important when results are “final”. This escalates the severity of unfairness
a hundred-fold. Things like bugs or exploits can also lead to much more server effects.</p></li>
</ul>
<p>For these reasons, its very common to do hybrid systems. Some tried variations:</p>
<ul class="simple">
<li><p>NPCs cannot kill you, only other players can.</p></li>
<li><p>Death is permanent, but its difficult to actually die - you are much more likely to end up being severely
hurt/incapacitated.</p></li>
<li><p>You can pre-pay insurance to magically/technologically avoid actually dying. Only if dont have insurance will
you die permanently.</p></li>
<li><p>Death just means harsh penalties, not actual death.</p></li>
<li><p>When you die you can fight your way back to life from some sort of afterlife.</p></li>
<li><p>Youll only die permanently if you as a player explicitly allows it.</p></li>
</ul>
<p>For our tutorial-game we will not be messing with perma-death; instead your defeat will mean you will re-spawn
back at your home location with a fraction of your health.</p>
</section>
</section>
<section id="conclusions">
<h2>Conclusions<a class="headerlink" href="#conclusions" title="Permalink to this headline"></a></h2>
<p>Going through the questions has helped us get a little bit more of a feel for the game we want to do. There are
many other things we could ask ourselves, but if we can cover these points we will be a good way towards a complete,
playable game!</p>
<p>Before starting to code in earnest a good coder should always do an inventory of all the stuff they <em>dont</em> need
to code themselves. So in the next lesson we will check out what help we have from Evennias <em>contribs</em>.</p>
</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="#">Planning our tutorial game</a><ul>
<li><a class="reference internal" href="#administration">Administration</a><ul>
<li><a class="reference internal" href="#should-your-game-rules-be-enforced-by-coded-systems-by-human-game-masters">Should your game rules be enforced by coded systems by human game masters?</a></li>
<li><a class="reference internal" href="#what-is-the-staff-hierarchy-in-your-game-is-vanilla-evennia-roles-enough-or-do-you-need-something-else">What is the staff hierarchy in your game? Is vanilla Evennia roles enough or do you need something else?</a></li>
<li><a class="reference internal" href="#should-players-be-able-to-post-out-of-characters-on-channels-and-via-other-means-like-bulletin-boards">Should players be able to post out-of-characters on channels and via other means like bulletin-boards?</a></li>
</ul>
</li>
<li><a class="reference internal" href="#building">Building</a><ul>
<li><a class="reference internal" href="#how-will-the-world-be-built">How will the world be built?</a></li>
<li><a class="reference internal" href="#can-only-privileged-builders-create-things-or-should-regular-players-also-have-limited-build-capability">Can only privileged Builders create things or should regular players also have limited build-capability?</a></li>
</ul>
</li>
<li><a class="reference internal" href="#systems">Systems</a><ul>
<li><a class="reference internal" href="#do-you-base-your-game-off-an-existing-rpg-system-or-make-up-your-own">Do you base your game off an existing RPG system or make up your own?</a></li>
<li><a class="reference internal" href="#what-are-the-game-mechanics-how-do-you-decide-if-an-action-succeeds-or-fails">What are the game mechanics? How do you decide if an action succeeds or fails?</a></li>
<li><a class="reference internal" href="#does-the-flow-of-time-matter-in-your-game-does-night-and-day-change-what-about-seasons">Does the flow of time matter in your game - does night and day change? What about seasons?</a></li>
<li><a class="reference internal" href="#do-you-want-changing-global-weather-or-should-weather-just-be-set-manually-in-roleplay">Do you want changing, global weather or should weather just be set manually in roleplay?</a></li>
<li><a class="reference internal" href="#do-you-want-a-coded-world-economy-or-just-a-simple-barter-system-or-no-formal-economy-at-all">Do you want a coded world-economy or just a simple barter system? Or no formal economy at all?</a></li>
<li><a class="reference internal" href="#do-you-have-concepts-like-reputation-and-influence">Do you have concepts like reputation and influence?</a></li>
<li><a class="reference internal" href="#will-your-characters-be-known-by-their-name-or-only-by-their-physical-appearance">Will your characters be known by their name or only by their physical appearance?</a></li>
</ul>
</li>
<li><a class="reference internal" href="#rooms">Rooms</a><ul>
<li><a class="reference internal" href="#is-a-simple-room-description-enough-or-should-the-description-be-able-to-change">Is a simple room description enough or should the description be able to change?</a></li>
<li><a class="reference internal" href="#should-the-room-have-different-statuses">Should the room have different statuses?</a></li>
<li><a class="reference internal" href="#can-objects-be-hidden-in-the-room-can-a-person-hide-in-the-room">Can objects be hidden in the room? Can a person hide in the room?</a></li>
</ul>
</li>
<li><a class="reference internal" href="#objects">Objects</a><ul>
<li><a class="reference internal" href="#how-numerous-are-your-objects-do-you-want-large-loot-lists-or-are-objects-just-role-playing-props">How numerous are your objects? Do you want large loot-lists or are objects just role playing props?</a></li>
<li><a class="reference internal" href="#is-each-coin-a-separate-object-or-do-you-just-store-a-bank-account-value">Is each coin a separate object or do you just store a bank account value?</a></li>
<li><a class="reference internal" href="#do-multiple-similar-objects-form-stacks-and-how-are-those-stacks-handled-in-that-case">Do multiple similar objects form stacks and how are those stacks handled in that case?</a></li>
<li><a class="reference internal" href="#does-an-object-have-weight-or-volume-so-you-cannot-carry-an-infinite-amount-of-them">Does an object have weight or volume (so you cannot carry an infinite amount of them)?</a></li>
<li><a class="reference internal" href="#can-objects-be-broken-can-they-be-repaired">Can objects be broken? Can they be repaired?</a></li>
<li><a class="reference internal" href="#can-you-fight-with-a-chair-or-a-flower-or-must-you-use-a-special-weapon-kind-of-thing">Can you fight with a chair or a flower or must you use a special weapon kind of thing?</a></li>
<li><a class="reference internal" href="#will-characters-be-able-to-craft-new-objects">Will characters be able to craft new objects?</a></li>
<li><a class="reference internal" href="#should-mobs-npcs-have-some-sort-of-ai">Should mobs/NPCs have some sort of AI?</a></li>
<li><a class="reference internal" href="#are-npcs-and-mobs-different-entities-how-do-they-differ">Are NPCs and mobs different entities? How do they differ?</a></li>
<li><a class="reference internal" href="#should-there-be-npcs-giving-quests-if-so-how-do-you-track-quest-status">_Should there be NPCs giving quests? If so, how do you track Quest status?</a></li>
</ul>
</li>
<li><a class="reference internal" href="#characters">Characters</a><ul>
<li><a class="reference internal" href="#can-players-have-more-than-one-character-active-at-a-time-or-are-they-allowed-to-multi-play">Can players have more than one Character active at a time or are they allowed to multi-play?</a></li>
<li><a class="reference internal" href="#how-does-the-character-generation-work">How does the character-generation work?</a></li>
<li><a class="reference internal" href="#how-do-you-implement-different-classes-or-races">How do you implement different “classes” or “races”?</a></li>
<li><a class="reference internal" href="#if-a-character-can-hide-in-a-room-what-skill-will-decide-if-they-are-detected">If a Character can hide in a room, what skill will decide if they are detected?</a></li>
<li><a class="reference internal" href="#what-does-the-skill-tree-look-like-can-a-character-gain-experience-to-improve-by-killing-enemies-solving-quests-by-roleplaying">What does the skill tree look like? Can a Character gain experience to improve? By killing enemies? Solving quests? By roleplaying?</a></li>
<li><a class="reference internal" href="#may-player-characters-attack-each-other-pvp">May player-characters attack each other (PvP)?</a></li>
<li><a class="reference internal" href="#what-are-the-penalties-of-defeat-permanent-death-quick-respawn-time-in-prison">What are the penalties of defeat? Permanent death? Quick respawn? Time in prison?</a></li>
</ul>
</li>
<li><a class="reference internal" href="#conclusions">Conclusions</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="Planning-Some-Useful-Contribs.html"
title="previous chapter">Planning the use of some useful contribs</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="../Part3/Beginner-Tutorial-Part3-Intro.html"
title="next chapter">Part 3: How we get there</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../../../_sources/Howtos/Beginner-Tutorial/Part2/Planning-The-Tutorial-Game.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="Planning-The-Tutorial-Game.html">1.0-dev (develop branch)</a></li>
<li><a href="../../../../0.9.5/index.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="../Part3/Beginner-Tutorial-Part3-Intro.html" title="Part 3: How we get there"
>next</a> |</li>
<li class="right" >
<a href="Planning-Some-Useful-Contribs.html" title="Planning the use of some useful contribs"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../../../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../../Howtos-Overview.html" >Tutorials and Howtos</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="../Beginner-Tutorial-Intro.html" >Beginner Tutorial</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="Beginner-Tutorial-Part2-Intro.html" >Part 2: What we want</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Planning our tutorial game</a></li>
</ul>
<div class="develop">develop branch</div>
</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>

View file

@ -0,0 +1,285 @@
<!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>Where do I begin? &#8212; 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>
<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="On Planning a Game" href="Game-Planning.html" />
<link rel="prev" title="Part 2: What we want" href="Beginner-Tutorial-Part2-Intro.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="Game-Planning.html" title="On Planning a Game"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="Beginner-Tutorial-Part2-Intro.html" title="Part 2: What we want"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../../../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../../Howtos-Overview.html" >Tutorials and Howtos</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="../Beginner-Tutorial-Intro.html" >Beginner Tutorial</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="Beginner-Tutorial-Part2-Intro.html" accesskey="U">Part 2: What we want</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Where do I begin?</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="where-do-i-begin">
<h1>Where do I begin?<a class="headerlink" href="#where-do-i-begin" title="Permalink to this headline"></a></h1>
<p>The good news is that following this Starting tutorial is a great way to begin making an Evennia game.</p>
<p>The bad news is that everyones different and when it comes to starting your own game there is no
one-size-fits-all answer. Instead we will ask a series of questions
to help you figure this out for yourself. It will also help you evaluate your own skills and maybe
put some more realistic limits on how fast you can achieve your goals.</p>
<blockquote>
<div><p>The questions in this lesson do not really apply to our tutorial game since we know we are doing it
to learn Evennia. If you just want to follow along with the technical bits you can skip this lesson and
come back later when you feel ready to take on making your own game.</p>
</div></blockquote>
<section id="what-is-your-motivation-for-doing-this">
<h2>What is your motivation for doing this?<a class="headerlink" href="#what-is-your-motivation-for-doing-this" title="Permalink to this headline"></a></h2>
<p>So you want to make a game. First you need to make a few things clear to yourself.</p>
<p>Making a multiplayer online game is a <em>big</em> undertaking. You will (if you are like most of us) be
doing it as a hobby, without getting paid. And youll be doing it for a long time.</p>
<p>So the very first thing you should ask yourself (and your team, if you have any) is
<em>why am I doing this</em>? Do some soul-searching here. Here are some possible answers:</p>
<ul class="simple">
<li><p>I want to earn recognition and fame from my online community and/or among my friends.</p></li>
<li><p>I want to build the game so I can play and enjoy it myself.</p></li>
<li><p>I want to build the same game I already play but without the bad people.</p></li>
<li><p>I want to create a game so that I can control it and be the head honcho.</p></li>
<li><p>A friend or online acquaintance talked me into working on it.</p></li>
<li><p>I work on this because Im paid to (wow!)</p></li>
<li><p>I only build this for my own benefit or to see if I can pull it off.</p></li>
<li><p>I want to create something to give back to the community I love.</p></li>
<li><p>I want to use this project as a stepping-stone towards other projects (like a career in game design
or programming).</p></li>
<li><p>I am interested in coding or server and network architectures, making a MUD just seems to be a good
way to teach myself.</p></li>
<li><p>I want to build a commercial game and earn money.</p></li>
<li><p>I want to fulfill a life-long dream of game making.</p></li>
</ul>
<p>There are many other possibilities. How “solid” your answer is for a long-term development project
is up to you. The important point is that you ask yourself the question.</p>
<p><strong>Help someone else instead</strong> - Maybe you should <em>not</em> start a new project - maybe youre better off
helping someone else or improve on something that already exists. Or maybe you find you are more of a
game engine developer than a game designer.</p>
<p><strong>Driven by emotion</strong> - Some answers may suggest that you are driven by emotions of revenge or disconcert. Be careful with that and
check so thats not your <em>only</em> driving force. Those emotions may have abated later when the project
most needs your enthusiasm and motivation.</p>
<p><strong>Going commercial</strong> - If your aim is to earn money, your design goals will likely be very different from
those of a person who only creates as a hobby or for their own benefit. You may also have a much stricter
timeline for release.</p>
<p>Whichever your motivation, you should at least have it clear in your own mind. Its worth to make
sure your eventual team is on the same page too.</p>
</section>
<section id="what-are-your-skills">
<h2>What are your skills?<a class="headerlink" href="#what-are-your-skills" title="Permalink to this headline"></a></h2>
<p>Once you have your motivations straight you need to take a stock of your own skills and the skills
available in your team, if you have any.</p>
<p>Your game will have two principal components and you will need skills to cater for both:</p>
<ul class="simple">
<li><p>The game engine / code base - Evennia in this case.</p></li>
<li><p>The assets created for using the game engine (“the game world”)</p></li>
</ul>
<section id="the-game-engine">
<h3>The game engine<a class="headerlink" href="#the-game-engine" title="Permalink to this headline"></a></h3>
<p>The game engine is maintained and modified by programmers (coders). It represents the infrastructure
that runs the game - the network code, the protocol support, the handling of commands, scripting and
data storage.</p>
<p>If you are just evaluating Evennia, its worth to do the following:</p>
<ul class="simple">
<li><p>Hang out in the community/forums/chat. Expect to need to ask a lot of “stupid” questions as you start
developing (hint: no question is stupid). Is this a community in which you would feel comfortable doing so?</p></li>
<li><p>Keep tabs on the manual (youre already here).</p></li>
<li><p>Hows your Python skills? What are the skills in your team? Do you or your team already know it or are
you willing to learn? Learning the language as you go is not too unusual with Evennia devs, but expect it
to add development time. You will also be worse at predicting how hard something is to do.</p></li>
<li><p>If you dont know Python, you should have gotten a few tastes from the first part of this tutorial. But
expect to have to refer to external online tutorials - there are many details of Python that will not be
covered.</p></li>
</ul>
</section>
<section id="asset-creation">
<h3>Asset creation<a class="headerlink" href="#asset-creation" title="Permalink to this headline"></a></h3>
<p>Compared to the level of work needed to produce professional graphics for an MMORPG, detailed text
assets for a mud are cheap to create. This is one of the many reasons muds are so well suited for a
small team.</p>
<p>This is not to say that making “professional” text content is easy though. Knowing how to write
imaginative and grammatically correct prose is only the minimal starting requirement. A good asset-
creator (traditionally called a “builder”) must also be able to utilize the tools of the game engine
to its fullest in order to script events, make quests, triggers and interactive, interesting
environments.</p>
<p>Assuming you are not coding all alone, your teams in-house builders will be the first ones to actually
“use” your game framework and build tools. They will stumble on all the bugs. This means that you
need people who are just not “artsy” or “good with words”. Assuming coders and builders are not the
same people (common for early testing), builders need to be able to collaborate well and give clear
and concise feedback.</p>
<p>If you know your builders are not tech-savvy, you may need to spend more time making easier
build-tools and commands for them.</p>
</section>
</section>
<section id="so-where-do-i-begin-then">
<h2>So, where do I begin, then?<a class="headerlink" href="#so-where-do-i-begin-then" title="Permalink to this headline"></a></h2>
<p>Right, after all this soul-searching and skill-inventory-checking, lets go back to the original
question. And maybe youll find that you have a better feeling for the answer yourself already:</p>
<ul class="simple">
<li><p>Keep following this tutorial and spend the time
to really understand what is happening in the examples. Not only will this give you a better idea
of how parts hang together, it may also give you ideas for what is possible. Maybe something
is easier than you expected!</p></li>
<li><p>Introduce yourself in the IRC/Discord chat and dont be shy to ask questions as you go through
the tutorial. Dont get hung up on trying to resolve something that a seasoned Evennia dev may
clear up for you in five minutes. Also, not all errors are your faults - its possible the
tutorial is unclear or has bugs, asking will quickly bring those problems to light, if so.</p></li>
<li><p>If Python is new to you, you should complement the tutorial with third-party Python references
so you can read, understand and replicate example code without being completely in the dark.</p></li>
</ul>
<p>Once you are out of the starting tutorial, youll be off to do your own thing.</p>
<ul class="simple">
<li><p>The starting tutorial cannot cover everything. Skim through the <a class="reference internal" href="../../../index.html"><span class="doc std std-doc">Evennia docs</span></a>.
Even if you dont read everything, it gives you a feeling for whats available should you need
to look for something later. Make sure to use the search function.</p></li>
<li><p>You can now start by expanding on the tutorial-game we will have created. In the last part there
there will be a list of possible future projects you could take on. Working on your own, without help
from a tutorial is the next step.</p></li>
</ul>
<p>As for your builders, they can start getting familiar with Evennias default build commands … but
keep in mind that your game is not yet built! Dont set your builders off on creating large zone projects.
If they build anything at all, it should be small test areas to agree on a homogenous form, mood
and literary style.</p>
</section>
<section id="conclusions">
<h2>Conclusions<a class="headerlink" href="#conclusions" title="Permalink to this headline"></a></h2>
<p>Remember that what kills a hobby game project will usually be your own lack of
motivation. So do whatever you can to keep that motivation burning strong! Even if it means
deviating from what you read in a tutorial like this one. Just get that game out there, whichever way
works best for you.</p>
<p>In the next lesson well go through some of the technical questions you need to consider. This should
hopefully help you figure out more about the game you want to make. In the lesson following that well
then try to answer those questions for the sake of creating our little tutorial game.</p>
</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="#">Where do I begin?</a><ul>
<li><a class="reference internal" href="#what-is-your-motivation-for-doing-this">What is your motivation for doing this?</a></li>
<li><a class="reference internal" href="#what-are-your-skills">What are your skills?</a><ul>
<li><a class="reference internal" href="#the-game-engine">The game engine</a></li>
<li><a class="reference internal" href="#asset-creation">Asset creation</a></li>
</ul>
</li>
<li><a class="reference internal" href="#so-where-do-i-begin-then">So, where do I begin, then?</a></li>
<li><a class="reference internal" href="#conclusions">Conclusions</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="Beginner-Tutorial-Part2-Intro.html"
title="previous chapter">Part 2: What we want</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="Game-Planning.html"
title="next chapter">On Planning a Game</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../../../_sources/Howtos/Beginner-Tutorial/Part2/Planning-Where-Do-I-Begin.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="Planning-Where-Do-I-Begin.html">1.0-dev (develop branch)</a></li>
<li><a href="../../../../0.9.5/index.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="Game-Planning.html" title="On Planning a Game"
>next</a> |</li>
<li class="right" >
<a href="Beginner-Tutorial-Part2-Intro.html" title="Part 2: What we want"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../../../index.html">Evennia 1.0-dev</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../../Howtos-Overview.html" >Tutorials and Howtos</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="../Beginner-Tutorial-Intro.html" >Beginner Tutorial</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="Beginner-Tutorial-Part2-Intro.html" >Part 2: What we want</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Where do I begin?</a></li>
</ul>
<div class="develop">develop branch</div>
</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>