Appendix E: Links and references
Everything the book cites, grouped. Primary and official sources first.
Odin (official)
- Home: https://odin-lang.org/
- Install guide: https://odin-lang.org/docs/install/
- Overview (the language tour): https://odin-lang.org/docs/overview/
- FAQ: https://odin-lang.org/docs/faq/
- Package documentation: https://pkg.odin-lang.org/
core:math: https://pkg.odin-lang.org/core/math/core:math/rand: https://pkg.odin-lang.org/core/math/rand/core:strconv: https://pkg.odin-lang.org/core/strconv/core:net: https://pkg.odin-lang.org/core/net/core:os: https://pkg.odin-lang.org/core/os/- GitHub: https://github.com/odin-lang/Odin
- Community (Discord etc.): https://odin-lang.org/community/
ols(Odin language server): https://github.com/DanielGavin/ols
Going deeper on Odin (recommended)
- Karl Zylinski, _Understanding the Odin Programming Language_: https://odinbook.com/, the thorough, standalone treatment of the language. If you're serious about Odin, buy it. This book taught only the slice Destroids needed; that one teaches the rest.
Web platform (MDN)
- WebAssembly: https://developer.mozilla.org/en-US/docs/WebAssembly
WebAssembly.instantiateStreaming: https://developer.mozilla.org/en-US/docs/WebAssembly/JavaScript_interface/instantiateStreaming_static- CanvasRenderingContext2D: https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D
- Canvas transforms (
setTransform): https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setTransform requestAnimationFrame: https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame- KeyboardEvent /
.code: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code addEventListener: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener- Web Audio API: https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API
- OscillatorNode / GainNode: https://developer.mozilla.org/en-US/docs/Web/API/OscillatorNode
- AudioContext & the autoplay policy: https://developer.mozilla.org/en-US/docs/Web/API/AudioContext
- localStorage: https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
- MIME types: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types
- DataView / typed arrays: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView
Specs & background
- WebAssembly project: https://webassembly.org/
- Elastic collision (2D impulse): https://en.wikipedia.org/wiki/Elastic_collision
- "Fix Your Timestep!" (game-loop timing): https://gafferongames.com/post/fix_your_timestep/
- "Juice it or lose it" (game feel): https://www.youtube.com/watch?v=Fy0aCDmgnxg
Lineage and credits
- Batchiness (the batched-Canvas2D library this book's
batchdistils): https://github.com/ewaldhorn/batchiness - Odin is by Ginger Bill and contributors.