[Mod idea / question] RPG mode

Started by Holvr, March 19, 2017, 05:14:23 AM

Previous topic - Next topic

Holvr

Hello my wonderful beasts!

So, unlike my other post this one will be quite a heavy one, if not outright abstract, but please bear with me.

Is it even remotely possible to mod even the most crude version of something even slightly resembilng an RPG mode? By RPG mode I mean something like:
- WorldGen with more predefined towns and other sites with an optional ability to set pre-defined NPCs in those.
- Quest system, even as barebones as "kill X who can be found at Y" or "bring me N of item X".
- Something for setting up a story. Events and their triggers based on time, character progress (total skill level? total wealth?), deaths of certain individuals etc.

Generally what I mean is not a complete mod with finished story etc. but more of a framework to create those. I have no knowledge about Rimworld's code so I don't know if it's possible, but the game itself seems to have the core mechanics that'd support such mod. For example:
- The UI responsible for managing your pawns is as good in "colony" mode as it would be in rpg.
- Max number of your pawns could depend on your main character's Social skill.
- There seem to be a mechanic of choice events (offering a runaway pawn shelter or let them get killed by bandits) so this could potentialy provide some crude dialogue options, I suppose?
- Travel would naturally utilise the awesome caravan and site generation system, so that's pretty much covered. Even the random encounters are already covered by it.
- I've seen mods giving pawns some special abilities like combat dash and such, so it's even possible to give some RPG-style action skills.


So... very, veeery roughly - is such thing even remotely possible in the current state of the game?

Cheers!

AngleWyrm

#1
The way faction sites are currently placed on the world map looks to me to be just random spots, with an exception for water and impassible terrain. To do better requires the addition of intelligence. That's not an implication toward the developers, that's toward Lady Luck: Sexy dumb blonde if ever there was one.


An approach could be to create a network of inter-connected cities and then place that mesh onto the world. Then there would be a more direct handle to the distances between cities, and the faction composition of nearby cities.

It would also make visible an option to reverse-engineer some of the landscape in a sort of interactive way, placing rivers as water-way conduits to trade, and mountains around and between cities with low connectivity.

Coastline nautical paths could then become a thing, and so bring the possibility of more interesting freight ships and inter-city commerce.
My 5-point rating system: Yay, Kay, Meh, Erm, Bleh

Alistaire

All of the things you mentioned should be possible.

  • WorldGen is possible to add, and you could simply generate towns provided you have any clue how to generate the town with code.
  • Quest systems can simply be created using the Incidents system. There would need to be something tracking your quests which could be handled by a WorldObject (which in previous versions was done with a MapComponent).
  • There's no problem triggering things based on time or anything. Using C# you could make anything your trigger, e.g a colonist with a fat bodyshape picks up a donut could be your trigger (though these things are difficult to track, you would need to have the trigger be on the donut itself for it to not take a lot of CPU power every second and still have a good chance to be detected). Assuming you don't need an instantaneous trigger you could use an IncidentWorker which is checked whether it CanFire(), to check all pawns in the game for character progress, colony wealth, research, amount of a certain building on the map, .... .
  • I don't know about making the UI as good as it would be in "an RPG", but yeah the UI is modifyable.
  • The main character idea may be problematic but there must be some way to implement that, maybe with Comps, and for sure at that point you could just modify the current StoryTellerDef's desiredPopulationMin, desiredPopulationCritical, def.desiredPopulationMax etcetera.
  • Dialogues take quite a bit of code to set up since the way to do it is not at all optimized for long dialogue trees, however creating your own extension methods should make this a piece of cake. For sure you can do a lot of stuff with dialogue, grey out buttons based on character skills and everything.
  • Random encounters could even be based on the world tile you're on, its biome, etcetera.
  • Special abilities are likely handled by Comps, which also handle explosions and everything. It should be versatile enough, provided you'll need to attach the Comps from a WorldObject or similar.

AngleWyrm's comment focuses on world generation too. It is possible to remove the existing world generation window (which stops world generation from happening at all) and open your own version of it to control much more about the worldmap. Provided you have that code for entire networks, it should be easy to implement it. If you don't, that'd be the greatest hurdle about that plan.[/list]

Granitecosmos

Right now Adventure Mode is Dwarf Fortress exclusive.

However, like other have mentioned, it could be modded in, even if it's just a primitive framework or a proof of concept. Finding people willing to do it, on the other hand, is going to be harder. Most modders capable of doing this properly have other projects to work on and this is definitely not a beginner's project.

I wouldn't mind if it happened, though.

Holvr

Allright. Thank you all for your answers - you've put way more thought into it than I've originally anticipated.

Seems RPG-ish game mode would be plausible enough and that's a happy thought, even though I'm not nearly good enough to code such thing. Maybe if I start with some tiny mods and get better, then in due time I could find someone to share the project with.

Thanks for shedding some light onto the idea.