Update contrib-overview with all current contribs

This commit is contained in:
Griatch 2020-11-29 12:39:47 +01:00
parent adfcbe3a5d
commit 9ed08a825d
3 changed files with 302 additions and 91 deletions

View file

@ -13,13 +13,12 @@ might just be starting to think about it, or you might have lugged around that *
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.
Evennia is in principle a MUD-building system: a bare-bones Python codebase and server intended to
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. So whereas we for convenience offer basic building
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. It is possible that we will offer some such systems as
contributions in the future, but these will in that case all be optional.
be different from game to game anyway.
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.
@ -27,80 +26,31 @@ Evennia is *fully persistent*, that means things you drop on the ground somewher
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).
We also include a growing list of *optional* [contribs](Contribs/Contrib-Overview) you can use for your game
would you want something to build from.
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.
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](Concepts/Soft-Code) 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.
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](Concepts/Soft-Code) 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.
## Can I test it somewhere?
Evennia's demo server can be found at [demo.evennia.com](http://demo.evennia.com). If you prefer to
connect to the demo via your own telnet client you can do so at `silvren.com`, port `4280`.
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`.
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](Howto/Starting/Part1/Tutorial-World-Introduction).
## Brief summary of features
### Technical
- Game development is done by the server importing your normal Python modules. Specific server
features are implemented by overloading hooks that the engine calls appropriately.
- All game entities are simply Python classes that handle database negotiations behind the scenes
without you needing to worry.
- Command sets are stored on individual objects (including characters) to offer unique functionality
and object-specific commands. Sets can be updated and modified on the fly to expand/limit player
input options during play.
- Scripts are used to offer asynchronous/timed execution abilities. Scripts can also be persistent.
There are easy mechanisms to thread particularly long-running processes and built-in ways to start
"tickers" for games that wants them.
- In-game communication channels are modular and can be modified to any functionality, including
mailing systems and full logging of all messages.
- Server can be fully rebooted/reloaded without users disconnecting.
- An Account can freely connect/disconnect from game-objects, offering an easy way to implement
multi-character systems and puppeting.
- Each Account can optionally control multiple Characters/Objects at the same time using the same
login information.
- Spawning of individual objects via a prototypes-like system.
- Tagging can be used to implement zones and object groupings.
- All source code is extensively documented.
- Unit-testing suite, including tests of default commands and plugins.
### Default content
- Basic classes for Objects, Characters, Rooms and Exits
- Basic login system, using the Account's login name as their in-game Character's name for
simplicity
- "MUX-like" command set with administration, building, puppeting, channels and social commands
- In-game Tutorial
- Contributions folder with working, but optional, code such as alternative login, menus, character
generation and more
### Standards/Protocols supported
- TCP/websocket HTML5 browser web client, with ajax/comet fallback for older browsers
- Telnet and Telnet + SSL with mud-specific extensions ([MCCP](http://tintin.sourceforge.net/mccp/),
[MSSP](http://tintin.sourceforge.net/mssp/), [TTYPE](http://tintin.sourceforge.net/mtts/),
[MSDP](http://tintin.sourceforge.net/msdp/),
[GMCP](https://www.ironrealms.com/rapture/manual/files/FeatGMCP-txt.html),
[MXP](https://www.zuggsoft.com/zmud/mxp.htm) links)
- ANSI and xterm256 colours
- SSH
- HTTP - Website served by in-built webserver and connected to same database as game.
- IRC - external IRC channels can be connected to in-game chat channels
- RSS feeds can be echoed to in-game channels (things like Twitter can easily be added)
- Several different databases supported (SQLite3, MySQL, PostgreSQL, ...)
For more extensive feature information, see the [Evennia Component overview](Components/Components-Overview).
## What you need to know to work with Evennia
Assuming you have Evennia working (see the [quick start instructions](Setup/Setup-Quickstart)) and have
@ -119,11 +69,12 @@ very basic game indeed if you are not willing to do at least *some* coding.
Evennia's source code is extensively documented and is [viewable
online](https://github.com/evennia/evennia). We also have a comprehensive [online
manual](https://github.com/evennia/evennia/wiki) with lots of examples. But while Python is
manual](https://evennia.com/docs) with lots of examples. 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. You should probably sit down
with a Python beginner's [tutorial](http://docs.python.org/tutorial/) (there are plenty of them on
the web if you look around) so you at least know what you are seeing. See also our [link
you are new to programming. Evennia's [Starting-tutorial](Howto/Starting/Part1/Starting-Part1) has a [basic introduction
to Python](Howto/Starting/Part1/Python-basic-introduction) 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#wiki-litterature) for some reading suggestions. To efficiently 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:
@ -161,8 +112,7 @@ presence (a website and a mud web client) to play around with ...
From here you can continue browsing the [online documentation]([online documentation](index:Evennia-documentation)) to
find more info about Evennia. Or you can jump into the [Tutorials](Howto/Howto-Overview) and get your hands
dirty with code right away. You can also read the developer's [dev
blog](https://evennia.blogspot.com/) for many tidbits and snippets about Evennia's development and
dirty with code right away. You can also read the lead developer's [dev blog](https://evennia.blogspot.com/) for many tidbits and snippets about Evennia's development and
structure.
Some more hints: