Terrain Engine library for Amethyst


I’m working on a terrain engine called Gaiku that would have an amethyst implementation.

The main goals of the library are not so clear yet, just because I’m still learning about it and never worked on a project like this, but took inspiration on an Amethyst RFC.

But describing basically the project (besides of what is in the readme of the repo) is to have an implementation that works for 2D and 3D terrains, using a system similar to Amethyst assets loading, where you have different file readers implementations (gox, png, tmx, etc) and bakers (mesh generators) that would generate meshes using different algorithms (voxel, marching cubes, tiles, etc), and other systems that would help you to load/unload the chunks based on player position, and also use LOD too.

Right now the library is still immature and heavily under development so it would change a lot in the future, also what would set roadmap will be the projects that use this library, because this will evolve according to the needs of those projects, so if anyone want to tell me what they expect for this kind of library and/or give advice/critisism about it I’m open to read them.

PD: Also thanks @erlend_sh for the mention in the post

(Erlend Sogge Heggen) #2

That’s a lot of work compressed into very few words! :wink: What particular path will you be going down first? Based on what research and prior art.

Are you making a game of your own as well that you’re planning to use this in?


Well, I’ve working the mesh generation working for marching cubes and voxel, the 2D stuff didn’t touch it yet, but my idea is having something similar to load assets, where you provide a FileReader implementation that returns (for now, but I want this to return an octree with chunks as leaf) a vector of chunks, then you have the Bakers that generate the meshes for each chunk, I wanted to take this approach because having this we have the flexibility to load files on the fly and also generate the meshes on demand.

Yes, I’m planing to make a game using marching cubes with terrain modification in game.

So my short goals right now are:

  • Implement Octree (to seach chunks, later on I think the foliage and trees can be inserted here too, but not quite sure about it).
  • Add Material support (this is most likely when rendy lands on amethyst, that’s when I would start adding the amethyst implemention)
  • Foliage support (but still don’t know what’s the best way to achieve this, also the lack of proper editor is one of the obstacles, maybe one in game, also to achieve this need to have a file spec to write and save the terrain)
  • Then write some test and benchmarks

Hopefully this would be achieved in one or two months.