I'm working away on some new stuff for tbaMUD and I'd like to use this thread as my
todo list so that I can have input and suggestions on the direction moving forward.
My current thought process is that while the userbase of tbaMUD and MUDs in general is nowhere near it once was, there is still some life in this code and a good "dusting off" is probably in order. I believe with some general clean up and modernization, the difficulty barrier to get into tbaMUD can be lowered and this could drum up some more users. OR at the very least, provide a better experience to new developers who are learning and honing their skills.
On the board:
1. More detailed error messages
Many of the error messages are something like "SYSERR: function_xxx isn't working". I'm going to go through and try to add more detailed error messages and add additional context to the existing ones.
Code:
Nov 07 12:20:58 2022 :: SCRIPT ERROR: Room 11101 :: wdoor: invalid direction: (arg == eest) not found in:
[ north east south west up down northwest northeast southeast southwest ]
Nov 07 12:20:58 2022 :: SCRIPT ERROR: Room 11101 :: wdoor: invalid target: (arg = 11102)
Nov 07 12:20:58 2022 :: SCRIPT ERROR: Room 11101 :: wdoor: invalid door target: (arg == 11102)
Nov 07 12:20:58 2022 :: SCRIPT ERROR: Room 11101 :: wdoor: invalid field (arg == poorge)
2. Formatting, Cleaning and Documentation
This isn't a huge issue but there have been so many hands over the years touching the code base using everything from VS Code, VIM, Geany, Notepad or whatever their "IDE" of choice was at the time. The result is a lot of code that looks like it was just thrown at the screen. I'm going to go through and reformat much of the code to have a consistent visual look. While I'm at it I'll try and improve upon the documentation and readability of the code in general.
3. Testing
While having automated testing capabilities in tbaMUD would be fantastic, the work required on that at this stage would be significant and out of the scope of my available time.
However, I do think something is better than nothing. I'm currently working on a new zone to be my
Semi-Automated Test Zone. DG Scripts does have access to the interpreter and variety of other aspects of the code, and I believe might be able to help perform some testing/diagnostics. My initial work has already discovered some bugs that would of otherwise been exceptionally difficult to find.
4. File Format
I'm working on a module that will allow us save/load our database files in a
json-type format. While everything listed above is more surface and tweaks, this would require some significant alterations to the code base. My focus for the preliminary stages of this will be
lib/misc/messages file to convert/save/load it as a json instead of it's current form. This would toggle-able and default to LEGACY mode. My thought process here is that given the popularity of higher-level languages and how common place json is now, that this would provide opportunity for tbaMUD to play nicer with other programming languages and platforms, and allow for easier creation of third-party tools.
Comments & suggestions always welcome...