View previous topic :: View next topic |
Author |
Message |
Papillon x-man
Joined: 28 Dec 2004 Posts: 1060 Location: Germany
|
Posted: Thu Apr 26, 2007 17:19 Post subject: |
|
|
@Senalaya: I couldn't have said it better myself. That's the main difference between NWNX support, which we currently can expect, and a full API, which is probably among the heights of my question #5. Desireable, but probably also up in the clouds. _________________ Papillon |
|
Back to top |
|
|
Grinning Fool
Joined: 12 Feb 2005 Posts: 264
|
Posted: Thu Apr 26, 2007 17:20 Post subject: |
|
|
Senalaya wrote: | Grinning Fool wrote: | My question - which really isn't NWNX, but is related to the concept:
The ideal solution for integration would have three parts:
1. A base library of functions that is exposed to developers (things like execute script, alloc/dealloc string/int/etc, creating objects, classes for 'object', 'location', 'effect', etc) via a public API.
2. A script function LoadLibrary that would allow an init script to load required/desired DLLs.
3. A script function InvokeMethod("method name", param, param, param) or something very similar; if not the ability to call 'imported' functions directly. Should support the ability to pass all data types 'natively' into/out of the functions
The question is, is there any chance of getting to that point at some time in the future? If not, what about just getting #1, accessible from within NWNX? |
Your desire/question goes in the direction, what was asked from Bio and OE on their boards in the past. When it comes to providing a real API, dll or any sort of ACTIVE code for that regard, their security people go berserk.
Take your LoadLibary() for example. What would keep some moron from loading any OS DLL and to perform destructive tasks with it? And that all would happen by simply loading some NWN(2) module or trusting some scripts or hak-pack from the nwvault. No serious company would take such a risk. Right now, the worst thing a module or script can do is crashing NWN(2) itself.
It is a difference, if someone knowingly installs NWNX on his computer, in that case he knows, he's dealing with executables and potential risks. |
The risk is the same. Someone has to manually install additional files on their server in order for it to work. I would assume it would only load DLLs that are present in its root directory. _________________ Khalidine, a NWN2 persistent world
Looking for volunteers. |
|
Back to top |
|
|
Papillon x-man
Joined: 28 Dec 2004 Posts: 1060 Location: Germany
|
Posted: Thu Apr 26, 2007 17:27 Post subject: |
|
|
Grinning Fool wrote: | It is no different at all from what can be done, assuming at least #1 is provided. However, the hooking layer that NWNX provides would no longer be needed; it seems that this aspect of NWNX was a workaround to not having native access to this via scripting in the first place? |
Hmm, I think it's not a question of what CAN be done, but what actually WILL be done. Of course they could do it and of course it's within our rights to request it. But the past has shown that somewhere in between the "can" and the "could", companies draw a line of what actually will be done. I'm trying to jump over the line with my NWNX concept, because otherwise there would be no border crossing at all, IMHO.
NWNX is a workaround, that's true. It's a program that constructs bridges where there were none before. OE can not build every bridge we might need, so I am trying to give NWNX a many building bricks as I can.
Don't get my wrong. On the extreme other side, I would like to get the source code and do everything myself. For obvious reasons, we will not get the source. For obvious reasons, we will also net get a native API. That's why I'm currently trying to get at least something above the level of pure hacking. _________________ Papillon |
|
Back to top |
|
|
Grinning Fool
Joined: 12 Feb 2005 Posts: 264
|
Posted: Thu Apr 26, 2007 17:28 Post subject: |
|
|
Quote: | Don't get my wrong. On the extreme other side, I would like to get the source code and do everything myself. For obvious reasons, we will not get the source. For obvious reasons, we will also net get a native API. That's why I'm trying to get at least something above the level of pure hacking. |
I wholly understand and agree. I figured though, that it would not hurt to make the request. And -- perhaps -- if 2 & 3 are completely out of the question, 1 will seem reasonable by way of comparison _________________ Khalidine, a NWN2 persistent world
Looking for volunteers. |
|
Back to top |
|
|
Senalaya
Joined: 29 Dec 2004 Posts: 82 Location: Germany
|
Posted: Thu Apr 26, 2007 17:29 Post subject: |
|
|
Grinning Fool wrote: |
The risk is the same. Someone has to manually install additional files on their server in order for it to work. I would assume it would only load DLLs that are present in its root directory. |
The technical risk itself is the same, but the expectation and trust is not.
Right now, it is 100% secure to dl a module, erf or hak file, because they can't do any harm. This would totally change, if it would be able to execute functions outside of NWN(2) and the game developer and publisher could be held resposible for providing such a functionality. |
|
Back to top |
|
|
Senalaya
Joined: 29 Dec 2004 Posts: 82 Location: Germany
|
Posted: Thu Apr 26, 2007 17:35 Post subject: |
|
|
Grinning Fool wrote: | Quote: | Don't get my wrong. On the extreme other side, I would like to get the source code and do everything myself. For obvious reasons, we will not get the source. For obvious reasons, we will also net get a native API. That's why I'm trying to get at least something above the level of pure hacking. |
I wholly understand and agree. I figured though, that it would not hurt to make the request. And -- perhaps -- if 2 & 3 are completely out of the question, 1 will seem reasonable by way of comparison |
If you search the NWN, NWN2 and Dragon Age boards, you'll see that I made that exact request for an API and DLL support in the past myself - repeatedly. And I always got the same basic statements: security, trust in files and legal responsibility.
It's not that I personally wouldn't like to have that sort of interface, but I understand their reasoning and was merly quoting their usual responses to that idea. |
|
Back to top |
|
|
Grinning Fool
Joined: 12 Feb 2005 Posts: 264
|
Posted: Thu Apr 26, 2007 17:50 Post subject: |
|
|
Senalaya wrote: | Grinning Fool wrote: |
The risk is the same. Someone has to manually install additional files on their server in order for it to work. I would assume it would only load DLLs that are present in its root directory. |
The technical risk itself is the same, but the expectation and trust is not.
Right now, it is 100% secure to dl a module, erf or hak file, because they can't do any harm. This would totally change, if it would be able to execute functions outside of NWN(2) and the game developer and publisher could be held resposible for providing such a functionality. |
I can see this to a point -- but a mod could only access libraries explicitly placed into the install folder of NWN if this were done correctly. Still that would not eliminate all risk -- a module could /try/ to access DLLs that /may or may not/ be in there. _________________ Khalidine, a NWN2 persistent world
Looking for volunteers. |
|
Back to top |
|
|
virusman
Joined: 30 Jan 2005 Posts: 1020 Location: Russia
|
Posted: Thu Apr 26, 2007 20:09 Post subject: |
|
|
Papillon wrote: | Regarding the last comment by virusman:
Imagine two ways to go about NWNX:
1) The NWN1 way: Hours and days of debugging and hooking functions based on a more or less empirically found binary function signature.
2) The NWN2 way: Search for a known byte signature in the NWN2 executeables (server + client), e.g. NWNX_SETSTRING. Call that function and pass it a pointer to your very own function. Next, NWN will call your function directly, without hijacking functions meant for other purposes.
It's very little effort for OE to implement (some 10 lines of code per function). The old NWN1 way is still available of course, but I wanted to have at least the most basic functions nailed down in their executable, which next to strings, also allow passing floats and integer values.
Think about it this way: We, the community, ask OE to give us access to certain areas of the game, like game objects or simple variable values. We do not ask for specific functions on these entities, because with their support, we are in the position to implement them on our own. I would say this is a substantial multiplication of OE's development capabilities. | Yes, this approach would be very useful for functions we didn't find ourselves. But adding signatures for chat/runscript/etc. is not as significant as exposing new functions. |
|
Back to top |
|
|
kungfoowiz
Joined: 12 Oct 2006 Posts: 61
|
Posted: Sat Apr 28, 2007 8:22 Post subject: |
|
|
Hey’all
Two questions:
1. Hitpoints don’t appear to be stored on the actual character file anymore. It seems they’re generated at maximum by the NWN2 game itself.
Would it be possible to have the game read from the character file for hitpoints as in NWN1, and make a server configuration option to hide the hitpoint roll on character level-up?
2. Pretty much the same as the other posters, what’s the deal with sync’ing PWC’s? |
|
Back to top |
|
|
Grinning Fool
Joined: 12 Feb 2005 Posts: 264
|
Posted: Wed May 23, 2007 4:17 Post subject: |
|
|
Anything ever come of this? _________________ Khalidine, a NWN2 persistent world
Looking for volunteers. |
|
Back to top |
|
|
Papillon x-man
Joined: 28 Dec 2004 Posts: 1060 Location: Germany
|
Posted: Fri Jun 01, 2007 20:16 Post subject: |
|
|
Bump ? _________________ Papillon |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|