Eventual graphical Modernization

You think of something which could be added to TA3D post here! /
Vous pensez à quelque chose que l'on pourrait ajouter à TA3D, postez ici!
Post Reply
Posts: 146
Joined: Sat Jan 23, 2010 12:46 pm

Eventual graphical Modernization

Post by MattyWS » Mon Apr 03, 2017 12:18 am

I was thinking about it a lot and this is probably lowest priority, waaayyy at the bottom actually, but still a thought. I'm biased as I obviously deal with 3D art and graphics in general but TA3D is extremely out of date compared to other modern games. I know it's a complex subject though, so I won't go into too much detail. I don't know really how much of this is doable for TA3D but it is written in C++, so with that I'd expect everything to be possible. :P

Disclaimer! This a wall of text explaining what I'd expect from a modern game engine sorry! Coming from a professional game developer/3D artist. I'm always up to date with modern technology. I do have some idea of how TA3D works as I worked on it long, long ago when I was just a baby. :)

He's a few topics;

Standard rendering vs physically based rendering and Shaders.

Before I go into detail about all this high end stuff, it is possible that the shader being used can have a fallback shader that is more basic, to be run on mobile or weak PC's

Physically based rendering has taken over the games industry and has quickly become the standard. before we had texture maps like diffuse, normal, specular. Now everyone uses a system that replaces that completely. There's more texture maps but some can be combined if they are only using black and white values. They can be placed in the RGB channels. Here's the basic set of maps used now;

Albedo - basically just the colour with no lighting information (similar to flat diffuse)

Normal - same as always, used to fake lighting on the model surface

Roughness/Smoothness/Micro surface - these are all similar to a specular, as you'd expect it's a black and white image, in roughness's case, the value of white means almost no shininess on the model surface while black means shiny. Smoothness is basically the same but inverted and micro surface is just another name for them both.

Metallic - black and white map again, white being metal and black being anything else, wood, plastic etc. metallic values will render differently, usually making the surface shine in the colour of the albedo/environment. In this case the albedo is sometimes darker or just pitch black in the areas where it's metallic purely because the lighting will make up for it naturally.

Ambient Occlusion - another black and white image, white doing nothing, black values will shade the surface and block out lighting and shines giving the false sense of dark, shaded or non-lit areas on the surface of the model.

Height - not to be confused with something like a heightmap for maps. It's a similar concept though. In terms of 3D models, a heightmap can be used to parallax or tessellate the model surface giving it a visible surface height variation. It has a similar role to a normal map in a way. It can also be used to blend textures together, which is normally used for environments (rocky land blending into grass would look strange with a smooth transition, using a height map to blend the two textures can break it up in a more natural way.

Team colour - Specific to units this would be a black and white value again, white values would tint the model surface to the team colour.

Now, I'd expect to be able to apply all these maps to pretty much everything from a rock or tree to all of the units.

Animations vs scripted movement.

This one is a simple one, but being able to animate sequences in your modelling package and export that model with animations would be so much nicer than having to script it all. This would obviously then require the unit in question to be made specifically to animate this way but it'd be worth it.

Current Map formats vs todays standard.

I understand Ta3D needs to be able to use the old TA formats but it wouldn't hurt to have a new one too, right? So OTA used one huge image, then faked height with a heightmap that units would sit on. In TA3D, you've been forced to use that heightmap as the physical map and slap the large texture over it which does not match up a lot of the time, as the image was rendered in the camera angle of TA. What I suggest would be simple!

We have a separate map format, this would use a heightmap like normal, and a splat map along with 4/5 materials (materials in this case being a set of maps for something like grass, rock, dirt etc). To explain, the splat map is basically an image usually using the RGBA channels as masks which are used to say where the materials are. the image being RGBA can have up to 4 possible masks which means overall you can use 5 materials. A base material, then each extra material rendered based on those masks. The reason for this method is that now you can tile those materials so that you get a decent texel density. And blending them together with their own height.

As for water, just having a set water value like normal, render the water plane. at that height value. However I will say it might be an idea to have that water plane do a few things;

Tint! Anything underneath should tint in colour based on depth, and to the colour specified in the map's files. Each map can have their own water colors this way and the areas where water meets land would be more subtle rather than an abrupt, harsh line.Beyond that it wouldn't hurt for the water to have a normal map along with refraction and reflective surface reflecting the skybox, which I'm certain it does currently anyway.

Now the problem with all this is you will get an elastic terrain look which many games suffer from. The alternatives used in other games like Starcraft 2 and Halo Wars 2 would be a fully modeled map in 3D meshes. There should be no reason we can't combine both and have the ability to place 3D inanimate objects in the maps that will either do nothing but just be there and visible or block unit paths completely. Think modeled cliff faces etc. This might be harder to do as you'd have to implement it with pathfinding somehow.

Sprite based image vs particle systems.

TA's explosions in OTA were amazing! In 1997. Now we have particle systems. This might be something too complex to explain here so maybe it's an idea to look it up when you come to it. Something similar to the Unity particle system would be amazing, even if just a simple version of it.

Image effects

This one doesn't really need explaining. I want bloom, vignetting, colour grading, even tweakable contrast and saturation values! These are all things everyone is used to now and they would add so much to the game.

End note.

Now I'm not saying this all needs to be done, but it would go a long way in bringing modders and content creators to Ta3D, I for one would love to be spending my free time making awesome looking stuff for the game, but with it being so outdated I'd rather not, as it would not look all that great, and I wouldn't want to show it off. :( I want to be able to make content for TA3D that I can show off proudly.

I'm sure you've possibly looked into this but if not, take a look at Unity (my engine of choice) or unreal (a little more complex but more fully featured from the get-go)

Also Zuzuf if you made it this far, could I possibly have my username changed to MattyWS on these forums? :)

User avatar
Administrateur - Site Admin
Posts: 3278
Joined: Mon Oct 30, 2006 8:49 pm
Location: Toulouse, France

Re: Eventual graphical Modernization

Post by zuzuf » Sat Apr 08, 2017 8:31 pm

I updated your username ;).

Regarding all the features you described, some of them are almost impossible to fit into an OTA like engine (like animation because script timings and events rely on animation timings so that would break too much things). Regarding shaders, as they will become mandatory in the Qt5 port for rendering, shipping your own shader can become possible (but it requires thinking carefully about which 3D format we use and how we integrate it). Post-processing is always possible, however the result may not match your expectations because TA3D does not support HDR which is common now. TA3D already has a particle engine (nanolathe particles are rendered this way, as well as smoke).

Adding support for a modern map format is something I always wanted to do but I never found the time for it. If I had to implement it nowadays I would most likely implement something based on raymarching with cone-stepping using a basic mesh to speed things up, maybe using a 2 step displacement scheme so that you could have cliffs without having to add meshes. What's interesting with this technique is that it's a very compact representation and it's quite efficient on a GPU. You can cast perfect shadows from your terrain on itself (because it is a kind of raytracing). I would still use an old-style heightmap so that all the engine internals (such as pathfinding) would keep working with this new format, it would only be a graphics enhancement. The highest quality level for water already does what you expect, but that could probably be tuned (for instance to make water clearer or darker). At some time I also wanted to add atmospherical effects (rain, volumetric fog, optical distortion above lava, ...) but never found time for that either.

Like you said, everything is possible, it's just a matter of time.
=>;-D Penguin Powered

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests