View Full Version : DirectX 11 game engine
Evolution
29-10-2009, 10:01 AM
While searching the web I came across a complete directx11 game engine called Unigine. I was amazed considering DirectX 11 hardware was just released, and the DX11 sdk was released a couple of months back. The screen shots of the engine in action is amazing. Directx11 allows for massive landscapes with amazing detail, and I can't wait for a title to be released with this new technology. They also have benchmark tools for download so that you can see how next gen games will run on your current hardware, or for those lucky enough to own a DX 11 graphics card.
Unigine Site (http://unigine.com/)
Screenshots (http://unigine.com/screenshots/)
Benchmark Tools (http://unigine.com/download/)
http://unigine.com/screenshots/city4.jpg
dislekcia
29-10-2009, 11:08 PM
How, exactly, does DX11 allow for massive terrains? Would it be geometry shader implementation of trees, perhaps? Maybe they set up variable vertex terrain tiles with a geometry shader, I dunno.
TBH, I can't stand the fapping over DX versions. That's just a specification and API, it's not magic that makes games suddenly better.
Evolution
30-10-2009, 11:30 AM
Dx11 uses hardware tessellation which allows the number of polygons in a 3d modal to be dropped in real time. This allows the hardware to put less polygons into distant objects which increases the speed that the scene can be rendered. This can be achieved in previous Dx versions by using billboards for distant trees, but it's not a viable option for non static objects, or buildings which does not look the same from different angles.
It's mostly the new hardware features that allow for new techniques to be developed. These new techniques can either increases performance and/or improve visual quality. Also the screen shots are best to show off the features, not the quality of texture's and modals they used. The screen shot above is to best show off the vast number of trees rendered in that scene.
Dx11 also has a compute shader which is focused at bringing the cpu work onto the gpu. Before both ATI and Nvidia had separate ways of doing this, but with Dx11 developers can do physics processing on the gpu without having to favor the one card over the other. Physics processing can be done on the other shaders, but compute shaders are better suited for this.
These are the 2 main features that will make it play a big part in future game development. Also dx11 is easier to develop cross platform games with.
Also Dx11 will run on dx9, dx10, and dx11 class hardware, but vista/win7 is still required. Developers will probably have a game that falls back to dx9 so that is will run on xp as well.
I agree that the API will not games magically better, it depends on how the developer uses these new tools. If used wisely should bring about a richer gaming experience through massive environments, better physics in games, and AI on the GPU.
dislekcia
02-11-2009, 03:45 PM
Name the number of times that a massive game environment has played a huge part in gameplay? Or even where a better (as in, more general) physics system has had a positive gameplay impact, even physics-based games have to use carefully tweaked and balanced physics systems that enable gameplay - you very rarely get gameplay emerging from a physics sim without significant human intervention.
So basically geometry shaders were used to drop polys from the scene. I still don't see how that's a big deal, especially considering that ALL the model data still had to be sent to that card anyway. The benefit over a geometry instancer with distance checking that routes to different models is really not a big deal, the only real saving via real time optimisation is a fill-rate save (which happens to be something that new generation cards have in bucketloads anyway, faster RAM and all that).
GPGPU stuff has been possible for ages now, are you saying that DX11 is bringing more branching calcs to the table? Because previously HLSL would handle your card-variant shader code for you, so are there new shader instructions or just a better HLSL implementation?
Evolution
02-11-2009, 10:00 PM
Name the number of times that a massive game environment has played a huge part in gameplay?
Massive open ended worlds is becoming more and more popular and is what made the Elder Scrolls, and GTA series so popular. I'm not saying this is the main thing to be focusing on, but it does bring the game closer to reality. These days massive game environments is a must for certain gamers.
Or even where a better (as in, more general) physics system has had a positive gameplay impact, even physics-based games have to use carefully tweaked and balanced physics systems that enable gameplay - you very rarely get gameplay emerging from a physics sim without significant human intervention
You forgot to mention AI. Physics will be improved as technologies improve allowing stuff that was before unthinkable possible. Physics has to be programmed in a game, there's no getting away from it, but the point I'm trying to make is that more complexed physics simulations will be possible allowing for a more realistic gaming experience, again sucking you into the game. Have you ever played GTA 4 on PC and noticed how bad it played, no matter how low you put the graphics. That's euphoria is action, a AI / physics hybrid engine running on your cpu. The complexity of the euphoria engine can't run on shaders because of the constraints and something about a 1:1 input:output required for a shader. Euphoria also can't be developed to use the CPGPU power of the dx10/9 cards because it requires to different sets of code for nvidia and ati cards which will take allot of time / money to develop.
So basically geometry shaders were used to drop polys from the scene. I still don't see how that's a big deal, especially considering that ALL the model data still had to be sent to that card anyway. The benefit over a geometry instancer with distance checking that routes to different models is really not a big deal, the only real saving via real time optimisation is a fill-rate save (which happens to be something that new generation cards have in bucketloads anyway, faster RAM and all that).
Hardware tessellation is much more effective at doing this, and that extra speed is what counts in the industry. All the articles I've read had just positive stuff to say about about it, and I did the research myself.
GPGPU stuff has been possible for ages now, are you saying that DX11 is bringing more branching calcs to the table? Because previously HLSL would handle your card-variant shader code for you, so are there new shader instructions or just a better HLSL implementation?
Again I say the 2 card manufacturers had separate ways for CPGPU. Computer shaders are just better at doing CPU tasks than other shaders are, because it's built for that purpose. They also bringing about a new shader model which can combine different shader effects into one pass.
All these features all improve a game's performance, and allows developers to push games to new levels. Not to forget faster graphics cards that come out every year.
TBH, I can't stand the fapping over DX versions. That's just a specification and API, it's not magic that makes games suddenly better.
LOL. Spoken like a true game designer. You have no appreciation for the technical side of things. ;-)
Miktar
02-11-2009, 10:12 PM
"Physics has to be programmed in a game, there's no getting away from it, but the point I'm trying to make is that more complexed physics simulations will be possible allowing for a more realistic gaming experience, again sucking you into the game"
Realism does not equate Fun/Immersion. Spoken like a true engineer, with no appreciation for anything but giant numbers. ;)
Nothing like a monotheistic polygon-worshipper to take all the fun out of gaming.
Gods, isn't this Engineer Vs. Designer thing getting a little old? C'mon Evolution, try to meet people half-way.
dislekcia
02-11-2009, 11:09 PM
LOL. Spoken like a true game designer. You have no appreciation for the technical side of things. ;-)
Orly? I was asking you for exactly what these DX11 implementations were doing that was different to known algs that people already use all over the place.
Distance sorting of transparent objects on the GPU is the first thing I've heard compute shaders being used for that gets my attention. I took a look at the DX11 technical docs and was rather nonplussed, did the same thing with DX10 as well. Structuring AI problems so that they're solvable via a GPU is such a monumental task that it's going to take a while before someone writes a functional tree-traversal alg suited for execution via a compute shader.
It's rather obvious that you've got hardware tessellation the wrong way around: Tessellation is about creating extra polygons where there were none before. In general this is good for object silhouettes in specific situations: We've had facing polygon detail options via normal maps in pixel shaders since shader model 1.2, but that doesn't do anything to improve polygonal objects from the side. With hardware tessellation you can introduce new verts into a stream as needed according to a geometry shader you've written, probably one that pulls displacement info from a non-normalised normal map (so that normal lengths of 1 are some max displacement away from the current poly's reference plane - obviously you'd have to have a minimum normal length representing 0 displacement too, otherwise no normals would be useful close to edges).
Hence my asking WHAT people were doing with geometry shaders. So, can I put my technical e-peen away now? Just because I design games and don't think new APIs are the bees knees doesn't mean I don't know what they're for. In fact, it's because I can use them that I'm not caught up in random API feature hype that normal gamers seem to care so much about.
-edit- I'd be tempted to say that you clearly didn't understand my questions, but that might be construed as mean ;)
Evolution
02-11-2009, 11:39 PM
Realism does not equate Fun/Immersion. Spoken like a true engineer, with no appreciation for anything but giant numbers. ;)
Nothing like a monotheistic polygon-worshipper to take all the fun out of gaming.
That's why I'm payed to program, not design. ;)
Distance sorting of transparent objects on the GPU is the first thing I've heard compute shaders being used for that gets my attention. I took a look at the DX11 technical docs and was rather nonplussed, did the same thing with DX10 as well. Structuring AI problems so that they're solvable via a GPU is such a monumental task that it's going to take a while before someone writes a functional tree-traversal alg suited for execution via a compute shader.
Yeah you right, it takes a while for developers to adapt. DX9 will still be around for awhile because so much software has been built around it. But I like to see people adapt quickly to new technologies, and it's good if you learn it in case it becomes dominate in the next few years.
Aequitas
03-11-2009, 12:10 AM
So like, DX11 is cool and all ... but none of the things that it lets you do will be able to impact gameplay at this point.
According to the latest Valve harware survey (http://store.steampowered.com/hwsurvey/) under 50% of the market has even DX10 running. Sure there are a lot of DX10 cards out there, but many of them are still running on XP, so they do DX9.
What that all means is that no matter how good you can make your game look, unless you go and write a fallback for DX9, you will lose a huge chunk of the potential market. While you're writing all that DX9 fallback, you might realise that since the new cards have so much horsepower, you can get them to make DX9 look as good as your DX10/11 code, cause you have tonnes of card power to throw at them. So why would you make a different code path?
When 4 or 5 years pass, and 80% of the market has a DX11 card, then I can start to look at using geometry shaders for stuff that impacts gameplay. Then I can start to use the physics shaders for more than just *random debris*, and actually use it to impact gameplay.
Take a look at Splinter Cell: Chaos Theory, specifically the multiplayer engine (yes, it's seperate from the SP engine). It's a game that had to do insane stuff with shader model 1.4, because its gameplay relied on shadows. There were better shader models available at the time, but most cards on the market didn't have them. The best they could use was SM1.4, because most of the market had a card that could do that.
The problem is that these days cards have wierd SM1.4 implementations ... so the lighting no longer works on a majority of the newer cards ... and so the world has lost an awesome multiplayer game. But I digress.
The point is: yeah, you could make a super pretty looking game using DX11 ... but you could also make a super pretty looking game using DX9 ... and with big open environments too (hi fallout 3). Most 'prettyness' in games is up to your model and texture artists anyway ... just look at borderlands.
dislekcia
03-11-2009, 12:11 AM
Yeah you right, it takes a while for developers to adapt. DX9 will still be around for awhile because so much software has been built around it. But I like to see people adapt quickly to new technologies, and it's good if you learn it in case it becomes dominate in the next few years.
Oh, so I am technical enough for you now? Hah.
Aeq's got a post brewing that questions your outlook on new APIs, I'll let him post his points ;)
-edit- NINJ'ED!
@dislekcia: Good god man! Where did you get those technical epeen supplements?! What was this fontain of knowledge called? Can I borrow it after you're done?
dislekcia
04-11-2009, 02:41 PM
@dislekcia: Good god man! Where did you get those technical epeen supplements?! What was this fontain of knowledge called? Can I borrow it after you're done?
Now you know my secret shame... Yes, I'm actually a technical person. All this talk of game design has been naught but a sham :(
Because we all know you have to be one or the other, never both.
Yes, I'm actually a technical person. All this talk of game design has been naught but a sham :(
0_o
I never... knew... Oh god what have you done!? )-;
dislekcia
04-11-2009, 04:52 PM
0_o
I never... knew... Oh god what have you done!? )-;
... Ensured that Comp 24 will be about writing engines. Bonus points per shader-based feature!
BlackShipsFillt
08-11-2009, 01:27 PM
Oooh... my two cents... myself being very much the designer and not an engineer...
I was reading a review of Shadow of the Colossus (I have never actually played the game)... It seemed to me that that game in particular would not have worked AT ALL if it were not for pushing the hardware to render massive environments and run (what was at that time) state of the art physics...
It's just an example of a game which satisfies the question posed in Dislekcia's third post...
My feeling on DX11 is meh... something to look forward to in 5 years... only colossal developers have the manpower to make superfluous chunks of engine just to target top of the range PC's... but it is another incremental improvement... I'll let the middleware guy figure out how to use it.
Wasn't GTA4 just poorly ported to encourage people to buy 360s?
splitting out ai and physics onto the gpu via the compute shader (or any other gpgpu utilisation) is a monumentally bad idea. its just not viable to have multiple codepaths for subsystems that substantial.
and incidentally that demo does not utilize the geometry shader at all, except for wireframe rendering mode on the terrain. i have the shader source open in front of me :). its also not using the dx11 hull, domain or compute shaders for the terrain, although it is for mesh rendering. the terrain looks to me like simple geoclipmapping.
and im new here, so hello everyone.
AndrewJ
09-11-2009, 02:11 PM
yo dude. Welcome.
Powered by vBulletin® Version 4.2.4 Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.