Ticks, Elixir and Gaming
summary
Live Elixir code runs WebAssembly Fibonacci calculations every 25 milliseconds and measures gaps between scheduled calls, revealing large jitter and occasional long delays. Using naive send_after drifts late, adjusting by current time helps but still misses targets, while send_interval averages to 25 milliseconds because the timer wheel fires on schedule then subsequent calls bunch up, producing peaks and troughs. Result: game loop timing desynchronizes across machines and would break precise hardware control like servos. Solutions are deferred.
AI-written summary · about
related talks
06mLT: Elixir for Gaming! Using Network to Power a Sophisticated Multiplayer Simulation
35mBuilding Game Engines in Elixir
41mA Dwarf Fortress Clone In Elixir: A Story Of Doing It Wrong
44mIdioms for Building Fault-tolerant Applications with Elixir
08mLightning Talk: Wasmcloud + Bevy ECS: Solution to Woe of Indie Game Develope...
38mAggregating Ticks to Manage Scale in Sea of Thieves
15mFuzzing Channel-Based Concurrency Runtimes using Types and Effects
42mRuntime scheduling: theory and reality
