We initially designed the floor as 32px tiles(squares) that seam with themselves and with each other, and when we imported it into Unity we found the tilemap component, which fits perfectly with the tiles.
With the tile palette tool is super easy to paint tiles with a brush, can even change the brush size.
With just 32 unique tiles, we can already create decently sized environments that look ok. And can always add more types of tiles.
From the tilemap, we generate a mesh that we use for the navmesh, which we use for pathinding and AI. We use Unity’s default navmesh that needs a 3d mesh.
“The way I generated the mesh at first, wasn’t very performant.
I started out by finding the position of the tiles in the tilemap, then spawned 1x1 cubes in every position. Then i changed the cubes into planes; that optimized it a lot. About 6 times less vertices.
From there the next step was to merge all the planes into one big mesh. It was still huge for big maps, multiple chunks of over 60k vertices.
I searched for ways to simplify the merged mesh, could hardly find anything but finally came up to this nifty little script:
http://wiki.unity3d.com/index.php/Mesh_simplification_(for_MeshCollider,_lossless)
by Fredrik Ludvigsen
Which after some tweaks reduced the mesh drastically. Now for a huge map the whole mesh is ~6k vertices.
—PPreda, Programmer”
So we made a huge map and tested it out:
We tried maps 10-20 times bigger with no problems. Feels good having almost no restraints.
The characters can rotate in 8 directions, so there are 8 versions for each animation. But its actually 5, we could save some time by mirroring some of them.
That’s it for now, stay tuned!
0 comments