Academy for Modding Excellence
Welcome, Guest. Please login or register.

Login with username, password and session length
  Home    Forum    Help    Search    Login    Register  
*
News : MEMBERS WANTED!

Players & Builders of NWN & NWN2 needed to join the AME panel
December 10, 2019, 05:40:32 PM
+  Academy for Modding Excellence
|-+  Academy of Modding Excellence Public Forums
| |-+  General Discussion
| | |-+  NWShader
Advanced search
  0 Members and 1 Guest are viewing this topic. « previous next »
Pages 1 2 Go Down
Author
Topic: NWShader  (Read 17790 times)
« on: April 28, 2010, 05:52:27 PM »
peachykeen Offline
Dragon Egg
*
Posts: 13



Heya,

Bit new here, wanted to pop in and say hi, among other things. Wink

I've been working on the project NWShader for a little while now, and the recent versions have added some scripting functions and content-creation options NWN previously hasn't had. Among other things, these include fullscreen and material shaders (seen in NWN2, and The Witcher, Unreal 08, STALKER, Crysis, and other current-gen games) and script function to manipulate these effects during the game.
http://sourceforge.net/projects/nwshader/

For those of you unfamiliar with shaders, they're mini-programs in a simplified language that are run by the graphics card. They have the power to change how things are drawn on screen, from simple scrolling textures to shifting and twisting models and even multi-texturing (base texture, detail, lightmaps, reflections, etc).

They give the artist full control over how their content looks, no longer limited by what texture sizes or formats NWN can use and what special effects are built-in.

NWShader allows shaders to be attached to textures in NWN, appearing whereve the texture is used. Fullscreen shaders can be used for general effects, including some of the usual ones in newer games (bloom, depth of field, SSAO) and a few that work great with NWN (ghostly effects in your death area, alternate planes with totally different looks).

The script functions also allow for area shaders (turn an effect on or off when a player enters/leaves), event-based effects (focal length for cinematic-style cutscenes) and other effects.

Now, for those of you not text-oriented, I bring visual aids: Tongue

http://img718.imageshack.us/i/nwshader.jpg/ (not taken by me)
Screenshot Thread
My shot album

Area shaders: http://www.youtube.com/watch?v=h8FRa5Y75RA
Interactive shaders: http://www.youtube.com/watch?v=9SbZ7Vl2-KM
Neither of those videos are edited. That’s what the game looked like.

Edit: I also have a module built that will be going online shortly, after a bit more testing. It's a showcase of what NWShader can do from the module/scripting side, and of course needs you to be running it on your end. I'll post a link to that when it's stable.

A few examples of what you can do (not shown above):
Ultravision goggles or see-in-the-dark helm that don't use light effects
Realtime visual effects during cutscenes or scripted events, including things like fading to/from any color and movie-like focus, blur, and overlay effects
Scripted texture changes (attach material shaders to a forest tileset and use scripts to dynamically change the season)

NWShader can be used by players to improve the graphics in single player or on any server without any extra work or risk on the admin's end. With a few tweaks, the server (or even single-player modules) can send special commands to the player (using SendMessageToPC), giving authors, admins and DMs unprecedented control over what the player sees.

NWShader, by its design, runs client-side and acts much like an override. It is compatible with the CEP, CTP, NWNCQ, Project Q, and (so far) every known module, hakpak, or override. It works with singleplayer and multiplayer, on any server, and poses no security risk. It also works with programs like Fraps and XFire, and the camera hack or any server-specific engine tweaks (so long as NWShader is installed after the tweaks). It runs on Windows 2000, XP, Vista and 7 (32 and 64-bit), and I'm working on a Linux port (I'm afraid I don't have access to a Mac for development there). The system requirements are a bit above NWN and a video card capable of using shaders is obviously needed Wink, but with simple configurations NWShader has almost no slowdown and can even occasionally help with some driver problems on newer systems.



Now, I'm looking for content creators and scripters willing to try the new stuff. This isn't a call for people to program for me or make me a module, I'm looking for folks willing and able to incorporate the new features I've provided into their modules or projects and occasionally give feedback. This will greatly help with testing and development, and I have an open feature request thread on the project forums (http://sourceforge.net/apps/phpbb/nwshader/).

In case you're still wondering "why should I": Tongue
 - You get visual effects never seen before in NWN.
 - You get complete control over how your content is seen ingame.
 - You get simple script commands to manipulate the visuals.
 - You get documentation and any help you need (that I can provide) on using these and getting them set up.
 - You can always request features and improvements (or even contribute code or plugins if you're a programmer)
 - I get feedback on how to improve all the things you're getting. Wink


If you're interested in working with the new stuff, trying out NWShader, if you have tried it out and have feedback, or just have a few questions or comments, please contact me (a reply here, PM to pkpeachykeen at the BioWare boards, or email to cx029a@live.com all work fine). I'll get back to you as soon as I can.

Cheers, Sean Smiley
« Last Edit: April 28, 2010, 06:03:46 PM by peachykeen » Logged
 
Reply #1
« on: April 28, 2010, 07:47:41 PM »
Andarian Offline
AME Chairman and Site Admin
Administrator
Platinum Dragon
*****
Posts: 2381

WWW

This looks VERY promising and interesting -- I'll take a look at it when I have some time. I actually have a background in computer graphics, and the idea of writing GPU code to attach to textures sounds very cool.  Cool
Logged

 
Reply #2
« on: April 29, 2010, 10:43:03 AM »
Invisig0th
Guest

I think this is a very, very interesting project. As a Microsoft .NET developer with a CIS degree, this is the kind of thing generates waves of geeky excitement through me. My mind races thinking about the kinds of cool and exciting things that would be done with this.

However, as a NWN builder, I am unfortunately not comfortable with insisting that people install auxiliary DLLs on their client machine in order to fully experience my module, even if this does result in substantially improved graphics for those who do so. That could drastically limit the audience for my module.  Non-programmers have enough difficulty with getting the right module-related files in the right directories, much less messing with installing third party DLLs that intercept instructions to the graphics card. So even in a best-case scenario, this would only be used by a fraction of my players. At that point I must decide between the benefits of taking the time to leverage NWShader for a fraction of my players versus the benefits of spending that same valuable time doing things that would benefit all of my players. Faced with that choice, I'm going to choose the latter every time. Spending time on anything that only a small number of my players may end up using will always be a questionable use of my time. As such, I personally don't really see any practical way to incorporate this into my upcoming work. Other builders may disagree, but that's my own viewpoint on it.

It's clear this is a "chicken and egg" situation. I appreciate the fact that players probably wont' install NWShader if builders haven't made modules requiring it, but I also realize that most builders won't use NWShader if players don't already have it installed. And as a builder, it just doesn't make sense for me to make the first move on this one.

I certainly don't mean to discourage you, because I think what you're doing here is awesome. But as awesome of an achievement as this is, I can't see at this point how you will be able to bridge the gap between an interesting technical demo and widespread acceptance among those playing NWN. Until use of NWShader is ubiquitous among NWN players (which is to say, until it has at least the saturation that CEP has now), I simply won't be able to justify spending any significant time leveraging this technology in my own modules.

As people discuss this further, it may turn out that there are other options here that would facilitate widespread adoption. I hope so. In the meantime, I'm eagerly anticipating playing that demo module to see first-hand exactly what this technology can do.

« Last Edit: April 29, 2010, 10:48:28 AM by Invisig0th » Logged
 
Reply #3
« on: April 29, 2010, 11:29:47 AM »
peachykeen Offline
Dragon Egg
*
Posts: 13



Quote
However, as a NWN builder, I am unfortunately not comfortable with insisting that people install auxiliary DLLs on their client machine in order to fully experience my module, even if this does result in substantially improved graphics for those who do so. That could drastically limit the audience for my module. -snip- Other builders may disagree, but that's my own viewpoint on it.

I fully understand that, and pretty much expected it at the beginning. Because of this, I have a couple things to mention that may help your opinion.
First, a module built using NWShader commands will be usable by all players, whether they have it installed or not. All the commands are sent from module/server to client using SendMessageToPC, so there are a few things you can do. I have a partially finished module, for a PW, that asks the player in the beginning if they have NWShader installed and stores their response as a local int. Whenever the module might want to send a NWShader command, it checks that and can send or skip (for the area shaders, it amounts to an extra 2 lines of code each in the OnEnter and OnExit scripts). If you send a script command to a player without NWShader, it will show up in the message window (no harm, but kinda annoying), if they have it, the script commands will be hidden.

Edit: An example of turning a shader on when a player enters (uses an abyssal plane shader, just for example):
Code:
if ( GetLocalInt(entering_PC, "options_nwshader") == 1 ) { SendMessageToPC(entering_PC, "|nwshader fs_on abyssal"); }
That's it. Even more complicated things use a similar syntax, so hopefully it won't be hard to support. I've found adding NWShader commands to scripts is pretty easy so far, but I am biased toward it, of course.  Cheesy

Second, I'm willing (and offering) to put my time into adding NWShader support to modules. I obviously can't go over every module and add it, but if you want to use a few features, I'll be happy to write the scripts and shaders for you, either to get you started or add simple support. I'm not asking anyone to take huge amounts of their own time, I'm completely willing to do a lot of the work. I see it as a pretty fair tradeoff. Smiley
Third, I can't quote exact usage stats, but I do have download counts for NWShader. The last 3 updates, in order, were downloaded 159, 206, and the latest 303 times so far. So there are a few people out there using it. Not many yet, but that's what this is all about. Wink

Quote
Non-programmers have enough difficulty with getting the right module-related files in the right directories, much less messing with installing third party DLLs that intercept instructions to the graphics card.
I've worked on projects like this for other games, and trust me, I know how running tech support for this is. To help out non-programmers, I have a regular old GUI with a button to attach NWShader (done some technical overhauls since the last update that make it a lot easier). You just grab the archive, extract, run the GUI, click the button, and you're good to go.  Hopefully everyone can manage that. Wink Everything else has tooltips in the GUI and is documented on the project wiki.

Quote
It's clear this is a "chicken and egg" situation. I appreciate the fact that players probably wont' install NWShader if builders haven't made modules requiring it, but I also realize that most builders won't use NWShader if players don't already have it installed. And as a builder, it just doesn't make sense for me to make the first move on this one.
I understand completely. Defeating the "chicken and egg" situation takes something of capital, and I'll put in as much time as I'm able to get this out there and in use.

Quote
In the meantime, I'm eagerly anticipating playing that demo module to see first-hand exactly what this technology can do.
I sent a test copy to my testers last night and am getting some feedback already. Might have a few bugs to iron out, then I'll be releasing. The module is online and appears to be working fine.
« Last Edit: April 29, 2010, 11:39:06 AM by peachykeen » Logged
 
Reply #4
« on: April 29, 2010, 01:38:30 PM »
Invisig0th
Guest

First, a module built using NWShader commands will be usable by all players, whether they have it installed or not.
Oh yes, I was aware of that. The issue is not whether or not the new features degrades gracefully. I've seen your work, and I assumed that you would not be doing this if this was not the case.

Second, I'm willing (and offering) to put my time into adding NWShader support to modules.
That is a very generous offer, and I hope that builders who will be using NWShader do collaborate with you in that way. Even so, doing what you describe will unavoidably tie up some of the original author's time -- not just with regard to initial implementation, but also in troubleshooting subsequent problems that may or may not be related to NWShader. If something doesn't work properly, people will inevitably complain to the builder about it. In my own personal experience, technical people almost always underestimate the considerable time and effort required to work the kinks out of a system like this.  No matter how much of this time burden you graciously offer to bear yourself, the builders that you work with (at least initially) will still need to devote a significant amount of time and energy to building their module in a way that works properly with your tool. That is time that could instead be used for building things that would benefit every single player, including the ones that choose not to use NWShader. It's up to the builder to decide which way they want to go with that, and my decision at this time would be to do things that are useful to everyone whenever possible. Please don't interpret this as any sort of negative critique of your work here -- it is not.

It's also important to note that you and any builders that you work with will be asking players to install something that makes a fundamental change to the way the game executable works, regardless of what module is being played. In many ways it is similar to requiring people to put files in their OVERRIDE folder, because it is a change that potentially impacts every module played with this game executable. That fact is going to make it harder for ALL builders to debug problems that are reported with their modules, because not only will they have to ask people with problems to empty out their override folder, now they will also have to also ask people to remove NWShader for debugging purposes (which those players may or may not even know how to do). So what you are doing here will most certainly directly impact all the builder who have no interest in using your tool in their existing or upcoming modules. This is something that cannot be said for the other comparable projects like CEP, ProjectQ, etc. And some folks will not be happy about it.

No matter how excellent you are at doing what you are doing (and I have no doubt that your skills here are exceptional, and your motivations good), the fundamental idea of what you are doing brings up lots of concerns and drawbacks. These things will unfortunately remain a barrier to widespread use of your tool. It seems to me that this is just a fundamental characteristic of the type of thing you are trying to do here. The people who use your tool effectively will definitely love it -- I have absolutely no doubt of that. But there will also be lots of people who either don't want to use it, don't bother making the effort to figure out what it is or how to use it, or don't even know about it. As a builder, I need to focus my energies on making modules that *all* those people can play.

I'll say it again -- I'm very excited to see where this project leads. I'll definitely be trying any demos you upload, and I may even take some time and test it for fun. But this is likely to be something that I never actually implement with my own projects due to the various concerns I've mentioned above. For the foreseeable future, my efforts must remain focused on games that can be fully enjoyed with a vanilla NWN installation and no third party tools. I'm sure you can appreciate the reasons behind that. That's not meant to detract from the exciting work you are doing here or to discourage others from using NWShader in their projects. But I do think it is important to have an open discussion about some of the reasons why someone might *not* want to take this route. Like everything else in software development, NWShader has pros and cons, and knowing about them helps people to make better decisions.
Logged
 
Reply #5
« on: April 30, 2010, 04:26:05 AM »
Invisig0th
Guest

Also, please don't misquote me or paraphrase me in other forums. The following is from your post on the Bioware forums.
Quote
Posted 04/29/10 19:32 (GMT) by pkpeachykeen
I'd also like to address a concern someone brought up at another forum. They mentioned that they'd rather not put their time in if they won't have anyone benefiting from it.
That's not what I said. I said that I cannot use your NWN add-on in my own published module because only a portion of my players would see the improvements that come with NWShader. My concern is that I don't want the rest of the people thinking they are getting a sub-standard version of my module simply because they are not using NWShader. It's a reasonable concern. I'm also not willing to insist that my players install something that changes the underlying way the game executable functions in order to play my module. That is also a reasonable concern.

I'm not saying your tool is not interesting or useful. I'm just telling you that your tool is not the right thing for what I am doing, and why it may never be a suitable fit for my own projects.

I may very well "put my time in" helping you to test this. I did say I was willing to help out. But I can't use this in my module, which is exactly what you asked for in the first post. I thought you deserved to know why I am not willing to do that.
I'm looking for folks willing and able to incorporate the new features I've provided into their modules or projects
« Last Edit: April 30, 2010, 08:34:22 AM by Invisig0th » Logged
 
Reply #6
« on: April 30, 2010, 05:34:45 AM »
Invisig0th
Guest

The chances are also very high that you will have at least a few problems with certain video cards. Even if you do everything absolutely right on your end, there definitely will be hardware and/or drivers out there that just don't properly implement the features you are leveraging. Those will be problems that you literally cannot fix by improving NWShader. They would require players to either upgrade their drivers or their video card in order to use NWShader.

As it turns out, there are *lots* of people running NWN using crappy on-board video cards, most of them successfully. I do realize that the ones that don't support shaders at all will not be a problem. It's the ones that have implemented shaders and implemented them badly or in a buggy manner that I'm worried about. And unfortunately, the serious gamers that will be testing NWShader are extremely unlikely to experience problems like that, because they are extremely unlikely to be using a crappy video card.

As a module builder, I certainly don't want to be fielding questions about upgrading video cards and drivers in addition to addressing the normals bug reports associated with a module.  Most players don't even know what a video card driver is. And they won't be complaining to you as the author of NWShader -- they will be complaining to me, as the author of the module that doesn't work properly. And, honestly, it's my job to address any such issues.

You are not yet at the point where you are aware of those problems (or apparently even aware of the likelihood of such problems). It's very easy to be optimistic regarding things like this at the beginning of a project. But personal experience tells me that you are in for some harsh realities further down the road on this one.

The answer to all this, of course, is a lot more testing. It's clear that you are serious about doing lots and lots of testing, which is great. But that kind of testing has to happen *before* most serious module developers will consider integrating NWShader into their beloved projects. Asking people to help you test your tools is one thing, and it is a good thing. Asking people to use your tool in their personal projects without knowing the potential drawbacks is another matter entirely. Integrating a tool like this into serious development projects the last step in the process, not the first.
Logged
 
Reply #7
« on: April 30, 2010, 01:33:25 PM »
peachykeen Offline
Dragon Egg
*
Posts: 13



That is a very generous offer, and I hope that builders who will be using NWShader do collaborate with you in that way. Even so, doing what you describe will unavoidably tie up some of the original author's time -- not just with regard to initial implementation, but also in troubleshooting subsequent problems that may or may not be related to NWShader. If something doesn't work properly, people will inevitably complain to the builder about it. In my own personal experience, technical people almost always underestimate the considerable time and effort required to work the kinks out of a system like this.
Having run tech support on other projects for years, I know full well what kind of time and effort goes into troubleshooting and debugging. I've seen the exact same questions asked hundreds of times by users, handled wiki updates and release distribution for user-bases of over 10,000. It's a pain, I'm not going to lie. But it's something I do have experience with, and with NWShader I'm trying to avoid a lot of the other issues I've seen. Stability and ease-of-use are top priority, and I've implemented every user suggestion so far to improve on both of those. The code is as stable as I can make it, and for the last couple versions, I have not seen a crash caused by NWShader code. The options and features are well labeled and I spend time between every update documenting as many things as possible.

Quote
It's also important to note that you and any builders that you work with will be asking players to install something that makes a fundamental change to the way the game executable works, regardless of what module is being played. In many ways it is similar to requiring people to put files in their OVERRIDE folder, because it is a change that potentially impacts every module played with this game executable. That fact is going to make it harder for ALL builders to debug problems that are reported with their modules, because not only will they have to ask people with problems to empty out their override folder, now they will also have to also ask people to remove NWShader for debugging purposes (which those players may or may not even know how to do). So what you are doing here will most certainly directly impact all the builder who have no interest in using your tool in their existing or upcoming modules. This is something that cannot be said for the other comparable projects like CEP, ProjectQ, etc. And some folks will not be happy about it.
This is true, and is, of course, based on how NWShader functions. It's impossible, with the current knowledge of the engine, to prevent that. However, I can (and have) avoided the issue as much as possible from my end. Disabling NWShader is as simple as enabling it, a single click. NWShader makes a backup of the single file it modifies, and is compatible with all other known modifications to the engine. In addition, all of NWShader's code sits beneath the engine (with the exception of the 4 hooks, which use Microsoft-designed libraries to safely connect to the game).

Also, please don't misquote me or paraphrase me in other forums. The following is from your post on the Bioware forums.
Quote
Posted 04/29/10 19:32 (GMT) by pkpeachykeen
I'd also like to address a concern someone brought up at another forum. They mentioned that they'd rather not put their time in if they won't have anyone benefiting from it.
That's not what I said. I said that I cannot use your NWN add-on in my own published module because only a portion of my players would see the improvements that come with NWShader. My concern is that I don't want the rest of the people thinking they are getting a sub-standard version of my module simply because they are not using NWShader. It's a reasonable concern. I'm also not willing to insist that my players install something that changes the underlying way the game executable functions in order to play my module. That is also a reasonable concern.
I had no intention to misquote you, apologies if it seemed I was. You did state that:
Quote from: Invisig0th
But this is likely to be something that I never actually implement with my own projects due to the various concerns I've mentioned above. For the foreseeable future, my efforts must remain focused on games that can be fully enjoyed with a vanilla NWN installation and no third party tools.
While I may have paraphrased (to avoid a direct, identifiable quote, which I thought would certainly be rude), they have the same meaning. You're not planning on using it, at least not for now. I understand your reasoning, and obviously, you're not in the crowd I'm trying to sell to. Wink If you choose not to use the features or incorporate it into your work, so be it. I'm still looking for anyone who is interested in doing so, and I've found at least a few people so far.

Quote
The chances are also very high that you will have at least a few problems with certain video cards. Even if you do everything absolutely right on your end, there definitely will be hardware and/or drivers out there that just don't properly implement the features you are leveraging. Those will be problems that you literally cannot fix by improving NWShader. They would require players to either upgrade their drivers or their video card in order to use NWShader.

As it turns out, there are *lots* of people running NWN using crappy on-board video cards, most of them successfully. I do realize that the ones that don't support shaders at all will not be a problem. It's the ones that have implemented shaders and implemented them badly or in a buggy manner that I'm worried about. And unfortunately, the serious gamers that will be testing NWShader are extremely unlikely to experience problems like that, because they are extremely unlikely to be using a crappy video card.
There are some issues with certain cards. I've avoided as many as physically possible, but using native drivers and standard Windows linkage. Of course, there is a lower limit for hardware. There are very few (if any) chipsets and drivers that misimplement the extensions NWShader uses, for the most part they are either implemented or completely absent. In the case of some issue, all NWShader code is surrounded by try-catch blocks (which allow it to internally handle issues), with error-recovery and logging in the catch blocks. For example, I had a few issues early on with bad or corrupt shaders crashing the game. I added code allowing NWShader to dynamically disable any shader it finds might have a problem on that particular system, at runtime. In other words, it's designed to adjust to the game as it runs and recover from any errors to the fullest extent possible with the C++ language.
As for testing, I actually have a range of video cards and systems with people helping test. NWShader has been tested on Windows 2000, XP, Vista and 7, on everything from a Radeon x800 to HD 5000-series cards, as well as a similar variety of nVidia chipsets. The only incompatible setup we've identified so far was an Intel GMA550, if I remember right, which is renowned for having poor 3d support. The wiki has a page listing all known compatible and incompatible cards, as well as links to other pages with feature summaries of various generations and chipsets. All possible care is being taken to make NWShader as universally compatible as possible.

Quote
You are not yet at the point where you are aware of those problems (or apparently even aware of the likelihood of such problems). It's very easy to be optimistic regarding things like this at the beginning of a project. But personal experience tells me that you are in for some harsh realities further down the road on this one.

The answer to all this, of course, is a lot more testing. It's clear that you are serious about doing lots and lots of testing, which is great. But that kind of testing has to happen *before* most serious module developers will consider integrating NWShader into their beloved projects. Asking people to help you test your tools is one thing, and it is a good thing. Asking people to use your tool in their personal projects without knowing the potential drawbacks is another matter entirely. Integrating a tool like this into serious development projects the last step in the process, not the first.
Like I mentioned above, I'm fully aware of both ends of a project like this. I've been doing development on them for a while, and running tech support for some time before that. If anything, I'm overly pessimistic about such things. I know what it's like to answer a question that's been answered 3 posts up, 10 before that, and is in the contents list of the opening post of the stickied thread. Tongue This isn't my first time down this path, and I'm taking what I've learned before into heavy consideration.
In regards to testing, I am running as much testing as possible. This project is still in development, obviously, with new features being added all the time. Before a release ever sees the main download page, I run it through a group of testers and fix as many issues as possible. A few have slipped through, but were handled as soon as I was able to (mostly configuration issues and some driver problems in the first few revisions). What is implemented is highly stable, especially for something that's commonly considered impossible. I've delayed releases to fix a single crash before, and the current version (with script functions) took quite a while to get to a state where I was even remotely confident with it. Even still, it's in internal testing before it will see a public release, because of how much has been changed.
In the opposite end of your comment, though, I have seen a similar addition take off in a game community. Once it become stable and known, usage went through the roof and it became an established part of the game, with not using it the exception. At this point, I have no idea if NWShader will reach that level of acceptance, but I will do anything I can to create as high-quality a product as is possible.

In summary, NWShader is a (for NWN) advanced addition. It does things not done before, and is somewhat complex. That's necessary, because it does things none of the developers anticipated or prepared for. Some things have to be worked around, some handled as problems appear.
Everything possible is being done to make NWShader stable, reliable, useful and easy to use. I keep a bug tracker online at all times, as well as searching Google for any issues people run across that I haven't seen or weren't reported. I'll be continuing active development and troubleshooting indefinitely, or until such time as NWShader is completely stable and has every feature anyone wants.
I understand that, at this stage in the game, not many people will be jumping on board the new ship that's showed up. I completely understand your points, and (with all due respect), you're not in the crowd I'm selling to. If you want to use NWShader, if it becomes an established part of the community, I'll help you develop for it then. Until then, I hope you enjoy any playing with it, and any problems you spot, just send em' over. Smiley

If there are any authors willing to give it a shot or who want to try it out now, early adopters per-say, I'll certainly help with the development of any module taking advantage of the additions.
« Last Edit: April 30, 2010, 01:36:06 PM by peachykeen » Logged
 
Reply #8
« on: April 30, 2010, 02:44:31 PM »
Invisig0th
Guest

Alrighty then. I guess I'll just suggest that you might want to be a bit more forthcoming up front regarding the known limitations and problems of NWShader, as well as being more open to the possibility that other limitations and problems will be found. Presenting your software as if it is completely risk-free and bug-free is always guaranteed to arouse suspicion from people who know better.  It does appear that you honestly believe that there is no possible way that what you're doing could cause serious problems for some people. I sincerely hope you're right about that.

However, I still don't think you really appreciate how much of a burden you would potentially be putting on the entire NWN community by encouraging hundreds of people to replace a critical game DLL for the sake of better eye candy. Replacing a Bioware DLL with an altered version is a very drastic change, and doing that can easily cause all sorts of nightmares for the end users. Anyone who doesn't see that as a cause for at least mild concern is simply not being realistic. I realize you are completely comfortable with that risk, but not everyone will be. And this won't just impact people who install NWShader -- it will impact a lot of other folks. You yourself have said that what you are doing here is very similar to putting files in the override, since the changes your tool makes are global in scope. As we all know, files in the override are *notorious* for making troubleshooting other problems significantly more difficult. Builders are going to be extremely unhappy if it turns out that NWShader breaks any of their (non-NWShader) modules, even if only a small number of modules and a small number of players are impacted. Mark my words -- you will definitely get complaints if and when that happens.

I'm sorry if you feel I'm picking on you here - that is not my intention. But these concerns are very real and very relevant. You will need to wrestle with these things in one way or another.

As for misquoting me -- you did misquote me. You said "They mentioned that they'd rather not put their time in if they won't have anyone benefiting from it." I never said that I wouldn't "have anyone benefiting from it". In fact, I openly admitted that some portion of my players would definitely benefit from me using NWShader. My concern was that not everybody would benefit, which is a very different (and entirely accurate) statement.

Anyway, best of luck with your project.  Believe it or not, I am interested to see where it goes. I just wish you had been a little more open up front about the potential drawbacks, and a little more understanding of why knowledgeable people might reasonably be reluctant to adopt this kind of fundamental change to the game's code. Your apparent reluctance to discuss these very real risks gives me some cause for concern regarding this project.
« Last Edit: April 30, 2010, 04:32:43 PM by Invisig0th » Logged
 
Reply #9
« on: April 30, 2010, 04:24:48 PM »
peachykeen Offline
Dragon Egg
*
Posts: 13



Alrighty then. I guess I'll just suggest that you might want to be a bit more forthcoming up front regarding the known limitations and problems of NWShader, as well as being more open to the possibility that other limitations and problems will be found. Presenting your software in a way that could be read as saying that it is completely bug-free is certain to arouse suspicion from those people who know better.

There have been bugs, in fact there are a couple minor visual ones I have yet to iron out. It is not completely bug-free, but I'm certainly trying to get it there. There are, obviously, limits, and I mentioned those. Both hardware-wise and how much I can get into the engine, I've run into a few limits already.

Quote
It does appear that you honestly believe that there is no possible way that what you're doing can cause big problems for some people. I sincerely hope you're right about that. However, I still don't think you really appreciate how much of a burden you will be putting on the entire NWN community by encouraging hundreds of people to replace a critical game DLL for the sake of better eye candy. Replacing a Bioware DLL with one you wrote is a very serious change, and it can obviously cause all sorts of nightmares for the end users. Anyone who doesn't see that as a cause for at least mild concern is simply not being realistic. I realize you are comfortable with that risk, but not everyone will be. You yourself have said that what you are doing here is very similar to putting files in the override, since the changes your tool makes are global in scope. As we all know, files in the override are absolutely *notorious* for causing confusion and often make troubleshooting other problems significantly more difficult. Builders are going to be extremely unhappy if it turns out that NWShader breaks any of their (non-NWShader) modules, even if only a small number of modules and a small number of players are impacted. Mark my words -- you WILL get complaints if and when that happens.
I think you misunderstand how it works there. It doesn't overwrite anything BioWare, or even anything else. I haven't replaced any of BioWare's DLLs, only added a new one. Any code sits between BioWare's original interface and the existing system interface.
Imagine a cable, I simple added a box halfway down the line. It takes NWN's commands, modifies them as needed, and passes them onto the system. If anything goes wrong, it falls back to a simple pass-through method that does no modification.

Quote
As for misquoting me -- you did misquote me. You said "They mentioned that they'd rather not put their time in if they won't have anyone benefiting from it." I never said that I wouldn't "have anyone benefiting from it". In fact, I openly admitted that some portion of my players would definitely benefit from me using NWShader. My concern was that not everybody would benefit, which is a very different (and entirely accurate) statement.
Again, apologies. It does appear my turn of phrase misrepresented you, and that is my mistake.

Quote
Anyway, best of luck with your project.  Believe it or not, I am interested to see where it goes. I just wish you had been a little more open up front about the potential drawbacks, and a little more understanding of why knowledgeable people might reasonably be reluctant to adopt this kind of fundamental change to the game's code. I personally don't believe that this is worth the risk. On that point we'll have to agree to disagree.
Thank you for your interest, and I'm sorry for the misquote and any (accidental) misleading. There are a few issues, I'm just trying to get rid of them. Nothing in the game code or system code changes, I simply add a layer in-between.
Logged
 
Reply #10
« on: April 30, 2010, 04:31:56 PM »
Invisig0th
Guest

My mistake. You're absolutely correct, of course -- this is adding a link to the chain, not replacing an existing link. However, adding another potential point of failure inevitably results in increasing the total number of failures. hopefully that number will be very low in this case.

Thanks very much for the cordial and reasonable discussion. We may not agree on some of these points, but hopefully at least we can both see where the other person is coming from.
« Last Edit: April 30, 2010, 04:39:03 PM by Invisig0th » Logged
 
Reply #11
« on: April 30, 2010, 07:07:24 PM »
peachykeen Offline
Dragon Egg
*
Posts: 13



My mistake. You're absolutely correct, of course -- this is adding a link to the chain, not replacing an existing link. However, adding another potential point of failure inevitably results in increasing the total number of failures. hopefully that number will be very low in this case.
Unfortunately true. Smiley
I have had plenty of crashes in the tests I've done, especially in the engine hook. The scripting functions alone took weeks of solid work to get working right, and it was a lucky find on Google that helped me simplify them, otherwise it would have been quite a while longer. I've found Microsoft to be most helpful in this project, at least their Detours library (it has some helpful tutorials and manages all the engine hooks for me).
All in all, the fallback code I added removed almost 90% of the crashes I'd seen or heard of, which was a very nice result for very little code. There is one I know happens occasionally at the moment (sometimes the game crashes when no shaders are enabled and you close the game, due to something in nVidia's code or how I call it), but not too many pop up anymore. There's still a few visual bugs, but nothing game-breaking. For a project still technically in alpha, I'd like to think that's a good thing.

Quote
Thanks very much for the cordial and reasonable discussion. We may not agree on some of these points, but hopefully at least we can both see where the other person is coming from.
I do understand your reasoning, and you do make valid points. I, of course, am terribly biased towards my project and wish everyone instantly loved it. Tongue I know that's not going to happen, so I'm trying to get as close as I can.

I'm also starting to wonder if there's anyone else on these forums. Tongue
Logged
 
Reply #12
« on: May 01, 2010, 10:32:47 AM »
QSW Offline
AME member
Silver Dragon
***
QSW by Dragarta Posts: 674





I'm also starting to wonder if there's anyone else on these forums. Tongue

Aha, yep, more of us than you might guess from the absence of loud banging and chatter.  Of course, I only have a very basic layman's idea of what you're talking about, but don't let that stop you....it hasn't stopped me yet Wink
Logged

Dragon Disguised as Quality Family Butcher...
 
Reply #13
« on: May 01, 2010, 08:17:20 PM »
peachykeen Offline
Dragon Egg
*
Posts: 13



Well, for anyone interested, I've released the update and have the demo online.

The download is here:
https://sourceforge.net/projects/nwshader/files/

And the address for the server thus:
http://cx029a.dnsdojo.com
It's also listed as "NWShader Server" under the action category in GameSpy. It's a simple server, just showing off some of the new script functions. The default setup NWShader comes with is basically what the server uses, although you can enable the shader "color.cgfx" (check it off under the GUI's shaders tab) for a few more fancy functions.

I've had a few bug reports so far and am trying to track them down at the moment, but I've gotten far more success reports with this release. Even the bug reports have had details and complete logs (thank the gods for on-crash logging).

The program that attaches NWShader creates a backup of the executable, so if you want to remove it, just delete the new one and rename that. I haven't seen or had any reports of module or content problems with the default settings (some of the WIP advanced stuff can break things if you turn it on, though).
Logged
 
Reply #14
« on: May 01, 2010, 09:16:18 PM »
Invisig0th
Guest

While looking into installing this latest version of NWShader, I see that installing NWShader requires literally replacing the main EXE for the game. Are you out of your mind?

I honestly think I understand why you don't think this is a big deal. But it's pretty clear that you do not fully appreciate why a whole lot of people are going to be unwilling to literally replace the game's executable file with something they downloaded off the internet. It does not matter how minor the changes to the main executable are, and it does not matter that you made it easy to revert to the "real" game executable -- you are asking people to do something very risky and very drastic here in order to use your tool, and providing no warning at all about the potential risk in doing so. Replacing the main executable of the game could break ***ANYTHING***. It's clear that this serious risk simply does not show up on your own personal radar, but the fact that you don't seem to understand why doing something like this will be a problem for a lot of people is severely troubling.  And the fact that you don't see how this could cause widespread problems throughout the community if a problem somehow crops up AFTER your tool is installed by hundreds of people is, quite honestly, frightening.

Sorry, for my part I'm uninstalling and deleting NWShader entirely. No thank you. It's terribly foolish in general to install any program that changes the core game files like this. Only people who know exactly what they are doing, and who are willing to reinstall the game if anything gets messed up, should even *consider* such a thing.

I'm sure you're ready to respond by telling me about all the extra effort you have put in to prevent such problems. And while all that may be true, you and I both know that this does not mean you can guarantee that no serious problems will occur. Everyone who replaces their core game files by installing this tool is taking a very serious risk, and you currently do not appear to be taking ANY steps to notify people about that. At the VERY least, you should have a disclaimer on your download page clearly explaining that the NWShader installation changes the core game files, that you cannot guarantee that serious problems will not occur due to those changes, and that anyone who installs NWShader must do so at their own risk. That is exactly what any responsible developer would do here.

With all sincerity, I truly mean no disrespect to you personally or to what you are trying to do here.You definitely have a high level of knowledge of the subject matter, and NWShader will be an interesting experiment for those people who are familiar with these types of things.  And I do think what you're doing is interesting on a very esoteric, academic level.  But the way you're going about this is terribly irresponsible.  If you honestly think that encouraging people not familiar with these things to alter their core game files without warning them of the potential risks is a good idea, then clearly there are some very important things that you don't understand at all.

Someone will definitely have to warn your users about the serious potential risks of what you are doing here, and it would be best if those warnings came from you as the developer. I would encourage you to take a good, hard look at all this. And this is exactly what I have been saying since your first post. The way in which you are going about this project sends up all sorts of red flags. I realize this is your baby and that it's natural to be overly optimistic, but please consider showing more concern for your users and for the NWN community as a whole. People will have a lot more respect for what you are doing here if you err on the side of caution. And the more radical the nature of what you are doing, the more reasonable it is to be overly cautious. If something does go seriously wrong, at least people cannot say they weren't warned of that possibility. Please do the right thing.
« Last Edit: May 02, 2010, 12:05:34 AM by Invisig0th » Logged
 
Print  Pages 1 2 Go Up
« previous next »
Jump to: