Some updates -- I've implemented crappy, crappy water. I played OSC's Outnumbered and it made me realize just how much I want a water system for my game. SO I went and did it.

The thing is, my powerbook has the worst graphics card in the industry -- the 5200 Fx Go, and as such, I chose to limit myself entirely to the fixed-function pipeline. Sure, it'd be nice to have fragment shaders, but they are SO SLOW on my machine that it just isn't worth it.

Anyway, given the limitation, I think it looks pretty good. I do some complicated per-vertex coloring to get sky color reflection, as well as transparency modulation based on distance from the ground and the obliqueness of the camera angle. I even did splashes that track objects that intersect the wave function.

FWIW, Outnumbered doesn't use any shaders or anything like that. I use two features beyond OpenGL 1.1 -- VBOs, without which performance is too low, and a cube map for the skybox (more convenient than using 6 separate textures, but totally unnecessary).

PowerMacX Wrote:Looks great, I imagine it looks even better in motion. That said, have you considered "fake" reflections? (ie drawing the geometry upside down and blending it with the water surface)

I would have recommended that as well, but I saw it was already running at 14 fps, and he didn't want to try out shaders because they would be too slow. I think drawing everything twice would push it over the edge.

akb825 Wrote:I would have recommended that as well, but I saw it was already running at 14 fps, and he didn't want to try out shaders because they would be too slow. I think drawing everything twice would push it over the edge.

Exactly!

That said, in release mode with all settings at max ( including 2-pass lighting for shadows ) I get about 20 ( in the worst case, 25 or so on average ), and with all settings at minimum, I get about 40-50.

Anyway, I wouldn't be happy with the inverted-z reflection if it didn't purturb with the wave function -- and to do that correctly I'd have to render to texture and at the minimum I'd have to run a vertex program to perturb the texture coordinates by the vertex normal.

My goal is to get reasonable performance on *my* machine -- which is a 1.3 ghz 12" powerbook with a 5200. That means I have to keep it simple. I'd love reflections, but it ain't gonna happen...

The first part is based on Carrara Studio 3, which comes on a hybrid CD for Windows and Mac. Even though it's about 2.5 years old (the latest is Carrara 5), it runs on Tiger 10.4, I know a film maker kid who's got it on his G5 iMac.

Carrara's plant objects are simple to use yet also immensely versatile, with tremendous options for the creation of the shapes and geometries, and then even more for the mapping and application of shaders. With that in mind, you can create awesome sprites and images with alpha channel masking for use in your games.

I would also recommend Project Dogwaffle, for its ability to make grass and other foliage, but it's a PCwin application. However, if you have Virtual PC on your Mac, I would love to hear if you can use the freeware version.

Then, you may have Painter, or other imaging/painting programs. Some of them have support for animated brushes, aka hoses (Gimp) or tubes (PSP). DigArts makes the Jungle DVD for game artists, as well as textures for low-poly mountains and other backgrounds. You might find it a good collection to create various types of shrubbery.

Re: staigerman
The vegetation brushes look excellent. I will have to look into them more closely. I'm reasonably happy with my geometry generator, but frankly, my vegetation textures suck ass right now...

TomorrowPlusX Wrote:Re: staigerman
The vegetation brushes look excellent. I will have to look into them more closely. I'm reasonably happy with my geometry generator, but frankly, my vegetation textures suck ass right now...

Which ones you mean, those generated by Project Dogwaffle's particle brushes?

One thought about all games with water: where the water meets the ground. Is there anything you can do about that? Either by making the ground automatically take on texture modifications that make the ground "damp" (maybe just reducing the brightness of the textures that were just uncovered recently from the water), or even possibly make a little crashing against the wall?

The waves that appear when you intersect water with the object is similar to waves crashing against the land, I think.