8. Why reload code and data
More time to try stuff
More time to explore
Inspirational (and useful) tools:
REPLs: Lisp, Python, Lua
IPython notebook: code, documentation, output and history all in the
same place
http://ipython.org/notebook.html
http://jupyter.org/
Shadertoy
https://www.shadertoy.com/
Online compilers/playgrounds/assemblers
https://gcc.godbolt.org/ - online compiler that outputs pretty assembly
https://jsfiddle.net/
12. Reloading C/C++
Casey Muratori’s Handmade Hero
https://www.youtube.com/watch?v=WMSBRk5WG58
Especially the video Looped Live Code Editing
https://www.youtube.com/watch?v=xrUSrVvB21c
Molecular Matters blog
http://blog.molecular-matters.com/2014/05/10/using-runtime-
compiled-c-code-as-a-scripting-language-under-the-hood/
RuntimeCompiledC++ http://runtimecompiledcplusplus.blogspot.bg/
Bitsquid’s Cutting the Pipe talk from GDC 2012
https://github.com/niklasfrykholm/blog/tree/master/presentations
13. Reloading Scripting languages
E.g.: Lua
Generally easier
But can get complicated depending on your data and function bindings
(please don’t use luabind)
14. Reloading Server code
E.g. Python (beware)
Languages designed for hot-swapping (Erlang, maybe Common Lisp,
maybe others?)
Serialize, Shutdown, Restart
Fixing bugs in production
16. Reloading Data
Use Unreal, Unity, etc.
Custom solutions depend on the data: materials, models, textures,
game logic, settings, ui
During development or on a live game
DLC
Game settings (especially how to resolve conflicting changes)
Fixing bugs which were caught too late
Insomniac games patching Ratchet and Clank: Up Your Arsenal via a
buffer overrun in the EULA
http://gamasutra.com/view/feature/194772/dirty_game_develop-
ment_tricks.php
18. Next level: In-engine live editing
UI
Levels
Object settings / logic
Live prototyping
Collaborative editing
What happens when the engine/game is broken/won’t start?
Version control
19. Other stuff which can help improve iteration times
Good and versatile APIs
Another talk by Casey Muratori: Designing and Evaluating Reusable
Components http://mollyrocket.com/casey/stream_0028.html
Entity Component systems
Shorter compilation times
Determinism, recording & playback
Awesome but hard and not always possible