Jul 5, 2016, 11:48 PM

@Ashen-Shugar said in Evennia for MUSHers:

@Griatch said in Evennia for MUSHers:

@ThatGuyThere said in Evennia for MUSHers:

I was one of the big proponents of being able to use softcode in the last conversation and i still am.
Most of what I use it for basically to let me do tasks I do often quicker, such as WoD power activation, or shifting in places that did not have a shift code set up so I could make a quick shift command and have it macroed in to change my name, desc, etc to fit the new form my character had taken. Now every recent game I have played a shifter on has had shift code in place so it is less of a practical issue in that case anymore.
I have not had to really use any of my limited soft code tricks because now the games have things set up so there is less of a need to come up with them from a player side of things. though I still like having the ability to if the need should arise.

So if I understand you right, your main use case is to to alias commands to your own needs (such as entering something short to abbreviate a longer series of commands).

Out of curiosity, if you look at the example of Evennia's "nick" Command in the tutorial above, do you think that could replicate to some extent the aliasing you'd now use softcode for?
.
Griatch

Something you could look at (that I've not been able to figure out but you may have better luck than I have) is a sandboxed method to allow in-game transposing of a limited python or similar scripted language in-game.

The issue I always run across is using any mature language in-game allows too much control and allows escaping the sandbox to the server running below it. I've not yet found a clean and safe way around this. But I think that's the golden ticket for future mud based gaming. A mature language system in-game that allows a safe and configurable complexity in a completely safe sandbox.

I'm still poking at things, and if I find a solution I'll absolutely let the mud community know, but so far, no joy 🙂

Alas, I have already gone down this route and had to discard it. A few years ago I created Evlang as a plugin to Evennia. Evang was a highly stunted subset of Python where I used whitelisting to allow only very limited parts of the language to operate. For a while I was carefully optimistic about it.

The problem is that Python's awesome introspection ability is its own enemy here: the language is just so very flexible that you as a developer cannot honestly claim to have created a safe production sandbox even if you stunt it to the level I did - Python is simply not designed to be run by untrusted coders. After finding maintenance to be a big problem across Python versions and that people could use Evlang to (in an admittedly very deliberate and obscure way) build loops that ate all memory, I decided to scrap the Evlang project. I could not honestly claim to think it was safe. It's still available in one of the Evennia-organisation's github repositories if you want to take a gander.

The closest I know of a real Python sandbox is the PyPy project''s specially compiled python interpreter that offers that possibility. We have not explored this for Evennia but since you require compilation anyway it might be worth to look into.
.
Griatch