Heya all, I’m getting into TADS 3 and my understanding is it’s a pretty full fledged programming language, I just wanted to confirm that it could handle this project idea of mine, though I’m fairly certain it can.
Think of the mechanical RPG aspects of MUDs and that’s what I want to make, though singleplayer, as a prototype. So you know class selection, exp, a decently sized world with mob spawns, that sort of thing.
I believe all of this should be feasible? Are there any limitations of tads I’d need to watch out for?
Yeah that should be doable. You’ll need to code up much of the mechanics yourself, as well as figure out how to present the UI (modifying the banner wouldn’t be too hard).
The parser and default world model are pretty strong, which is a positive and negative. Positive in that you can probably add functionality to get what you want, but negative in that if you want to remove any parser-game like thing, it might be tricky to extricate it.
Have you looked on the IF archive to see if anyone’s made an RPG module for you to steal/be inspired by?
I’ve not! I mainly intend for the user to be able to navigate annd information with help files and stuff, again very mudlike. And I’ll probably do it all from scratch simply because I have a specific vision.
It’s not a real concern as a I doubt it’s ever get that big but at what point (size) does TADS3 slow down? Also can new rooms be made during runtime?
I think it’ll slow down when you have hundreds or thousands of NPCs doing stuff across many rooms. I don’t think it’ll be a concern, depending on how complicated you are making things.
Also it is worth to hold the pros and cons of TADS and a general programming language against each other. Perhaps a “normal” language is better for your purposes, perhaps Tads. You decide.
The two main libraries for TADS are primarily for parser games. TADS itself can be used to make click-the-buttons style visual choice-based games, too, if you’re set on that.
I only clarify this as often as it comes up because a lot of assumptions about what TADS can or cannot do, or its quirks, are all because of the library which was chosen for the game, often with minimal/no modifications made.
I think this sort of thing is absolutely doable in TADS3, but I would add a couple of caveats:
Pathfinding, if your mobs need it, is comparatively expensive if you’re having to re-compute every turn. I wrote a T3 module for precomputing pathing at compile-time which works if your paths are fair/symmetrical (that is, everybody in the game uses the same pathfinding rules)
If you want your mobs to obey the same rules as the player(s) then there’s a bunch of tweaks to adv3 that need to be made (because there are multiple places that assume any Actor executing an Action will be the player). If you’re expecting to hardcode everything (so mobs all use bespoke logic completely separate from the rules governing player actions) this won’t be an issue
There’s nothing that directly supports this in TADS3 already. This isn’t a huge deal, but there’s a bunch of basic work done for you in the standard libraries if you’re “just” trying to implement a “collect small objects” sort of game and you won’t get the same sort of starting point with the RPG-specific stuff
The game I’m currently working on isn’t an RPG, but “single player MUD” is more or less the model I’ve been using for NPC behaviors—in general I want exactly the same code handling actions, regardless of whether it’s the player or an NPC taking the action. I’m not done with all of this, but I’ve already released a bewildering number of little T3 modules for bits and pieces of it, which might help with what you’re trying to do.
A single player MUD is pretty similar to what I have in mind. I don’t mind doing a lot of coding myself instead of relying on the libraries to accomplish whatever I need to accomplish. I’ll take a look at your modules as that could be very useful, thanks! Though I am starting with adv3lite as I learn, I don’t know if your modules utilize adv or lite.