NVGen is a set of scripts and tools for generating procedural worlds during the game. Worlds are not generated in the Unity editor, but in real time in the game itself.
In Unity, there is a problem with the accuracy of floating-point numbers. The farther away you are from the center of coordinates, the higher the error in computing floating-point numbers. In fact, it is considered ideal not to go beyond 5000 units from the center of coordinates, then problems may arise. My research has shown that a distance of 10,000 units is acceptable, but there may be minor problems with the accuracy of physics calculations. The most terrible bugs begin to occur when the distance from the center of coordinates approaches 100,000 units. I ran into this problem when I was working on Infinity Square/Space. I began to work on solving the problem, then I developed the tools for procedural generation of worlds. A package of all the tools together, I called - NVGen.
Floating Point Errors:
NVGen consists of:
- Procedural generation of landscape mesh.
- Procedural splatmap and texture generation for landscape mesh.
- Procedural generation of herbs, flowers, etc.
- Procedural generation of trees that can stand at different angles.
- Procedural generation of objects.
- Procedural generation of clouds and fog.
- Procedural generation of water.
- Global wind system.
- Procedural generation of creatures.
- Adaptive artificial intelligence.
- Package shaders.
- Solving the problem with the accuracy of floating-point numbers.
In the future, I will add a procedural generation of cities.
At the moment, I am actively mind developing NVGen.
As I work alone, I do not aim at large ambitious projects, therefore I work on small projects based on tools and scripts developed by me.
How I implemented the error traversal associated with floating point precision.
All test builds of games based on NVGen are codenamed "Go to the light".