Posts
A 1% Drop Rate and 100 Tries Without Luck: The Geometric Distribution and Weighted Sampling
With a 1% drop rate, about 37% of players still have nothing after 100 tries and the unluckiest 5% need 299 or more. The geometric distribution, then two ways to sample a loot table.
Same Ship, Different Flight at 30 and 144 FPS: Integration and Fixed Timesteps
Multiplying by deltaTime is not enough to make physics frame-rate independent. Update order, damping and how time is accumulated all leak through; measured in Python.
Facing Is Not Position: Vectors, Dot and Cross Products and Coordinate Spaces in Games
How a game decides whether a target is ahead, which way to turn and how to slide along a wall: dot products, the 2D cross product and coordinate transforms, run in Python.
Mini Apps Inside Messaging Apps: WeChat, Telegram and How to Design the Host
Messaging apps can host third-party code because they already have the social graph, payments and sharing. Recent data on WeChat, Telegram and LINE, and how to design the host.
From Messaging to Community and Short Video: Storage, Recommendations, Mini Apps and Accounts
Public posts, video, ranking and mini apps put the server back in charge: storage after MinIO, a Qdrant recommender, mini app identity, and Taiwan and EU rules.
Building a Messaging App from the Device Out: Local-first, E2EE and On-Device Search
Once the device owns the chat history and the server only relays, identity keys, encryption, ordering, new-device history and search all change. Checked against Signal, WhatsApp and LINE.
Only 86 Million Ways to Shuffle: What Game RNG Certification Checks
Game RNG certification checks the seed, state recovery and mapping bias; statistical tests aren't enough. From a 1999 poker shuffle to Lineage M's odds dispute.