Skip to content

The RFC builtin database replacement card discussion

2»

Comments

  • OmnipsiOmnipsi Member Posts: 31
    One benefit the Bioware DB had/s is the storage and recall of objects directly. If the built in database used SQL while allowing us to easily save objects (individual items, entire placeables/creatures, without loss to their inventory etc) that'd be pretty convenient. A better native database would perform better as well, which would be nice. Considering the default BioDB functions used on their own are less effective than the NBDE work around (local vars on campaign objects in place of DB's) also using native functions, so the performance improvements alone would not be insignificant either.
  • SherincallSherincall Member Posts: 387
    Omnipsi said:

    One benefit the Bioware DB had/s is the storage and recall of objects directly.

    Just FYI, the old NWNX database connector supported this, and the new EE one is about to get it as well, more featured than the Bioware DB SCO/RCO.
  • OmnipsiOmnipsi Member Posts: 31
    edited December 2017

    Omnipsi said:

    One benefit the Bioware DB had/s is the storage and recall of objects directly.

    Just FYI, the old NWNX database connector supported this, and the new EE one is about to get it as well, more featured than the Bioware DB SCO/RCO.
    True! The BioDB implementation was already quite good to begin with, was what I meant. I'm very glad to hear NWNX:EE is going to get an enhanced version though.
  • GM_ODAGM_ODA Member Posts: 177

    So, @Cablefish , if you have a reason for not using NWNX on your PW, I'd love to hear it.

    Is the full source code available yet?
  • SherincallSherincall Member Posts: 387
    @GM_ODA Full source code at https://code.nwnx.io/nwnxee/unified (MIT licensed)

    If you have any questions, best to ask them in the NWNX discord.
  • hermythermyt Member Posts: 12
    So does NWNx support the full saving of instanced modified objects now? Back when I was doing scripting and PW work on nwn that was the biggest lacking issue. Players could modify objects and personally color them and adjust appearances, and later scripts gave support for adding and removing item properties to an object for custom crafting but the original blueprint of the item in the toolset was unchanged. This caused an issue in that all PW's using NWNx for persistent item storage were only storing the items toolset reference and not the fully customized item including appearance and colorizations. So if a person modified an item to customize its appearance and tried to store it it would lose all customizations and be recreated at the base template from the toolset.

    I actually created a scripted workaround for the original NWN database system to work around these issues as I identified that the built in nwn database was actually very fast for data retrieval but very slow to commit new inserts. To mitigate this I created a scripted system for persistent chests that used the disturbed event on chests to store items into the database as they were added or removed on a 1 at a time basis rather than the preferred nwnx method of on open and on close which caused issues for the nwn db by doing mass inserts in a short period of time. https://neverwintervault.org/project/nwn1/script/hermyts-persistent-chests

    If NWNx worked around this later though then that would have been good, at the time I wrote this I was using it myself as I had a PW that was part of CoPaP however it never saw widespread use as there was alot of hostility towards the built in NWNdb amongst server admins at the time.

  • SherincallSherincall Member Posts: 387
    @hermyt yes, this was merged into the new NWNX a few days ago. nwnx2 (for 1.69) had it for a long time as well. We ended up porting your chests to nwnx/sql for a pw.
  • hermythermyt Member Posts: 12
    @Sherincall very awesome, I just looked through the documentation site on nwnx.com but I didn't see mention or example of the function, is it a custom plugin that someone built? I would like to know how to use it/documentation on it, I always have kept my server stuff stored in backup and now that EE is happening will likely work on it again.

    I always used to use NWNx alongside the nwndb but if the persistent object storage thing was able to be worked around I wouldn't bother with the native nwndb anymore as that seemed to be its exclusive strength at that time.

  • SherincallSherincall Member Posts: 387
    edited January 2018
    @hermyt we're still very poor in the documentation department. The code to serialize the object is in NWNXLib/Serialize.cpp, but it is accessed through the SQL plugin. Probably best to start here and look through the changes: https://code.nwnx.io/nwnxee/unified/merge_requests/2

    By the way, it can also store placeables, stores, doors and triggers which the biodb can't. Not sure if you'd ever have a use for it.
  • Barry_1066Barry_1066 Member Posts: 77

    That sounds exceptional!

    So how are you getting around the NWN perceived slowness? Is it just no longer an issue in 2017?

    I ask because as amazing as NWNX is, using the built in database has potentially greater long time compatibility should the game go dark again, simply by the benefit of being self contained.

    NWNX was the gold standard in 2007 but it is a decade later and I honestly didn't bother to even try NWNDB when I returned.

    I hope you don't mind me asking. However, the answer does change the complexion of this discussion.

    - Jamie

    I agree here - I know very little about who is working on NWNX but I did here it was one person - If I am wrong, fine, all I am reporting is what I was told. That makes NWNX vunerable. The support for Windows was dropped years ago and now ONLY Linux is supported. If one does not wish to run Linux or a sim box in Windows, then you are just so out of luck to run NWNX even if you otherwise would (which I am not).

    Why am I not wanting to run NWNX?

    1) It is Linux ONLY.
    2) NWNX broke my world years ago with no windows update or support.
    3) My custom made - custom commissioned plugin no longer works with current NWN.
    4) Such support for updates of windows running a Linux shell is another layer of dependence.
    5) As voidofopinon states very well - "I ask because as amazing as NWNX is, using the built in database has potentially greater long time compatibility should the game go dark again, simply by the benefit of being self contained. "
    6) There are a number of easy fixes/additions that could be made in the NWN DB and scripting hooks that would make the internal system much more self sufficient - something NWN community needs for future survival.

    If the developer of NWNX is removed from activity for any reason - the whole NWNX goes down - This happened (at least perceived to happen) when windows versions were dropped, leaving us windows users in the cold.

    These are very good reasons to NOT use NWNX and for NWN EE to add some of the scripting hooks and DB improvements that would make NWN EE strong. If NWNX is seen as the adjunct, go to, for NWN EE than lets see the Windows version - not 2 years from now, not 1 year from now, but now. I seriously doubt that will happen.

  • zordren3742zordren3742 Member Posts: 207
    edited February 2018
    this is from the Neverwinter Nights FAQ on beamdogs website
    Who is working on the updated version of Neverwinter Nights?
    Former Neverwinter Nights team members such as Mark Brockington (who wrote the scripting and multiplayer systems among many others) and Jason Knipe (who wrote the Aurora graphics engine) are our key developers on the project. Trent Oster, the original project director for Neverwinter Nights, is leading the team. We've brought Bernhard Stöckner, a community leader who maintains Neverwinter Vault, onto the development team. We also have an advisory board consisting of talented Neverwinter Nights modders and longtime community members who are essential to the future of Neverwinter Nights Enhanced Edition.
    Will NWNX work with NWN: Enhanced Edition?
    We are working with the NWNX team to ensure compatibility with Neverwinter Nights: Enhanced Edition.

    Seems there is not real word yet which way they will go, just know they will not break the game for NWNx PW's.

    I'm thinking Mark Brockington, Jason Knipe will have big say so in where things go, base on what is and is not feasible based on time and man power. Then I'm sure Trent Oster will have a big say so base on what is and is not cost feasible. Then I'm Bernhard Stöckner will give his words where he can, based on the modding and PW community.
  • Dark_AnsemDark_Ansem Member Posts: 992
    The fact that NWNX doesn't work in SP is extremely jarring.
  • JapualtahJapualtah Member Posts: 165
    This is an old discussion, but as a PW designer I thought I'd chime in.
    We have been using NWNX back in the days, and, as great as it was, I don't want to hear about it anymore.
    I'm going the NDBE route, just because there's no NWNX for Windows. I'll be using a Windows freeware watchdog and that's it.
    Improving the database inside the toolset is, in my humble opinion, the way to go.
  • FinalStandFinalStand Member Posts: 87


    So, @Cablefish , if you have a reason for not using NWNX on your PW, I'd love to hear it.

    I don't use NWNX. I tried in past, but biggest so stoppers:


    1) I've tried using it for over 5 years (back with classic NWN). Every few months we would get crashes and stability issues. We would find a bug report it and they would fix it. But generally meant we would have a bunch of crashes for a week or two until newest patch game out. Then rinse and repeat. It really annoyed our players.

    I'm sure it's more stable, now, but I have never had stability issue with bioware database.

    2) I'm working with a team trying to get their old module working. It's tied in tightly with NWNX and really cumbersome and slow going. It's not fun to work with.

    3) There are a lot of tricks to make Bioware DB faster. Ram disk/flushing, in game caching, etc. We use Bioware DB heavy in a mod and never had a performance issue.

    4) it's not as nice, but there are libraries to read/write bioware dbs using external programs. I'd rather have SQL, but using Fox Pro libraries can get you about the same results.








  • JuliusBorisovJuliusBorisov Member, Administrator, Moderator, Developer Posts: 22,724
    The card is now Long-term Active >3 months. :)

    Thanks everyone for their feedback!
This discussion has been closed.