AndrewScheidecker / BrickGame

A demo of Minecraft-style voxel rendering in UE4
399 stars 145 forks source link

Support for navigation mesh #26

Closed miguelemosreverte closed 8 years ago

miguelemosreverte commented 8 years ago

Right now this can be done by adding a couple lines at BrickCollisionComponent.cpp, setting a Max Collision Distance of 10000 and of course, creating a big NavMeshBoundsVolume with location (0,0,0).

image

Being the plutonium green looking parts the one where you can order a Pawn to run to.

Main problem is that for the creation of the navigation the collision boxes need to be created, so in order to create a complete navigation mesh, one where you can tell a Pawn to run as far as you can see, you would need a 1/1 relation between the rendered blocks and the collision boxes. By default the relation is 50/1 being 50 the rendered blocks and 1 the collision boxes created. So I suppose thats for a reason. Edit* tested the performance change myself using 50000 as MaxCollisionDistance, can confirm: It kills the computer. (It took 5 more minutes than the usual 0 minutes to be ready to play).

AndrewScheidecker commented 8 years ago

The performance problem doesn't surprise me, and at least when I was initially developing BrickGame I ran into a limit in the total number of collision boxes supported by PhysX. That was the reason for the relatively small collision radius.

miguelemosreverte commented 8 years ago

Leaving the specifics away, can you see an RTS being built on top of a voxel world anytime soon?

Anyway, the collision problem where a singleplayer game can be made but a massive one like an RTS cannot is infuriating. I cannot wait for internet speed to grow so that the logic of the games can be done on the server side and all the end user have to do is render it. Wait, why? No! Better yet, to make all computers obsolete by sending only video. That's it.

What do you think about dumb terminals? Is an old idea, but it seems like it could solve all the problems. What game would you like to be made if the only limitating factor was the developer skill and not the end user hardware? (whereas in today's world most of that skill goes to optimization.) Mine is an RTS in a voxel world.

miguelemosreverte commented 8 years ago

*just so I dont look that lazy, I will clarify that I know about AABB collision, and implemented it.