September 09, 2010, 03:02:17 PM
News: As promised, here is another update of the editor with improvements and bug fixes
Pages: [1]
Print
Author Topic: About performance....  (Read 657 times)
Jochen Stier
Administrator
Sr. Member
*****
Posts: 498


Founder/Programmer

jochen.stier@gmail.com
View Profile
« on: September 09, 2009, 12:31:55 AM »

Hi everyone,


I just wanted to talk about the resource requirements of Geist3D and what that means about the audience we can target. Ultimately, this also determines what kind of games we can make at this time. As most of you may have already found out, Geist3D requires advanced hardware to run properly. Obviously, there are still ways of improving performance using more efficient shaders and smarter level of detail, but in the end the resource requirements will still be high.

Geist3D requires a large number of terrain patches to tessellate the planet. There is no way I can think of to perform any pre-processing that would eliminate some of the invisible terrain as it would be possible with a fixed size landscape. In order to avoid z-fighting every frame has to be constructed out of three rendering passes with different frustums for near, medium and far distances. At this time, the complex shaders for atmospheric scattering and terrain texturing use up a lot of GPU resources. Of course, the engine does detailed frustum culling so that most objects are only actually rendered within their corresponding frustum. Once the scene has been painted into a frame buffer, there are a number of screen space passes for deferred lighting, high dynamic range rendering, bloom and occlusion culling as well as yet to come effects such as rain, depth of field, volumetric fog, light shafts etc. Once I add shadows, there even more rendering passes will be necessary. After all that, the transparent objects such as engine trails and clouds are painted over the image in yet another three rendering passes using the different frustums. I just found out today that I also have to use the stencil buffer in order to avoid that transparent objects paint over the foreground. I have also not yet implemented anti-aliasing for frame buffers which will eat up a lot memory and really tax the memory bus on the GPU. On the CPU side, terrain splitting, clouds and fauna further require expensive search algorithms in order to determine the visible regions around the observer. I could go on here for a little longer, but I think everyone gets the idea.

I would now like to throw out there that Geist3D requires at least an NVIDA GTX or an ATI HD series graphics card with at least 512 MB of RAM. The CPU must have at least two cores with 1GB of RAM dedicated to the engine. Now, these are not off the chart requirements. The graphics cards can be had for about $250 and you will have a hard time even buying a CPU with less than the stated requirements.

Having said all of that, the hardware requirements will limit the audience we can target to avid gamers. So, the MMO is even further of out of the picture at this point, because it would have to be  tailored to the mass market, which will not have the required resources. It will still take a few years before that type of hardware is standard in most PCs. Yet, there are lots of dedicated gamers with the proper hardware out there, but I think they are more interested in the Crysis type of combat games. So, I think we should focus on making a team based combat game, with the racing game as the first immediate target. Exciting flight/driving behaviour is going to be an important step towards good combat game.

On the last note, I don’t want to spend too much time making the engine run on todays hardware. In my mind it is important to target tomorrows hardware, especially because it will take us about that long to get there Smiley


P.S. Stay tuned for the clouds. From the looks of it, they will add a life to the planets!



 

« Last Edit: September 09, 2009, 12:40:28 AM by Jochen Stier » Logged
TorakunSama
Sr. Member
****
Posts: 422


Designer


View Profile WWW Email
« Reply #1 on: September 09, 2009, 01:46:00 AM »

I do agree! However we mustn't aim too far in the future or our project might become obsolete. Anyways, I believe we got to put as much goodies as possible in the engine (reflections, ocean waves, terrain manipulation, etc) and then go on polishing them to perfection till aimed time. We may then slowly implement other gameplay elements already in discussion, and prepare for the aimed game (I'll continue ship production on the background).
I thought that we might need a name for the racing prototype.
Logged

'If you're not born a natural genius, can become one if you try hard enough! ' Gai-sensei
awakened
Newbie
*
Posts: 22


View Profile Email
« Reply #2 on: September 09, 2009, 04:20:47 AM »

I also think that its better to have a lot of cool engine features, and target the default hardware of maybe a few years in the future for a MMO, as it's not realistic to complete it in a shorter timeframe anyways.
Also i think it's an interesting challenge to see how many advanced effects you can squeeze in with that kind of viewing distance and "level" size Wink i mean its not like every other game engine can do that, much less something lower profile than idTech5 or unreal engine or something.

to reduce requirements in the present, i guess some advanced features could always be temporarily disabled if necessary.
« Last Edit: September 09, 2009, 04:22:20 AM by awakened » Logged
TorakunSama
Sr. Member
****
Posts: 422


Designer


View Profile WWW Email
« Reply #3 on: September 09, 2009, 06:19:10 AM »

Indeed, as far as I go, you go ahead and add as much as you want, geist 3D already runs on today's hardware. We can add 3 levels of detail :Low : with the basics (atmosphere scattering, real sized planet, and non-volumetric clouds are cool enough on their own); Medium  and high : with everything ON and high.
Logged

'If you're not born a natural genius, can become one if you try hard enough! ' Gai-sensei
Destroyed
Full Member
***
Posts: 142


Writer

destroyed.dom@gmail.com
View Profile Email
« Reply #4 on: September 09, 2009, 09:50:02 AM »

Well your right, it does limit the market quite a bit, but then again, some people are starting to get into buying nice shiny new stuff Smiley so i dont think you would have to worry too much, i think if someone heard enough good things about a game they would update there PC so they could play it ^^ but as for us we run on pretty good systems so dont have to worry xD Cheesy besides aiming at higher systems, allows us to make this look a hell of a lot better and add nice features Cheesy
Logged


"You dont know untill you try...."
Tamarin
Full Member
***
Posts: 208


View Profile
« Reply #5 on: September 09, 2009, 11:12:53 AM »

I agree that you should not set any limits on the engine. What I would suggest we set limits on are the materials inside the frustum. I would still like to see a total of how many triangles/textures are being pushed through the rendering process.

I could successfully crash any computer with enough triangles and textures - no matter what the rendering process or computer specs- could be a single pass.

When we are getting low frame rates already, with few game elements and with more rendering passes planned, I think we should discuss this.

I feel like we are already working with a deficit.
Logged
spmisra
Newbie
*
Posts: 24


View Profile
« Reply #6 on: September 09, 2009, 01:44:30 PM »

Well there is really a great deal of effort going into this engine from you guys. I too agree that getting a MMO will need a lot of optimizations but I think we need to optimize it also.  Yes we can target for a later release but to make a game like HALO 3 we need a lot of more efforts. Not only with the technology but also we need to work out and see what people will want and what more can we give them. 
Successful Game = good technology +  story line +  some amount of innovation + study psychology of users
So we can decide upon a particular genre and make our engine best in that.
say for if we need to make something like Halo then there will be a lot of destruction, wear and tear. We can customize for that. Instead of passive opponent we can add some intelligence. when I was working in Luxernder, it was like we decided on a few features, we also searched some researches for the things we wanted to implement, and we tried to implement.
For a great game to come up it takes a lot of time with a dedicated crew. Games generally come up in min 2-3 years frame. So we have to have a target.
There is also few things that we need to learn from the makers of the game "Black and White" and "Cell Damage".  They constantly told about the same fact that suppose we decide upon a game and its cool features in terms of technology then we should lock it. Even if we get a cool idea in the end then also we need to keep it up for something future and enhance the current game. Well not sure how to exactly put it, but its like if we decide that we will use a chisel then no matter if we get a laser drill to shape rock we should use chisel as we are more productive in that and we may not have much time to  experiment as fans will get impatient and the engine will die. So we have to balance it well.
Logged

~Thanks
Shakti
Pages: [1]
Print
Jump to: