Jump to content

Edit History

Please note that revisions older than 365 days are pruned and will no longer show here
Cr0wst0rm

Cr0wst0rm

42 minutes ago, bdubyah said:

That just isn't the case. Go into a world and enter dm mode. Hit F6 and check the Spawn 25 box. Spawn 75+ zombies and watch your game go to crap. And that's with the zombies doing basically nothing. Go to a POI with a complex path through it and spawn them again. Your game will be almost unplayable and the AI will slow to a halt. The best PC you can buy today will have those same struggles.

And that is the point, if you have time complexity of O^2, no system will handle such workload effectively. That is why threading should be used more. Because there are cases where you just cannot optimize the game because of the impact on the outcome, so you should offload it to other threads which
are not required to come in time with game thread.

-Will the pathfinding be done later? That is fine, now i have to render, so give me the data after you finish the pathfinding process and I will do my part.

We are no longer in 1998 where systems had just 1 core for processing. Argument that you should buy better HW is just invalid. Every game uses threads. (UEBS 2 is one nice example)

And I agree, while Unity is very constrained when it comes to threading (various different safety checks), it still allows data manipulation. The concepts are same. You should access data only once at a time. For example in Unreal you cannot update transformation from non game threads as this is for rendering security. The general concept is that you "manipulate the data" on thread, then you "consume" it from gamethread.

Cr0wst0rm

Cr0wst0rm

11 minutes ago, bdubyah said:

That just isn't the case. Go into a world and enter dm mode. Hit F6 and check the Spawn 25 box. Spawn 75+ zombies and watch your game go to crap. And that's with the zombies doing basically nothing. Go to a POI with a complex path through it and spawn them again. Your game will be almost unplayable and the AI will slow to a halt. The best PC you can buy today will have those same struggles.

And that is the point, if you have time complexity of O^2, no system will handle such workload effectively. That is why threading should be used more. Because there are cases where you just cannot optimize the game because of the impact on the outcome, so you should offload it to other threads which are not required to come in time with game thread. We are no longer in 1998 where systems had just 1 core for processing. Argument that you should buy better HW is just invalid. Every game uses threads. (UEBS 2)

And I agree, while Unity is very constrained when it comes to threading (various different safety checks), it still allows data manipulation. The concepts are same. You should access data only once at a time. For example in Unreal you cannot update transformation from non game threads as this is for rendering security. The general concept is that you "manipulate the data" on thread, then you "consume" it from gamethread.

×
×
  • Create New...