Hi!
I really love TADS 3, especially the AdvLite version. The problem is I kinda have a really similar idea for mechanics in all of the adventures I author, and they lean more towards blatant RPG mechanics than seamless immersive fiction. This means I find myself ripping out chunks of AdvLite quite a bit, and I’m noticing I keep making the same changes.
I just tried making my own text adventure engine in Java to facilitate these frequent, sweeping preferences and mechanics that I would like to reliably use, but making the engine is becoming a complete and total nightmare with no end in sight. My wife has reminded me not to reinvent the wheel, so now I’m wondering if I can return to TADS 3, and make my personal text adventure mechanic system here instead.
I’m wondering how far exactly I can modify the underlying code of TADS 3, and perhaps make my own variant of AdvLite, with my own standardized systems put in place. Is the entirety of TADS 3 completely open to modification? Is there anything I need to be aware of ahead of time before making my own standard library? What’s the limit I might have for modification before interpreters/runners might start having issues?
I’ve done a huge amount of coding in TADS 3 before, as well as many other coding languages. I feel like I have the skillset for the job. I’m just concerned that I might get blindsided by limitations, mostly.
Mostly what I have in mind is a standardized combat system, the ability to take free actions without other NPCs and world events taking a turn, progression of time per action, a simplified NPC dialog system, and the ability to sort actions into “groups” where some groups are enabled or disabled according to the situation, both so the player can compartmentalize the actions they use, and so that actions don’t need to be universally handled at all times by everything. For example, the ability to sort “go starboard” and “go aft” into an “internal vehicle navigation group”, and leave that group disabled when the player is not aboard a vehicle like a ship. That way, I don’t need to handle those actions for all circumstances, and can even cue the player on what action groups are being enabled and disabled, and also reduce the complexity of a help or lookup menu for these actions. If you’re not on a ship, the help menu won’t bother you with explaining the “go starboard” command. (This will also be useful so I can have these actions and action group handy for all games, but selectively keep some enabled or disabled on a protagonist skillset basis. If the player character isn’t equipped for combat, then I keep the combat action group disabled without yanking it out of my library entirely. Additionally, should the player change characters to one who CAN fight, then the combat action group gets re-enabled.)
Anyways, I don’t want to bother you with extensive details, but this is a bit of what I have in mind.
All tips and wisdom is welcome!