Author Topic: Foundation  (Read 5703 times)

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
Foundation
« on: February 03, 2013, 07:36:01 pm »


               Foundation is a new initiative in the NWN community looking for members. This initiative aims to address two problems in the community and launch an ambitious project. 

Problem 1: CEP is in all but name an unsupported project despite the fact that the community's artists (makers if you will) are churning out some of the best work we've ever had the opportunity to use in NWN. Projects like CEP are of incredible value, but hold the community back when support dwindles.

Solutions: There is a potential technical solution to this in the works. BUT in the meantime the best solution is to create a new custom content compilation which works with the latest and greatest assets. The goal will be to maximize compatibility with current supported CC projects, and favor new content over old content.

Problem 2:  Scripters, builders, DMs, and skilled admins are a scarce commodity. This makes launching and sustaining a PW difficult. One of the most ambitious and exciting recent projects, The Border Kingdoms, suffered greatly from this situation. Which is a shame as it reinvigorated the dwindling PW player base.

Solution: Assemble a team with these skills and work together to build and support a foundation module for prospective persistent worlds.

There are of course other possible solutions. But the Foundation has a larger goal in mind which is served by these particular solutions: a PW Superserver project, meaning something similar to CoPaP in which all the participating PWs are able to link to one another. Linking PWs together creates a number of problems which CoPaP essentially soles with an agreement. The Foundation will solve these problems technically. Relying on a common set of resources (custom content and a universal foundation of scripts and systems), AND by introducing the possibility to translate a character from one world to an appropriate character in another will enable each individual PW team a greater degree of freedom than past projects have been afforded.


While this idea has been in my thoughts for over a decade, and in that of others for a few more than that, it was a recent thread that inspired me to get off my duff one more time and give it a shot. Evn if the PW superserver is not achieved the Foundation will benefit the entire NWN community with the two solutions I have outlined above.

There is much to discuss. Please vent, cheer, or pontificate in this thread to your heart's content. When we have a working website for the project, we'll post it. Although I think regular discussion here will always be of value.
               
               

               


                     Modifié par henesua, 17 février 2013 - 10:20 .
                     
                  


            

Legacy_Zarathustra217

  • Sr. Member
  • ****
  • Posts: 322
  • Karma: +0/-0
Foundation
« Reply #1 on: February 04, 2013, 12:02:01 am »


               This is an excellent initiative!

It's doubtful that we could ever fully integrate our PW (see sig.) given it's years of development of idiosyncrasies (and very narrow standards), but I'd certainly try to be here and offer my help where it makes sense. Especially on the custom content side, it'll be forward for us to take part, but having developed systems for a large PW for nearly a decade, I might also have some valuable experiences to share design-wise.

In extend of that that, my first suggestion: Do it one step at a time. Work modularly, implement a level of feature and have it relatively working and in use before you expand to the next step. We got so many very ambitious projects out there that never got off the ground because they aimed too big and had years of development before them before being able to release anything (even CODI and to an extend DLA suffered that fate). You learn so much - and gain so much - from practical implementation, so waiting until the entire project is finished before offering anything to the user is in my experience a poor choice.

To put it very concretely, if we could just get some sort of inter-server lobby going that we could all agree on, that would be a great start.

Second, I think it'll beneficial to have some sort of divide between play-types (a bit like the GameSpy "rooms"). Our PW (as example) is what some might brand hardcore roleplay, and we tend to be pretty obsessed about there being a story-wise logical continuity of things and that as much as possible is dealt with "in-character". It's obvious that it'll be easier for someone already used to that type of playing to feel at home there, where as people unfamiliar with this hardcore ("true") roleplay would need more introduction. It would be nice with some general setup which allowed for specifying different types of play to make it easier for the players to orientate - and easier for us to introduce the player to what is expected of them when entering our world.
               
               

               


                     Modifié par Zarathustra217, 04 février 2013 - 12:07 .
                     
                  


            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
Foundation
« Reply #2 on: February 04, 2013, 02:14:04 am »


               

Zarathustra217 wrote...

This is an excellent initiative!

It's doubtful that we could ever fully integrate our PW (see sig.) given it's years of development of idiosyncrasies (and very narrow standards), but I'd certainly try to be here and offer my help where it makes sense.


The support is welcome. Thank you.

I agree that it is not feasible for an existing project to take part in this. This project is for the next generation. Time and time again a project like Border Kingdoms shows great promise but falls apart due to lack of the resources needed to sustain it. It was disheartening to see BK crash and burn.

Zarathustra217 wrote...
In extend of that that, my first suggestion: Do it one step at a time. Work modularly, implement a level of feature and have it relatively working and in use before you expand to the next step.


That is good advice.

Zarathustra217 wrote...
To put it very concretely, if we could just get some sort of inter-server lobby going that we could all agree on, that would be a great start. 


I do not think that a lobby is needed for this project. Baaleos has already created a proof of concept. And that would work well for existing servers that are interested in networking together.

Zarathustra217 wrote...
Second, I think it'll beneficial to have some sort of divide between play-types (a bit like the GameSpy "rooms"). Our PW (as example) is what some might brand hardcore roleplay, and we tend to be pretty obsessed about there being a story-wise logical continuity of things and that as much as possible is dealt with "in-character". It's obvious that it'll be easier for someone already used to that type of playing to feel at home there, where as people unfamiliar with this hardcore ("true") roleplay would need more introduction. It would be nice with some general setup which allowed for specifying different types of play to make it easier for the players to orientate - and easier for us to introduce the player to what is expected of them when entering our world.


This is something to discuss between servers that will be connecting with one another.
               
               

               
            

Legacy_KlatchainCoffee

  • Sr. Member
  • ****
  • Posts: 372
  • Karma: +0/-0
Foundation
« Reply #3 on: February 04, 2013, 12:57:11 pm »


               On incompatibility with existing PWs, as someone else suggested, there could be ways to partially overcome this: for example using the new base build mod to create a small 'mirror' word, that would give the player taste of the said incompatible PW without having to download all the haks. There may even be a small IG quest string that would lead up to joining the main PW (with clear OOC instructions at some point of how to access it by getting right has etc).

From a player perspective I found it always very frustrating when browsing the server list to have so little information provided on any particular server and having to download a ton of hak to get an idea of what it was like.


Putting something out early might also be a good idea because if done in an interesting and entertaining way it might attract more people to the project who will like it and offer to do stuff. It would have to feel 'complete' within itself though, even if it just  stage in a much larger project. A lobby might work, but it could take other forms perhaps.

I'm afraid my lack of technical know-how and other resources limits how much I can help, but I'd me more than glad to do what I can to make this good.
               
               

               


                     Modifié par KlatchainCoffee, 04 février 2013 - 01:39 .
                     
                  


            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
Foundation
« Reply #4 on: February 04, 2013, 02:49:58 pm »


               

KlatchainCoffee wrote...
Putting something out early might also be a good idea because if done in an interesting and entertaining way it might attract more people to the project who will like it and offer to do stuff. It would have to feel 'complete' within itself though, even if it just  stage in a much larger project.


I agree, and I don't see nay barrier to doing so. The idea is that the Resources we prodce will be supported rather than just released. This opens up the possible to release one or more betas for review by the community before we produce an official release.

KlatchainCoffee wrote...
I'm afraid my lack of technical know-how and other resources limits how much I can help, but I'd me more than glad to do what I can to make this good.


We will need all the help we can get. Its up to us to figure out how to take advantage of it.


I think the biggest challenge is in gathering participants. As I said at the beginning I will not go this alone.
               
               

               
            

Legacy_Squatting Monk

  • Hero Member
  • *****
  • Posts: 776
  • Karma: +0/-0
Foundation
« Reply #5 on: February 06, 2013, 08:38:52 pm »


               I'd be willing to help out on the scripting end of things. I've spent quite a lot of time working on my own systems and scripting framework, and would be willing to contribute everything I have to any who want it. I can also do MySQL for anyone who needs help with persistence.
               
               

               
            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
Foundation
« Reply #6 on: February 06, 2013, 08:52:17 pm »


               Wow, with the Monk in the house I think we're reaching the basis of a team. Lets keep the conversation here for a bit. Rolo however is setting up a website for the group, and if things get more complicated, we can transition over.

Monk, I also have Arnheim to offer. And between our projects I think we'd be able to tease out a basic framework for the Foundation.

The first thing I'd like to tackle however is the character translator. The idea is that each server has a server vault for characters. But these servers can link to one another. Once a player ports from one server to another, they bring their character with them, but the character is translated upon arrival. I can see a bunch of problems that need to be solved with this. And I'd like to start hashing these out.

I'm at work so i don't have time to start drawing up a list of problems to  tackle to get this working, nor a basic design for how to do it. BUT I would like us to start talking about it. I think this is fundamental to making this work. If you can translate characters, you enable server hopping and linking without having to require all linked servers adhere to strict design guidelines.
               
               

               
            

Legacy_Rolo Kipp

  • Hero Member
  • *****
  • Posts: 4349
  • Karma: +0/-0
Foundation
« Reply #7 on: February 06, 2013, 09:35:04 pm »


               <taking a moment...>

I've been pretty quiet here, but that doesn't mean lack of interest. The IRS just decided to widen their audit of my favorite client (such a *nice* lady) from one year to three. And it's going to do more than sting. So, I'm busy.

But I *do* have a couple of thoughts here.

First, we need to define the mission of the organization. Henesua's described it, but not in mission terms. I offer:

Foundation will create and maintain an integrated system framework and compilation of custom content to be used as a foundation for Persistent World projects.

Foundation will remain non-partisan in it's choice of systems and content included and its implementation.

Intellectual properties contributed to Foundation will be included under the GNU General Public License (GPL-2.0) (though I'm willing to use a different license if someone can make a persuasive argument for it).

No material that is offered with other restrictions will be used!

I think this is a very important part. Too many of the problems in the past have been because of authors who feel their rights are infringed or users who failed to attribute credit. To remain non-partisan and productive, we have to proceed in an Open Source manner from the git-go.

Alright. Enough on that subject by me for now. :-P
Please chime in and help us shape this initiative.

I see several people willing to help, which really makes me proud of this community. But I've *been* proud of this community for a long time, so that's no surprise.

What does surprise me is the automatic assumption that the Foundation module will not be compatible with [__fill in the blank___]. We are the ones building this sucker. Why would we purposefully make something we wouldn't want to use?

Or, put another way, we want to make something so well put together and offering so much, that it would be a long serious think before deciding *not* to migrate our established world to Foundation.

We want to take a good look at the state of NwN and pull together all the best, most feature-rich (but efficient!) systems and we want to make them work together. We want to compile a library of the highest quality and most intriguing content and make them easy to add in.

And if we do it in a modular way, then we divorce the framework from the content and we can make "Plug-ins" or "Add-ons" for special purposes (like Star Wars or Warhammer 40k).

We have a blank slate, let's not assume anything just yet.

But if you're interested, step up.

<...to peep up>
               
               

               


                     Modifié par Rolo Kipp, 06 février 2013 - 09:36 .
                     
                  


            

Legacy_Rolo Kipp

  • Hero Member
  • *****
  • Posts: 4349
  • Karma: +0/-0
Foundation
« Reply #8 on: February 06, 2013, 09:45:33 pm »


               <putting his toe...>

Though I think it's early to discuss specifics, I'd really like to see GnuPG (the GNU implementation of Pretty Good Privacy) integrated with the translation sub-system. Being able to authenticate the bic came from a trusted server or was last modified on a trusted server will make a lot of inter-server movement far more appealing to both admins and players.

I mean, if you're going to start talking about it and everything ;-)

<...back in the door>
               
               

               
            

Legacy_Rolo Kipp

  • Hero Member
  • *****
  • Posts: 4349
  • Karma: +0/-0
Foundation
« Reply #9 on: February 07, 2013, 02:09:25 am »


               <trying to push...>

Had a minute to think and now I have a minute to post <so don't expect great wisdom>

I, like Henesua, think the translation sub-system is vitally important. (A reference link)

However, I think we still need to discuss *scope* (of which inter-server communication is a major issue). What exactly are we going to build?

I suggest:

A turn-key (but configurable) PW server mod with both a modular scripting framework and a modular content framework. Something an admin can download, answer some install questions and have running and online in minimum time, with minimum fuss. And something that can be updated easily and connected to other Foundation mods easily.

Then we create tutorials and options and plugins, etc.

One issue of that "scope" discussion is what to include in the Foundation "Core". *If* we can create a simple install profile and *if* we can assemble a platform independent mix, I personally would really like to integrate NwNx from the very start.

This is a huge design decision, and so many other systems depend on this, that it really must be hashed out and *decided*. (To make my stand, and how firm I am on that stand, perfectly clear - I consider Henesua the project lead here (until something changes) and will follow where he goes, but I really do think we need to take the initiative to make NwNx a *standard* for PW servers, and I think that begins here).

If we can agree on scope, we can start drilling down to systems and sub-systems. But this also declares what we are *not* going to try to accomplish. Specifically, the Foundation shouldn't be trying to *replace* existing groups (like CEP or Q or CTP...). Not saying any one wants that, I'm just trying to be clear :-P

And now, as I pack up for the day, I can honestly say I hope to see a wall of text here in the morning :-)

<...the griffon back in front of the cart>
               
               

               
            

Legacy_Squatting Monk

  • Hero Member
  • *****
  • Posts: 776
  • Karma: +0/-0
Foundation
« Reply #10 on: February 07, 2013, 02:38:22 am »


               As far as an extensible, customizable core framework, I've got one up and working. It's currently Linux-only (since it uses some Linux-only NWNX hacks), but I could modify it to cooperate with Windows. I've also a rough start at some documentation if you wanna take a look at it and see if it's the direction you're looking to go.

New server admins tend to be wary of NWNX because it seems arcane and there's little documentation on how to use it. Even once you get NWNX set up, it's difficult to figure out what it's appropriate to use it for and, then, how to tweak it for your needs. The basic APS persistence scripts, for example, are pretty lousy at anything but the most generic persistence.

Compiling simple, clear documentation can go a long way to solving the first problem. Making a persistence system that works well out of the box, without the server admin even needing to know how it works, can help solve the second.

So... yeah. I think "no-hassle NWNX" would be a good goal.
               
               

               
            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
Foundation
« Reply #11 on: February 07, 2013, 03:03:15 am »


               I have not used NWNX because I don't have the hardware for it. I am sure that I could figure NWNX out if I bought an intel box, installed Ubuntu and then started playing with it. But that is neither here nor there. I only mention this so that you understand my personal situation.

With regards to the Foundation: I would suggest not making NWNX a requirement of the core scripts because NWNX isn't necessary for a fully functioning PW. I've built two PWs now that work without it, one from scratch, one adapted from a unique persistence system (QNX). With that in mind I suggest that NWNX be the first "module" that we enable. It is extraordinarily useful for a PW, and there are many features I've long wanted access to. (Not enough however to buy another computer.)

However I suspect that NWNX is necessary for the character translation we've been talking about.

So that is another reason why I want to dive into this feature first, and determine what can be done in this regard without NWNX. If I can come up with a satisfactory solution, then I'll have my answer. But I know nothing about moving characters between servers. If anyone can point me to some threads to read up some strategies. Vaultster is one program I've heard mention. Are there other ways to tackle this?
               
               

               
            

Legacy_Highv Priest

  • Full Member
  • ***
  • Posts: 170
  • Karma: +0/-0
Foundation
« Reply #12 on: February 07, 2013, 03:09:29 am »


               I honestly found nwnx storage to be quite simple to work with and utilize. The only functions I found it lacking was in creating a data table and destroying a data table.(similarly to what the basic nwn database does with creating and destroying databases). Well if it helps...

void SQLDeleteTable(string sTable);

void SQLDeleteTable(string sTable)
{
SQLExecDirect("DROP TABLE "+sTable);
}

void SQLCreateTable(string sTable);

void SQLCreateTable(string sTable)
{
SQLExecDirect("CREATE TABLE "+sTable+" (" +
                   "player text(64)," +
                   "tag text(64)," +
                   "name text(64)," +
                   "val memo," +
                   "expire text(4)," +
                   "last date)");
}

Those were the only two functions I saw a need to add to improve the persistence system.

EDIT = If necessary I can write other SQL functions, but I haven't had much use for anything else. SQL is one of my favorite programs to run in any program, it's speedy and reliable, but nwn actually runs quite good on it's own and other then persistent storage it seems unecessary.
               
               

               


                     Modifié par Highv Priest, 07 février 2013 - 03:14 .
                     
                  


            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
Foundation
« Reply #13 on: February 07, 2013, 03:16:40 am »


               Persistence is so easy to handle in any number of ways that I don't necessarily see that a server needs NWNX for it. Its the other stuff that NWNX does that I wish I had. Being able to edit anything about a character file for instance is a key feature - especially for character translation.
               
               

               
            

Legacy_Highv Priest

  • Full Member
  • ***
  • Posts: 170
  • Karma: +0/-0
Foundation
« Reply #14 on: February 07, 2013, 03:31:04 am »


               "The basic APS persistence scripts, for example, are pretty lousy at anything but the most generic persistence.

Compiling simple, clear documentation can go a long way to solving the first problem. Making a persistence system that works well out of the box, without the server admin even needing to know how it works, can help solve the second.

So... yeah. I think "no-hassle NWNX" would be a good goal. "

My response was to Squatting Monk. He was explaining that nwnx storage isn't well enough documented.

As for you... Why aren't you using nwnx? You don't -need- linux to run it(although it certainly helps). The program itself uses -0- CPU lol. I honestly think you can run nwserver and nwn on a 10 year old computer just fine. To setup nwnx all you do is paste the files into your nwn directory and then setup your server to be run in the nwnx.ini and and then double click nwnx and it does -everything- else for you.

EDIT= http://www.nwnx.org/index.php?id=nwnx2

Windows downloads is what you're looking for.
               
               

               


                     Modifié par Highv Priest, 07 février 2013 - 03:32 .