5/23/2023 0 Comments Bzflag mac quit![]() I got a bunch of my mates together, and the four of us worked through the main progression. This game is quite a fun time, even if it is only a short time. But actually controlling the complexity of that data and efficiently storing/accessing it is a non-trivial change as you'll see from the project's dev blog. ![]() ![]() There's a reason that we're told at least every 3 years that a new company has come up with the 'engine of the future' using voxel tech only to have it vanish into obscurity as they try to turn it into something that's not a tech demo.įor Veloren, there is a big benefit: we get to create enormous procedural worlds. Voxels are great for a lot of things, but making a game like Veloren run quickly is much harder than you might initially realise. The only real benefit from a complexity standpoint is that storage and access of specific voxels is much faster, but this often doesn't represent a payoff. ![]() The fundamental complexity of voxel data structures is higher: O(n^3) for iteration, and the density of polygons required after meshing is generally much higher. There's a reason that voxel games appeared after games with more traditional meshes. Can you get/set a 3d-pixel (voxel)? Can you click "destroy/create" on a raycast target? Boom => voxel editor.Īctually, completely the opposite is true. Can you render a square? Can you render 100 squares? Boom => voxel engine. The technical reason that voxel games are "easier to build" is that you can easily make a 1000x1000x1000 array of integers/chars, and get a 50-"voxel" radius from somewhere and start rendering it with raycasting. I'm 1000% sure that if minecraft added some sort of symmetry + polygon + joint/bone/connection-point tooling, you'd see an explosion of polygon assets available within the community. Minimally: the potential "editors" are already familiar with 90% of controls, viewpoints, and can see the asset "in-game" already (and they're probably already "in the game / editor" already, no context-switching to blender or autocad or something). Post something somewhere to someone: "Hey, I have some fresh voxels for someone to do something with!" => scrape-world.php => asset.vxl => etc.īasically, games with a built-in level-editor tend to be easier to contribute to. Clicky-clicky-pokey-pokey to place/remove colored blocks. Imagine, if you would: build a 64圆4 "flat" foundation of stone. There's a benefit to direct manipulation of pixels/voxels within the game. Minecraft-style water + lava = obsidian, more Noita-inspired gases rising). Once this is in place, it can be straightforwardly extended with more fluid interactions (e.g. This is similar to what Noita does with keeping track of recently-updated terrain rectangles. A possible optimization would be to detect such blocks, remove them from the main terrain grid, put them in a separate entity-with-terrain-collider (the same kind we use for airships), and only iterate the (sparsely populated) AABB of fluids-that-have-recently-moved. a water block with an adjacent-and-below air block swaps places with that air block), though naively doing this would be expensive (iterating over all loaded terrain chunks every tick). A simple way to fix this would be to have an ECS system that uses CA-style rules (e.g. if water blocks are manually placed on top of a hill, they won't flow downhill, fortunately this is rare due to worldgen). I do think adding a Noita-style cellular automaton would be fairly straightforward.Ĭurrently Veloren has water and lava, but neither will flow (e.g.
0 Comments
Leave a Reply. |