Sign in to follow this  
dummynull

Ambient occlusion simulation for AAA projects

Recommended Posts

Hi
I have algorithm of fake ambient occlusion and indirect lighting which looks good for big and small static or dynamic objects (f.e. buildings and garbage after destruction), also fast enough. And i'd like to share (if game is good for my opinion, then for free) it for some AAA game project, but don't know how and is that needed to anybody.
Could someone describe how to contact with developers if their public e-mails are never read (for sure) or not available at all? Is such technology (dx9 requires at least) may be interesting or it doesn't matter (for consoles especially)? What is the time period before official game release date, when developers are unable to modify the engine code any more?
Thanks

PS: i haven't found any close forum sections for this question, sorry.

Share this post


Link to post
Share on other sites
If have something you want to share, just share it. Put it on a blog, make a thread describing it, make it a sample here or on some other site, or (if it's really really good) submit a proposal to conference or a compilation book. Or just post it here, and we can discuss it. Plenty of professional developers hang out here. :wink:

Share this post


Link to post
Share on other sites
That's right, but i wish to give exclusive right to use for some title first. And when it will be released, publish paper "how to". It's the best way to move algorithm agressively to many games (kind of "stereo" after Avatar movie). I know myself, i can't advertise or sell anything, so even machine for making gold from air will be forgotten. The only way i decided to show up is what i said in the header (((.

Share this post


Link to post
Share on other sites
[quote name='dummynull' timestamp='1312748410' post='4845883']
That's right, but i wish to give exclusive right to use for some title first. And when it will be released, publish paper "how to". It's the best way to move algorithm agressively to many games (kind of "stereo" after Avatar movie). I know myself, i can't advertise or sell anything, so even machine for making gold from air will be forgotten. The only way i decided to show up is what i said in the header (((.
[/quote]then you should at least post comparison screenshots and explain the advantage of using your algorithm, otherwise, why should any AAA programmer take your mysterious tech instead of those 100 published public techs?

Share this post


Link to post
Share on other sites
[quote name='Krypt0n' timestamp='1312757243' post='4845946']
[quote name='dummynull' timestamp='1312748410' post='4845883']
That's right, but i wish to give exclusive right to use for some title first. And when it will be released, publish paper "how to". It's the best way to move algorithm agressively to many games (kind of "stereo" after Avatar movie). I know myself, i can't advertise or sell anything, so even machine for making gold from air will be forgotten. The only way i decided to show up is what i said in the header (((.
[/quote]then you should at least post comparison screenshots and explain the advantage of using your algorithm, otherwise, why should any AAA programmer take your mysterious tech instead of those 100 published public techs?
[/quote]
Perhaps because i don't know the same kind of method by quality and performance.
BTW i have nice examples/demos/screenshots, but only for target developer teams, it's out of this topic, sorry.

Share this post


Link to post
Share on other sites
This is just silly.

Games companies get a lot of emails from people with a great idea that they're keeping secret... there's a good reason that they're not replying to your emails -- they've experienced this before.

AAA games in particular will have their own graphics programmers who might be interested in [i]reading your paper[/i], but probably not having your solution just dropped in their lap.

If you go around asking companies "[i]would you like to use my secret solution for AO[/i]", you're going to get ignored.
If you instead give them a paper to read, then they'll read it, but most will probably still ignore it. If you want it to end up in a game, then you need as many companies as possible to read your paper, so that maybe one of them will actually implement and ship it.

Share this post


Link to post
Share on other sites
I would recommend publishing some initial screenshots & videos and performance statistics (preferably on Xbox360 & PS3) and let people judge themselves if the results are good or not. Even if the quality & numbers are good for further interest, there are big questions regarding memory consumption, workflow impact and rendering engine assumptions if the approach is feasible for AAA production. Since it's your baby and you are very secretive about it, there's a very good chance that you are heavily biased, don't really realize the true pitfalls of your approach and are blind to the quality of your own work. This is far too common phenomena for any AAA game developer to ignore and no one will just take your word for it. The question is also if the quality, performance, etc. are so much better than publicly known algorithms (and there are many in this area) that it would be worth the effort to go through all the legal hurdle.

Since no one will license or commit to a technology without opportunity of a peer review, how do you plan to address this without exposing your algorithm? No AAA game developer will sign an NDA with you (too much hassle for such a small thing). Providing the algorithm as a closed source lib would also be way too cumbersome & risky for this kind of small scale solution (porting, intergration, etc. issues). If you got something truly impressive, I think the best way would be to write a paper about your approach and claim the credit for inventing the algorithm to build your reputation in the area.


Cheers, Jarkko

Share this post


Link to post
Share on other sites
[quote name='JarkkoL' timestamp='1312812101' post='4846164']
I would recommend publishing some initial screenshots & videos and performance statistics (preferably on Xbox360 & PS3) and let people judge themselves if the results are good or not. Even if the quality & numbers are good for further interest, there are big questions regarding memory consumption, workflow impact and rendering engine assumptions if the approach is feasible for AAA production. Since it's your baby and you are very secretive about it, there's a very good chance that you are heavily biased, don't really realize the true pitfalls of your approach and are blind to the quality of your own work. This is far too common phenomena for any AAA game developer to ignore and no one will just take your word for it. The question is also if the quality, performance, etc. are so much better than publicly known algorithms (and there are many in this area) that it would be worth the effort to go through all the legal hurdle.

Since no one will license or commit to a technology without opportunity of a peer review, how do you plan to address this without exposing your algorithm? No AAA game developer will sign an NDA with you (too much hassle for such a small thing). Providing the algorithm as a closed source lib would also be way too cumbersome & risky for this kind of small scale solution (porting, intergration, etc. issues). If you got something truly impressive, I think the best way would be to write a paper about your approach and claim the credit for inventing the algorithm to build your reputation in the area.


Cheers, Jarkko
[/quote]
Thanks for suggestions. Unfortunately i don't have access to console devkits, but for sure it's possible to port the code for them. The code is simple enough, i prefer to give it as tech description with src demo, not risky middleware. Screenshots and videos also not a problem. Publicity algorithm seems not existing (at such performance and quality without precomputations, even for skinned characters, i can't find any close). Also the quality is prooved by many gamers opinion, of course they don't know that it's new algorthm. What else i forgot to fill all requirements? Don't know, really, as for me, it's good and tasty, may be it's just nothing to scare about...

Share this post


Link to post
Share on other sites
One way to show the quality of the algorithm on Xbox360 is via XNA. It may not be a good way to show off performance (unless it relies mostly on the GPU... AFAIK XNA's GPU usage shouldn't be much different than native GPU usage).

Share this post


Link to post
Share on other sites
You don't need access to console devkits for the performance figures. For Xbox360 you can use XNA and IIRC, you can also do some development on retail PS3. There are limitations on consoles that makes it non-trivial to get good performance on them, so having your algorithm running on those platforms significantly adds to the credibility of your algorithm in the eyes of AAA developers. Screenshots & videos are an easy way for people to judge the quality of your work, so I would suggest releasing those publicly here for example. If you get good feedback then you could port it for Xbox360 & PS3 for performance figures. Since you mentioned that gamers have proved the quality, what's the game you are referring to?


Cheers, Jarkko

Share this post


Link to post
Share on other sites
What hinders you from putting a demo (binary only if you will) on the net, and make a FRAPS movie (showing some live interaction) that you put on youtube?

Apparently you are planning to make the algorithm available for free (or so it sounded to me?) and you want it to be widely known and famous. There is no better way to make it famous than by showing footage of a known title (let's say Doom 3, or whatever) and the same one with your shader plugged in, which looks way better.
Also you claim is that "many gamers" (many is how many, 3, 30, or 3000?) have already deemed it good, so apparently a lot of people [i]have already seen it[/i] live and must therefore already have the shader code. So, what's the problem really?

I'm a bit surprised by the dichotomy of "don't know the same kind of method by quality and performance" and "runs on DX9 hardware, looks good, fast enough". To me, they seem somewhat mutually exclusive, but that may just be my understanding.

In general, the "I know a secret, but I can't tell you" thing just won't work out favourably. There is no way anyone will take you for serious on that premise, I'm afraid.

Share this post


Link to post
Share on other sites
dummynull, how and why would you think that anyone would even agree to the terms you posted on this board without any proof as to your extremely vague claims? Any business has money because they make intelligent decisions --generally-- and trusting you would not be intelligent at all based on what you have provided. Asking a AAA company to trust you without any proof what-so-ever makes me think you are a selling snake oil, meaning you have no product, or the product you do have is worthless. Really what it comes down to is: if your AO was that great, you would have screen shots, or a video of it in action. What compoounds this problem now is that your immediate response to this thread should have been to post immediate screen shots, or other proof of your design since it would be a simple matter of starting your program up, hitting print screen and uploading it to the net. Then, making even the simplest of statement, like, "my implementation runs at 100 fps, and here is the same picture from NVidia's implementation running at 50 fps. Therefore, my implementation runs twice as fast." But, there has been none of that, which again leads me --and most others-- to think there is something else going on with your "great AO simulation."

Share this post


Link to post
Share on other sites
[quote name='dummynull' timestamp='1312758239' post='4845950']
Perhaps because i don't know the same kind of method by quality and performance. [/quote]just because you don't know a tech like this doesn't mean anything and I don't see any reason why you cannot show a comparision screenshot with a timing, that would not uncover your idea or do any harm.
[quote]BTW i have nice examples/demos/screenshots, but only for target developer teams, it's out of this topic, sorry.
[/quote]sorry, but you are just hindering yourself to achieve anything. Best you can expect is a job offer and that just in case you show something convincing (you don't need to say "how").

you can increase your chances to not get any reply at all from companies if you

1. request an NDA signed up-front

2. are someone who has no track record in even publishing some academic papers




Share this post


Link to post
Share on other sites
[quote name='JarkkoL' timestamp='1312815265' post='4846192']IIRC, you can also do some development on retail PS3[/quote]Using PS3 linux, you can't access the GPU on a retail PS3 unfortunately.

However, it's pretty similar to a GeForce 7900 GT, which you can probably find 2nd-hand on ebay for $10.

Share this post


Link to post
Share on other sites
Sorry guys, i don't think it's good idea for me to spend money for buying consoles and spend time to develop version for them, there is no chance to get devkit and i don't need them otherwise.
I'm not showing screenshots, videos and other stuff because it would be easy to to find out which game use this technology, so everyone could disassemble it. Isn't that enough reason to keep this in secret? And user's community do like this method of "lighting", except some persons who just blind. I can't say how much gamers, but more than 10k for sure. Performance was never measured for this effect only, only with the game, which running slow on my pc already (30-40 fps).

[b]samoth[/b]
>I'm a bit surprised by the dichotomy of "don't know the same kind of method by quality and performance" and "runs on DX9 hardware, looks good, fast enough". To me, they seem somewhat mutually exclusive, but that may just be my understanding.

This is a joke i suppose? IMHO "if you can't do fine graphics with d3d9, go work to the gas station", the same about performance. Exceptions are very rare and for d3d11 only, so it's nothing to talk about.

>"my implementation runs at 100 fps, and here is the same picture from NVidia's implementation running at 50 fps

There are no (known for me or seen in the games or their trailers) demos of such AO. My fake method is fast, because it's fake, but it gives pretty good results if you wouldn't try to find were is it working incorrectly.

Anyway, it's not the place to present this algoithm, i've asked other questions.

Share this post


Link to post
Share on other sites
It is true what everything above has been said.
I did tried the same thing with my shadow mapping algorithm (CSSM) and got the same response...
I've pitched idea to Crytek and instead of showing interest for the algorithm, Cevat Yerly replied with the yob offer (witch I ended up declining because working on technology that is more inferior than my home projects for mire 4.5K euros a month would probably drove me insane - it would be a waste of my time).

The thing is I want to share my algorithms with the rest but it is getting so darn hard to public them (my old mentor is helping me rewrite them properly).
Basically for the PHD you only need three mayor papers so it would be a shame if I just release them without profiting in ECTS points.

Share this post


Link to post
Share on other sites
[quote name='IvicaKolic' timestamp='1312869932' post='4846555']
It is true what everything above has been said.
I did tried the same thing with my shadow mapping algorithm (CSSM) and got the same response...
I've pitched idea to Crytek and instead of showing interest for the algorithm, Cevat Yerly replied with the yob offer (witch I ended up declining because working on technology that is more inferior than my home projects for mire 4.5K euros a month would probably drove me insane - it would be a waste of my time).

The thing is I want to share my algorithms with the rest but it is getting so darn hard to public them (my old mentor is helping me rewrite them properly).
Basically for the PHD you only need three mayor papers so it would be a shame if I just release them without profiting in ECTS points.
[/quote]

you declined to work at the company thatmade the Crysis series :o ?
im pretty shure they have very sophisticated thechnology.
i would have accepted.

Share this post


Link to post
Share on other sites
well done on your work!

but have to agree its far better to attract attention rather than chase it.. like these dudes are saying...a blog post or something with some screenshots, comparisons and videos of it in action! send that around forums and to game developers, and they may well take a look... probably more likely to reach the people you want that way!

Share this post


Link to post
Share on other sites
[quote name='ryan20fun' timestamp='1312877250' post='4846578']
[quote name='IvicaKolic' timestamp='1312869932' post='4846555']
It is true what everything above has been said.
I did tried the same thing with my shadow mapping algorithm (CSSM) and got the same response...
I've pitched idea to Crytek and instead of showing interest for the algorithm, Cevat Yerly replied with the yob offer (witch I ended up declining because working on technology that is more inferior than my home projects for mire 4.5K euros a month would probably drove me insane - it would be a waste of my time).

The thing is I want to share my algorithms with the rest but it is getting so darn hard to public them (my old mentor is helping me rewrite them properly).
Basically for the PHD you only need three mayor papers so it would be a shame if I just release them without profiting in ECTS points.
[/quote]

you declined to work at the company thatmade the Crysis series :o ?
im pretty shure they have very sophisticated thechnology.
i would have accepted.
[/quote]

I do admit they have done some amazing work with the shaders. It is most impressive, but everything else is just average (somethings even below average)...
Engine design today is just awful (not just Crytek, but every mayor player including Carmak and the rest). Engines are very limited and most of the development goes into graphic efects which in my opinion shouldn't even be part of the engine.

Consider this graphic engine design and compare it with how things are generally done and then make conclusion if thing that Crytek is doing is advance or not:
[list][*]graphic engine without limitations - fully generic graphic engine (doesn't try to understand the data just how to send it to the graphic card) - can be written in less than 2000 lines of code and there you go, you have the holy grail of engine design and no one will ever be able to write better (DX11) graphic engine. You can send it voxel data, triangle meshes, sparse voxel octrees, + anything else that will be invented and you newer have to change a single line of code because the engined doesn't care about the data - it just cares about the rules for calculating appropriate rendering technique for the supplied geometry data, material data and render mode (lighting, depth, color, z-prepass..) - all this + the shaders can be put in game data (not engine). NO ONE DOES THINS LIKE THIS - everyone is harcoding effects/passes into their engines which is too much work and more and more limited. I hate when they do tech demo of some new graphic engine and then spend 15 minutes showing graphical effects. The moment they do that, I know that their graphic engine is crap. Instead, show my how flexible it is - will it be able to run something that will come up in 3 years from now without me having to "heavily modify it" (I hate when they say that) or buy new version of the engine.[*]Camera Space Shadow Mapping was developed as a single line of code implementation for shadow that will never fail you and will work for every case (even big pointlights). Basically it is just one function that generates 3 shader parameters. If at one point in time we decide to user sparse voxel ocrees or something else - no problem - in our shaders we just ignore those 3 parameters. With other engines multiple shadow algorithms are implemented and they take on most of the graphic engine code that will eventually be obsolete. The moment you implement some other shadow algorithm (cascaded, cube, volumes...) you've made assumption about how things will be render and that means that your graphic engine is not generic any more - it is not all-powerful and it will soon be full of old useless code....[/list]Don't get me started on physic engine limitation, network limitations, spatial limitations, logical limitations... It will newer be able to run a game with land-able dynamic planets big spaceships and some decent multilayer (I expect nothing more than peer-to-peer MMO in completely dynamic world with out of scale objects). Basically it is designed for small things - small static levels where you can only shoot at things and that is all you will ever be able to do...

Share this post


Link to post
Share on other sites
[quote name='Syranide' timestamp='1312888507' post='4846629']

There's this thing called research (theory, lots of papers) and then there's the reality (practice, lots of games)... everything you mention is very good in theory, but sounds to me like crap in practice. You CANNOT create a top-quality and top-performing engine without optimizing for specific purposes OR you end up not making an engine at all... that is, you just invent another API layer, which is what DirectX is. Like with GUIs, one solution rarely fit all problems, so far GUIs can be either retained and immediate-mode, neither can be considered best... and both can't be unified or implemented by the other without sacrificing something, to some degree.

The visual quality and performance of crysis is testament to the work of skilled developers and engineers.
Could it be improved?... certainly could.
Would it be improved by making the entire 3D engine generic?... no.


EDIT: If your solution to a problem is to describe the entire problem, then you haven't solved the problem. That is, if your solution to making a 3D engine is to have it support every single game type and feature... then the only thing you have done is add another layer of abstraction, with some degree of performance degradation.
[/quote]

Let's stick to the graphic for a moment.
I can't really think of a case where performance of my engine would be more than 5% slower than anything that has been hardcoded into Crytek engine.
I mean, if we are using the same shader (only mine is in game data and their is hardcoded into engine) performance will be the same (presuming that we have the same quality state management, and I have all the traversal methods that Crytek has - which I have, and more). Post-process effects will run at the same speed in my and in their engine, and regular rendering also, only I won't have to bother with engine bugs because my code is closed - engine is EXE file that never changes, and game is in game data. 100 engineres can parallely try different things without affecting others - this can't be said for working with other engines.
Give my an example on something that you think wouldn't render as fast as in Crytek engine, and I'll try to explain how to properly configure engine to do so.
I've studied every angle (type of rendering, post-process) and simply can't find something that my engine can't efficiently render.


P.S. I'm sorry - I'm derailing the tread (but everything has been said so I guess it is not that big of a deal).

Share this post


Link to post
Share on other sites
I think Syranide hit the point, having a layer that potentially can do everything everyone else can do is not a challenge. But even with a lot of people and having such a layer it takes a long time to create all those interaction and content and pipelines and tools... that's what makes the engine. Look for example at the Unreal Engine, it has a lot of middle ware, middleware that any other developer could license as well, but integrating everything into one consistent and working software is the real challenge.

Maybe you can project it to another topic, lets take sport. you, as a human have the potential to do all kind of sports, you can call arnold schwarzenegger, or maradona or schuchmacher or... to be "below average", because you could point out some weakness they have, but that 1. doesn't make your skills/strength etc. superior, just because you know which workout 'could' potentially lead to better results and 2. yes, nobody could show you anything that you couldn't potentially achieve with your body, does that put you on the same level as those people who won the highest championships or released the best looking game for years?

And that makes it immature from your side, it shows that you clearly lack experience and usually that's the most desired thing companies are looking out for. Making techs and knowing theories are just fundamental things, knowing the real world is something harder and if you really had an offer from crytek, you should have accepted it. 1. if you have really the skills, you could have moved the technology forward, you could present it and make a lot of developers use it like nowadays everybody uses some kind of SSAO 2. you'd for sure learn something as well, maybe the other side, not just the theory, maybe you'd even understand WHY they have been not interested in your technology, but wanted to give you a chance, it's for sure for a reason.

There are a lot of ppl that would probably work for free to have such a chance and throwing that away because you, without experience, judge the quality of their work to be inferior to your, doesn't put you in a bright spotlight, sorry.




Share this post


Link to post
Share on other sites
[quote name='Syranide' timestamp='1312897300' post='4846668']
Well, from what I can tell, you haven't really made a 3D engine (comparable to Crysis), you've made an abstraction layer on-top of your graphics API. What I mean is, to me it sounds like you are abstracting shaders, vertex buffers and such, then you have done little more than added some make-up to the graphics API... you have not really made an engine. Please correct me if I'm mistaken.

[/quote]

Correct, I've misguided you. Graphic engine is just small dumb module of the engine (other modules are: physic engine, terminal engine, scripting engine, input engine, sound engine, network engine, etc).
All these sub-engines are controlled by Master Engine that has complete control over the powerful data-structure. Master engine is actually the only one that understands the data-structure.
Every sub-engine has access to scripting engine (which runs scripts in parallel) so terminal engine (used for Main Menu, HUD, virtual in-game 3d computers, road sings,...) can sometimes do something to the graphic engine (set some render special render variable)...
Also, scripting engine has access to all other engines: so if I want to draw some windows application withing my virtual 3d computer, I would do something like this:

To my 3D object that represents 3d computer terminal, I would assign script called "TerminalScript" which goes like this:

[CODE]
void TerminalScript()
{
SetTerminal(20, 20, "WindowsXPLook");
StartWindow(0,0, 10, 10, "My Window");
DrawButton("bla")....
if( ButtonPressed ("bla") )
{

}
EndTerminal();
}
[/CODE]

So basically, my engine has only one object type that can be anything: planet, character, 3d computer teminal, camera, big space ship, ....
Everything is generic...
If I want chat window I won't hard-code it like everyone else - I will update script of a 3d object that represents camera (only sets camera matrix of the graphic engine) to draw small window to over HUD that will be used for chatting (same goes for the main menu).

This way I can make chat window in my "space ship" so that I can communicate with other space ship that has similar script on one of its terminals.

If I want VOIP I wont hard-coded it. If will take a "rock", put it on a programing platform (all in-game) and write send/receive network script for it that copies from wave-in buffer into send buffer and from receive buffer to wave-out buffer....

No hard-coding - completely generic engine design (not just graphic). 1000 developers can create new object types simultaneously all in-game...
----


OK - this is way off-topic - but you get my point...

I've attached 3d terminal picture that i started building - notice tile editor in one of the windows. That is the begging of a terminal that will be used to completely build custom space ships (interior and exterior)....

[url="http://i.imgur.com/4rrhW.jpg"]http://i.imgur.com/4rrhW.jpg[/url]
[img]http://i.imgur.com/4rrhW.jpg[/img]

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this