Forrest Smith, a game programmer, writes about game engine tech, performance, algorithms, and visualizations, in hand-written HTML.
HN links it for his Simpson's Paradox explainer and technical posts on game networking and performance; he also describes his hand-coded HTML site in comments.
I implemented a fuzzy search a few years ago and here's some things to look into.
Damerau-Levenshtein is a significant upgrade from the default Levenshtein algorithm used as it also picks up the very common transposition error much more efficiently for not a lot of extra code.
https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance
Typed arrays would also probable speed thing up quite a bit.
Tokenizing may not be faster. Set the first row of weights to ZERO. When you're done, look for the lowest value in the final array. This also saves the trouble of trying to tokenize properly for every language as it's only concerned with the bytes themselves.
https://stackoverflow.com/questions/8139958/algorithm-to-find-edit-distance-to-all-substrings
Performance of that algorithm also suffers a LOT with very long strings. For those, we went with one more like the fuzzy search used in Sublime text. Basically, you iterate the string one time and look for the search characters to appear in order. To go more advanced add a weight to each match type. Stuff like consecutive characters that match, cases match, or immediately transposed characters next to each other give higher weights to the resulting string.
https://www.forrestthewoods.com/blog/reverse_engineering_sublime_texts_fuzzy_match/ (this looks like a decent overview of sublime fuzzy search).
To clarify - In many cases you are actually running your physics or game loop at a different rate from the render loop. For instance, in CS:GO you can have a frame rate of well beyond 300, but the game loop (physics/ai/net/logic/etc.) is ticking at 60 (by default) due to the client-server architecture. This type of non-synchronous engine architecture is very complex to build reliably, so unless there is a hard requirement for it (e.g. client-server multiplayer model w/ advanced latency compensation) you will usually find a simpler synchronous approach used unless the underlying engine comes with the async architecture OOTB (UE4).
Some additional reading on the topic:
https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
https://blog.forrestthewoods.com/synchronous-rts-engines-and-a-tale-of-desyncs-9d8c3e48b2be
https://gafferongames.com/post/fix_your_timestep/
Reminiscent of Simpson's Paradox, the most famous example being a gender discrimination lawsuit alleging UC Berkeley discriminated against women in admissions (57% men vs. 43% women).
It turned out there WAS bias - in favor of the women!
"The lawsuit triggered a study. The study results showed that not only were women not discriminated against, but that women had a statistically significant advantage!
Here’s what happened. Some departments had high acceptance rates and some had low acceptance rates. Women applied to more competitive departments. Men applied to more accessible departments. Taken on the whole men had an advantage. When broken down per department it was women who were more favored."
https://www.forrestthewoods.com/blog/my_favorite_paradox/
Oh no. I'm the "weird dude who writes raw html".
Artisanally hand-crafted HTML + CSS + JS. Hosted on Netlify. A+++ would recommend. My content works locally just by double-clicking a .html file. I can publish or edit live content by pushing to my private Git repro. Super easy.
Static site generators suck balls and are 10x more trouble than they're worth. I always know exactly what I want my blog posts to look like. Static generators can make it extremely difficult to generate the precise output html I know I want. It's radically simpler to just add some extra padding if it is more aesthetically pleasing for that specific content.
If you'd like to judge for yourself: https://www.forrestthewoods.com/
If the HN front page consisted of your content alone, I would be very happy. https://news.ycombinator.com/submitted?id=forrestthewoods
https://blog.forrestthewoods.com/reverse-engineering-sublime-text-s-fuzzy-match-4cffeed33fdb#.ovs3w0fqv
https://gamedevdaily.io/four-ways-to-create-a-mesh-for-a-sphere-d7956b825db4?gi=7b9c7b2c0996#.5lzblag34
https://gamedevdaily.io/advanced-behavior-tree-structures-4b9dc0516f92#.95kzyvwwh
Speaking purely for myself, I hope to see them resubmitted. The post about reverse engineering Sublime's fuzzy matching algorithm is an overlooked gem, I think.
Same thing already done in spiritual successor for Supreme Commander/Total Annihilation called Planetary Annihilation. Basically there is authoritative server that work exactly that way.
Only downside of this is that when you have few thousand units on screen game will use abysmal about of bandwidth like 8Mbps for each client. So when there is 10 players in-game server-side must have these 80Mbps.
Oh and it's also used as replay / save system. Amazing tech:
https://blog.forrestthewoods.com/the-tech-of-planetary-annihilation-chronocam-292e3d6b169a