Select to view content in your preferred language

Increase performance & reduce allocations?

394
3
03-27-2025 01:58 AM
genarus
Emerging Contributor

Hey there!

I already saw a couple of complaints about the performance. Will this improve in the future? And is there anything we can do to reduce allocations and performance overall? 

My goal is to create a Pokemon go like game with like up to 200 hundred or more monsters crawling around on the global map to catch and fight. They will move regulary. I have the feeling that arcgis and its map will have an immense pressure. Is there anything I can configurate or modify to make the map render faster? Or to make LocationComponent updates faster? 

For example, I don't really need an elevation source, however I can not remove it from the map (the - button does not remove it in the map component). I also don't need different LOD levels, since the user can not zoom the map tiles should load at a certain zoom level. Is there any way to configure this or to tune the map to go high-performance and reduce allocations? 

Glad for any help, thanks! 

Tags (1)
0 Kudos
3 Replies
JanikCodes
Occasional Contributor

Hi, not sure why you are getting performance problems.

I'm using ArcGis with over 800-900 objects moving at over 90 fps in Unity.

ArcGis itself isn't your problem here, it's how you update/render those entities. Im using a pooling system, coupled with an occlusion culling system based on boundaries and smaller update intervals (not updating entity positions every frame) and with this I can render 800-1000 vessels moving in near real time, independend how far in/out I zoomed the map.

 

0 Kudos
genarus
Emerging Contributor

How do you move them? Is there a way to convert lat/Lon to Unity Transform Position without using that ArcGisPoint or Location? Those are Not that performant

0 Kudos
JanikCodes
Occasional Contributor

I'm simply using ArcGisLocationComponent's on each of my objects and it's working greatly.

Not sure how often you are updating the position but in my case they can move around every second (not frame!). This results in no issues with over 500 moving objects.

 

if you have some sort of AI/Animations or whatever for your points you could try to have a parent gameobject contain the ArcGisLocationComponent and a child gameobject which has your moving 'pokemon'. I believe this would result in your 'pokemon' being stationary on the map but your individual 'pokemon' can still move, for example every frame. Just a theory tho.

0 Kudos