@wyrdathru said in Make Evennia 'more accessible' - ideas?:
@Griatch What's the state of Ainneve? I've been out of touch with the whole engine and associated projects. The Evennia minimum viable game is great for developers, but contribs for basic systems commonly found are always welcomed by games at laucnh, especially if highly configurable to suit their needs. There's major benefit to this, but obviously one-size-fits-all systems can be a nightmare if poorly designed, so need to be highly modular.
Ainneve is under development by the community, but not really a viable game at the moment. We actually have a pretty big library of contribs already, with new ones coming in regularly. But even Ainneve is going to more like the Diku-style of game than a MUSH-type base like I think this community would be more helped by.
Volund is working on his big MUSH base, but considering how he keeps reworking and refining that indefinitely I don't know what time frame he envisions for it.
My long term ambition to help the project is feed back contribs with enough flexibility through configuration for regularly used systems, which I know some people have done, and I think is highly valuable.
That is always helpful! Check out the existing contribs to see what's already available.
This is a lot of dev work, so I'll mull over other potential ideas to assist in the accessibility for new starters.
Do tell when you come up with any further ideas.
@tehom said in Make Evennia 'more accessible' - ideas?:
I think the two major pain points are not having some common features out of the box that people need to implement themselves, like bulletin boards, and the difficulty in installation/configuration. While I think the 'getting started' guide is great, it's still not a trivial matter for people who are new to python or otherwise uncomfortable with setting up an environment.
As for the bulletin board, there is @Sparks Paxboards which works well as an Evennia bulletin board (mirroring an in-game bulleting board to a web equivalent). It might still be slightly too primitive to add as a core Evennia component - but with some further refinement they would work very well to integrate into Evennia proper I think.
As for installation/configuration - more specific suggestions are needed there I think (like @Thenomain does below).
I don't know if there's really any easy solutions to the latter, aside from far-off-in-the-future solutions like having an installer on windows that'd prompt them for configuration choices and handle most things for them. It'd probably make the most sense to get a checklist of features that MUSH players would want supported out of the box, and add them as contribs or even to core as example commands.
With a PyPi package or even a OS-specific installer you could simplify things ... but honestly I'm not sure hiding away the Evennia sources is doing a newcomer any favors. You code Evennia by extending its base classes. The Evennia source code is written to be read, with among the highest ratios of code-to-comments in the OSS world (yes really) - it's a resource that will likely have to remain up-front also in the future; updating with GIT also makes our users see fixes much faster.
Maybe some of the existing tutorials could then focus on common use-cases of extending the existing contribs to add functionality that we don't necessarily want in an unopinionated framework but would be commonly requested.
That would be interesting, yes. With the exception of vincent's In-game Python, contribs are not accompanied with tutorials to any great extent if at all.
@thenomain said in Make Evennia 'more accessible' - ideas?:
Getting the system started and into the part of the system where coding happens—which can happen in multiple places—is a distinct challenge for me. While people have told me what Django is a few times, I don't remember why I need it so talking about it can be distracting. While I use git/Github to store my code, I don't use it to code.
This and the rest of this post gives me a feeling that the main issue is a confusion of terms. Maybe we'll simply create a page with an indexed glossary of terms explaining what things are and what/where they are useful.
While TinyMUX can be a pain to get compiled right, once it's compiled there's a single button to press to start the game, log in, and get confused by the next layer of "build the game".
This is the same for Evennia (minus the compiling); the virtualenv aspect is pretty much a non-issue once you understand what it does, but I understand that if that first step is not clear this can be very confusing indeed. As said, a glossary would be useful.
Evennia's documentation is good, but...here, look, here's a part from the first documentation page:
• The Getting Started page helps installing and starting Evennia for the first time.
• The Admin Docs covers running and maintaining an Evennia server.
• The Builder Docs helps for starting to build a game world using Evennia.
• The Developer Central describes how Evennia works and is used by coders.
• The Tutorials & Examples contains help pages on a step-by-step or tutorial format.
• The API documentation is created from the latest source code.
Okay, so I assume I look at "The Getting Started page". Yup, there's how to install and get running. I'm on a Mac so sure, let me look there:
cd mygame
evennia migrate # (this creates the database)
evennia start # (make sure to create a superuser when asked. Email is optional.)
Except that I know there's another step that I'm missing because it runs in ... virtualeng? veng? vengence? Something.
The virtualenv is explained there, but clearly not well enough
Okay, let's try the Administration page. Ahha! "Starting, stopping, reloading and resetting Evennia." Here it is!
A common reason for not seeing the evennia command is to forget to (re)start the virtual environment (in a folder called pyenv if you followed the Getting Started page). You need to do this every time you start a new terminal/console and should see (pyenv) at the beginning of the line. The virtualenv allows to install all Python dependencies without needing root or disturbing the global packages in the repo (which are often older).
source pyenv/bin/activate (Linux/Unix)
pyenv/Scripts/activate` (Windows)
... What?
Wait, do you want me to run this every time I log into the shell? I know almost nothing about pyenv. This is a step up from a true newbie who will know literally nothing about it.
Ok, that is good feedback, will try to clarify that (answer is - whenever you want to run the evennia
program you needs to activate the virtualenv first, since evennia and its dependencies are only installed in the virtualenv). Again, centralizing this information in a glossary one can refer to from many places would probably help too - then one need only iterate on the phrasing and clarity in one place.
My solution? I like how MediaWiki does it. There's a full "we know you're a newbie let's try to help" page and then there are a number of "this is what's going on behind the scenes with this particular aspect" pages. This is how I drill down to the various setup security levels and new namespaces. It was absolutely confusing at first but because I could go up a level I never felt entirely without hope.
Incidentally, "Startup scripts for remote servers" points to the same file which does not have any startup scripts for remote servers.
That sounds like a 'bug' in the wiki linking. Thanks for pointing it out!
In updating:
When you're wanting to apply updates, simply cd to your cloned evennia root directory and type:
Do I need to be in pyenv?
Once one understands what virtualenv is this would be clear I think (again probably something to add in a new glossary entry). Answer is no, git
is a separate (non-Python) program from evennia
and thus has nothing to to do with virtualenv, which only deals with python packages.
When the database schema changes, you just go to your game folder and run:
Do I need to be in pyenv?
I know you are making a point with the repeat questions, but to answer - yes, because you are running evennia migrate
, you must be in the virtualenv, since that's where Evennia is installed. Oh, and pyenv
is just the name you gave the folder when you first ran the virtualenv
command - the place on your drive where Python packages will be installed - it could be named anything.
(Extra credit: Does git pull
tell me when my database schema changes?)
Yes. The schema is described by small snippets of Python code named "migrations". These are "applied" to change the database schema from one state to another. When upstream Evennia changes its schema we usually instruct users (in commit messages and in the forum/chat) to run evennia migrate
so they get the latest version of the schema. We don't go into this in the Getting Started instructions because that felt like a little too much info out the gate.
Alright, let's look at the beginning developer docs!
Explore Evennia interactively
When new to Evennia it can be hard to find things or figure out what is available. Evennia offers a special interactive python shell that allows you to experiment and try out things. It's recommended to use ipython for this since the vanilla python prompt is very limited. Here are some simple commands to get started:
# [open a new console/terminal]
# [activate your evennia virtualenv in this console/terminal]
pip install ipython # [only needed the first time]
cd mygame
evennia shell
Wait, do I need to enter pyenv here?
You are using the evennia
command, so yes.
I think this is enough for now. I know I sound like I'm complaining. I am not. I am horrible at pointing things out gently, so I do it the way I do it while I get better at doing it.
These are valuable points, and explaining them has given me some better ideas of how to explain the virtualenv in that future glossary I'll add. Thanks!
If I had a better grasp of how people learn I could add examples of why the documentation is confusing, but for now I'll explain why it's confusing for me.
It's really hard to know what is difficult for others, so this is very useful info I think.
I sincerely hope that helps.
It does!
.
Griatch