PyReach
-
-
-
@somasatori said in PyReach:
I was kind of wondering when you or MisterBoring would notice Mummy in the screenshots I’ve been posting.
There are two editions of Mummy, so where is legacy_mummy?
-
@Jennkryst said in PyReach:
@Faraday @somasatori But we are all former gifted kids, we have to pick things up immediately or we can never actually be good at it?!?
(edit: this is a joke)
@Pavel or I can talk to you about this at a very low hourly rate!
-
@somasatori said in PyReach:
@Jennkryst said in PyReach:
@Faraday @somasatori But we are all former gifted kids, we have to pick things up immediately or we can never actually be good at it?!?
(edit: this is a joke)
@Pavel or I can talk to you about this at a very low hourly rate!
Thou shalt have no relationship other than clinicial, if thou forake this commandment thou shalt lose thine license.
-
This entire thread (about the programming bits) is making me want to make Evennia utility modules you can just plug in (e.g., basic dice rollers, generic scheduler stuff), but I’m so out of the loop on things now and I don’t have time in the day to do this. ;.;
-
@dvoraen Evennia is missing a lot of shockingly basic stuff. TOO BAD YOU CAN’T.
-
For real, @Tez is right and a lot of very simple things we take for granted in Rhost/Ares/Tiny/Penn is not included in base Evennia. Mail, for example, is handled via contrib file, page is a custom thing, etc.
-
@somasatori said in PyReach:
For real, @Tez is right and a lot of very simple things we take for granted in Rhost/Ares/Tiny/Penn is not included in base Evennia. Mail, for example, is handled via contrib file, page is a custom thing, etc.
That’s true, but I will say that same lack of built-in features offers tremendous flexibility, and is why I steer folks to Evennia for super custom projects.
When you come into things with the pre-baked idea of what a MU should have, as Ares and (to a lesser extent) the Penn/Rhost/Tiny family, it makes it difficult to depart from those paradigms. Just think of all the drama caused by built-in commands vs +commands over the years.
Everything being a plugin/contrib isn’t necessarily bad, because it can lead to developers who focus on making a really good (insert system here). Just think of how Myrddin’s BBS or Anomaly’s jobs or Theno’s WoD were de-facto standards in Penn/Tiny even though they weren’t baked in.
In the early Ares designs, everything was intended to be a plugin to offer that same degree of flexibility. But I quickly realized that there are a LOT of dependencies across systems. Far more than I anticipated. To make everything work together seamlessly out of the box, which is Ares’ main “selling” point, the code has to be very “opinionated” about how things should be done.
Everything is a tradeoff.
-
I think I’m moreso surprised that Evennia hasn’t seen a community collection of solid tools for very common use cases, the way we often saw on MUSH and MUX back in the day. Not that Evennia should be shipping with it, but that it sounds like there hasn’t been much collection of community-built plugins of sorts.
-
I think I’m moreso surprised that Evennia hasn’t seen a community collection of solid tools for very common use cases, the way we often saw on MUSH and MUX back in the day. Not that Evennia should be shipping with it, but that it sounds like there hasn’t been much collection of community-built plugins of sorts.
I think the only reason it hasn’t is because everything is custom. You can’t guarantee that the game that will get your code has written their command file to include the command needed to access the file you put the code in, and you can’t guarantee that they have edited the player-bit file to even be able to use the command in the first place.
… or I am seriously misremembering how Evennia code works.
-
@Jennkryst said in PyReach:
I think the only reason it hasn’t is because everything is custom. You can’t guarantee that the game that will get your code has written their command file to include the command needed to access the file you put the code in, and you can’t guarantee that they have edited the player-bit file to even be able to use the command in the first place.
… or I am seriously misremembering how Evennia code works.
Any command that you want to have accessible on the game has to be accounted for in the default_commandsets.py file under either the character level or account level. But you’re probably already going to be doing this, tbh, if you want to add in the contrib plugins like mail, so it wouldn’t be a huge ask to throw in your other contribs. It looks like this with the mail file:
then just do
self.add(mail.CmdMail())
under the account level commands and bob’s your uncle. It also wouldn’t be hard to do something like …
from contrib.game_systems import dvoraen_comms
then
self.add(dvoraen_comms.CmdPage())
From the game runner’s perspective that’s all you have to do. You could potentially get a command suite for Evennia and function call it all there, or like how Melteth set up his BBS commands on Dies Irae: create a command set that you’re calling from the default_cmdset.py so you don’t have to require the game runner to apply each different command individually. This is how that looks for Melteth’s BBS:
So! From the game runner’s perspective, that is, the perspective of the person who’s trying to boot up a new MUSH, all you do is either git pull the BBS commands or download the code file and apply it to your evennia installation manually (gross), and then all you have to do is reference the commandset in your default_cmdset.py file, like so:
from .bbs.bbs_cmdset import BBSCmdSet
then on Dies Irae I put this under the character-level commands:
I would say that this is as much labor as it would be to copy/paste SGP into your client after setting up room #2 when you’re attempting to configure rhost or tiny/penn. IMO, anyway. It’s about as much typing.Edit: also, one of the reasons I like evennia aside from being familiar with Python is due to how configurable it is like Faraday was mentioning. You can really get a lot out of it if you want to.
-
AS AN ASIDE. Melteth jobs and BBS are fine pieces of code and I think are still stored on the public facing Dies Irae github repo for anyone looking for code snippets that could work for their new Evennia game. If they’re not stored publicly, obviously I’m not going to hand it out since it’s not mine and would be up to Melteth@DI, but if it is, they’re great contribs. Anyhow, they shouldn’t require any Dies Irae dependencies as they’re designed to function separate from the rest of the command and world/DB structure.