Commit graph

32 commits

Author SHA1 Message Date
Erik Ogenvik
c7021db503 Adapt to left hand coord system. 2018-02-09 12:50:01 +01:00
Erik Ogenvik
e7fa53214b Use nullptr instead of NULL. 2018-02-06 13:45:11 +01:00
Erik Ogenvik
99640d26aa Use a left hand coord system. 2018-02-06 13:45:10 +01:00
Erik Ogenvik
b40c613a78 Improve handling of broadcasts.
Use the domains for determining broadcasts.
2017-06-24 21:47:43 +02:00
Erik Ogenvik
c2b673f9e8 Make sure we pick a spot we can reach.
Given the size of the entity itself.
2016-06-08 21:46:37 +02:00
Erik Ogenvik
374a691735 Allow destination to be set to another entity.
This only works for entities that share the same domain.
It also allows for entities to follow other entities.
2016-04-03 21:25:39 +02:00
Erik Ogenvik
1961ce1fa6 Turn off debug log. 2016-03-31 21:09:24 +02:00
Erik Ogenvik
91e37b6ef7 Don't apply invalid velocities. 2016-03-21 21:50:27 +01:00
Erik Ogenvik
db0737aa92 Use destination radius to look for path. 2016-03-20 22:46:12 +01:00
Erik Ogenvik
68aa6d3ddc Scale desired tile amount with observer count. 2016-03-20 20:19:35 +01:00
Erik Ogenvik
49f8ff9e1b Only update area if current tile isn't aware. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
8b0315b997 Fixed unnecessary copying in places. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
d56d026ce1 Clean up awareness when entity is deleted. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
0ab8a87009 Allow for multiple awareness areas. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
c93c4acabd Improved logging. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
fced6ac09a Don't skip incomplete results. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
178a81b505 Correctly report unaware tiles. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
8bd9604236 Use different radius for start and end. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
b894658ff8 Improved log output. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
e76e0fc7ad Skip movement goals that are unreachable.
A goal is considered to be unreachable when all tiles in the awareness area
have been mapped, and no path still could be found.
2016-03-19 23:05:13 +01:00
Erik Ogenvik
d5dd3e595c Don't count own entity when avoiding. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
1982f4321b Pad the size of circles a bit.
To make avoidance better.
2016-03-19 23:05:13 +01:00
Erik Ogenvik
3f858c76c4 Only update if location has changed.
Timestamp doesn't indicate if Location has changed.
2016-03-19 23:05:13 +01:00
Erik Ogenvik
3602149ffe Use grid sampling, as it appears more stable. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
0b8d889d51 Make sure location is up to date. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
c1d0bf48c5 Improved querying of paths. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
4adb908571 Handle bbox changes and better prediction.
We'll schedule the next move tick to when we expect us to arrive at the
next waypoint.
2016-03-19 23:05:13 +01:00
Erik Ogenvik
5b29c4f53c Fixed issue where location wasn't updated. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
4690483750 Improve debug logging. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
14354137a7 Hooked up steering to the move_me goal. 2016-03-19 23:05:13 +01:00
Erik Ogenvik
7b0d30680c Setup steering.
The setup is that steering is handled separately from the normal mind
ticks. At a closer interval (0.2 seconds currently) steering will be
evaluated.
2016-03-19 23:05:13 +01:00
Erik Ogenvik
514d0812a0 Added basic awareness for navigation.
"Awareness" refers to an entity's view of the surrounding world with
regards to how the entity could navigate. We use Recast/Detour to build
a navmesh for the entity.

However, since each world can have many NPCs, each one with their own
mind, we don't want to keep a complete navmesh for each single mind.
This will quickly become expensive. Therefore we want to share
awarenesses between multiple entities of the same type. So, for example,
all fishes handled by the same ai client will share one single awareness
of the world.
This to some degree involves some cheating, since AI minds now might get
knowledge of the world they otherwise wouldn't have. We consider this to
not be such a big issue. If this is unacceptable for some worlds these
should then disable awareness sharing and take the resource hit.
2016-03-19 23:05:13 +01:00