New module approach

Discussion in 'General Modification' started by marc1967, Jul 17, 2014.

Remove all ads!
  1. marc1967

    marc1967 Established Member

    Joined:
    Jan 19, 2014
    Messages:
    673
    Likes Received:
    110
    I'm looking for any advice and guidance as to which "source" to use when beginning a new module. I'm currently plodding along seemingly OK, and I'll try to spell out a quick summary of my activities in hopes someone may spot any fatal misdirections in my planning. (The release of the KOTB module had me curious as to how it developed in parallel with the Co8 Modpack over the years. It's kind of a techy question, somewhat asked with historical curiosity.)

    There are obviously major differences in things like art, maps, mes files, dialog files, and global variables. I have these areas very much in control, but there are other more sensitive places I need to tread upon now.

    Mostly, I noticed significant changes (between Co8 and KOTB) in some of the larger script files like scripts.py, py00648script_daemon.py, utilities.py, and others. Some of these reference global variables and proto definitions within their code, and these are being edited with extreme caution. I am needing to take time to understand these as I comb through them so as to not disturb critical functionality.

    Related to this, I would also like to absorb some of the KOTB mods that were not put into the Co8 modpack (like the new search tool, languages, disguise, etc). I can see that this code is very module specific, using globals and protos related to KOTB, which is maybe why these weren't added to the Co8 pack.

    protos.tab is also a moderate concern. I started with the latest Co8 protos.tab, which does have plenty of room to add new items (like containers, scenery, weapons, etc.) but is very limited in space for NPC's. At the start there were about 100 open slots in the 14830+ range where new protos could be squeezed in, but as those were used up I had to start very cautiously removing NPCs which were not critical to a new module. (while making sure to keep protos like familiars and ones that were called by monster summoning spells)

    This process originally made me want to start fresh with the original game, but there are so many improvements and additions I would be missing that I would very much NOT like to do that. But it's a dangerous and painstaking task to edit these files properly without screwing up other stuff.

    If there is an easier way to do all this let me know, otherwise I'll just keep moving forward as I currently am.
     
    Isewein likes this.
  2. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,622
    Likes Received:
    538
    re. protos, I'm afraid that's the way it is.

    If you have any questions about the script files, feel free. I can say that most of script_daemon is very content specific (reactive Temple / Moathouse stuff, Temple map marking, autokill testing tool), so you shouldn't be afraid to just go wild with the script shears.

    P.S. I'm curious, what is the premise of your mod?
     
    Last edited: Jul 17, 2014
  3. Gaear

    Gaear Bastard Maestro Administrator

    Joined:
    Apr 27, 2004
    Messages:
    11,038
    Likes Received:
    42
    Yeah, I really wouldn't suggest going back to vanilla just to get more protos. Assuming your mod is a standalone adventure, you can easily lose most of the NC related protos (lots of Verbobonc people, etc.).

    ToEE and KotB were developed largely concurrently, but almost never hand in hand. They're different games, so while it might make sense from a streamlining point of view to add KotB's feats to ToEE, ToEE has no use for them. Likewise ToEE's high level spells for KotB and things like that.
     
  4. marc1967

    marc1967 Established Member

    Joined:
    Jan 19, 2014
    Messages:
    673
    Likes Received:
    110
    Thanks to both of you. I just wanted to make sure I was on the right general track.

    protos.tab is not really a big issue, but every time I delete something I think "damn, I really might want to use those orc protos from Hickory Branch I just deleted at some point. They have strategies attached to them and all that." So it's more of a feeling of loss than worrying about screwing something up.

    The module is still in its infancy of course, and I'm just turning the corner from spending 90% of my time overcoming the learning curve, where I am now actually creating something regularly. My highly optimistic goal is to have a rough demo of the first 25% of the adventure in about a year. In the range of levels 1 - 5, comparable to the Hommlet/Moathouse/Emridy Meadows/Welkwood Bog segment of the main game.

    Very briefly, the "town" will be a small bustling port town where trade converges between a northern human kingdom, a southern human kingdom, smaller sea kingdoms off in the sea, and demi-human pockets scattered here and there - sort of a burgeoning Italian pre-Renaissance town from the late middle ages in feel. I really want to focus on an intriguing political story that characters get wrapped up in, but it won't be filled with running around and engaging in boring stodgy dialog, I plan to move things along and have it be adventurous and quest filled as would be expected for a module in this game.

    Some main aspects I really was to incorporate are:

    1) A deep story that has a gentler adult fantasy feel to the whole package, similar to Stardust, The Princess Bride, Legend, Once Upon A Time. This would include things like sylvan forests, faeries, romance, haunted houses, revenge, castles in the clouds, rescuing the princess, etc. It won't get lost in this style heavily, but it will be a prevailing theme.

    2) NPC's that develop as they go up in level and/or the adventure advances - think Ronlad Rynnwrathi x10. I want them to distract the characters into side adventures at random times during their relationship (if they choose to of course, nothing forced).

    3) Interesting combat scenarios, with deep strategies, and reactive foes. I don't want to just turn on the KOS, and have it play out. Most encounters should roll like Lareth or Rannos&Gremag, where even after combat starts there is some sort of parlay, surrender, and/or fleeing. ( I really really like the merchant prisoner in the Gnoll lair in KOTB that gets hot into combat, and tells you to back off while attacking you. Then when you back off combat ends with both parties still alive and you can actually talk to the guy. I want to incorporate routines like that often.)

    OK, rambling now, lol, but that's pretty much where I am.

    Thanks again...
     
    Isewein likes this.
  5. Shiningted

    Shiningted I changed this damn title, finally! Administrator

    Joined:
    Oct 23, 2004
    Messages:
    12,740
    Likes Received:
    374
    Hey Marc,

    Just saw this thread. Like the sound of the mod, very different to what we have now (different being much better than 'more of the same' ;)) A few comments:

    - definitely use the Co8 protos.tab rather than KotB's. Co8 was built around about version 5 or so on a complete RAW overhaul of all the monsters by Kalshane, whereas KotB predates that and thus uses the original (sometimes flawed) proto entries for many standard monsters, only updated in a piecemeal fashion (nothing that inhibits play - incorrect skill point calculations and such - but better is obviously preferable to not-better).

    - re feats and skills: the feats I added were also basically either weapon proficiencies for new weapons made around about Co8 4 or so (plus WF, GWF, WS, Improved Critical etc) or Skill Focus for the new skills, plus maybe (for memory) an associated feat or two, like Animal Affinity. Otherwise, the only other feats I did were Far Shot and WF Ray / GWF Ray (both of which I am immensely proud of, though the latter needed some tinkering ;))
    As per what Gaear said about the skills not really working in ToEE, they are not the sort of thing that can be ret-conned back in: you have to decide from the start whether you want this or that new skill (or feat) in the game and build the game accordingly. So you might decide that Disguise is ideal but my clunky application of Climb is not really relevant. That's fine, build the game however you want it and feel free to use or not use that sort of stuff. Also feel completely free to use any of the new items in KotB (like the Disguise Kit or alchemical items or whatever), they are all there for modders to build on.
    One caveat - please don't use our custom portraits. We have gone to a lot of trouble to try and produce completely separate NPC portraits for ToEE and KotB to make the games unique.

    - re scripts.py: that's just a bunch of oft-called routines, mostly to do with checks for this or that from dialogue. Use it or not as you like :) The rolled skill checks for Diplomacy etc, where you have to write outcomes for both successful and failed checks can be a lot of work but adds the random 'outcome of the dice' element of PnP D&D, which is not always appreciated in CRPGs where people just reload ;)

    I'll try to post some helpful tools tonight when I am back at my modding PC. Good luck and don't hesitate to ask us anything.
     
  6. Daryk

    Daryk Veteran Member

    Joined:
    Jan 14, 2012
    Messages:
    1,177
    Likes Received:
    34
    Ted, just a word about your implementation of the Climb skill: the only thing even remotely clunky about it is that every single character needs it. Other than that aspect, I think you did it brilliantly considering that it wasn't part of the game from the beginning.
     
  7. marc1967

    marc1967 Established Member

    Joined:
    Jan 19, 2014
    Messages:
    673
    Likes Received:
    110
    Thanks Ted.

    I give myself a waiting period before asking usually, because after a while I either figure the answer out by searching old threads or by struggling through it myself (and during the process learn some new things). That said, I do have a few questions that are nagging at me and I can't really get a satisfying answer. These are not really impeding my process, but I would feel better if I knew.

    1) What is the difference between "return RUN_DEFAULT" and "return SKIP_DEFAULT"? I'm embarrassed that I don't know this. Right now I just blindly copy it from the script I am altering, but the fact that I don't really know indicates there is a lack of fundamental understanding at some level of how the san_ scripts work.

    2) Internal Object flags. Is there a list for which ones are safe to fiddle with, and which ones are better left alone? I can see from scripts.py that obj_f_npc_pad_i_3 (4,5, and a few others) are open for use, but I'm assuming that many (or most) are actually used in the game and shouldn't be touched.

    3) If you use scripting for re-spawning vendor containers inventory, how do you disable the regular re-spawning that the original game provides? (iirc, re-spawnng only worked right for outdoor vendors in the vanilla game anyways.). I think it's by unchecking the containers Inventory Source ID, and they just specifying it directly as the 2nd parameter to RespawnInventory(). (I've been using a different Inventory Source ID for the same vendor when calling RespawnInventory() anyways depending on varying situations like quests completed, character level, vendor reaction, reputation, etc.)
     
  8. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,622
    Likes Received:
    538
    1) RUN_DEFAULT and SKIP_DEFAULT are just strings for 1 and 0 respectively IIRC; I don't know of any comprehensive documentation on this, but some examples are:

    san_start_combat - if you use return SKIP_DEFAULT it skips the AI's turn
    san_first_heartbeat - not using any return at all resulted in weird script malfunctions in heartbeat triggered dialogue
    san_dialogue - some undocumented weirdness apparently occurs if you use the wrong one :p IIRC it had to do with dialogue floats

    2) Livonya used a bunch (see Livonya.py), other than that I don't think any are used. Also, some Critter Flags are used in the same way (IIRC one of the OCF_*UNUSED flags was used in KotB scripting).

    Word of warning - it was discovered relatively lately that some critters actually spawn with a non-zero obj_f_npc_pad_i_3. Most of them don't, but about ten of them do IIRC.

    They do spawn with zero pad_i_4 and pad_i_5 though (at least in the main ToEE mod).

    3) No idea.
     
  9. Shiningted

    Shiningted I changed this damn title, finally! Administrator

    Joined:
    Oct 23, 2004
    Messages:
    12,740
    Likes Received:
    374
    3) We only added the respawning by script because the game one was broken, it shouldn't be used on vendors on outdoor maps where the game one works properly.
    :blink: I never knew that. I was going to ask Ag to add something to WB to be able to create mobs with values already set in those, so you can write generic scripts that can the depend on the mob (eg "in event of alarm flag, teleport to loc(obj_f_npc_pad_i_4, obj_f_npc_pad_i_5).")

    O and thanks Daryk :wave:
     
  10. marc1967

    marc1967 Established Member

    Joined:
    Jan 19, 2014
    Messages:
    673
    Likes Received:
    110
    To any of you who were helping me with my modding questions over the course of last summer I want to thank you all, and let you know that your efforts were well spent, and I have not disappeared permanently. My campaign mod has developed greatly, and I hope to have something reviewable within about 9 months from when I can pick things up again.

    The problem is that early last September there was a health crisis in my immediate family. I'd rather not get into details except to say that it was not me, and the situation has thankfully stabilized very well. However, the situation has rearranged my priorities so that much of my free time is now needed elsewhere with family concerns.

    Before this event, I generally had about 4 or more hours each day to work on the mod as my main "hobby" in my life, but now I can only work on it for maybe 2 hours a few nights a week. Being able to work 30 hours/week put me on a realistic and productive timetable for moving things along nicely, but working 5 - 10 hours/week is frustrating and just not enough time to set a reasonable goal of finishing while I'm still young.

    So until my situation changes and I can free up enough time to get back on a somewhat full-time schedule, I have just stopped working on it altogether. I may be able to restart next month, or it may not be for more than a year from know. I really can't predict how things will progress.

    I just want to make it clear that I am committed to this mod as my main undertaking with any available free time I do eventually get. I can't think of anything else that comes close to fully utilizing all of my collective skills, and also satisfies all of my creative urges at the same time. It pushes all parts of my brain from the far left to the far right and everything else in between. I even find python elegant and superior in it's own way. Hey who threw that?

    Well, until then, I'll be poking around in the other forum areas and playing a bit too with the time I have.

    Regards, Marc
     
  11. Gaear

    Gaear Bastard Maestro Administrator

    Joined:
    Apr 27, 2004
    Messages:
    11,038
    Likes Received:
    42
    Right on, good luck.

    Do you want to unite identities with your Kelno alt btw?
     
  12. Sitra Achara

    Sitra Achara Senior Member

    Joined:
    Sep 1, 2003
    Messages:
    3,622
    Likes Received:
    538
    Thanks for the heads up, I was concerned and admittedly a bit disappointed when you had disappeared. Best wishes to the family!
     
  13. marc1967

    marc1967 Established Member

    Joined:
    Jan 19, 2014
    Messages:
    673
    Likes Received:
    110

    I had lost my pw and created the Kelno account just to post until I found it again. I won't be using Kelno again, so do as you wish with it.
     
  14. Lilura

    Lilura Member

    Joined:
    Feb 20, 2013
    Messages:
    5
    Likes Received:
    0
    Any news on this?
     
  15. marc1967

    marc1967 Established Member

    Joined:
    Jan 19, 2014
    Messages:
    673
    Likes Received:
    110
    Hey everyone,

    I'd like to announce that my module is in the final stages of testing, and I'll have something out before the end of the year (2023).

    I was hoping to have a 100% complete adventure, but I've only written three chapters of a story that will eventually have four total chapters. So, it's 75% finished, and will currently take a normal-sized party to about 15th level. So even though the story does not have a true ending right now, there IS a satisfying conclusion at the end of chapter three, to make it worth playing. And it has some nice surprises along the way. The adventure is called Paladin's Cove, and is set in a small sea-side trade port near the vicinity of an ancient fallen empire, lots of town intrigue, pirates, lost ruins up in the hills, ancient ones, etc. I'm intentionally keeping vague on the details and screenshots, sorry if that's annoying. I want to be fully prepared to answer questions and post a reasonable FAQ before I get into it any deeper (again, before the end of the year).

    But right now, I need some advice when the time comes to release it. Where would I post the TFM file so people can download it? Would I post it here? Or some other hosting site? I've never done anything like this before, so any help would be appreciated. The TFM loads and runs into Temple Front-End just fine, so I juts need to make the file available.

    Next. I can't emphasize enough what I'm going to say.

    I really need to keep this a very slow process, if at all possible, for the sake of my health and my sanity. I'd like to do it with as little fan-fare as possible, under the radar, etc., so I don't get bombarded with questions and bug reports. If only one or two people try it out every month, that would be great. I worry that I'll get dragged into a full-time job responding to problems. I've reached an age, and giving consideration for what's left of my eyesight, where I strictly limit my total computer time to about two hours per day. In the past, I would push through multi-week stretches of development where I would grind away all day and night. Can't do that anymore. But I know myself, and if a major problem pops up that make the whole thing unplayable, it will eat away at me if I don't take care of it. So either way it's not good.

    With that in mind, my main concern is stability. In my testing, it's been solid for a long time now, which is good. It's honestly ready to go. It's rare that I have a crash or some other problem where the game becomes unplayable. But things can go differently when people put it on a different machine, or use a radically different play style. So, I want to do one final play-through of a complete party over the spring and summer, very slowly and methodically, working out any last problems, and testing odd play styles and plot branches.

    I'd also like to explain why I've done this on my own, for the most part over the years. And why it may seem like I'm not a team player, ignoring some major projects like Temple+ and Icewind Dale. I may have already explained this in another post some time ago, maybe not. Anyway, here it goes again...

    I showed up on the doorstep of Circle of Eight in early 2014, after playing the game in 2013. I was gung-ho to contribute to modding, and helped where I could. But, it was an unusually quiet time. The final version of Co8 was wrapping up, and the premiere release of Keep on the Borderlands was coming out. There was nothing left to really contribute to. The final version 8.1 was going to the presses, and it was said no further versions would be released. Temple+ wouldn't officially begin for over a year, in 2015 I think, and there was no place for me to direct my desire to mod. It was very quiet around these parts. So, I began creating my own module. By the time it became an option to help with Temple+, over a year later, I had already put so much work into my own creation, I had a choice to make. I simply could not split my time between my own mod and other projects, it would be too much for me. So, I made the decision to work strictly on my own mod. I've actually avoided any other large projects that have come up, because I know they would be far too tempting to jump in and get involved. So, I crawled into my shell and put all my efforts into my own mod.

    But I don't want to make it sound like I've done this all on my own, far from it. It never would have even got off the ground, early on in the first few years, without the constant answers and advice given by the major players around here. And I would have lasted about 3 days without the World Builder, and all the history of postings providing valuable information of all sorts.

    In that regard, much of the guts of my mod, such as the scripting and such, were developed in the first two years (2014-2015), before Temple+. So I've created certain workarounds and fixes that are at odds with what Temple+ has done. It may never be practical to get my module integrated with it, without a major effort and lots and lots of time testing, which I do not have. So, there's that.

    Well, that's about it. Hope to have something soon. I'll post here when the time approaches for release.

    Regards, Marc.
     
    Isewein, Illustair, Kriegdoom and 7 others like this.
Our Host!