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 "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.
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, 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).
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.
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.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)
- 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
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.
To get a top-level overview of Evennia, you can check out [Evennia in pictures](./Evennia-In-Pictures.md).
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.