Hi friends! Not sure if i'm correct here, but my issue is heavily technical - but of course about game art. Anyway this is pure self-advertisment. I write an articles about...
"Fakes & Tricks of games which impressed me"
It goes about crazy ideas or awesome tech fakes which made an cool effect. I write about this in my blog and collected everyting i can remember. Feel free to comment about my stuff, explain what i didn't understood or tell me about what stuff impressed you.
I posted this on the technical forum and was pointed to this thread. Awesome stuff BTW!!
Would someone be able to explain how the the wheat field in Titan Quest was made? I love the way that it swings back and forth when a character runs through it. Is it a rigged model? An animated texture? etc.
hatchiman
Funny, because i saw Titan Quest this weekend on Steam and remembered how awesome this effect was, when i saw it the first time. I like it even today and thought about it - but unfortunately Eric is right as far as i know and it's a vertex shader trick which i can't investigate. Maybe it could just drop a small article and just say that this is a cool trick without further explanation...anyway - really cool that you thought about this exactly when i did too
The game comes with a level editor, so you can get a good look at the effect, and you can see the meshes they used. They're pretty similar to this. There's no importer though, so you can't get new meshes into the game.
Usually grass like this uses vertex color to control which vertices get perturbed by the vertex shader. Like, the top vertices are painted white, and the bottoms black.
Vertex shaders do both the gentle wind-bending effect, and the collision-bending effect. For the collision, some games apply a spherical force, some a directional force. And you can add a sine wave for the bounce, with a timeout.
Since the wheat always sways, just a lot less so when the player isn't moving, and the sway happens near the player movements but seems randomly oriented, I think the same shader is always used on the whole field and one of its inputs must be an intensity map. Base the sway amplitude on that map, make it dark then trace the player path in white and blend back to dark over time. It's cheaper than checking collisions for each clump of wheat.
Yes, I do think it could be something like this. I know the programmer who did that system. Although I still think it's based on a sphere collision test, because that's what we used on a subsequent game. I'll ask.
Eric, feel free to ask him because if we have enough information i could collect it in an small article as a conclusion The more you guys dicuss, the more interesting it gets
A small request: How is the visual look in games like The Swapper, The Neverhood or Skullmonkeys achieved? 3D models with textures from real clay models? The lightning in Swapper looks really gorgeous too.
I was also looking at dungeon keeper 2 recently because I was implementing a very similar system in Unity. Its very interesting, especially for its time. Even now most tile based games dont put in the effort for procedural distortion even though its really not too hard.
SimonT & Ace: Excuse me. I was a bit confused what I was looking for or even asking. I just found out that both The Swapper and Skullmonkeys are (entirely?) 2D. So are characters and environments sprites with real clay models used as photo source textures, or is there more sorcery behind all this?
Yeah, Skull is an old game, and it's very easily sprite based capture-mation.
They could have done some interesting stuff in it, kinda like flash games, have different sprites overlap for smooth transitions, etc, but the basic core of it, is clay.
Lailath
Today i heard a podcast about the The Swapper is made out of real materials. They built the stuff with clay and then put it somehow in the PC. Really awesome idea
Hey Simon, Eric and Chev,
Thank you for replying to my question. The solutions that you presented provided a good direction for me to follow. I'll keep following this thread in case you investigate it further.
The DK2 talk reminds me of another late Bullfrog game with two nice tricks, Populous: The Beginning. First trick was the terrain appeared to be a globe but really was a grid. The trick was accomplished by deforming the grid into a parabola, and perspective did the rest. The second trick was simple procedural textures that were generated by having terrain color based on height, and using a detail texture acting as a displacement map to make it look more organic instead of like gradients. Back then those textures would be generated on the GPU for each terrain chunk but now it can all be done in a shader (I've even got a directX implementation I made somewhere, I'll see if I can dig up some pics)
"Physics and collision detection have to deal with fact, that object, that crossing the border can be in two (or even four) places simultaneously, and have to collide with other objects from other side."
This line got me thinking about Portal. Maybe you could do an article on how Portals are rendered and how the physics are set up.
From what I remember Portal is doing a special hack that create two physical word for allowing you to pass through wall (and portals, since they are just Render to Texture). That's why the physics is so buggy in Portal 1, the source engine was not very ready for this kind of system.
Hi Eric! Nice links! Thanks for sharing! I know there's already a lot stuff about this so i don't go into too much detail. Binding & Sushi were just great examples because they're so similar
They're facing quads, and it looks like vertex color, changed on the fly relative to the lighting angle. I saw this in a whitepaper not long ago, I'll try to dig it up.
Thanks for the link! I'm not sure if i understood 100% because when i just overlay a simple particle with a gradient, it just gets darker linearly. But (marked red in the picture) on their example, the particle texture holds highlights even in the darkened areas. I would expect something like this when they would use a normal map, but i don't think they ued height/normal maps, right?
Every angle of the floor piece has a different pattern.
could possible be a other masking trick with a dot product of normals and a vector, but most likly isnt, and just a texture that changes based on players location.,
But (marked red in the picture) on their example, the particle texture holds highlights even in the darkened areas.
Looks to me like each of the clumps is a different quad. Compare it with the texture shown above that shot, you can see a black hole in the texture which is repeated throughout the particle effect.
Also, no need for a normal map for this simple effect, like passerby says it's an easy material trick. I bet it's just a straight multiply, though you could scale it 2x to make it more intense (for example).
could possible be a other masking trick with a dot product of normals and a vector, but most likly isnt, and just a texture that changes based on players location.,
I was thinking that as well. But it transitions to smoothly, and you can get a highlight on both of them if you stand pointing towards the corner.
Inverted Shlick fresnel mul by lambert term would the one way to do that, although it wouldn't make any sense to add an extra instruction cost to it, when half-lambert would be more then realistic enough.
passerby
But wouldn't that affect every of the 4 verts of the the particle the same? Since the 4 normals of the particle are all oriented into the same direction?
BARDLER
I'm not sure of i know what you pointing at exactly ... couldn't it be just a big texture? Maybe you can describe the phenomenon a bit more detailed? Sorry...my eyes getting older i think
Eric Chadwick
Good point. If you overlay every single particle with the gradient, of course it would more look like the example of SotC. Thanks for pointing this out!
p.s. I added your link to the articles end
Ace-Angel
Would a fresnel effect work when we suppose that every of the 4 vertex normals of the particle points into the same direction?
It could, the Shlick Fresnel doesn't use Normals iirc, it uses the Eye and Light vector. It's used for Glancing angles of the Specular, when you look it from an edge and just that.
In this case, you can use it to Subtract the Color of the Particles, once the Camera and the Light align, with the particle in the middle, making it darker or black, when you're behind the particle.
You could just use the diffuse texture are you mask/normals to create the slight light bend, although that would work better with Eric's link to SOTC, or a Half-Lambert term, since it would retains the fake volume in all directions (cheaply) and when moving around it. The S-Fresnel would require some weird X2Y power to get the full effect nice and dandy, which would up the cost.
Doesn't any of you guys know some Relic devs? Then we could ask them holes into the stomack (that's a frase we say in germany...don't know exactly why )
Replies
Would someone be able to explain how the the wheat field in Titan Quest was made? I love the way that it swings back and forth when a character runs through it. Is it a rigged model? An animated texture? etc.
Here's an example: http://youtu.be/yFekh-wop_c?t=5m02s (watch in 720p to see clearly)
Funny, because i saw Titan Quest this weekend on Steam and remembered how awesome this effect was, when i saw it the first time. I like it even today and thought about it - but unfortunately Eric is right as far as i know and it's a vertex shader trick which i can't investigate. Maybe it could just drop a small article and just say that this is a cool trick without further explanation...anyway - really cool that you thought about this exactly when i did too
Usually grass like this uses vertex color to control which vertices get perturbed by the vertex shader. Like, the top vertices are painted white, and the bottoms black.
Vertex shaders do both the gentle wind-bending effect, and the collision-bending effect. For the collision, some games apply a spherical force, some a directional force. And you can add a sine wave for the bounce, with a timeout.
This is a nice article about making animated grass.
http://http.developer.nvidia.com/GPUGems/gpugems_ch07.html
[ame="http://www.youtube.com/watch?v=dSnHDPtUmUE"]http://www.youtube.com/watch?v=dSnHDPtUmUE[/ame]
Or sprites? It's pretty easy to make high quality smooth sprites nowadays in 3D or with camera's and have enough space for the sheets.
#37 Dungeon Keeper 2 - Walls
Lailath I'm not sure exactly what you mean (like Ace) but maybe you can provide us with some screenshots showing also the other games you mentioned.
Sounds interesting! Do you have something to show already?
Here's a quick overview of Skullmonkeys
[ame="http://www.youtube.com/watch?v=ros98VD41P4"]http://www.youtube.com/watch?v=ros98VD41P4[/ame]
They could have done some interesting stuff in it, kinda like flash games, have different sprites overlap for smooth transitions, etc, but the basic core of it, is clay.
https://www.youtube.com/watch?v=t--NuuGBV-g&t=29m50s
http://www.kickstarter.com/projects/1949537745/armikrog
Today i heard a podcast about the The Swapper is made out of real materials. They built the stuff with clay and then put it somehow in the PC. Really awesome idea
MightyPea
Looks awesome
Thank you for replying to my question. The solutions that you presented provided a good direction for me to follow. I'll keep following this thread in case you investigate it further.
The DK2 talk reminds me of another late Bullfrog game with two nice tricks, Populous: The Beginning. First trick was the terrain appeared to be a globe but really was a grid. The trick was accomplished by deforming the grid into a parabola, and perspective did the rest. The second trick was simple procedural textures that were generated by having terrain color based on height, and using a detail texture acting as a displacement map to make it look more organic instead of like gradients. Back then those textures would be generated on the GPU for each terrain chunk but now it can all be done in a shader (I've even got a directX implementation I made somewhere, I'll see if I can dig up some pics)
A link about the color ramp displacement: http://www.populous-online.co.uk/displacement/
Glenn Corpes, Populous 3 programmer, reused both tricks (but massively enhanced the textures) for a mobile game called Topia: http://glenncorpes.blogspot.com
#38 Lego - Studs
Here's somethine
NEW
#39 1nsane Carpet 2 - Repetitive Worlds
This line got me thinking about Portal. Maybe you could do an article on how Portals are rendered and how the physics are set up.
NEW
#40 The Binding of Isaac - Composition
http://flashgamedojo.com/wiki/index.php?title=2D_Tile_Art_Basics
Another good one I saw recently.
http://www.emanueleferonato.com/2012/05/24/the-guide-to-implementing-2d-platformers/
#41 Company of Heroes - Shaded Smoke
http://wiki.polycount.net/HairTechnique?action=AttachFile&do=view&target=making_of_sotc.pdf
Go to the 5:50 mark
Every angle of the floor piece has a different pattern.
could possible be a other masking trick with a dot product of normals and a vector, but most likly isnt, and just a texture that changes based on players location.,
Also, no need for a normal map for this simple effect, like passerby says it's an easy material trick. I bet it's just a straight multiply, though you could scale it 2x to make it more intense (for example).
I was thinking that as well. But it transitions to smoothly, and you can get a highlight on both of them if you stand pointing towards the corner.
But wouldn't that affect every of the 4 verts of the the particle the same? Since the 4 normals of the particle are all oriented into the same direction?
BARDLER
I'm not sure of i know what you pointing at exactly ... couldn't it be just a big texture? Maybe you can describe the phenomenon a bit more detailed? Sorry...my eyes getting older i think
Eric Chadwick
Good point. If you overlay every single particle with the gradient, of course it would more look like the example of SotC. Thanks for pointing this out!
p.s. I added your link to the articles end
Ace-Angel
Would a fresnel effect work when we suppose that every of the 4 vertex normals of the particle points into the same direction?
In this case, you can use it to Subtract the Color of the Particles, once the Camera and the Light align, with the particle in the middle, making it darker or black, when you're behind the particle.
You could just use the diffuse texture are you mask/normals to create the slight light bend, although that would work better with Eric's link to SOTC, or a Half-Lambert term, since it would retains the fake volume in all directions (cheaply) and when moving around it. The S-Fresnel would require some weird X2Y power to get the full effect nice and dandy, which would up the cost.