From c19e3dae5f6087c7e446c6be620c370d9957cf7c Mon Sep 17 00:00:00 2001 From: Griffin Smith Date: Sat, 12 Jun 2021 14:41:24 -0400 Subject: feat(xanthous): Memoize characterVisiblePositions Memoize the return value of characterVisiblePositions to a new, semi-abstracted "memo" field on the GameState, recalcuclated if the character position ever changes. I'm 90% sure that the perf issues we were encountering were actually caused by characterVisiblePositions getting called once for *every tile* on draw, but this slightly larger change also makes the game perform relatively-usably again. Since this is only recalculated if the character position changes, if we ever get non-transparent entities moving around without the characters influence (maybe something building or knocking down walls?) we'll have an issue there where the vision won't be updated as a result of those changes if they happen while the character is taking a non-moving action - but we can cross that bridge when we come to it. Change-Id: I3fc745ddf0014d6f164f735ad7e5080da779b92a Reviewed-on: https://cl.tvl.fyi/c/depot/+/3185 Reviewed-by: grfn Tested-by: BuildkiteCI --- users/grfn/xanthous/package.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'users/grfn/xanthous/package.yaml') diff --git a/users/grfn/xanthous/package.yaml b/users/grfn/xanthous/package.yaml index e8cda59692a4..4f01759e9732 100644 --- a/users/grfn/xanthous/package.yaml +++ b/users/grfn/xanthous/package.yaml @@ -40,7 +40,6 @@ dependencies: - file-embed - filepath - generic-arbitrary -- generic-monoid - generic-lens - groups - hgeometry @@ -68,6 +67,7 @@ dependencies: - splitmix - streams - stache +- semigroups - semigroupoids - tomland - transformers -- cgit 1.4.1