Comparison between Cryengine 3 and BGE

Since people are asking every week, I made a quick comparison!

CE3

1) Outdoor Environments
The biggest strenghts of Cryengine are the dynamic lights, vegetation and shadows. The day/night cycle works really nice in outdoor environments. The problem is the indoor environments, since Cryengine only supports one UV channel you have to bake your AO into the textures, which makes it hard to mix an AO/shadow map with tiled textures (or simply baking the lighting globally as in UDK), the result is that you have to fake the indoor lighting with dynamic lights. This means that when you could just bake a realistic light setup, you have to do it manually, with lights, spotlights and cubemaps, and this is hard and takes alot of time. Dynamic lights and day/night cycle is in the end not useful, since you are using these features to manually fake lighting, you cannot later change the time of day, since your cubemaps and lights that are placed for daylight will break the illusion of night time.

2) You are modding Crysis
If you do not have a company with employees and money to develop, you will be working with FreeSDK, which is nothing else than Crysis without the cool effects, guns, tanks and enemies. So you can just as well mod Crysis, since they will both be free games. The resources that come with FreeSDK really sucks, and that is intentional to force you to make your own, nothing wrong with that, but you could do the same with Crysis, and maybe use one or two of the explosions already available.

3) Disillusioned Community
There is little sharing of resources on the Cryengine community Crydev, and little activity, nothing available really to learn from and its members are becoming disillusioned by the neglect of the community from Cryteks side.

BGE

1) Sharing: The community and resources
On Blenderartists.org, blendernation, blendswap, blender3darchitect etc. there is all the resources and tutorials you need to learn. And resources for you to make your video/game/presentation. You can literally begin stitching together different features that people share in the community and learn that way, the best way!

2) Baking, textures and 2d filters
BGE does not have the dynamic lights, daycycle and nice shadows as CE3. The features exists, but are not as optimized. A day/night cycle would be possible with the Preethams sky shader, and some python to control the energy and color of lights, but you would need a nicer sun shadow feature, that would give you different shadow resolution per distance and a nice fading at the end, I haven’t seen this as of now, and finally we need to wait for the Harmony phase 2 for faster dynamic lights. In BGE at the moment you need to use some tricks. You need to bake lights, use python shaders and 2d filters to get a nice look!

3) Unfinished features
The biggest problem with BGE is that there are many cool features that are either in pototype stage, or unfinished. For example the Box Projected Cube Mapping technique is awesome, but has not been integrated into blender, and I have not yet seen anyone improving the code so you could more easily set it up. Recently CE3 integrated BPCEM, as a object that you place in your scene, set the size of the box and press “generate cubemap”, and that is it! Alot of features available here could easily be improved and integrated into blender, and mostly this is what Candy branch is about, but it is moving along slowly. And also, in my opinion, the biggest problem with BGE is that the 2dfilters fry my GPU, they need optimization!

Conclusion:
CE3 FreeSDK is nothing else than a stripped down Crysis version, for making free games you are better off using Crysis / Crysis 2 mod SDK.

BGE has more limitations than CE3, but you have more control. When it comes to scenes and environments, you still have to fake lights in CE3, unless you are doing outdoor environments, like a forest. But indoor environments are harder to setup placing dynamic lights in CE3 than just baking textures in BGE.

If you want to do a free first person shooter, with an outdoor setting, use CE3.

If you want to do a commercial game, or a free game with any other setting, or not a first person shooter, use BGE.

My Creydev thread: http://www.crydev.net/viewtopic.php?f=309&t=79981

+1
Thanks a lot!

@@martin.hedin : greatwork ! are you on facebook ? https://www.facebook.com/Rehan6Syed?ref=tn_tnmn

@isyedcg: Following :wink:

But I prefer using this forum to discuss blender, Facebook is to caotic, no way of organizing things…

Nice Explanation

I really do plan on donating 100% of the ad revenue from Wrectified to get the BGE refined :):slight_smile:

5 or 10 titles doing this= unstoppable bge

1 game can get a million hits a week, now factor in all content can be user created,

A good comparison but i beg to disagree with Dynamic lights, bge lights can be placed / moved, changed and destroyed in realtime. maybe not the conventional way but using layers , libload and python its easily done.

And also, in my opinion, the biggest problem with BGE is that the 2dfilters fry my GPU, they need optimization!

that’s your computer’s problem not blenders.

@CTBM - I agree with martin. The BGE could definitely use some speed-ups in general, and the 2D filter is not an exception to that. Down-sampling could really help 2D filters to execute faster.

Im not arguing with the fact for improvement, however i feel people are overly critical, i dont have any issues with running SSAO , HDR , Retinex, Vignetting, Light Scatter, bleach, all at the same time without taking any fps hits on a 500k -1m tri GLSL scene. on a GTX 560 ti.

remember that the 465GTX came out in 2010 and my card 2011 so dont be surprised it doesn’t make the cut.

performance is scene dependent, Just because you get better results in CE3 that doesn’t explain a whole lot, with it being a commercial engine there are optimisation scripts in place that you have to code yourself (Especially custom 2d shaders, most can be modified for perfomance), even by using the bog standard GLSL shaders that is vastly inefficient as they contain information that isn’t relevant or even needed to most materials and this can be expensive.

Ideally these issues need to be addressed, nearly all have work arounds, but there are so many things that blender can do that no other engine can in terms of workflow speed, Feature implementation, Third party tools and finally alternate dev branches.

Same here. I’m running a GTX570 and i5 and have no problems in running filters, high geometry and so on. Demo-Video; 200 Cars = 13.098.200 Polygons = 60FPS on my PC.

That’s the view of my PC.
My Notebook (GPU: GeForce8600mgt) isn’t as fast and I have trouble to run many filters and geometry on it.
But I even try to run my bge-games (with restrictions in graphics) on my Notebook.

The problem I’m seeing is, that there are a lot of people who want to run Crysis2/3 like games on old hardware with 60fps. This is not possible…

I’m happy, that my Notebook (5 Years old) can handle Crysis (1) with low/medium settings and low fps.

But it’s right, that the bge needs some improvements.
A good idea would be integrating multi-theatering in Blender. The most of the current machines run at a multi-core processor.
Also it would be nice if the gpu could handle more of the processing. (Maybe Cuda?..)

Else there should be a better integration between bge and cycles for example. (Like mentioned before.)
Cycles bakes all of the lights and effects, and bge uses only this baked textures.

I can run Crysis and Crysis 2 on my GF 8800 GT at reasonable fps (playable). You should look into Steam hardware stats and see what people use nowadays.

If you are going with threading, read up on Rage threading method. It’s what is considered state of art threading nowadays.

Going with CUDA is a good idea, but don’t forget about Intel / AMD users :wink:

That mixed with a separate thread for terrain LOD and another LOD for objects, and moving most of the code to new logic bricks, would mean that you could divide up the load nicely,

A “clipped block man” for navigating maps in the BGUI would be nice, ie Player avatar,
adding in multiuser support like blender verse = collaboration on asset making, in real time

so we could edit the same map @ the same time, and see who edited what somehow, and repeal these changes if need be,

this would make Blender game engine more powerful than anything I can think of,

Everyone complains about blenders 2D filter system not having a down sampling ability when many filters should be run at the monitors full resolution like post AA chromatic aberration and even certain types of ssao. Correct me if im wrong but I think I remember reading that cryteks ssao for crysis used a full screen pass with smart dithering and blur. I agree that bloom and other certain post processing does require downsampling due to the amount of samples required for the effect to look decent and it would be just a waste running bloom full screen.

And a 465GTX is a pretty low end card core count wise fare enough cores isn’t everything but are still a large factor when running intensive post processing and lots of it will bring it to its knees especially at high resolutions. The heat thing sounds weird but i’ve had my card make different sounds in different game engines, like a sort of coil whine.

For comparison on my card in a scene with 200k tris using one of martinsh’s ssao shaders (among others) going from 16 samples up to 128 drops the framerate only about 15 frames from a 100 at 1080p with 4096 res variance shadows going as well. My card is a reasonably new ati 7950, I think its over a year old now.

Actually, after reading responses to this thread today I have been doing some long time testing on my Asus ENGTX 465, with 5 filters (DLAA, SSAO, BGE Race game filter, Godrays LSCATTER), and actually the card never gets hotter than 90 C (safe temp is 105C according to Nvidia, so 90C should be fine)

The fan is going loud, but yet again, games like World of Tanks make my fan go loud. Maybe it is not to bad, and I get some 30-40 fps which is ok, and the fan used by ASUS is one of the worse, I expect other cards having more quiet fans, so it might be the fan scaring me and not the temperature of the card :wink:

@flame, you are right, many of the filters that I use should be full resolution to look good. So I guess that I am pretty happy with BGE at the moment :wink:

My PC has i5 and gf 650 gtx and I have a scene with 3 halls, 15-20 materials and 5-6 lamps(without shadows) and occluders between the rooms, and this is running just fine in blender, but when I export it as runtime it’s heavily lagging mostly when loading new textures I think … I don’t know is this normal and what I’m doing wrong.

Personally I love BGE and I’m thinking if the engine had area lights and be able to run no more than, say 2 lights on the screen at any time without lag, it will be unstoppable :slight_smile:

@postmortem, i guess you need to turnoff the V-sync.

are you using dds textures?

A great read!
i enjoy such well done comparisions that hit straight to the nail.

sidenote:
[SUB]
The biggest problem with blender is that you can not just klick on “create exe” and sell it.
You can klick Render and sell the picture,
Or klick Animation and sell the movie,
but not for Games.
I know there is a thread totaly about it and OFC there are ways that can be use to work around this,
and yet with all those sideway possibilities, this is the strongest brake in GameDev for blender
[/SUB]

Thanks for your suggestion, i’m using dds textures and the vsync helped for the overall performance, but still there is huuuge lag when I’m viewing level areas for the first time ONLY… So did anyone know if blender preloads the whole scene textures, or this is the effect of loading the new textures in the view?

This became a little off topic, for what I apologise.

How can you access the cry engine?

@postmortem, you should make a new thread, maybe someone can help you there.
@MangoFruit, what do you mean. The free version of crytech or exporting to it?