VoodooGem

Post » Tue May 08, 2012 4:08 am

I just had to login to tell you you're awesome, peachy.
(first try, too! :D)
:o :bowdown:
User avatar
Avril Churchill
 
Posts: 3455
Joined: Wed Aug 09, 2006 10:00 am

Post » Tue May 08, 2012 6:29 am

I second the point about peachy being awesome and stuff.
User avatar
Steve Bates
 
Posts: 3447
Joined: Sun Aug 26, 2007 2:51 pm

Post » Tue May 08, 2012 2:58 pm

Wow, talk about an update, and one that predicts a game that is now about 9 years old will be on par with one not even released yet! This is maddness! No! THIS...IS...MORROWIND...MODDINGGGGGG!!!
haha

Ok, after you get the bulk of work done on this, can you go lend a hand to the OpenMW project? Seems like you could really get them moving along. Great work though, without you people that can code this stuff, MW probably wouldnt be nearly as far along as it is today.
User avatar
Felix Walde
 
Posts: 3333
Joined: Sat Jun 02, 2007 4:50 pm

Post » Tue May 08, 2012 1:10 pm

sweet!
User avatar
Irmacuba
 
Posts: 3531
Joined: Sat Mar 31, 2007 2:54 am

Post » Tue May 08, 2012 3:03 pm

I'd happily test some features if there's any that are in need of an artist more then a programmer.

Oh and also very good question. Have you been able to hook into the landscape? either changing shader or swap textures?
User avatar
Sun of Sammy
 
Posts: 3442
Joined: Mon Oct 22, 2007 3:38 pm

Post » Mon May 07, 2012 11:37 pm

I'd happily test some features if there's any that are in need of an artist more then a programmer.

Oh and also very good question. Have you been able to hook into the landscape? either changing shader or swap textures?

Yeah, that would be cool - I was asking a long time ago if it's possible to add a shader to the ground surfaces that simulates the sun reflection (I don't know how to describe it exactly - as seen in WoW or Battlefield 2).

Also, is it possible to use such APIs like http://free-zg.t-com.hr/cssm/?

Keep it up on the good work Peachy! :)
User avatar
Javier Borjas
 
Posts: 3392
Joined: Tue Nov 13, 2007 6:34 pm

Post » Mon May 07, 2012 11:52 pm

I just had to login to tell you you're awesome, peachy.
:o :bowdown:
Having something work the first test, which both the variable system and filesystem have now done, is kinda an accomplishment. :P

Although, the sheer amount of testing I put this poor thing through, even before it runs in game, is definitely paying off. Visual Studio (the tool I'm writing Voodoo in) offers 5 levels of pickiness when it goes looking for possible problems (W1 through W4, and Wall). There's also a flag to treat warnings that might not be an issue as errors and scream and shout and refuse to continue.

Now, /Wall is so picky it complains about Microsoft's code and official C++ stuff, so it's not too much use. However, all components of Voodoo are compiled under W4, which has quite a few false positives but very few false negatives. In addition, all the Voodoo code is annotated for static anolysis and I run it through every rule Microsoft has published (and am searching for more). Again with warnings-as-errors turned on.

If there's one iffy bit anywhere in it, the whole things fails.

It took a while to get set up, but is making my life a ton easier, and should do the same for everyone else. :D

Wow, talk about an update, and one that predicts a game that is now about 9 years old will be on par with one not even released yet! This is maddness! No! THIS...IS...MORROWIND...MODDINGGGGGG!!!
haha

Well, that miiiiight be a touch of wishful thinking, but then again, wishful thinking followed by everybody working together to do it is why we're all here and have gotten this far, so a bit more can only take us further. ;)

Ok, after you get the bulk of work done on this, can you go lend a hand to the OpenMW project? Seems like you could really get them moving along. Great work though, without you people that can code this stuff, MW probably wouldnt be nearly as far along as it is today.
I may help out there if I can, time is a bit short at the moment and the vast majority of what I have is dedicated to Voodoo. Once Gem is done, I have about 2 dozen other games to support, so I may be a while. :P

I'd happily test some features if there's any that are in need of an artist more then a programmer.

Oh and also very good question. Have you been able to hook into the landscape? either changing shader or swap textures?
I'm actually starting to put together a list of things I can't do artistically. I'm not sure when, but I'll start sending out a few PMs to folks. Right now I'm looking at some simple models and (re)textures to test things like crystal effects, volume clouds, velvet, that sort of stuff.

As for landscape textures, they work pretty much like other textures, so from what I've seen so far (haven't examined them totally, just a glance) materials should work the same. Once materials are fully up and working, I'll be testing them in land. Need to figure out how best to handle blending, though (and see if shaders can make more than 2 textures blend smoothly).

Yeah, that would be cool - I was asking a long time ago if it's possible to add a shader to the ground surfaces that simulates the sun reflection (I don't know how to describe it exactly - as seen in WoW or Battlefield 2).
Like normal mapping the ground, or doing shiny snow and such? The shaders for those are pretty simple (I actually have them written up already), so as long as the stuff I mentioned after Mireneye's post work out, whatever ground effects you want can be slapped on.

Also, is it possible to use such APIs like http://free-zg.t-com.hr/cssm/?
Hm. Well, generally speaking with the plugin setup, yes, you can use external stuff. It may take a bit of tweaking, but that's the idea.

Specifically for that library, I have no idea, need to go over it. Some of their concepts certainly look interesting, though. Nice find, let's see if it works. :)




Something I'd like to mention, possibly necessary or not, is that whenever I say things like "yeah, that sort of thing generally works" or "whatever you want", it is absolutely not apathy on my part. I've been taking great pains to develop Voodoo as a framework, not a specific tool to do what I want. It supports shaders that anyone can make, materials that anyone can set up, and plugins that anyone can write. I do not want this limited by what I can think of or do. Because of that, I can't say yes or no to everything that might be possible, because the goal is for as much to be possible as is... possible. :P Certainly far more than is reasonably possible.

Now, not everything in Voodoo is done, so some things may not work and I don't know for sure what will and won't yet, but I do know that quite a few things do and have reason to believe much more will. More than I can imagine, I hope. So the crazier your ideas get, the less likely I can say "absolutely" and the more likely I am to say "let's try it."

Just in case anyone was worried. :biggrin:

In other news, if tonight's testing goes well, I'll have a few useful shaders up and running and can show some screens of those.
User avatar
Bethany Watkin
 
Posts: 3445
Joined: Sun Jul 23, 2006 4:13 pm

Post » Tue May 08, 2012 3:02 pm

Bumpeti ;) How's the current progress?
User avatar
Stephy Beck
 
Posts: 3492
Joined: Mon Apr 16, 2007 12:33 pm

Post » Tue May 08, 2012 6:38 am

This deserves a bump purely because I know PK is working on it and he's awesome.
User avatar
jaideep singh
 
Posts: 3357
Joined: Sun Jul 08, 2007 8:45 pm

Post » Tue May 08, 2012 3:24 am

NICE! I now know what this voodoo/gem thing someone mentioned in another thread is! Thanks for bumping this Knots, or I would still be wondering... Also glad to know it is peachkeen working on this, because I remember a while back he was kind enough to make me a shader that worked how I wanted it to - and it worked fabulously~
User avatar
Agnieszka Bak
 
Posts: 3540
Joined: Fri Jun 16, 2006 4:15 pm

Post » Tue May 08, 2012 6:22 am

Any progress updates on this? <_<
User avatar
Justin
 
Posts: 3409
Joined: Sun Sep 23, 2007 12:32 am

Post » Tue May 08, 2012 3:16 am

I'd love to see this come to a release, what happened to peachy? :teehee:
User avatar
Bones47
 
Posts: 3399
Joined: Fri Nov 09, 2007 11:15 pm

Post » Tue May 08, 2012 2:22 pm

Peachy still works on this all the freakin' time. He's actually gotten a lot done recently, so don't think this is dead. Last time we spoke of it (before Skyrim ate me) he was asking for opinions on a mock up UI he'd coded together real quick to see how the elements played together.

PK actually talks a lot about Voodoo in #Morrowind (see my sig). DragonGeo of Aedra fame is in there as well. Lots of great technical discussion going down for anyone inclined to join.
User avatar
Alex Vincent
 
Posts: 3514
Joined: Thu Jun 28, 2007 9:31 pm

Post » Tue May 08, 2012 7:11 am

Haven't been around the boards much, but someone pointed out this thread reappeared, so here's the news (which Knots already covered, mostly):

I was a little busy for a while, moving and a new job, but over the past two weeks or so have been pounding out progress on this. Over the summer I continuously refined the core to make it more powerful and simpler, ended up redesigning it 3 times, but in the end it was definitely for the best. That is now locked, so it will only change if there's a missing feature/bug/etc. Sentimental nonsense aside, this final setup is pretty cut and clean and gets stuff done.

After getting the interface locked in, I started on the various UI elements and loaders. After some interesting tests, I went for a few different features:

First of all, there are two methods to load Voodoo:
  • The preferred method is basically what Fraps uses. There is a UI which runs minimized to the tray, and when a game starts, Voodoo checks a list of valid hooks. If the game isn't supposed to be hooked, all the code shuts off in a hurry to not slow down/crash the app. If it should be hooked, then it loads the full loader (which is also the drop-in).
  • The alternative, if you don't want the UI running, is the good old "drop in a DLL" type deal, which should work with basically any game. It does require adding a DLL, and so could be incompatible with other apps that use the same one.

Both methods rely on a set of hooks, which are stored for the current user (global/system-wide ones may also be used, but the user takes priority). There's a nice little UI to change those. The simple version has a friendly name, target game and the config file that should be used. This allows you to swap out your Voodoo settings very easily and share them between installs and other fun stuff. The main page for the UI looks a bit like:

http://i.imgur.com/0yIyQ.png

Not going to go into a full breakdown on that, but points of note are:
  • The left is the list of hooks, with some details (and the target's icon, if it can be found). They can be made inactive without deleting them, so you can have a playing and modding setup for the same game.
  • The right is the hook details, I put in example MW/Steam info.
  • The lower right shows the plugins set up in the current config, and allows you to open the config editor. The plan is to have a tab for each plugin, so they can provide the best options.
  • In the top toolbar, there's the add/remove hooks buttons on the left. There's also a hook wizard (pick an EXE and it tries to set up the hook), a "find my games" feature (searches for known games and runs the wizard), and the update manager.

The UI also has an options menu where you can change the language (defaults to your system settings and falls back to English). This will be used for most Voodoo UI elements. When the UI is more done, I will need help doing translations, but if you want it in your lang, that might be worth it ;) (consists of adding a column to a spreadsheet and translating each value).

The download/update manager is used to install Voodoo initially (you download the UI and core, then whatever packages you need). I went with this style over actual installers because there's really no reason for all the setup, but some management stuff does need done. It allows me to push out updates easily during testing. The manager keeps a list of servers you trust (the only default is my main server) and downloads the list of modules they offer, then does some checking to see what you have, what needs updated, etc. I'm going to be working on that today and will have some screens soon.

There are a few other tools and things I've put together which will be included. They mostly help plugin developers, though.

On the note of plugins, we come to the interesting bit. For the beta release, my goal is to provide the required minimum features for Morrowind, Neverwinter Nights 1 and 2, and a fourth game. Not sure if that will be Oblivion or something else, so opinions are welcome. Minimum features are non-linear post-processing shader with depth support. If I can get materials into any of those, I will definitely try for that as well. That should be enough to give an idea of what can be done. Full features (MWSE integration, distant land, etc) will come later.

For Morrowind in specific, post processing is mostly set up. I just need to update the old (working) adapter to use the new plugin system. Not going to be providing any times, but it shouldn't be obscenely long.

As soon as that is back up, testing will commence in earnest. That's going to be extremely simple this time around, since the update manager will keep things smooth and I have extensive logging throughout. Some small spot-tests have already been done on the UI and hook loader, and both seem to be working well.

On a project management note, I've consolidated everything onto Github and changed the license a bit. Previously I was using a little MGE source, so kept the GNU General Public License v2. The source has been cleaned and I've moved to the Lesser GPL v3. This means less restrictions on writing plugins, they do not have to be GPL. In addition, I made some changes to it should be possible to use most C++ compilers to write plugins. With the documentation, this makes it pretty open and easy for anyone to add things.

The project management, including wiki and bug tracker, are now here: https://github.com/peachykeen/VoodooShader
The main page takes you straight to the code, with the https://github.com/peachykeen/VoodooShader/wikiand https://github.com/peachykeen/VoodooShader/issues
in the menu. The tracker allows for bugs, requests and comments, and keeps them neat, so if you have any ideas, open a request/comment. That will be the focus for bugs during testing.

I think that's about all the news at the moment. I do have some UI demos and screens around, but nothing too shiny until I finish updating the game plugins. As soon as those and the update manager are up, testing will reconvene. :D

Edit: Oh, and I forgot to note. For anyone interested, code progress and any other major event is sent to #voodoo on chatspike (you can hang out with us in #elderscrolls and #morrowind and lurk for updates there) and http://twitter.com/#!/@VoodooShader. When testing starts, #voodoo will be the official realtime support/discussion place along with the issue tracker. The Twitter feed will keep up with any important notes.
User avatar
clelia vega
 
Posts: 3433
Joined: Wed Mar 21, 2007 6:04 pm

Post » Tue May 08, 2012 5:13 am

*reads.*
Very, very impressive. Didn't think you'd get this far so quickly.
*logs in.*
Hey, you changed your avatar :P
It all sound very cool, kinda want to give it a shot now... but Skyrim's cast Command Humanoid on me...
Think you'll do one for Skyrim too eventually?
(defaults to your system settings and falls back to English)
Could you please have it default to English with an option for sys settings (and English fall back)?
I hate it when stuff thinks I want it to speak my language. *installed Firefox in English and set the default language to English in an attempt to get sites to stop.*
User avatar
Mimi BC
 
Posts: 3282
Joined: Sat Oct 07, 2006 10:30 pm

Post » Tue May 08, 2012 3:42 am

Wow, I have to say you are making quite a bit of progress. Its nice to see this sort of work done.
What I will really be interested in is if you can make MWSE and distant land work more efficiently.
Question, have you talked to the OpenMW people or the Project Aedra guy about this? Seeing as how they plan on adding extra stuff, it would not be good if it conflicted with this in some way.

I hate it when stuff thinks I want it to speak my language.
I find this statement to be rather funny but cant think of something witty to say in response at the moment.
User avatar
Anna Kyselova
 
Posts: 3431
Joined: Sun Apr 01, 2007 9:42 am

Post » Tue May 08, 2012 6:02 am

Think you'll do one for Skyrim too eventually?
Probably. Already gotten requests for motion blur and such, that game has almost no post effects. At a guess, using the Oblivion stuff for Skyrim would probably work.

Could you please have it default to English with an option for sys settings (and English fall back)?
I hate it when stuff thinks I want it to speak my language. *installed Firefox in English and set the default language to English in an attempt to get sites to stop.*
Well... yes, I could. It would be just a hair simpler, but not a big deal either way. If folks want, I can certainly just have it install as English and let you pick later.

What I will really be interested in is if you can make MWSE and distant land work more efficiently.
Not sure about those two, but initial tests showed Morrowind itself running a hair faster at times and no hit from basic shaders, so hopefully I can keep that speed for a while at least.

Question, have you talked to the OpenMW people or the Project Aedra guy about this? Seeing as how they plan on adding extra stuff, it would not be good if it conflicted with this in some way.
OpenMW, no. Aedra will not be using Voodoo, but shouldn't be incompatible.
User avatar
Joie Perez
 
Posts: 3410
Joined: Fri Sep 15, 2006 3:25 pm

Post » Tue May 08, 2012 3:55 pm

The energy you put into this is inspiring,
I only know some basic c++ so I'm pretty sure I can't help out with that. And you seem to have everything covered.
do you have a professional background in this or something? Or are you just a genius.

anyways,

I'll keep an eye out to test the beta.

keep up the good work peach
User avatar
Susan Elizabeth
 
Posts: 3420
Joined: Sat Oct 21, 2006 4:35 pm

Post » Tue May 08, 2012 11:26 am

I only know some basic c++ so I'm pretty sure I can't help out with that. And you seem to have everything covered.
Well, that brings up a good point. Some knowledge is necessary, but there is quite a bit of documentation (can browse a recentish version here) and I'd be more than happy to take a little time to bring people up to speed on how things work (Voodoo-specific or in general). Coders have always been extremely rare around here, and I think it's worth trying to make more whenever possible. :P As far as covered, at the moment, more or less. I'm certainly not doing everything that could be done, and if someone had a favorite game they wanted to try and support, would definitely help out with that. But existing knowledge is less an issue than wanting to learn/help (I learned C++ to work on MGE, way back when).

do you have a professional background in this or something? Or are you just a genius.
Sort of. I've been doing this for some time, in a variety of games (worked on MGE, wrote NWShader, now this). I did work briefly doing low-level D3D code for Wine and such. Mostly it's just a hobby (that looks good on resumes ;)).

I'll keep an eye out to test the beta.
Not sure yet how I'll be taking testers, possibly some sort of wiki page or something. Maybe just this thread. I will check here for names.
User avatar
STEVI INQUE
 
Posts: 3441
Joined: Thu Nov 02, 2006 8:19 pm

Post » Tue May 08, 2012 11:51 am

well if you can PM me some documentation, I'll be happy to read up on c++,
I do have a very busy course in college so I'm not going to be free all the time.

then maaaaybe you can try and get some voodoo stuff into my skull :laugh:
User avatar
Jennie Skeletons
 
Posts: 3452
Joined: Wed Jun 21, 2006 8:21 am

Post » Tue May 08, 2012 9:18 am

About ready to start public testing with the latest version. Anyone interested, please post/send me a PM.

To prepare you all for the awesomeness, behold:
http://voodooshader.com/moarpink.PNG

I got a request to make things pink, so did. :P You can see the Fraps-style UI there, controlling which games use Voodoo. That's optional, but can be nice (can also download updates). Shaders are running, with multiple passes and some slightly more complex things. I have a few things left to do before the proper open alpha starts, but it's pretty close.
User avatar
Cash n Class
 
Posts: 3430
Joined: Wed Jun 28, 2006 10:01 am

Post » Tue May 08, 2012 7:43 am

Needs more distant land.
User avatar
Christine
 
Posts: 3442
Joined: Thu Dec 14, 2006 12:52 am

Post » Tue May 08, 2012 2:56 am

About ready to start public testing with the latest version. Anyone interested, please post/send me a PM.

To prepare you all for the awesomeness, behold:
http://voodooshader.com/moarpink.PNG

I got a request to make things pink, so did. :P You can see the Fraps-style UI there, controlling which games use Voodoo. That's optional, but can be nice (can also download updates). Shaders are running, with multiple passes and some slightly more complex things. I have a few things left to do before the proper open alpha starts, but it's pretty close.

Wait, Skyrim and Oblivion, but no Morrowind?

Good work though.
User avatar
Verity Hurding
 
Posts: 3455
Joined: Sat Jul 22, 2006 1:29 pm

Post » Tue May 08, 2012 12:06 pm

I'm interested in testing. :foodndrink:
User avatar
John N
 
Posts: 3458
Joined: Sun Aug 26, 2007 5:11 pm

Post » Tue May 08, 2012 12:08 am

Also interested. SInce always ^^
User avatar
Cat Haines
 
Posts: 3385
Joined: Fri Oct 27, 2006 9:27 am

PreviousNext

Return to III - Morrowind