SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Improving Iteration Times Through The Reloading of
Code and Data
Boyan Spassov
Overview
Short talk on the virtues of reloading, hot-swapping, exploratory
programming, live editing and not waiting for the compiler
https://xkcd.com/303/
How not to
improve
iteration times
How context
switching affects
productivity
Topics
Reloading code
Reloading data
In-engine live editing
APIs, Component systems and other ways to improve iteration times
Who am I
Game programmer at Gameloft for 2.5 years
Games I have worked on: World at Arms
Why reload code and data
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/
How to reload code and data
Reloading Code
Reloading Code
Use Unreal, Unity, etc.
Reloading C/C++
Reloading Scripting languages
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
Reloading Scripting languages
E.g.: Lua
Generally easier
But can get complicated depending on your data and function bindings
(please don’t use luabind)
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
Reloading Data
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
Next level
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
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

Mais conteúdo relacionado

Semelhante a Improving iteration times through the reloading of code and data

TestUpload
TestUploadTestUpload
TestUploadZarksaDS
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Johan Andersson
 
Chapter 1 computer abstractions and technology
Chapter 1 computer abstractions and technologyChapter 1 computer abstractions and technology
Chapter 1 computer abstractions and technologyBATMUNHMUNHZAYA
 
Less code More fun
Less code More funLess code More fun
Less code More funAmos Laber
 
Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily usearun.arwachin
 
Synapseindia dot net development about programming
Synapseindia dot net development about programmingSynapseindia dot net development about programming
Synapseindia dot net development about programmingSynapseindiappsdevelopment
 
Season 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data ScientistsSeason 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data Scientistsaspyker
 
Phase 1 Software Progress ReportCard Czar Android AppCMS.docx
Phase 1 Software Progress ReportCard Czar Android AppCMS.docxPhase 1 Software Progress ReportCard Czar Android AppCMS.docx
Phase 1 Software Progress ReportCard Czar Android AppCMS.docxrandymartin91030
 
Lua in Games
Lua in GamesLua in Games
Lua in Gameswe20
 
Lua in games
Lua in gamesLua in games
Lua in gamesSon Aris
 
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionistDEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionistFelipe Prado
 
Introduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsIntroduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsLuca Galli
 
SynapseIndia dotnet debugging development process
SynapseIndia dotnet debugging development processSynapseIndia dotnet debugging development process
SynapseIndia dotnet debugging development processSynapseindiappsdevelopment
 
Making Hardware Accelerator Easier to Use
Making Hardware Accelerator Easier to UseMaking Hardware Accelerator Easier to Use
Making Hardware Accelerator Easier to UseKazuaki Ishizaki
 
OGDC2012 Lua In Game_Mr. Van, Nguyen Ngoc
OGDC2012 Lua In Game_Mr. Van, Nguyen NgocOGDC2012 Lua In Game_Mr. Van, Nguyen Ngoc
OGDC2012 Lua In Game_Mr. Van, Nguyen NgocBuff Nguyen
 

Semelhante a Improving iteration times through the reloading of code and data (20)

TestUpload
TestUploadTestUpload
TestUpload
 
RResume
RResumeRResume
RResume
 
Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)Parallel Futures of a Game Engine (v2.0)
Parallel Futures of a Game Engine (v2.0)
 
Chapter 1 computer abstractions and technology
Chapter 1 computer abstractions and technologyChapter 1 computer abstractions and technology
Chapter 1 computer abstractions and technology
 
Less code More fun
Less code More funLess code More fun
Less code More fun
 
Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily use
 
Synapseindia dot net development about programming
Synapseindia dot net development about programmingSynapseindia dot net development about programming
Synapseindia dot net development about programming
 
Season 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data ScientistsSeason 7 Episode 1 - Tools for Data Scientists
Season 7 Episode 1 - Tools for Data Scientists
 
X page developer
X page developerX page developer
X page developer
 
Phase 1 Software Progress ReportCard Czar Android AppCMS.docx
Phase 1 Software Progress ReportCard Czar Android AppCMS.docxPhase 1 Software Progress ReportCard Czar Android AppCMS.docx
Phase 1 Software Progress ReportCard Czar Android AppCMS.docx
 
Lua in Games
Lua in GamesLua in Games
Lua in Games
 
Lua in games
Lua in gamesLua in games
Lua in games
 
Search Lucene
Search LuceneSearch Lucene
Search Lucene
 
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionistDEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionist
 
Introduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsIntroduction to html5 game programming with impact js
Introduction to html5 game programming with impact js
 
SynapseIndia dotnet debugging development process
SynapseIndia dotnet debugging development processSynapseIndia dotnet debugging development process
SynapseIndia dotnet debugging development process
 
CISY 105 Chapter 1
CISY 105 Chapter 1CISY 105 Chapter 1
CISY 105 Chapter 1
 
Making Hardware Accelerator Easier to Use
Making Hardware Accelerator Easier to UseMaking Hardware Accelerator Easier to Use
Making Hardware Accelerator Easier to Use
 
Introduction to Google Colaboratory.pdf
Introduction to Google Colaboratory.pdfIntroduction to Google Colaboratory.pdf
Introduction to Google Colaboratory.pdf
 
OGDC2012 Lua In Game_Mr. Van, Nguyen Ngoc
OGDC2012 Lua In Game_Mr. Van, Nguyen NgocOGDC2012 Lua In Game_Mr. Van, Nguyen Ngoc
OGDC2012 Lua In Game_Mr. Van, Nguyen Ngoc
 

Último

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Último (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Improving iteration times through the reloading of code and data

  • 1. Improving Iteration Times Through The Reloading of Code and Data Boyan Spassov
  • 2. Overview Short talk on the virtues of reloading, hot-swapping, exploratory programming, live editing and not waiting for the compiler
  • 5. Topics Reloading code Reloading data In-engine live editing APIs, Component systems and other ways to improve iteration times
  • 6. Who am I Game programmer at Gameloft for 2.5 years Games I have worked on: World at Arms
  • 7. Why reload code and data
  • 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/
  • 9. How to reload code and data
  • 11. Reloading Code Use Unreal, Unity, etc. Reloading C/C++ Reloading Scripting languages
  • 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