diff --git a/docs/source/Evennia-In-Pictures.md b/docs/source/Evennia-In-Pictures.md new file mode 100644 index 0000000000..c1411857c4 --- /dev/null +++ b/docs/source/Evennia-In-Pictures.md @@ -0,0 +1,130 @@ +# Evennia in pictures + +```{sidebar} +This is _not_ an exhaustive overview. Think of it as a snapshot of some interesting things to start looking into. +``` + +This article tries to give a high-level overview of the Evennia server and some of its moving parts. It should hopefully give a better understanding of how everything hangs together. + +
+ +## The two main Evennia pieces +![evennia portal and server][image1] + +What you see in this figure is the part of Evennia that you download from us. It will _not_ start a game on its own. We'll soon create the missing 'jigsaw puzzle piece'. But first, let's see what we have. + +First, you'll notice that Evennia has two main components - the [Portal and Server](Components/Portal-And-Server.md). These are separate processes. + +The Portal tracks all connections to the outside world and understands Telnet protocols, websockets, SSH and so on. It knows nothing about the database or the game state. Data sent between the Portal and the Server is protocol-agnostic, meaning the Server sends/receives the same data regardless of how the user is connected. Hiding behind the Portal also means that the Server can be completely rebooted without anyone getting disconnected. + +The Server is the main “mud driver” and handles everything related to the game world and its database. It's asynchronous and uses [Twisted](http://twistedmatrix.com/trac/). + +In the same process of the Server is also the Evennia [Web Server](Components/Webserver.md) . This serves the game’s website. +
+ +### Initializing the game folder + +![creating the game folder][image2] + +After [installing evennia](Setup/Installation.md) you will have the `evennia` command available. Using this you create a game directory (let's call it `mygame`). This is the darker grey piece in this figure. It was missing previously. This is where you will create your dream game! + +During initialization, Evennia will create Python module templates in `mygame/` and link up all configurations to make mygame a fully functioning, if empty, game, ready to start extending. + +As part of the intialization, you'll create the database and then start the server. From this point on, your new game is up and running and you can connect to your new game with telnet on localhost:4000 or by pointing your browser to http://localhost:4001. + +Now, our new mygame world needs Characters, locations, items and more! + +## The database + +![image3][image3] + +Evennia is fully persistent and abstracts its database in Python using [Django](https://www.djangoproject.com/). The database tables are few and generic, each represented by a single Python class. As seen in this figure, the example `ObjectDB` Python class represents one database table. The properties on the class are the columns (fields) of the table. Each row is an instance of the class (one entity in the game). + +Among the example columns shown is the key (name) of the `ObjectDB` entity as well as a [Foreign key](https://en.wikipedia.org/wiki/Foreign_key)-relationship for its current “location”. + +From the figure we can see that _Trigger_ is in the _Dungeon_, carrying his trusty crossbow _Old Betsy_! + +The `db_typeclass_path` is an important field. This is a python-style path and tells Evennia which subclass of `ObjectDB` is actually representing this entity. This is the core of Evennia's [Typeclass system](Components/Typeclasses.md), which allows you to work with database entities using normal Python. + +### From database to Python + +![image4][image4] + +Here we see the (somewhat simplified) Python class inheritance tree that you as an Evennia developer will see, along with the three instanced entities. + +[Objects](Components/Objects.md) represent stuff you will actually see in-game and its child classes implement all the handlers, helper code and the hook methods that Evennia makes use of. In your `mygame/` folder you just import these and overload the things you want to modify. In this way, the `Crossbow` is modified to do the stuff only crossbows can do and `CastleRoom` adds whatever it is that is special about rooms in the castle. + +When creating a new entity in-game, a new row will automatically be created in the database table and then `Trigger` will appear in-game! If we, in code, search the database for Trigger, we will get an instance of the [Character](Components/Objects.md#characters) class back - a Python object we can work with normally. + +Looking at this you may think that you will be making a lot of classes for every different object in the game. Your exact layout is up to you but Evennia also offers other ways to customize each individual object. Read on. + +### Attributes + +![image5][image5] + +The [Attribute](Components/Attributes.md) is another class directly tied to the database behind the scenes. Each `Attribute` basically has a key, a value and a ForeignKey relation to another `ObjectDB`. + +An `Attribute` serializes Python constructs into the database, meaning you can store basically any valid Python, like the dictionary of skills in this image. The “strength” and “skills” Attributes will henceforth be reachable directly from the _Trigger_ object. This (and a few other resources) allow you to create individualized entities while only needing to create classes for those that really behave fundamentally different. + +
+ +## Controlling the action + +![image6][image6] + +_Trigger_ is most likely played by a human. This human connects to the game via one or more [Sessions](Components/Sessions.md), one for each client they connect with. + +Their account on `mygame` is represented by a [Account](Components/Accounts.md) entity. The `AccountDB` holds the password and other account info but has no existence in the game world. Through the `Account` entity, `Sessions` can control (“puppet”) one or more `Object` entities in-game. + +In this figure, a user is connected to the game with three `Session`s simultaneously. They are logged in to their player `Account` named _Richard_. Through these `Session`s they are simultaneously puppeting the in-game entities _Trigger_ and _Sir Hiss_. Evennia can be configured to allow or disallow a range of different [Connection Styles](Concepts/Connection-Styles.md) like this. + +### Commands + +![image7][image7] + +For users to be able to control their game entities and actually play the game, they need to be able to send [Commands](Components/Commands.md). + +A `Command` can be made to represent anything a user can input actively to the game, such as the `look` command, `get`, `quit`, `emote` and so on. + +Each `Command` handles both argument parsing and execution. Since each Command is described with a normal Python class, it means that you can implement parsing once and then just have the rest of your commands inherit the effect. In the above figure, the `DIKUCommand` parent class implements parsing of all the syntax common for all DIKU-style commands so `CmdLook` and others won’t have to. + +### Command Sets + +![image8][image8] + +All Evennia Commands are are always joined together in `CommandSet`s. These are containers that can hold many `Command` instances. A given `Command` class can contribute instances to any number of `CommandSet`s. These sets are always associated with game entities. + +In this figure, _Trigger_ has received a `CommandSet` with a bunch of useful commands that he (and by extension his controlling `Account`/Player) can now use. + +![image9][image9] + +_Trigger_’s `CommandSet` is only available to himself. In this figure we put a `CommandSet` with three commands on the Dungeon room. The room itself has no use for commands but we configure this set to affect those _inside it_ instead. Note that we let these be _different versions_ of these commands (hence the different color)! We’ll explain why below. + +
+ +### Merging Command Sets + +![image10][image10] + +Multiple `CommandSet`s can be dynamically (and temporarily) merged together in a similar fashion as [Set Theory](https://en.wikipedia.org/wiki/Set_theory), except the merge priority can be customized. In this figure we see a _Union_-type merger where the Commands from Dungeon of the same name temporarily override the commands from Trigger. While in the Dungeon, Trigger will be using this version of those commands. When Trigger leaves, his own `CommandSet` will be restored unharmed. + +Why would we want to do this? Consider for example that the dungeon is in darkness. We can then let the Dungeon’s version of the `look` command show only the contents of the room if Trigger is carrying a light source. You might also not be able to easily get things in the room without light - you might even be fumbling randomly in your inventory! + +Any number of Command Sets can be merged on the fly. This allows you to implement multiple overlapping states (like combat in a darkened room while intoxicated) without needing huge if statements for every possible combination. The merger is non-destructive, so you can remove cmdsets to get back previous states as needed. + +## Now go and explore! + +This is by no means a full list of Evennia features. But it should give you a bunch of interesting concepts to read more about. + +You can find a lot more detail in the [Core Components](Components/Components-Overview.md) and [Core Concepts](Concepts/Concepts-Overview.md) sections of this manual. If you haven't read it already, you should also check out the [Evennia Introduction](./Evennia-Introduction.md). + +[image1]: https://2.bp.blogspot.com/-0-oir21e76k/W3kaUuGrg3I/AAAAAAAAJLU/qlQWmXlAiGUz_eKG_oYYVRf0yP6KVDdmQCEwYBhgL/s1600/Evennia_illustrated_fig1.png +[image2]: https://4.bp.blogspot.com/-TuLk-PIVyK8/W3kaUi-e-MI/AAAAAAAAJLc/DA9oMA6m5ooObZlf0Ao6ywW1jHqsPQZAQCEwYBhgL/s1600/Evennia_illustrated_fig2.png +[image3]: https://3.bp.blogspot.com/-81zsySVi_EE/W3kaVRn4IWI/AAAAAAAAJLc/yA-j1Nwy4H8F28BF403EDdCquYZ9sN4ZgCEwYBhgL/s1600/Evennia_illustrated_fig3.png +[image4]: https://2.bp.blogspot.com/--4_MqVdHj8Q/W3kaVpdAZKI/AAAAAAAAJLk/jvTsuBBUlkEbBCaV9vyIU0IWiuF6PLsSwCEwYBhgL/s1600/Evennia_illustrated_fig4.png +[image5]: https://3.bp.blogspot.com/-6ulv5T_gUCI/W3kaViWBBfI/AAAAAAAAJLU/0NqeAsz3YVsQKwpODzsmjzR-7tICw1pTQCEwYBhgL/s1600/Evennia_illustrated_fig5.png +[image6]: https://4.bp.blogspot.com/-u-npXjlq6VI/W3kaVwAoiUI/AAAAAAAAJLY/T9bhrzhJJuQwTR8nKHH9GUxQ74hyldKOgCEwYBhgL/s1600/Evennia_illustrated_fig6.png +[image7]: https://3.bp.blogspot.com/-_RM9-Pb2uKg/W3kaWIs4ndI/AAAAAAAAJLc/n45Hcvk1PiYhNdBbAAr_JjkebRVReffTgCEwYBhgL/s1600/Evennia_illustrated_fig7.png +[image8]: https://2.bp.blogspot.com/-pgpYPsd4CLM/W3kaWG2ffuI/AAAAAAAAJLg/LKl4m4-1xkYxVA7JXXuVP28Q9ZqhNZXTACEwYBhgL/s1600/Evennia_illustrated_fig8.png +[image9]: https://3.bp.blogspot.com/-acmVo7kUZCk/W3kaWZWlT0I/AAAAAAAAJLk/nnFrNaq_TNoO08MDleadwhHfVQLdO74eACEwYBhgL/s1600/Evennia_illustrated_fig9.png +[image10]: https://4.bp.blogspot.com/--lixKOYjEe4/W3kaUl9SFXI/AAAAAAAAJLQ/tCGd-dFhZ8gfLH1HAsQbZdaIS_OQuvU3wCEwYBhgL/s1600/Evennia_illustrated_fig10.png diff --git a/docs/source/Evennia-Introduction.md b/docs/source/Evennia-Introduction.md index 22556c53d2..c04414c05b 100644 --- a/docs/source/Evennia-Introduction.md +++ b/docs/source/Evennia-Introduction.md @@ -7,77 +7,94 @@ Players can read or view descriptions of rooms, objects, other players, non-play actions performed in the virtual world. Players typically interact with each other and the world by typing commands that resemble a natural language.* - [Wikipedia](https://en.wikipedia.org/wiki/MUD) -If you are reading this, it's quite likely you are dreaming of creating and running a text-based -massively-multiplayer game ([MUD/MUX/MUSH](https://tinyurl.com/c5sc4bm) etc) of your very own. You -might just be starting to think about it, or you might have lugged around that *perfect* game in -your mind for years ... you know *just* how good it would be, if you could only make it come to -reality. We know how you feel. That is, after all, why Evennia came to be. +If you are reading this, it's quite likely you are dreaming of creating and running a text-based massively-multiplayer game ([MUD/MUX/MUSH](https://tinyurl.com/c5sc4bm) etc) of your very own. You might just be starting to think about it, or you might have lugged around that *perfect* game in your mind for years ... you know *just* how good it would be, if you could only make it come to reality. -Evennia is a MU\*-building system: a bare-bones Python codebase and server intended to -be highly extendable for any style of game. "Bare-bones" in this context means that we try to impose as few game-specific things on you as possible. For convenience offer basic building -blocks like objects, characters, rooms, default commands for building and administration etc, we -don't prescribe any combat rules, mob AI, races, skills, character classes or other things that will -be different from game to game anyway. +We know how you feel. That is, after all, why Evennia came to be. -What we *do* however, is to provide a solid foundation for all the boring database, networking, and -behind-the-scenes administration stuff that all online games need whether they like it or not. -Evennia is *fully persistent*, that means things you drop on the ground somewhere will still be -there a dozen server reboots later. Through Django we support a large variety of different database -systems (a database is created for you automatically if you use the defaults). +## What is Evennia? -We also include a growing list of *optional* [contribs](Contribs/Contribs-Overview.md) you can use for your game would you want something to build from. +Evennia is a MU\*-building framework: a bare-bones Python codebase and server intended to be highly extendable for any style of game. -Using the full power of Python throughout the server offers some distinct advantages. All your coding, from object definitions and custom commands to AI scripts and economic systems is done in normal Python modules rather than some ad-hoc scripting language. The fact that you script the game in the same high-level language that you code it in allows for very powerful and custom game implementations indeed. +### Bare-bones? -Out of the box, Evennia gives you a 'talker'-type of game; you can walk around, chat, build rooms and objects, do basic roleplaying and administration. The server ships with a default set of player commands that are similar to the MUX command set. We *do not* aim specifically to be a MUX server, but we had to pick some default to go with (see [this](Coding/Soft-Code.md) for more about our original motivations). It's easy to remove or add commands, or to have the command syntax mimic other systems, like Diku, LP, MOO and so on. Or why not create a new and better command system of your own design. +Evennia is "bare-bones" in the sense that we try to impose as few game-specific things on you as possible. We don't prescribe any combat rules, mob AI, races, skills, character classes or other things. + +We figure you will want to make that for yourself, just like you want it! + +### Framework? + +Evennia is bare-bones, but not _that_ barebones. We do offer basic building blocks like objects, characters and rooms, in-built channels and so on. We also provide of useful commands for building and administration etc. + +Out of the box you'll have a 'talker' type of game - an empty but fully functional social game where you can build rooms, walk around and chat/roleplay. Evennia handles all the boring database, networking, and behind-the-scenes administration stuff that all online games need whether they like it or not. It's a blank slate for you to expand on. + +We also include a growing list of optional [contribs](Contribs/Contribs-Overview.md) you can use with your game. These are more game-specific and can help to inspire or have something to build from. + +### Server? + +Evennia is its own webserver. When you start Evennia, your server hosts a game website and a browser webclient. This allows your players to play both in their browsers as well as connect using traditional MUD clients. None of this is visible to the internet until you feel ready to share your game with the world. + +### Python? + +[Python](https://en.wikipedia.org/wiki/Python_(programming_language)) is not only one of the most popular programming languages languages in use today, it is also considered one of the easiest to learn. In the Evennia community, we have many people who learned Python or programming by making a game. Some even got a job from the skills they learned working with Evennia! + +All your coding, from object definitions and custom commands to AI scripts and economic systems is done in normal Python modules rather than some ad-hoc scripting language. ## Can I test it somewhere? -Evennia's demo server can be found at [https://demo.evennia.com](https://demo.evennia.com). If you prefer to -connect to the demo via your telnet client you can do so at `demo.evennia.com`, port `4000`. +Evennia's demo server can be found at [https://demo.evennia.com](https://demo.evennia.com) or on `demo.evennia.com`, port `4000` if you are using a traditional MUD client. -Once you installed Evennia yourself it comes with its own tutorial - this shows off some of the -possibilities _and_ gives you a small single-player quest to play. The tutorial takes only one -single in-game command to install as explained [here](Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Tutorial-World.md). +Once you installed Evennia, you can also create a tutorial mini-game with a single command. Read more about it [here](Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Tutorial-World.md). -## What you need to know to work with Evennia +## What do I need to know to work with Evennia? -Assuming you have Evennia working (see the [quick start instructions](Setup/Installation.md)) and have -gotten as far as to start the server and connect to it with the client of your choice, here's what -you need to know depending on your skills and needs. +Once you [installed Evennia](Setup/Installation.md) and connected, you should decide on what you want to do. ### I don't know (or don't want to do) any programming - I just want to run a game! -Evennia comes with a default set of commands for the Python newbies and for those who need to get a game running *now*. Stock Evennia is enough for running a simple 'Talker'-type game - you can build and describe rooms and basic objects, have chat channels, do emotes and other things suitable for a social or free-form MU\*. Combat, mobs and other game elements are not included, so you'll have a very basic game indeed if you are not willing to do at least *some* coding. +Evennia comes with a default set of commands for the Python newbies and for those who need to get a game running *now*. + +Stock Evennia is enough for running a simple 'Talker'-type game - you can build and describe rooms and basic objects, have chat channels, do emotes and other things suitable for a social or free-form MU\*. + +Combat, mobs and other game elements are not included, so you'll have a very basic game indeed if you are not willing to do at least *some* coding. ### I know basic Python, or I am willing to learn -Evennia's source code is [extensively documented](https://www.evennia.com/docs/latest). But while Python is considered a very easy programming language to get into, you do have a learning curve to climb if you are new to programming. Evennia's [Starting-tutorial](Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Part1-Overview.md) has a [basic introduction to Python](Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Python-basic-introduction.md) but you should probably also sit down with a full Python beginner's tutorial at some point (there are plenty of them on the web if you look around). See also our [link page](./Links.md) for some reading suggestions. +Start small. Evennia's [Beginner tutorial](Howtos/Beginner-Tutorial/Beginner-Tutorial-Overview.md) is a good place to start. + +```{sidebar} +See also our [link page](./Links.md) for some reading suggestions. +``` +While Python is considered a very easy programming language to get into, you do have a learning curve to climb if you are new to programming. The beginner-tutorial has a [basic introduction to Python](Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Python-basic-introduction.md), but if you are completely new, you should probably also sit down with a full Python beginner's tutorial at some point. There are plenty of them on the web if you look around. To code your dream game in Evennia you don't need to be a Python guru, but you do need to be able to read example code containing at least these basic Python features: -- Importing and using python [modules](https://docs.python.org/3.7/tutorial/modules.html) -- Using [variables](https://www.tutorialspoint.com/python/python_variable_types.htm), [conditional statements](https://docs.python.org/tutorial/controlflow.html#if-statements), -[loops](https://docs.python.org/tutorial/controlflow.html#for-statements) and [functions](https://docs.python.org/tutorial/controlflow.html#defining-functions) +- Importing and using python [modules](https://docs.python.org/3.11/tutorial/modules.html) +- Using [variables](https://www.tutorialspoint.com/python/python_variable_types.htm), [conditional statements](https://docs.python.org/tutorial/controlflow.html#if-statements), [loops](https://docs.python.org/tutorial/controlflow.html#for-statements) and [functions](https://docs.python.org/tutorial/controlflow.html#defining-functions) - Using [lists, dictionaries and list comprehensions](https://docs.python.org/tutorial/datastructures.html) - Doing [string handling and formatting](https://docs.python.org/tutorial/introduction.html#strings) -- Have a basic understanding of [object-oriented programming](https://www.tutorialspoint.com/python/python_classes_objects.htm), using -[Classes](https://docs.python.org/tutorial/classes.html), their methods and properties +- Have a basic understanding of [object-oriented programming](https://www.tutorialspoint.com/python/python_classes_objects.htm), using [Classes](https://docs.python.org/tutorial/classes.html), their methods and properties Obviously, the more things you feel comfortable with, the easier time you'll have to find your way. -With just basic knowledge you should be able to define your own [Commands](Components/Commands.md), create custom -[Objects](Components/Objects.md) as well as make your world come alive with basic [Scripts](Components/Scripts.md). You can -definitely build a whole advanced and customized game from extending Evennia's examples only. + +With just basic knowledge you can set out to build your game by expanding Evennia's examples. ### I know my Python stuff and I am willing to use it! -Even if you started out as a Python beginner, you will likely get to this point after working on your game for a while. With more general knowledge in Python the full power of Evennia opens up for you. Apart from modifying commands, objects and scripts, you can develop everything from advanced mob AI and economic systems, through sophisticated combat and social mini games, to redefining how commands, players, rooms or channels themselves work. Since you code your game by importing normal Python modules, there are few limits to what you can accomplish. +Even if you started out as a Python beginner, you will likely get to this point after working on your game for a while. + +With more general knowledge in Python the full power of Evennia opens up for you. Apart from modifying commands, objects and scripts, you can develop everything from advanced mob AI and economic systems, through sophisticated combat and social mini games, to redefining how commands, players, rooms or channels themselves work. Since you code your game by importing normal Python modules, there are few limits to what you can accomplish. If you *also* happen to know some web programming (HTML, CSS, Javascript) there is also a web presence (a website and a mud web client) to play around with ... ## Where to from here? -It's recommended you jump into the [Beginner Tutorial](Howtos/Beginner-Tutorial/Beginner-Tutorial-Overview.md). You can either follow it or jump around to lessons that seem interesting. You can also read the lead developer's [dev blog](https://www.evennia.com/devblog/index.html) for many tidbits and snippets about Evennia's development and structure. +To get a top-level overview of Evennia, you can check out [Evennia in pictures](./Evennia-In-Pictures.md). -Sometimes it's easier to ask for help. Get engaged in the Evennia community by joining our [Discord](https://discord.gg/AJJpcRUhtF) for direct support. Make an introductory post to our [Discussion forum](https://github.com/evennia/evennia/discussions) and say hi!. \ No newline at end of file +After that it's a good idea to jump into the [Beginner Tutorial](Howtos/Beginner-Tutorial/Beginner-Tutorial-Overview.md). You can either follow it lesson for lesson or jump around to what seems interesting. There are also more [Tutorials and Howto's](Howtos/Howtos-Overview.md#howtos) to look over. + +You can also read the lead developer's [dev blog](https://www.evennia.com/devblog/index.html) for many tidbits and snippets about Evennia's development and structure. + +Sometimes it's easier to ask for help. Get engaged in the Evennia community by joining our [Discord](https://discord.gg/AJJpcRUhtF) for direct support. Make an introductory post to our [Discussion forum](https://github.com/evennia/evennia/discussions) and say hi! See [here](./Contributing.md) for more ways to get and give help to the project. + +Welcome to Evennia! \ No newline at end of file diff --git a/docs/source/Howtos/Web-Character-Generation.md b/docs/source/Howtos/Web-Character-Generation.md index aca97d4c0b..cbc274b480 100644 --- a/docs/source/Howtos/Web-Character-Generation.md +++ b/docs/source/Howtos/Web-Character-Generation.md @@ -14,7 +14,7 @@ It is probably most useful to set `AUTO_CREATE_CHARACTER_WITH_ACCOUNT = False` s characters can be created through this. You should have some familiarity with how Django sets up its Model Template View framework. You need -to understand what is happening in the basic [Web Character View tutorial](Web-Character-View-Tutorial). +to understand what is happening in the basic [Web Character View tutorial](./Web-Character-View-Tutorial.md). If you don’t understand the listed tutorial or have a grasp of Django basics, please look at the [Django tutorial](https://docs.djangoproject.com/en/1.8/intro/) to get a taste of what Django does, before throwing Evennia into the mix (Evennia shares its API and attributes with the website diff --git a/docs/source/Setup/Setup-Overview.md b/docs/source/Setup/Setup-Overview.md index 279517506f..6dda8a6106 100644 --- a/docs/source/Setup/Setup-Overview.md +++ b/docs/source/Setup/Setup-Overview.md @@ -43,5 +43,4 @@ Client-Support-Grid Security-Practices Config-HAProxy Config-Apache-Proxy - ``` \ No newline at end of file diff --git a/docs/source/_static/basic.css b/docs/source/_static/basic.css index 98bd2833c0..16d5a796ee 100644 --- a/docs/source/_static/basic.css +++ b/docs/source/_static/basic.css @@ -104,6 +104,12 @@ img { max-width: 100%; } +/* images in the body */ +p > img { + float: right; + padding:0.5em 1em 0.5em 1em; +} + /* -- search page ----------------------------------------------------------- */ ul.search { diff --git a/docs/source/_static/nature.css b/docs/source/_static/nature.css index 9491421d49..71225f8e97 100644 --- a/docs/source/_static/nature.css +++ b/docs/source/_static/nature.css @@ -463,6 +463,7 @@ div.linenodiv>pre { } + /* -- screen sizes ------------------------------------------------------------------ */ @media print, screen and (max-width: 960px) { diff --git a/docs/source/index.md b/docs/source/index.md index d3a01ceacf..822696b6b1 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -13,6 +13,7 @@ This is the manual of [Evennia](https://www.evennia.com), the open source Python `MU*` creation system. Use the Search bar on the left to find or discover interesting articles. - [Introduction](./Evennia-Introduction.md) - what is this Evennia thing? +- [Evennia in Pictures](./Evennia-In-Pictures.md) - a visual overview of Evennia - [Contributing and Getting help](./Contributing.md) - when you get stuck or want to chip in ## Setup @@ -27,21 +28,20 @@ This is the manual of [Evennia](https://www.evennia.com), the open source Python - [The Beginner Tutorial](Howtos/Howtos-Overview.md#beginner-tutorial) - learn the basics and build a small game (in progress) - [Tutorials and Howto's](Howtos/Howtos-Overview.md#howtos) - mixed tutorials and help articles to learn Evennia +- [Coding with Evennia](Coding/Coding-Overview.md) - resources and hints for coding and development -## Developing with Evennia +## The Evennia Library -- [Coding with Evennia](Coding/Coding-Overview.md) - coding and development hints and resources - [Core components](Components/Components-Overview.md) - the core building blocks of Evennia - [Core Concepts](Concepts/Concepts-Overview.md) - larger-scale concepts and features - [API](./Evennia-API.md) - the full API-reference, generated from source -- [Default Commands](Components/Default-Commands.md) - list of game commands included out of the box ## Contributions and Info - [Contribs](Contribs/Contribs-Overview.md) - game-specific code and snippets to use for your game -- [Documentation - how to contribute](./Contributing-Docs.md) - if you want to help out -- [Links](./Links.md) - useful external links for extra reading +- [Documentation - how to contribute](./Contributing-Docs.md) - if you want to help out with this manual - [License](./Licensing.md) - Evennia licensing FAQ +- [Links](./Links.md) - useful links if you need extra reading ---- @@ -56,6 +56,7 @@ This is the manual of [Evennia](https://www.evennia.com), the open source Python :maxdepth: 3 Evennia-Introduction +Evennia-In-Pictures Setup/Running-Evennia Setup/Updating-Evennia Setup/Setup-Overview