@WTFE
Go there. Count the noun objects. Count the managers, factories, models, etc. Some of that kind of stuff is useful and necessary, but what I see in that API reference is a shopping list of design patterns. Of nouns and only nouns.
Professional developers steeped in (the utterly broken and failed) modern OOP software methodology will not find this a problem.
HOBBYISTS will.
That is a ludicrous number of noun objects there.
Which is not very relevant for Python that has no problem to support functional programming β¦
BWAAAAAAAAAAAAAAAAAHHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA!
Python certainly has limited functional programming paradigms compared to something like Lisp. It does support many aspects of it though, especially compared to Java which is used in that example. And Evennia is using functional paradigms a lot even though you are certainly right that entities in the database are represented by classes and there are many situations where we use class-based handlers for managing data.
Anyway, if you hate OOP and think "hobbyists" as a whole can't enjoy it, I guess we just have to agree to disagree.
Linux.
That is curious, it's usually a very smooth process on Linux, even for those claiming to blindly follow the quick-start instructions with little understanding. Guess you found some edge case. Sorry about that.
There is a briefer point-by-point summary up top but the main install text is indeed pretty lengthy. It's possible we can cut down on that; the text is explaining how to set up things also for those without any previous Python environment.
Look to Textadept for how to do this right. Textadept is a code editor built on Lua, GTK, etc. Its build process downloads all the stuff it needs and builds a local copy, thus guaranteeing that the correct (compatible) version is installed and ready to rock. (The documentation for building Textadept is atrocious -- it's by no means a perfect package! -- but the bit about bringing in its own prerequisites and building them in a local copy is dead perfect.)
I looked at Textadept, thanks! Textadept is a compiled C program with embedded Lua. It does fetch Lua script libs (it looks like) during the install setup process but you still need to download the actual dependencies (GTK, ncurses, gcc compilers) before you do that. Their documentation is brief and to the point, presuming one knows the GNU compilation process beforehand.
It's a fundamentally different type of program than Evennia (Textadept is a stand-alone binary with no particular wish for you to dive into their code) but I concede that for me, who already had all the dependencies, it's indeed a breeze to compile from source.
Assuming you start with a sane Python dev environment, installing consists of activating a python virtualenv (a standard practice for Python programs), cloning the evennia repo and then running pip install -e evennia
.
If it's a "standard practice" WHY THE FUCKING FUCK IS IT NOT AUTOMATED!?
It's a good notion, we could by all means look into offering a build script for setting up the virtualenv for those not keen on organizing their own development environment on a particular OS. Any way to quicken the route for newcomers to check things out is beneficial.
Again you're acting as if your users are professional Python developers. If this is, in fact, your target audience, feel free to ignore my critique. But holy fucking shit, if this is your answer to fucking HOBBYISTS you really, really, really, really, FUCKING REALLY need to take a semester or ten of human/machine interaction courses!
No, your critique is appreciated! Many of our users are indeed professional programmers but that does not mean those are the sole target audience - the MU* world is not big enough for that. We have a slew of people learning Python and even learning programming in general on Evennia. If the install process is perceived as "utterly god-awful" by someone new to it, it's worth looking into (it's the first time I hear that, which is why it's a little surprising to me).
Evennia does not allow unprivileged players access to programming tools out of the box, this is true (see also Evennia for MUSHers for some more elaboration on this). I can see the value of this argument if you want your players to explore coding as part of your game design.
Fuck the game design, the question is how do you get people from being players to being people who build games with your framework?
Presumably by being a good codebase that developers like to use? As I've said before, I can see the advantage of softcode in the sense of fostering immediate experimentation directly in-game. The validity of the argument comes down to how many players actually make use of this functionality for more than copy&pasting a snippet or making very primitive improvement-of-life things. Such uses Evennia supports too, and without resorting to full softcode.
I have no doubt that softcode will remain strong for a long time to come. And if building an entire complex game system (not just simple things) line-by-line over a telnet bridge is a requirement for your enjoyment and learning, Evennia will likely never fill your need.
I'm pretty sure every one of the semi-legendary MUSHcode softcoders out there started off just playing around with softcode on MUSHes, making dumb little functions and commands like my random ANSI example above. This is stuff that has no material impact on the game, but is a) fun to do, b) engages users as they find ways to write things that are convenient for them in your game, and c) acts as a gateway to more serious development.
I have no doubt this is one avenue into programming. Conversely you can of course argue that DIKU is the more popular codebase out there by far (definitely in the amount of games it has spawned). And that is despite it having no concept of softcode and requires the budding game creator to learn and code in (archaic) C outside the game.
I'm not sure it's all that relevant for you downloading Evennia though? After all, you have all the exploratory tools available at your fingertips.
I'm looking at a far wider picture than you're looking at. You persist in looking at "only professional Python developers" in effect. I'm looking at "how do you make people who aren't professional Python developers interested in using your product?"
(Hint: if it's "read this document and follow the 18,000 lines of instructions in it to run your very own server, that's a non-starter.)
The beginner's perspective is always useful, it's indeed hard to know what is difficult or not with something you are inherently familiar with. It is the first time I hear that much vitriol against the install process so it's worth to consider. Evennia seems to be considered to be a pretty easy system to use by most beginners, but maybe there is a selection effect with critical voices failing at the install process and not telling us, I don't know.
.
Griatch