In the last years strategy games have evolutioned from flat 2D engines to
isometric 2D engines (Starcraft and Warcraft from Blizzard are a good examples).
But now this is obsolete due intrinsic limitations in 2D sprite world. For
example, if we need to see from a unit we can't do it. Even more, nowadays
videocards are not equal as ten years old, they're very powerful, cheap(for
a normal user) and 3D oriented. Then 2D sprite world reign is over.
The 3D solution looks nice and easy, in a first look seams that you only
need to translate 2D artwork to 3D artwork and a few changes more. But the
problems starts at developing level. The most important are: Units now walk
over a infinite world not a flat squared world; and 3D worlds may change as
a unit-enviroment interaction (like a bomb) or like a world to world interaction
[like a volcano(Sacrifice, Populous III)].
But there is another problem very very dangerous and not easy to solve: The
3D powerful is limited. If the complexity of a world is very high you can't
see it in a reasonable time and even more: How many "complexity"
would bear it?
Well complexity is anything related with polygon count, texture complexity
ans screen size, but It may vary, so we need to make a variable system depending
on the situation (in real time) or user-assisted to limit this three facts.
But strategy games use to render height fields with units on.
Height fields are a unique 3D object and if you will to see a good result
It needs to have about 33K polygons. 33K poligons + number of units * polygons
per unit is a big deal of polygons, then we need to reduce polygons in any
way. Reduce polygons in units making level of detal dependant models for each
one is a problem for the artist. But the height field is a LOD variant over
its surface, a model that needs to be reduced at render-time. The reduction
works reducing more small polygons at far distance and keeping near polygons
as they were defined.
Obtain a static model that works over precalculated data is something that
was discovered for some years, but work over unit modificable enviroments
is something very hard to do. This is my objective.
I'll use C# in combination with CSOpenGL and C/C++.
For legal requirements some details will ever been explained. |