devolution

Poll

What should I prioritize next? (a * after a choice means I am currently working on that)

Player Stuff
15 (7.8%)
Girl's interactions (with each other)
22 (11.4%)
Scripts (interactions with the player)
41 (21.2%)
New Stats, Skills and Traits
8 (4.1%)
Existing Stats
1 (0.5%)
Existing Skills
3 (1.6%)
Existing Traits
5 (2.6%)
Customers
4 (2.1%)
Gangs
9 (4.7%)
Rivals
7 (3.6%)
Buildings
5 (2.6%)
General Jobs
3 (1.6%)
Farm Jobs
9 (4.7%)
Matrons
7 (3.6%)
Items
1 (0.5%)
Remaking the interface
9 (4.7%)
New stuff
6 (3.1%)
Whore Master Editor
4 (2.1%)
No priority
3 (1.6%)
WM7
This poll will be reset when I start a new section or add more choices so check back often.
31 (16.1%)

Total Members Voted: 112

Author Topic: Updates and Notes for Crazy's Mod --- Current Version .06.04.01  (Read 758182 times)

0 Members and 1 Guest are viewing this topic.

Offline Purple

  • Newbie
  • *
  • Posts: 16
Re: Updates and Notes for Crazy's Mod --- Current Version .06.04.01
« Reply #1020 on: December 07, 2020, 06:51:34 AM »
Yes, moving same game text into external files is part of what I'm trying to do. I think you underestimate the actual effort involved in doing so, though. The resulting text files have to be rich enough in structure so that you can actually do some simple game modding with it (e.g. if you add a trait, you have to be able to add corresponding job text variations), but at the same time simple enough that a non-programmer can easily edit these. You can see my current progress on that here: https://github.com/h1262216/crazys-wm-mod/tree/master/Resources/Data/Jobs
You are taking this far more than I would have. I was just talking about dumping the existing text into files and not bothering with moddability. This being said as a fellow programmer I like the color of your thoughts. The potential of placing everything into these XML files instead of the old odd text system is immense. Like you could go so far as to let the actual text be scriptable from the XML so that one can define custom conditions and branching paths for text right there in the XML. The more I think about it the cooler it sounds. So much so that I'll say if you ever need someone to bounce ideas off or something I am open.

Quote
I'm using CLion as an IDE.
I'll have to check that one out.
« Last Edit: December 07, 2020, 06:53:43 AM by Purple »

Offline Suddenlyfox

  • Newbie
  • *
  • Posts: 13
Re: Updates and Notes for Crazy's Mod --- Current Version .06.04.01
« Reply #1021 on: December 07, 2020, 07:26:38 AM »
Having the text in separate, user-editable files would be nice - I've particularly wanted to have a go at the list of clients.  I'm familiar enough with C++, but compiling a separate version just to edit that list seems like overkill.


For the sake of modibility, lists that pull random text like that should probably be able to pull from multiple files, the way sets of images work, in case a user downloads multiple lists, though I imagine the structure of the list would be simple enough that even less computer-savvy users could merge them without much issue.

Offline Purple

  • Newbie
  • *
  • Posts: 16
Re: Updates and Notes for Crazy's Mod --- Current Version .06.04.01
« Reply #1022 on: December 08, 2020, 05:07:58 AM »
Yea, what I was describing was more of a crazy design goal than anything. It comes from my experience working with this sort of architecture thanks to doing a lot of work with XML for Civilization 4 which features modular XML in the way that you can have mods that replace the original game XML with their own but also modules which are a submod of mods which simply add to the XML files in the mod. And its all perfectly modular in that you can just change an XML file and load up the game without any other work and it will work because the XML is just an input file that the game reads.

What you describe with multiple files is perfectly doable. All you'd need to do is implement a system that merges all detected files that contain the relevant type of information which you identify by some means (custom extension, custom folder etc.) and just copy pastes the content into a big file at runtime. Basically the same as the C++ linker does, only with your input files. Since I assume you already have validity checking in there to check the one file you use already simply extending that wouldn't be much work. I've actually done stuff like this in my private projects.

Either way it boils down to building a parser and choosing how complex you want to make it vs how much effort is worth putting in to making it that complex. Well that and avoiding getting carried away. Although for us in the trade that's the hard part.
« Last Edit: December 08, 2020, 05:09:59 AM by Purple »

Offline h1262216

  • Newbie
  • *
  • Posts: 22
Re: Updates and Notes for Crazy's Mod --- Current Version .06.04.01
« Reply #1023 on: December 12, 2020, 08:07:49 AM »
Yeah, I'm actually already on my second try of implementing this. My first version was too complex, and also too verbose in its use of XML tags (e.g. `<Condition><And><HasTrait>A</HasTrait><HasTrait>B</HasTrait></And></Condition>` which made it difficult to read.

The new version stated out as simple as possible, but I'm slowly adding things that are needed to convert common structures to XML, so it is getting more complex too.

Offline Purple

  • Newbie
  • *
  • Posts: 16
Re: Updates and Notes for Crazy's Mod --- Current Version .06.04.01
« Reply #1024 on: December 18, 2020, 07:32:50 AM »
Reading troubles are easily solved by inserting newlines and formatting. And if you are worried about those making your life difficult when parsing you can just remove all newlines and spaces/tabs from the string you read before passing it to your parser. I know because I had to construct my own serialization system many, many times. I even wrote my own XML parser back in the day before you could just get one easily online to plop into your code.
Also, remember that your XML does not have to be human readable. It just has to be readable by someone like us who is actually savvy enough to know how to edit these things in the first place. :) Your average user won't even want to open the item and character editor that comes with the original game. So your target audience won't mind a bit of reading. ;)
« Last Edit: December 18, 2020, 07:36:03 AM by Purple »