Phase 3: bots #79
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The largest single port in the epic — roughly 24,500 lines in the sister
project — and the one with the most written-down experience to inherit, since
that project has ported a bot framework once already and kept the
procedure.
Depends on Phases 1 and 2 finished and on combat being in: bots need skills to
train, something to fight, and shops plus trade plus prices to have an economy
at all. Trade belongs here rather than earlier, because bots are what make
it load-bearing rather than decorative.
What bots are actually for here, in order of value:
tick with routing, interaction, skilling and combat all competing. The
player-per-process architecture has been measured at ~31 ms with 200 walking
players and never with 200 players doing anything.
something before there are enough humans to matter.
Read the sister project's bot bugs before writing any of it. They are its
single largest bug cluster — a movement sync offset, a process heap leak, a
watchdog that self-healed the wrong way, an unhandled cast crash, pinned levels
that decayed XP — and the standing rule here is that lessons paid for once get
built in as the feature lands rather than retrofitted, since retrofitting is
where that project's worst regressions came from.
The movement one is doubly relevant and worth stating plainly: that family of
bug is already known here, and in this protocol it bites players rather
than only bots, because the client renders the local avatar purely from server
deltas and has no prediction to paper over a missing one. Anything that moves
an entity without reporting the movement it made is the same defect.
Done when an empty world looks populated, and the load-test harness has a
real population to measure rather than a synthetic one.
First slice is up as #115: the framework whole (session-as-fourth-seat, brain in-process behind the barrier reply, cache-derived sites, persistence with boot auto-spawn), five kinds — wander, travel, chopper, miner, fighter — and thirteen ::bot* commands under a bot.* group. PK, traders, production and hibernation stay on this issue; #111 tracks the log filter.