A tiny, high-resolution game loop for NodeJS 10+. Utilizes the `setImmediate` and `setTimeout` schedulers in conjunction to maintain a balance of precision and performance.
npm install @javelin/hrtime-loop@javelin/hrtime-loopA tiny, high-resolution game loop for NodeJS 10+. Utilizes the setImmediate and setTimeout schedulers in conjunction to maintain a balance of precision and performance.
```
npm i @javelin/hrtime-loop
`ts
import { createHrtimeLoop } from "@javelin/hrtime-loop"
const loop = createHrtimeLoop(clock => {
// (bigint) monotonic time
clock.now
// (number) total number of ticks
clock.tick
// (number) time since last tick in ms
clock.dt
}, (1 / 60) 1000 / tick interval (ms) */)
// Start the loop
loop.start()
// Stop the loop
loop.stop()
// Check if loop is running
loop.isRunning()
`
yarn perf will run performance tests. Example perf output:
```
tick_interval | 16.666666666666668
ticks | 1000
avg_tick | 16.678785390999984
accuracy | 99.927%
precision | 100.000%