Dec 19, 2016, 11:08 PM

@WTFE said in What is out there? Hard and soft codebases of choice.:

@faraday said in What is out there? Hard and soft codebases of choice.:

One of the things that makes me call MUSHcode "a fucking horror" is its utter lack of modularity, so kudos here.

This is something we're slowly in the process of handling with Rhost.

With the future adding of the python API, we're going to look to tie in API's of other languages, perl, ruby, etc. They will be a bit like Evennia with how it works by being server-side ran but being able to integrate with the internal code natively. All the while keeping all the backward compatible 'eyesore mush code' there.

We're also looking at the feasibility (some of the backend is already in place) for in-game modular inserting/removing modules like LInux's insmod/rmmod.

Right now, there's back-end server methods to fairly easily add modules to inject new commands and functions into the code without ever having to touch the main code itself. So the infrastructure is there.

We need to add some additional features to make dynamic flag/toggle addition possible as well, which is one thing Ambrosia is looking into.

In a nutshell, we're looking to take the existing Mush infrastructure, then add on top of that and integrate into that new tools and methods for current languages. Eventually we will even allow (hopefully) a web based frontend right into the game and many other things. The API designs should, potentially, make this much easier to do.

We already allow a limited API to read/write to external apps/scripts in a sandboxed environment. We modified in-game where it keeps track of source file and line number of every buffer current allocated to in-game allow finding leaks or buffer overruns, we put in label/breakpoints and greps into trace output to make debugging in-game softcode much easier.

Mush code is, and always will, be a steaming pile interpreted language. How we're addressing that is offering OTHER languages people can code in in addition and inter-actively with the crappy mush code. So we're hoping to walk forward in the future while keeping our feet firmly in the past. It does make things limited, but hopefully we can get around most limitations to provide an environment that will be usable for most people in the future.

And if not, hey, it'll be a hell of a lot of fun making the attempt.