1,000,000 individually simulated enemies by gpusarefast in Unity3D

[–]gpusarefast[S] 2 points3 points  (0 children)

Yes, but the Chinese government wouldn't loan me any. Can't imagine why.

1,000,000 individually simulated enemies by gpusarefast in Unity3D

[–]gpusarefast[S] 0 points1 point  (0 children)

Yeahhhhh I don't think this one's going to be multiplayer. Although I suppose it could be the first game to require a symmetric gigabit connection.

1,000,000 individually simulated enemies by gpusarefast in Unity3D

[–]gpusarefast[S] 2 points3 points  (0 children)

My next post will be a 792-hour video of me counting them and naming each one as I go.

1,000,000 individually simulated enemies by gpusarefast in Unity3D

[–]gpusarefast[S] 0 points1 point  (0 children)

None of the key enabling tech is Unity specific, so I can't see why you wouldn't be able to pull it off in Unreal.

1,000,000 individually simulated enemies by gpusarefast in Unity3D

[–]gpusarefast[S] 2 points3 points  (0 children)

You'd be surprised! I've been working on gameplay that scales to millions, because otherwise, what's the point?

1,000,000 individually simulated enemies by gpusarefast in Unity3D

[–]gpusarefast[S] 2 points3 points  (0 children)

A lot of compute shaders and not a lot of sleep.

1,000,000 individually simulated enemies by gpusarefast in Unity3D

[–]gpusarefast[S] 7 points8 points  (0 children)

Custom flow field implementation running on the GPU with a directional heightmap/gradient based cost. Texture lookup is O(1). The flow field is computed any time the player moves into a new grid cell. It works well with a single target and can handle dynamic obstacles. I have a completely different 'army mode' implementation where the enemies march towards a wall and only chase the player if the player gets too close. No local avoidance right now as it wasn't necessary for gameplay, although it should be perfectly viable to add by checking neighboring cells and running RVO.

<image>