Author Topic: Community expansion, what's your take?  (Read 3667 times)

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community expansion, what's your take?
« Reply #45 on: June 08, 2016, 08:38:36 pm »


               

Yes theoretically both Proleric and you are right. CPP can break things, even with just installing, if your custom content script relies on some unintentional vanilla script behavior/bug your script might not work correctly. And if you recompile all scripts after installing CPP its theoretically possible your scripts will behave differently.


 


Thats however only theory and while its possible to happen, chance that it happens is very very small. The former issue is to be expected - if you rely specifically on some bug (like it my example SignalEvent - Shield of Faith) then if CPP fixed that bug obviously your script stop working. I don't think anyone has a script like this. I don't even think anyone actually knew Shield of faith signals Camouflage spell ID and was relying on that. And if by any chance someone did, then is it such a big deal really?


 


As for recompiling scripts with CPP. As was said - CPP is designed to provide compatibility with custom content. If compiling your script with CPP includes will throw compile error or even change its functionality (which afaik nobody experienced yet) then its bug in CPP design and it will get fixed. If CPP was abadonware and there was no support, if you were ever hit some issue, I would understand the hesitation. But thats not the case I am around and I offer full support, especially for PWs.


 


But yes there will be changes, especially when regarding to AI as I informed already. If you don't want anything changed on your server/module, stay out of it. If you are willing to do some work for all those fixes/features CPP offers, CPP can be great resource. Due to the way it works its easy to disable anything. You don't like your AI being changed? Ok restore vanilla nw_c2_default* scripts. You don't like the new spell immunity/spell mantle mechanics? (spell mantle is now depleted only when the spell is not caught by spell immunity) use module switch to restore this functionality to the vanilla way. Etc.




@meaglyn....Thanks for the info, I noted that you can back out easily, if on Linux. I wonder how easy for Windows? This could be the make point for me. This way I can test and see the effects of the patch on my work. Pulling CEP is a nightmare, if CPP could be pulled easily, that would be excellent should I find I preferred not to use it. Oh ya, the list of info for the CPP is not light reading, lol, there's a lot to read in that puppy.




CPP can be removed by installing 1.69 critical rebuild or by replacing modifief xp2patch.key file in NWN folder with 1.69 version- If you install CPP with installer each overwrite file will be backuped (xp2patch.bak), if you install it using manual instalation you need to backup it yourself however the original xp2patch.key can be downloaded separately in CPP vault project page.


CPP overwrites 3 files only. xp2patch.key, dialog.lk and one of the texture packs in texturepack folder.



               
               

               
            

Legacy_Gruftlord

  • Sr. Member
  • ****
  • Posts: 490
  • Karma: +0/-0
Community expansion, what's your take?
« Reply #46 on: June 08, 2016, 08:49:24 pm »


               I think in a case such as yours (and Proleric's and Merriksdad's) it would require delving deeper into the CPP, read the available readme's, take a peek at some of the skript sources and their comments. If your aim (and no less) would be to do a full merge of your work and CPP and then move forward, it will require some time to get accustomed to it. The trust you need to put into CPP before going all in is higher than for the average user. For doing so, you will need to set aside some time.

i'm not the best person to convince you to invest that time. but from my gut feeling, the features of CPP that may sway you the easiest are those, that, in the long run will benefit you as a modder and enable easier integration of new features going forward.

so skim the (currently somewhat) lacking (and convoluted) change logs and readmes for anything that applies to modders and how the systems implemented by CPP allow you to reach goals you may have had for a long time, faster. That direction probably lie the most convincing features of CPP for someone as deep into things as you.
               
               

               
            

Legacy_KMdS!

  • Sr. Member
  • ****
  • Posts: 364
  • Karma: +0/-0
Community expansion, what's your take?
« Reply #47 on: June 08, 2016, 08:56:02 pm »


               

One more question....any module saved with 1.7x can only be opened by that version and not a prior version? Most likely he case I imagine.....



               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Community expansion, what's your take?
« Reply #48 on: June 08, 2016, 09:14:39 pm »


               


One more question....any module saved with 1.7x can only be opened by that version and not a prior version? Most likely he case I imagine.....




1.71 doesn't work as official patches in this regard, its fully compatible with 1.69, player with 1.69 can play on server with 1.71 and viceversa, same apply for singleplayer modules and savegames.


 


did you read this?


 


Only if builder of the module/you specifically want it to be playable only with 1.71 (for whatever reason), you can enforce this by adding patch171.hak into your module resources.e


 


edit: changed the link



               
               

               
            

Legacy_meaglyn

  • Hero Member
  • *****
  • Posts: 1451
  • Karma: +0/-0
Community expansion, what's your take?
« Reply #49 on: June 08, 2016, 10:00:04 pm »


               

You don't have to dig into all the details and do a full merge to try it out.  I have a large number of scripts and systems and haks and changes to 2das and what not too. The merge does take some time and when you do that you do need to dig into it. But you can get a pretty good idea of what's going on by installing it and then opening and building and testing your module.  It should "Just Work" ™.


 


And as was said before you'll get any fixes in 2das and scripts you don't have copies of.   You can do all that fairly painlessly. Kick the tires etc.   Then if you like it you start to merge it in.  It is harder to back it out once you do that of course...  When I did that I kept the 2das in a different top hak in my git tree so I could undo it if needed, but it turned out not to be an issue. 



               
               

               
            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
Community expansion, what's your take?
« Reply #50 on: June 08, 2016, 10:13:39 pm »


               

@henesuz....

I am aware of this, but on a mod you are actively creating, any patch could affect pre-existing work when recompiled as development continues as the includes then become a part of the compiled ncs file. This is to what I was alluding to. Any existing compiled work would be unaffected. The catch occurs if you should ever recompile using the patched version of NWN. This in not to say that there will be any problems, just to say that there CAN be problems and that they may not be readily found, just a possible head ache.




 


Yes, I mentioned this. But as I said earlier all you have to do is recompile after uninstalling the patch. Uninstalling the patch is trivial, and recompiling is trivial. So if you don't want to bother dealing with the rare thing that you might find causing a problem, then you can solve it in a minute or two by reinstalling the 1.69 thingamabob.


 


Debugging does take an indeterminate amount of time, but that is only stressful if you can't just restore your module with a click of a button. Since the patch files can be swapped in and out so easily however, you always have this option.


 


And why is this? Because the patch doesn't break your module. It doesn't do anything to your module. It impacts the context in which your module operates. And it is trivially simple to restore to the 1,69 state and the data in your module is unimpacted.


 


Which also means that the CPP is less intrusive than importing an erf with scripts into your module.


 


It boggles my mind that this simple fact alone doesn't dispel the "scary patch" nonsense. Because even if the patch was poorly put together you could easily solve your problem. The thing is however its well put together which even further renders these concerns utterly bogus. Not only is it easy to test for yourself, and pose no threat what so ever to your work, but when you do test it you can see that its easy to work with. And on top of that ShadoOoW will actually work with you.