The magic thing is that graphic engine can accept any kind of data: voxels, standard triagnlular meshes, sparse voxel octrees, minceraft data, that erosion layers like in "From dust", It doesn't matter. Why make an engine that can do only simple heightmap and small level rendering when you can, with much less code, write graphic engine that virtually has no limitation? It is just bad programing. But that is just graphic engine.
Look at gameplay at Crysis 2. In that whole game you can shoot at object or pick them up and throw them. That is all - that is all interaction with the world - that is it - practically nothing more.
500 developers and that is all they have come up with in 4 years of development!!!
End not only that engine doesn't even have dynamic loading of stuff. How lame is that? Beating it in a graphic department would be so easy. Yust give it a bigger map with more stuff and it would die because memory couldn't handle it. I mean, even the simplest engines have some sort of dynamic loading - you have libraries today that will handle that for you.
No - in Crytek you have loading screen and you have to wait... Even Carmak realized that something like that is not excusable these days.
I see nothing wrong with Cryteks approach, they set a goal, reached it and vowed people. They implemented what they decided was needed, made the tools to allow the artists to go crazy and spent loads of R&D on new shading techniques and optimizations.
Beating Crysis in visual quality is probably a tough job, but definately doable... beating Crysis in the performance department is also very much doable... doing it both at the same time? No API or engine in the world will help you with that, unless it was made specifically for that purpose. And perhaps Cryteks approach was simply to design an engine, be done, copy what they need for the next project, and continue. There is absolutely nothing wrong with that in my opinion... abstracting for the sake of abstracting is research territory.
From what I can tell, it sounds like a really nice and competent engine you've got there, but so far it's just talk and nice in theory... even though your engine can do anything anyone would ever want, as long as it is a generic piece of engine, then you may be able to recreate everything everyone else makes... but never achieve the same performance... doing subsets and limited demos are easy, bringing it all together is a very different story (storage, memory, performance, scale with hardware, etc). You give Crytek flak for not creating a reusable engine and a bunch of other things, it's easy enough when you're not on a deadline and not doing the actual work.
I'm pretty sure they have a toolbox of classes and utilities that provide most of the gruntwork for their engines... then they add the features. That is their engine development. What I'm trying to say is, your approach is to make an engine that has the capability to do everything, design a framework that can handle it, etc, etc, and then your game has an engine on-top of that. Crytek decided that DirectX is their framework and they implement only what they need, giving them complete control over their engine, no redundant features, no redundant work. Two very different approaches, and I really don't see anything wrong with Cryteks approach. You have to remember that now, as I mention above, they can copy-paste and throw out whatever they want... relying on an engine means they are stuck with it, they can't just throw it out without starting all over.
I just don't believe in "do it all"-middleware, specialized middleware is great if you have an idea and want to put it out there, but in that case, you want it to do what you want, and fast. You don't want to build an engine on-top of the middleware, read lots of documentation, create the tools and tutor the artists. If you want to push the boundaries you often need to drop the middleware in favor of your own engine. Anything in-between is in my opinion probably best provided as standalone libraries/utilties.
[quote name='ryan20fun' timestamp='1312919078' post='4846846']
and what makes you think that it is hardcoded ?
Just look at their homepage... EDIT: They've changed it a bit from the last time but you can still figure things out.
Any engine that brags about particular effect clearly states that that is internal part of it.
To quote my self: "It is OK to brag about the shaders in the context of the GAME. It is not OK to brag about the shaders in the context of the ENGINE."
That way you are just admitting that you are nothing but hard-coder and that the engine is limited to just that what you've presented.
[/quote]
My point being, this is exactly what people looking for middleware wants... that's why they are buying it. No point in saying, "this engine can do everything, You just need to implement it!". Then they'll go somewhere else, they want a list of features, and then proceed to use those features and the tools that allows artists to work with those features.