Reactions to crysis movies on gametrailers
by Phil Carlisle · in Torque Game Engine Advanced · 03/21/2007 (2:57 am) · 44 replies
I was watching the movies of the crysis toolset on gametrailers.com today. Thinking about the technology they have in there and really trying to figure out how TSEA would get to somewhere near that point.
Trailer One
Trailer Two
There are a few things that struck me as interesting:
1) Day and night cycle with shadows. - This is interesting because EVERYTHING is shadowed so clearly they have some method of allocating shadow buffer space thats quite effective. The shadows seem to allow transparency at least at the on/off level. The shadows are all seemingly realtime updated too. Although I saw some artifacting in far off viewpoints when he moved the camera quickly (to be expected).
2) Foliage editing - this one seems like a reasonbly simple thing, but he could place trees and larger foliage items by simple clicking on the ground, this would be a really simple feature to add to TSEA's toolchain and would make planting things much quicker I think.
3) Foliage generation - in one part, he shows the procedural foliage as well. This is based on terrain material and coverage values. So as you edit the terrain base coverage map, the foliage updates realtime too. So clearly we can discern that there is a single foliage coverage manager that reads the coverage map and distrubutes foliage appropriately (plus, allows batching and all that render stuff).
4) The usual terrain texture painting tools... natch.
5) An interesting sort of integration of voxel editing. Actually, we did that in worms 3d a few years back and it works really quite well. Basically its a simple marching cubes algo based around some volume elements. His sort of editing thing was quite nice (a ball that either adds or subtracts space). Dunno how they do the texture selection for it, plus there were some lighting issues inside the chunk he hollowed out.
6) When looking at the second video, there is ambient occlusion which seems (might be wrong) to be baked into interiors and other objects. Perhaps an ambient occlusion map for each object?
7) He showed a nice system that did visibility culling, basically it looks like its based off the "large occluders" technique (cant remember the paper thats in, but its well known), similar to the technique they use in that visibility culler thing the guys from sur-render did, goddam I cant remember ANYTHING!!).
8) Interesting simple camera path animator thingy with scrubbable timeline.
9) AI Actor class, with some kind of link indirection to the character, he called it "archetype", but yeah, basically datablock.. meh, datablocks.
So takeaways from it are:
1) Day/Night with "always on" shadows would be do-able. I dont really like the fact that shadows have to be tweaked so much right now. It seems like we should just have global options for shadows and leave it at that. Clearly it has implications, might mean models need a shadow geometry too?
2) Foliage placement by clicking on the heightmap - relatively easy to throw into TSEA as it is.
3) Foliage generation - Again relatively easy, would need to sample the map material and place foliage dependant upon it. if we relax the requirement that this needs to be editable ONLINE then I think it'd work fine.
4) Natch
5) This would require a fair bit of work to integrate, but the actual implementation is relatively well understood (marching cubes), it adds the opportunity for overhangs and caves without then requiring an editable mesh toolset, which means atlas for instance could go back to being a heightfield, which would simplify the toolset issues for atlas.
6) Ambient occlusion map, seems like it'd be easy to do a baked one, but I'd rather back in the engine with some regeneration step.
7) Interesting problem, but it feels like TSEA could use something here. Complexity wise, dunno, but its a well known issue and has had lots of academic research applied.
8) Pretty easy, Ben sorta prototyped something similar a good while back.
9) Again, pretty easy, main issue is updated pathing, no idea if they did that, didnt see any path gen tools in the demo's. Maybe once they release the game we can see how it works.
One of the interesting things really is the uniformity of things. I.e. uniform lighting, tools, access to parameters etc. Which kind of makes me thing that some kind of property system with variable reflection and interrogation would need to be in place before this system would really work. For instance, a script being able to access ANY VISIBLE PROPERTY of any other game object would seem to be required. Kind of like the properties editor, but a bit more robust and automatic. I.e. non crashy range checked and interrogation based.
Basically I think Cryengine 2 is kind of similar in mindset to the functionality that the original Tribes gameplay required, so its useful to compare the feature set (I can imagine trying to create Crysis using the T2 engine 10 years ago for example).
What say you? am I wrong?
Trailer One
Trailer Two
There are a few things that struck me as interesting:
1) Day and night cycle with shadows. - This is interesting because EVERYTHING is shadowed so clearly they have some method of allocating shadow buffer space thats quite effective. The shadows seem to allow transparency at least at the on/off level. The shadows are all seemingly realtime updated too. Although I saw some artifacting in far off viewpoints when he moved the camera quickly (to be expected).
2) Foliage editing - this one seems like a reasonbly simple thing, but he could place trees and larger foliage items by simple clicking on the ground, this would be a really simple feature to add to TSEA's toolchain and would make planting things much quicker I think.
3) Foliage generation - in one part, he shows the procedural foliage as well. This is based on terrain material and coverage values. So as you edit the terrain base coverage map, the foliage updates realtime too. So clearly we can discern that there is a single foliage coverage manager that reads the coverage map and distrubutes foliage appropriately (plus, allows batching and all that render stuff).
4) The usual terrain texture painting tools... natch.
5) An interesting sort of integration of voxel editing. Actually, we did that in worms 3d a few years back and it works really quite well. Basically its a simple marching cubes algo based around some volume elements. His sort of editing thing was quite nice (a ball that either adds or subtracts space). Dunno how they do the texture selection for it, plus there were some lighting issues inside the chunk he hollowed out.
6) When looking at the second video, there is ambient occlusion which seems (might be wrong) to be baked into interiors and other objects. Perhaps an ambient occlusion map for each object?
7) He showed a nice system that did visibility culling, basically it looks like its based off the "large occluders" technique (cant remember the paper thats in, but its well known), similar to the technique they use in that visibility culler thing the guys from sur-render did, goddam I cant remember ANYTHING!!).
8) Interesting simple camera path animator thingy with scrubbable timeline.
9) AI Actor class, with some kind of link indirection to the character, he called it "archetype", but yeah, basically datablock.. meh, datablocks.
So takeaways from it are:
1) Day/Night with "always on" shadows would be do-able. I dont really like the fact that shadows have to be tweaked so much right now. It seems like we should just have global options for shadows and leave it at that. Clearly it has implications, might mean models need a shadow geometry too?
2) Foliage placement by clicking on the heightmap - relatively easy to throw into TSEA as it is.
3) Foliage generation - Again relatively easy, would need to sample the map material and place foliage dependant upon it. if we relax the requirement that this needs to be editable ONLINE then I think it'd work fine.
4) Natch
5) This would require a fair bit of work to integrate, but the actual implementation is relatively well understood (marching cubes), it adds the opportunity for overhangs and caves without then requiring an editable mesh toolset, which means atlas for instance could go back to being a heightfield, which would simplify the toolset issues for atlas.
6) Ambient occlusion map, seems like it'd be easy to do a baked one, but I'd rather back in the engine with some regeneration step.
7) Interesting problem, but it feels like TSEA could use something here. Complexity wise, dunno, but its a well known issue and has had lots of academic research applied.
8) Pretty easy, Ben sorta prototyped something similar a good while back.
9) Again, pretty easy, main issue is updated pathing, no idea if they did that, didnt see any path gen tools in the demo's. Maybe once they release the game we can see how it works.
One of the interesting things really is the uniformity of things. I.e. uniform lighting, tools, access to parameters etc. Which kind of makes me thing that some kind of property system with variable reflection and interrogation would need to be in place before this system would really work. For instance, a script being able to access ANY VISIBLE PROPERTY of any other game object would seem to be required. Kind of like the properties editor, but a bit more robust and automatic. I.e. non crashy range checked and interrogation based.
Basically I think Cryengine 2 is kind of similar in mindset to the functionality that the original Tribes gameplay required, so its useful to compare the feature set (I can imagine trying to create Crysis using the T2 engine 10 years ago for example).
What say you? am I wrong?
About the author
Recent Threads
#42
I think UnitTest++ is the right one, have also a look one the site!
www.gamesfromwithin.com/articles/0603/000108.html
UnitTest++ is modified version of CppUnitLite by Noel Llopis.
sourceforge.net/projects/unittest-cpp
Here you can find a step by step example for Visual Studio .NET 2005.
unittest-cpp.sourceforge.net/money_tutorial/
05/01/2007 (9:14 am)
Well I looked for the unit test on the site "www.gamesfromwithin.com"I think UnitTest++ is the right one, have also a look one the site!
www.gamesfromwithin.com/articles/0603/000108.html
UnitTest++ is modified version of CppUnitLite by Noel Llopis.
sourceforge.net/projects/unittest-cpp
Here you can find a step by step example for Visual Studio .NET 2005.
unittest-cpp.sourceforge.net/money_tutorial/
#43
I agree UnitTest++ is the latest.
I look through the MMO1 book this weekend and didn't seen anything directly related to the bitmasks topic, but there are a bunch of great articles, so I bought it anyway. I will check out the second one this weekend.
Thanks again for the references.
Todd
05/01/2007 (8:46 pm)
Hey Stephan,I agree UnitTest++ is the latest.
I look through the MMO1 book this weekend and didn't seen anything directly related to the bitmasks topic, but there are a bunch of great articles, so I bought it anyway. I will check out the second one this weekend.
Thanks again for the references.
Todd
#44
05/02/2007 (12:22 am)
Incidentally, it looks like the subject of my PhD research is going to be software architectures of virtual worlds (or something to that effect). So I'll be doing research into object naming and propagation, its a really interesting subject for me (being a network guy in my early career) and I think needs some research to inform developers anyway.
Torque Owner Stephan Goebels
One Man Show
www.introgamedev.com/resource_mmgd2.html
Chapter "Real-World MMO Object Sharing" from Joe Ludwig (Flying Lab Software)