0
\$\begingroup\$

I've been reading about voxel terrain lately and often see people asserting that it will absolutely kill performance.

What I don't understand is how games like Delta Force managed to have smooth voxel terrain without all these alleged performance issues? Sure, their terrain doesn't look cutting edge but it certainly doesn't (seem to) impose very harsh performance requirements.

Is Delta Force perhaps not actually using voxels for their terrain? How exactly does their engine work and why don't people use the same techniques today?

\$\endgroup\$
  • 1
    \$\begingroup\$ P.S. Since you give no reasoning as to why or where people say it will kill performance, I cannot challenge that assumption directly. See edits to answer. Please upvote / accept if it has helped your understanding. \$\endgroup\$ – Engineer Mar 15 at 7:39
1
\$\begingroup\$

Rendering in a certain way, i.e. vertical scanline rendering, as in e.g. Voxlap, can be quite slow, because accessing pixels / fragments on modern GPUs is substantially different from the DMA on older video cards, which is part of what solutions like Voxlap use to achieve high performance. This may be where online sources have confused you.

There's nothing inherently slow about a voxel heightmap data structure. It's faster than running through a dense 3D grid to render data, for reasons of data quantity: the curse of dimensionality.

Having said that, per-pixel rendering of complex voxel fields may be costly if not well-optimised but is far from impossible, see for example Voxel Quest and Voxel Farm, and even the much-mocked Euclideon. In fact these are all more complex by far than heightmaps, because they are use 3D grid data which also allows for overhangs; yet they still run at respectable frame rates.

Non-sparse 3D grids are far more challenging for a CPU or GPU to process due to the sheer quantity of data involved, but the abovementioned projects are implemented using sparse, surface-describing 3D data structures such as octrees, KD-trees, and / or point clouds, while the majority of the internal volume (behind walls and floors) is implicit (meaning it need not be stored at all). This keeps data quantity down, allowing for rapid throughput when rendering.

You can trust that Delta Force uses voxels. Another approach became more widespread for the creation of high levels of detail - namely, triangle-based meshes. Both of these approaches to rendering came to the fore in the '70s to '80s, but voxels, offering only a blocky description of form (especially on those old systems) fell by the wayside in most cases. Only a few niche contenders carried on using it, and NovaLogic was one of them.

\$\endgroup\$
  • \$\begingroup\$ Alas I can't upvote due to missing rep. Is there more info available about the Novalogic engine or their approach in general? I can only find tidbits here and there (" NovaLogic used the proprietary Voxel Space engine developed for the company by Kyle Freeman (written entirely in Assembly language) to create open landscapes."). Is there any open re-implementation of the Novalogic one? AFAIU Voxlap is not aiming to recreate anything but is a thing of its own. \$\endgroup\$ – user125760 Mar 15 at 7:57
  • \$\begingroup\$ @user125760 "propietary" = "closed source". So no, there isn't. The closest you'll get that matches closely to current technology is VoxelQuest, which is state-of-the-art and now also open-source. Good luck working with it if you're a newcomer to game development, though. Voxlap has offshoots in the form of the Ace of Spades engine and others. Voxel Farm may be more your style but still requires C++ knowledge. You can still accept the answer if it helped, but no hurry if you wish to wait for other answers. \$\endgroup\$ – Engineer Mar 15 at 7:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.