Release 2022.3.5

Good afternoon everyone :smiling_face:

We have a “fix” available for the null pointer issue when claiming territory in the new 2022.3.5 release.

Shoutout to @rfnel for pointing this out! :raised_hands:t5:

Please note: that it is a quick fix and the issue is still open.

Please let us know if there are any issues. We have a small concern around units not being returned after the OCCUPY_LAND action is canceled due to the new null check. We have added some logs with the null checks to keep determine which object is actually null. Please keep an eye out for either:

"[Occupy land Action Handler - ProcessActionComplete]: Action is Null" or
"[Occupy land Action Handler - ProcessActionComplete]: Node is Null"

Please let us know if you are losing units. It could be due to this :point_up_2:t5:

Thanks again for the feedback

Yours truly the GameEngine Time :video_game:

Thanks for the new release! I haven’t encountered the bug yet on my side but I will report any extra info I can get if I also trigger it.

On a side note, it looks like units are not being removed from the bot’s available units once they occupy a node. Just testing at the moment, but I was able to get 420 units to occupy a node while my bot’s population was only around 80. The units are removed from the available units while they travel, but as soon as the action handler for the land occupation kicks in (i.e. they reach the node) it looks like the units are added back to the bot’s available units.

3 Likes

Good catch, @kobus-v-schoor. We’ll release the patch ASAP.

@Jordan @Jenique I think I’ve found the cause for the crash, I’ve been able to consistently trigger it under the following circumstances:

  1. Send a unit to build at {x, y}
  2. Some ticks later, but before the first unit has started building, send a unit to occupy {x, y}
  3. The build finishes, making the node at {x, y} no longer available for occupation
  4. Once the occupation action’s handler triggers, actionService.ResolveNode returns null in EngineService:416(since the node is no longer available) - that gets passed on and eventually triggers the exception.

I think a possible fix would to check for a null node in the OccupyLandActionHandler and then just returning the action’s allocated units to the bot’s pool of available units.

Also maybe a possible bug (I have no idea if this is even possible, but since its in the same vein as this it might be occurring), if a bot builds on a node which currently has occupants, do those nodes automatically get returned to the bot? If not, I don’t think we’ll be able to send a Leave action to that node (due to the same node resolving to null error) so the units will be stuck there

1 Like

If this is the case maybe the build resolved action should check if a node has any occupants and kick them off if yes.

But I do not feel this should happen on start build, rather build complete.

In this sense I feel the engine has to respect time…
If my occupy resolves first, I get the node, Building is canceled
If my opponent,s building completes first, They block my occupy and kick me off.

This is just some thoughts.
Please let us know how you decide to handle the territory situation when we look at build VS occupy.
We could test but it will really help the time window along if we know exactly what to expect.

I will also just let you know what my test results are but im leaving territory for tomorrow.

For some reason i decided yesterday to completely redo my building strat,
Giving myself 2 days for that.

Really probably leaving too little time for territory.
But its all fun really.

And sometimes crazy things happens.
Im hyper excited.

Hoping to push down hard these next few days.

1 Like

Hi @WillieTheron we are glad to hear that you are excited :smiling_face:

We have decided that since the OCCPY_LAND is quite unique in that it has an associated LEAVE_LAND action. The players can use that to bring their units back.

We know it might be a little weird considering once a building is built that land cannot be claimed. And your units are effectively sitting idle.

But again, since this is the only action that gives you full control of when your units leave. We thought it would be for the best.

I hope that makes sense :blush:
All the best for your bot!!

That’s perfect, As long as leave land has no restrictions at all.

1 Like