Author Topic: Collaboration / Multi Editors of Modules  (Read 1711 times)

Legacy_Ursul

  • Newbie
  • *
  • Posts: 4
  • Karma: +0/-0
Collaboration / Multi Editors of Modules
« on: December 15, 2015, 08:49:45 pm »


               

Hello folks!


 


Used to do quite a lot with the toolset back in the day, but haven't used it for years. I was thinking of getting back into it. 


 


Question that I couldn't find answered anywhere:


 


Is there a way for multiple people to collaborate on a module?  At the same time? I have only ever used it solo before, but was trying to think how multiple people could collaborate?  Assuming there is not a simultaneous editing option...how do people do it?


 


Thanks!


 


Ursul


               
               

               
            

Legacy_Tchos

  • Sr. Member
  • ****
  • Posts: 454
  • Karma: +0/-0
Collaboration / Multi Editors of Modules
« Reply #1 on: December 15, 2015, 11:37:18 pm »


               

If NWN1 works the same as NWN2, there should be a "directory mode" that keeps the entire module unpacked into a folder where it can be worked on in individual parts rather than as a whole, and played without needing to pack it into a .mod file.  If the module folder is shared via Dropbox or any kind of revision control system, then any number of people could work on the module at the same time, as long as they coordinated so that they weren't modifying the same pieces (such as a given area, blueprint, dialogue file, etc.) at the same time, but revision control software would keep that from happening.



               
               

               
            

Legacy_Proleric

  • Hero Member
  • *****
  • Posts: 1750
  • Karma: +0/-0
Collaboration / Multi Editors of Modules
« Reply #2 on: December 16, 2015, 12:27:25 am »


               Probably the easiest method is the toolset export/import feature. Multiple authors can modify their own copies of the module, then export selected objects. The recipient of these files can then import them to the master copy, authorising overwrites where appropriate.


I did this successfully with Beerfish and others when making "Crown of Creation" for Dragon Age. As Tchos says, it helps if each author is working on a well-defined task, with low risk of making conflicting changes to the same resources. We had an Integrator role, responsible for importing the results into a master copy, and reissuing it as a baseline from time to time.


I imagine there have been much larger projects of that sort in the NWN world.
               
               

               
            

Legacy_meaglyn

  • Hero Member
  • *****
  • Posts: 1451
  • Karma: +0/-0
Collaboration / Multi Editors of Modules
« Reply #3 on: December 16, 2015, 12:40:43 am »


               

There are ways to export the module datafiles into formats which can be stored in revision control systems.  Then you can treat the module as a software project and have access to all the tools used to do that sort of parallel and shared development.  The best convert-to-text-and-back tools I've found are Niv's ruby based tools, nwn-lib.   Using revision control also ensures you can get back to a working version easily you break something. Admittedly this all requires some software engineering skills beyond toolset use.


               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Collaboration / Multi Editors of Modules
« Reply #4 on: December 16, 2015, 03:11:28 am »


               


There are ways to export the module datafiles into formats which can be stored in revision control systems.  Then you can treat the module as a software project and have access to all the tools used to do that sort of parallel and shared development.  The best convert-to-text-and-back tools I've found are Niv's ruby based tools, nwn-lib.   Using revision control also ensures you can get back to a working version easily you break something. Admittedly this all requires some software engineering skills beyond toolset use.




hmm if there is something nwn toolset needs its an easier method to do this kind of work - I wasnt even able to install Ruby lol. A simple app that would packed module into such format without any external dependances except maybe NET Framework (which is pretty much standard) would be sooo nice.



               
               

               
            

Legacy_Ursul

  • Newbie
  • *
  • Posts: 4
  • Karma: +0/-0
Collaboration / Multi Editors of Modules
« Reply #5 on: December 16, 2015, 04:52:39 am »


               

Thanks all!


 


Makes sense. VCS seems strongest approach, but not without effort. Careful division of labor seems easiest, but obviously prevents collaborating on the same material. I guess you could always do some sort of screen share if you really wanted to work in real time. 


 


 


I am blown away by the continued community and knowledge around this game. Fantastic. I just realized that it has been 12 YEARS since I last spent time working on this. Wow!! I only know that because I found remnants of what I did are still on the vault.   Funny, but I am starting to encounter these moments in life that make me feel old.


 


Anyway, what prompted my question is that my daughter is now 9, and was doing the "hour of code" day and asked me about making games. That made me think of NWN and whether the two of us could collab in real-time on NWN.  I think what would work best for us might be just working on the same machine, and then maybe I go to my laptop to work on other areas and export once she gets busy on something. We shall see.


 


Thanks all!!


               
               

               
            

Legacy_Tchos

  • Sr. Member
  • ****
  • Posts: 454
  • Karma: +0/-0
Collaboration / Multi Editors of Modules
« Reply #6 on: December 16, 2015, 05:21:24 am »


               

Realtime simultaneous collaboration on a single module on different computers is indeed possible as I described.  Is there no directory mode in NWN1?



               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Collaboration / Multi Editors of Modules
« Reply #7 on: December 16, 2015, 05:49:07 am »


               


Realtime simultaneous collaboration on a single module on different computers is indeed possible as I described.  Is there no directory mode in NWN1?




When you open module, the whole module will unpack into NWN/modules/temp0


 


However that directory is temporary and will be removed when you close nwn1 toolset. I guess, it would be possible to set revision system on this directory but I dont know, never actualy tried - I expect a set of issues with palette files and similar stuff that gets rebuilded every single time you save toolset.


               
               

               
            

Legacy_Tchos

  • Sr. Member
  • ****
  • Posts: 454
  • Karma: +0/-0
Collaboration / Multi Editors of Modules
« Reply #8 on: December 16, 2015, 07:35:33 am »


               

The extraction to a temp folder happens in non-directory mode in NWN2 as well, but in directory mode the module is permanently a folder of its individual parts, unless or until you convert it back to a .mod, though it's not necessary to do so since it can be played as a folder.



               
               

               
            

Legacy_Failed.Bard

  • Hero Member
  • *****
  • Posts: 1409
  • Karma: +0/-0
Collaboration / Multi Editors of Modules
« Reply #9 on: December 16, 2015, 01:53:30 pm »


               

Realtime collaboration is possible using the various nwnx resource managing add ons, plus functions like nwnx_areas, and such, that allow areas to be loaded in and destroyed (albeit incompletely, since there are a few object types that aren't actually destroyable and stay in the internal object lists still).

You just need to have some sort of file access set up to the resource directory for the people working on it, and you can make quite a few alterations to the module remotely while it's running.



               
               

               
            

Legacy_meaglyn

  • Hero Member
  • *****
  • Posts: 1451
  • Karma: +0/-0
Collaboration / Multi Editors of Modules
« Reply #10 on: December 16, 2015, 02:07:55 pm »


               


hmm if there is something nwn toolset needs its an easier method to do this kind of work - I wasnt even able to install Ruby lol. A simple app that would packed module into such format without any external dependances except maybe NET Framework (which is pretty much standard) would be sooo nice.




Comes with my linux distros, although there have been some version issues at times '<img'>  It's pretty straight forward to work with on Linux. It's all shell scripting and command line. I personally have no interest in using .NET anything as it's only "pretty much standard" on Windows...


 


I have used the ruby tools on Windows by using cygwin. I've never tried to use them natively there.


 


Realtime updating a running module is a bit of a different thing. In that case you're still dealing with updating files in a single location. And you can still have issues with people doing conflicting things. NWNX does not help with that. 


               
               

               
            

Baaleos

  • Administrator
  • Hero Member
  • *****
  • Posts: 1916
  • Karma: +0/-0
Collaboration / Multi Editors of Modules
« Reply #11 on: December 18, 2015, 09:56:02 am »


               

On a sort of similar subject.


I wrote this post describing how one could have their entire module defined as resources in SVN (which can be contributed to by multiple authors and version controlled)


The module can then be pulled down by Jenkins, built and deployed.


 


http://forum.bioware...ivery-solution/


 


I currently use this for my solo module development, but it would work well for collaborate ventures, as you can have it e-mail if it has ncs build issues, or if the module packing fails or even if unit tests within the server fail.


Eg: If using nwnx_jvm you can run some tests to make sure that certain objects or events occur within the module when it starts.


If they dont - just throw an error and jenkins will report it.