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)
-
-
-
@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.
-
I think the difficulty of all of these basic pieces likely holds it back from wider adoption. Thereās a reason thereās 10 new ares games for every new evennia game. ANYWAY GOOD LUCK WITH THIS.
-
Hello, Iāve been working on more sheet stuff. Most of the time Iāve been spending with this has been on data entry, but I was able to play around with the sheet output and also refactoring some of the methods to call from the template files rather than be inline within the command files.
Hereās the main sheet for a mage:
Mage sheets now have this second section to store all of the Mage-specific data (accessible through +sheet/mage):
Sin-Eaters similarly have a special section for their Geist. This is only for the 2nd edition CofD Sin-Eaters (default):
Iām not sold on the color but eh, I wanted to give it a kind of gravitas and make it distinct from the regular character sheet. Compared to the Mage specific stuff above, I think the +sheet/mage bit looks a little cleaner. Anyhow, this is +sheet/geist
-
@somasatori Keep this up and people are going to expect you to start a game.
-
Basically everything Iāve been doing lately has been in support of the sheet. Iāve reached a fairly comfortable place when it comes to data entry and displaying that to players. Iām not great with the Evennia web stuff, so Iām trying to make sure there are utilities available within the client to view details. I might try to dive in to look at how to display these on the web. Theoretically it shouldnāt be reinventing the wheel since Iām just using python dicts. All of our data entry on Dies Irae was based around loading JSON files which ended up being fairly easy to incorporate into Django. I am fairly sure thatās why Kumakun decided on that route.
I reworked the +info from Dies Irae a little bit and have it displaying the data directly from the dictionaries. It seems to work⦠better than when we were importing from JSON? Cautiously? One of the big plus sides of nWoD/CofD is that there are fewer stats and, more importantly, fewer stats that are called exactly the same name. The big ones Iāve run into so far have been Mage spells having similar names to merits, but thatās easy enough to work around.
Some examples:
+lookup (the new +info) on its own:
Letās look at Forces spells:
Letās take a look at Control Heat:
Now letās take a look at some Vampire powers. Letās check out Animalism:
Letās see what Summon the Hunt does and requires:
As an aside, the bottom is wrong. In this case Iām broadly using the lookup output method I use for Rites/Ceremonies/Gifts/Contracts/etc. for leveled powers like Disciplines. Animalism is tracked by using +stat animalism=<value>. If you wanted this specific power, you would do +stat animalism=3, or +xp/spend Animalism (three times). Then you would have Animalism 3, or the first through third level abilities.
So largely I took the information on Codex of Darkness to quickly fill this out. Iāve gone back through to verify that everything looks copacetic with regards to their book entries.
Oh yeah! I also took the āgenericā commands from Dies Irae and put them into a folder. I also stripped out some of the overcomplicated bits from them that often caused them to fail miserably. For instance, I removed any web-based workflow from +finger so that it solely interacts with elements on the character db object. I wrote up a readme file explaining what to remove if you didnāt plan on using the PyReach/CofD system. There are only a handful of commands that rely on other things, most notably the say/emit/pose system and languages. In Dies Irae, and inherited into PyReach, you could speak a different language in poses and emits by using the tilde (~) key. You could, for instance, write out something likeā¦
@emit Listening to John, Soma gives a short, curt nod and responds, āThat all sounds workable.ā They turn to Sam and say ~Where are we with the plans for tomorrow night on your side?
If I had my language set to Arabic, the text after the tilde and before terminating punctuation (question marks, periods, exclamation points) would display to anyone who also had Arabic set as one of the known languages, otherwise would show a general āsomething you donāt understandā message if someone did not have that language. This way you could flip back and forth out of the language by alternating between ~ and standard quotation marks.
If youāre not planning to use the language system ā for example, if you arenāt using the
characters.py
typeclass in PyReach ā then thereās a small section in the pose/say/emit commands that you need to comment out, which I explain in the readme. Iām going to have another Evennia developer dummy test this to verify that it all looks okay ā a lot of this stuff is Dies Irae code which was worked on a lot, but could be questionable at times ā and hopefully would be a good, easy-to-implement command set for people who might be nervous about Evennia due to familiarity with Tiny/Penn. -
@somasatori So when is the soft launch and what California city is it set in?
-
@MisterBoring said in PyReach:
@somasatori So when is the soft launch and what California city is it set in?
Whyfor California, when Miami is right there?