SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
Sprint - Exciting Insights
from Translating an Old
Videogame to JavaScript
Norbert Kehrer
ViennaJS Meetup, March 30, 2016
„Sprint“ is a primitive car-racing game,
but it holds interesting aspects
 Atari 1976: Sprint 2
 Arcade machine
 Very limited hardware
 Black-and-white graphics
 Many sequels
This is what Sprint looks like
Fun with Sprint
 Make a browser game
 Make it 3D
 Understand the car AI
 Design new levels
 Use the methods in other projects
Fun with Sprint
 Make a browser game
 Make it 3D
 Understand the car AI
 Design new levels
 Use the methods in other projects
The Sprint arcade machine is based on the
6502 microprocessor
ROM:
Program and
12 race tracks
RAM
128 bytes
Screen RAM
32 x 286502
Special-purpose
video
hardware
Game logic Video hardware
Original 6502 code translated to JavaScript
makes up a browser game
ROM:
program
and 12 race tracks
RAM
128 bytes
Screen memory
32 x 286502
Special-purpose
video
hardware
Game logic Video hardware
JavaScript
program
JS simulator of the
video hardware
Browser game
Fun with Sprint
 Make a browser game
 Make it 3D
 Understand the car AI
 Design new levels
 Use the methods in other projects
Alternative interpretation of the game state
and screen memory makes it a 3D game
Little
Cubes
3D Objects
Camera
Fun with Sprint
 Make a browser game
 Make it 3D
 Understand the car AI
 Design new levels
 Use the methods in other projects
Atari‘s patented method from 1976 ...
... uses direction vectors
Compare the car´s current direction with
the cell´s direction guidance vector...
... and steer a little bit in that direction
Fun with Sprint
 Make a browser game
 Make it 3D
 Understand the car AI
 Design new levels
 Use the methods in other projects
Sprint contains twelve tediously
hand-crafted race tracks
Designing new Sprint levels is a lot of work
Design the race track itself
Define all those
direction vectors
Test it
Automation is a quite hard robotics problem
Design the race track itself
Define all those
direction vectors
Test it
Automatically
by using the
potential field
method
Concepts of the potential field method
 Potential field
 Vector field
 Gradient field
Functions
x
y = f(x)
Scalar fields (potential fields)
1
5
9
13
17
21
25
29
R1
R7
R13
R19
R25
R31
-450
-400
-350
-300
-250
-200
-150
-100
-50
0
z = f(x, y)
Vector fields
x
y z = f (x, y)
The gradient field indicates the direction of
the steepest slope
Source: „Kurs: Mathematik für Anwender (Osnabrück 2011-2012)“
Robot path planing by finding an adequate
potential field
Source: Diemke: „Pfadplanung mit harmonischen
Potentialfeldern“
Sprint levels are gradient fields of
„Bobsled tracks“
The lateral and downhill slope definies the
potential field
The potential field of level 1
1
6
11
16
21
26
31
R1
R6
R11
R16
R21
R26
-1
-0,5
0
0,5
1
Applying the potential field method to Sprint
 Obstacles are given (track boundaries)
 Calculate a harmonic potential field („bobsled track“)
 From that, calculate its gradient field
 The result is the vector field for the Sprint level
Level 1 by the Atari Engineers
Level 1, automatically generated
New level, automatically generated
The calculation is not fast, but slow
 Complex mathematics
 BUT: Unbelievably simple algorithm (Gauss 1823 und
Seidel 1874)
 64-bit floating-point numbers are not exact enough 
BigNumber library needed
 Slow also because of iteration (30 seconds per level)
Fun with Sprint
 Make a browser game
 Make it 3D
 Understand the car AI
 Design new levels
 Use the methods in other projects
You can use the potential field method
 Path planning for robots
Lawn mowers
Vacuum cleaners
Robo soccer
Autonomous cars
 Games with moving computer oponents
Car racing
Mario-Kart-like games
Etc.
Summary
 Browser Sprint by code translation
 3D Sprint by alternative interpretation
 Patented vector fields for the car AI
 Automatic level generation with the Potential Field Method
Thank you !
http://members.aon.at/nkehrer/

Weitere ähnliche Inhalte

Was ist angesagt?

IonMonkey Mozilla All-Hands 2011
IonMonkey Mozilla All-Hands 2011IonMonkey Mozilla All-Hands 2011
IonMonkey Mozilla All-Hands 2011iamdvander
 
What’s new in Visual C++
What’s new in Visual C++What’s new in Visual C++
What’s new in Visual C++Microsoft
 
COMPUTER GRAPHICS LAB MANUAL
COMPUTER GRAPHICS LAB MANUALCOMPUTER GRAPHICS LAB MANUAL
COMPUTER GRAPHICS LAB MANUALVivek Kumar Sinha
 
C++ AMP 실천 및 적용 전략
C++ AMP 실천 및 적용 전략 C++ AMP 실천 및 적용 전략
C++ AMP 실천 및 적용 전략 명신 김
 
Graphics practical lab manual
Graphics practical lab manualGraphics practical lab manual
Graphics practical lab manualVivek Kumar Sinha
 
Computer Graphics Lab
Computer Graphics LabComputer Graphics Lab
Computer Graphics LabNeil Mathew
 
Senior design project code for PPG
Senior design project code for PPGSenior design project code for PPG
Senior design project code for PPGFrankDin1
 
Functional Design Explained (David Sankel CppCon 2015)
Functional Design Explained (David Sankel CppCon 2015)Functional Design Explained (David Sankel CppCon 2015)
Functional Design Explained (David Sankel CppCon 2015)sankeld
 
A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...MITSUNARI Shigeo
 
A verifiable random function with short proofs and keys
A verifiable random function with short proofs and keysA verifiable random function with short proofs and keys
A verifiable random function with short proofs and keysAleksandr Yampolskiy
 
Introduction to Stockfish bitboard representation and magic bitboard
Introduction to Stockfish bitboard representation and magic bitboardIntroduction to Stockfish bitboard representation and magic bitboard
Introduction to Stockfish bitboard representation and magic bitboardTaiyou Kuo
 
How to add an optimization for C# to RyuJIT
How to add an optimization for C# to RyuJITHow to add an optimization for C# to RyuJIT
How to add an optimization for C# to RyuJITEgor Bogatov
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化MITSUNARI Shigeo
 
Egor Bogatov - .NET Core intrinsics and other micro-optimizations
Egor Bogatov - .NET Core intrinsics and other micro-optimizationsEgor Bogatov - .NET Core intrinsics and other micro-optimizations
Egor Bogatov - .NET Core intrinsics and other micro-optimizationsEgor Bogatov
 
25 лет истории C++, пролетевшей на моих глазах
25 лет истории C++, пролетевшей на моих глазах25 лет истории C++, пролетевшей на моих глазах
25 лет истории C++, пролетевшей на моих глазахcorehard_by
 
Dx11 performancereloaded
Dx11 performancereloadedDx11 performancereloaded
Dx11 performancereloadedmistercteam
 
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear GroupsPractical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear GroupsMITSUNARI Shigeo
 
Roberto Gallea: Workshop Arduino, giorno #2 Arduino + Processing
Roberto Gallea: Workshop Arduino, giorno #2 Arduino + ProcessingRoberto Gallea: Workshop Arduino, giorno #2 Arduino + Processing
Roberto Gallea: Workshop Arduino, giorno #2 Arduino + ProcessingDemetrio Siragusa
 

Was ist angesagt? (20)

IonMonkey Mozilla All-Hands 2011
IonMonkey Mozilla All-Hands 2011IonMonkey Mozilla All-Hands 2011
IonMonkey Mozilla All-Hands 2011
 
What’s new in Visual C++
What’s new in Visual C++What’s new in Visual C++
What’s new in Visual C++
 
COMPUTER GRAPHICS LAB MANUAL
COMPUTER GRAPHICS LAB MANUALCOMPUTER GRAPHICS LAB MANUAL
COMPUTER GRAPHICS LAB MANUAL
 
C++ AMP 실천 및 적용 전략
C++ AMP 실천 및 적용 전략 C++ AMP 실천 및 적용 전략
C++ AMP 실천 및 적용 전략
 
Graphics practical lab manual
Graphics practical lab manualGraphics practical lab manual
Graphics practical lab manual
 
Computer Graphics Lab
Computer Graphics LabComputer Graphics Lab
Computer Graphics Lab
 
Senior design project code for PPG
Senior design project code for PPGSenior design project code for PPG
Senior design project code for PPG
 
Functional Design Explained (David Sankel CppCon 2015)
Functional Design Explained (David Sankel CppCon 2015)Functional Design Explained (David Sankel CppCon 2015)
Functional Design Explained (David Sankel CppCon 2015)
 
OpenGL L06-Performance
OpenGL L06-PerformanceOpenGL L06-Performance
OpenGL L06-Performance
 
A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...
 
A verifiable random function with short proofs and keys
A verifiable random function with short proofs and keysA verifiable random function with short proofs and keys
A verifiable random function with short proofs and keys
 
Introduction to Stockfish bitboard representation and magic bitboard
Introduction to Stockfish bitboard representation and magic bitboardIntroduction to Stockfish bitboard representation and magic bitboard
Introduction to Stockfish bitboard representation and magic bitboard
 
How to add an optimization for C# to RyuJIT
How to add an optimization for C# to RyuJITHow to add an optimization for C# to RyuJIT
How to add an optimization for C# to RyuJIT
 
Advance java
Advance javaAdvance java
Advance java
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
 
Egor Bogatov - .NET Core intrinsics and other micro-optimizations
Egor Bogatov - .NET Core intrinsics and other micro-optimizationsEgor Bogatov - .NET Core intrinsics and other micro-optimizations
Egor Bogatov - .NET Core intrinsics and other micro-optimizations
 
25 лет истории C++, пролетевшей на моих глазах
25 лет истории C++, пролетевшей на моих глазах25 лет истории C++, пролетевшей на моих глазах
25 лет истории C++, пролетевшей на моих глазах
 
Dx11 performancereloaded
Dx11 performancereloadedDx11 performancereloaded
Dx11 performancereloaded
 
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear GroupsPractical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
 
Roberto Gallea: Workshop Arduino, giorno #2 Arduino + Processing
Roberto Gallea: Workshop Arduino, giorno #2 Arduino + ProcessingRoberto Gallea: Workshop Arduino, giorno #2 Arduino + Processing
Roberto Gallea: Workshop Arduino, giorno #2 Arduino + Processing
 

Andere mochten auch

Ein Entwickler ist mehr als nur ein Applications-Coder | C.Habermueller
Ein Entwickler ist mehr als nur ein Applications-Coder | C.HabermuellerEin Entwickler ist mehr als nur ein Applications-Coder | C.Habermueller
Ein Entwickler ist mehr als nur ein Applications-Coder | C.HabermuellerChristian Habermueller
 
Produktives Arbeiten mit freier Software | C.Habermueller
Produktives Arbeiten mit freier Software | C.HabermuellerProduktives Arbeiten mit freier Software | C.Habermueller
Produktives Arbeiten mit freier Software | C.HabermuellerChristian Habermueller
 
Übersetzen alter Arcade-Spiele in JavaScript
Übersetzen alter Arcade-Spiele in JavaScriptÜbersetzen alter Arcade-Spiele in JavaScript
Übersetzen alter Arcade-Spiele in JavaScriptnorbert_kehrer
 
Emulation von HP-Taschenrechnern auf dem Atari 800XL
Emulation von HP-Taschenrechnern auf dem Atari 800XLEmulation von HP-Taschenrechnern auf dem Atari 800XL
Emulation von HP-Taschenrechnern auf dem Atari 800XLnorbert_kehrer
 
Rapid Application Development | C.Habermueller
Rapid Application Development | C.HabermuellerRapid Application Development | C.Habermueller
Rapid Application Development | C.HabermuellerChristian Habermueller
 
Service Operation mit ITIL | C.Habermueller
Service Operation mit ITIL | C.HabermuellerService Operation mit ITIL | C.Habermueller
Service Operation mit ITIL | C.HabermuellerChristian Habermueller
 
Java & Notes - Mit Eclipse neue Features für Notes entwickeln | C.Habermueller
Java & Notes - Mit Eclipse neue Features für Notes entwickeln | C.HabermuellerJava & Notes - Mit Eclipse neue Features für Notes entwickeln | C.Habermueller
Java & Notes - Mit Eclipse neue Features für Notes entwickeln | C.HabermuellerChristian Habermueller
 
Domino Security mit ITIL | C.Habermueller
Domino Security mit ITIL | C.HabermuellerDomino Security mit ITIL | C.Habermueller
Domino Security mit ITIL | C.HabermuellerChristian Habermueller
 

Andere mochten auch (10)

Ein Entwickler ist mehr als nur ein Applications-Coder | C.Habermueller
Ein Entwickler ist mehr als nur ein Applications-Coder | C.HabermuellerEin Entwickler ist mehr als nur ein Applications-Coder | C.Habermueller
Ein Entwickler ist mehr als nur ein Applications-Coder | C.Habermueller
 
Produktives Arbeiten mit freier Software | C.Habermueller
Produktives Arbeiten mit freier Software | C.HabermuellerProduktives Arbeiten mit freier Software | C.Habermueller
Produktives Arbeiten mit freier Software | C.Habermueller
 
Übersetzen alter Arcade-Spiele in JavaScript
Übersetzen alter Arcade-Spiele in JavaScriptÜbersetzen alter Arcade-Spiele in JavaScript
Übersetzen alter Arcade-Spiele in JavaScript
 
Visita a Línea Directa Aseguradora, nueva actividad esden FIELD TRIPS en el M...
Visita a Línea Directa Aseguradora, nueva actividad esden FIELD TRIPS en el M...Visita a Línea Directa Aseguradora, nueva actividad esden FIELD TRIPS en el M...
Visita a Línea Directa Aseguradora, nueva actividad esden FIELD TRIPS en el M...
 
Emulation von HP-Taschenrechnern auf dem Atari 800XL
Emulation von HP-Taschenrechnern auf dem Atari 800XLEmulation von HP-Taschenrechnern auf dem Atari 800XL
Emulation von HP-Taschenrechnern auf dem Atari 800XL
 
Rapid Application Development | C.Habermueller
Rapid Application Development | C.HabermuellerRapid Application Development | C.Habermueller
Rapid Application Development | C.Habermueller
 
Service Operation mit ITIL | C.Habermueller
Service Operation mit ITIL | C.HabermuellerService Operation mit ITIL | C.Habermueller
Service Operation mit ITIL | C.Habermueller
 
Java & Notes - Mit Eclipse neue Features für Notes entwickeln | C.Habermueller
Java & Notes - Mit Eclipse neue Features für Notes entwickeln | C.HabermuellerJava & Notes - Mit Eclipse neue Features für Notes entwickeln | C.Habermueller
Java & Notes - Mit Eclipse neue Features für Notes entwickeln | C.Habermueller
 
Impressionen VCFE 11.0
Impressionen VCFE 11.0Impressionen VCFE 11.0
Impressionen VCFE 11.0
 
Domino Security mit ITIL | C.Habermueller
Domino Security mit ITIL | C.HabermuellerDomino Security mit ITIL | C.Habermueller
Domino Security mit ITIL | C.Habermueller
 

Ähnlich wie Sprint - Exciting Insights from Translating a Classic Car Racing Game to JavaScript

Minko stage3d workshop_20130525
Minko stage3d workshop_20130525Minko stage3d workshop_20130525
Minko stage3d workshop_20130525Minko3D
 
C3D Labs. Geometric Modeling Toolkit
C3D Labs. Geometric Modeling ToolkitC3D Labs. Geometric Modeling Toolkit
C3D Labs. Geometric Modeling ToolkitArkadiy Kamnev
 
Midterm revision 2022 without answer.pdf
Midterm revision 2022  without answer.pdfMidterm revision 2022  without answer.pdf
Midterm revision 2022 without answer.pdfAhmedSalah48055
 
Introduce to 3d rendering engine
Introduce to 3d rendering engineIntroduce to 3d rendering engine
Introduce to 3d rendering engineDaosheng Mu
 
Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...
Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...
Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...Piccolo Engine
 
Discovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI Projects
Discovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI ProjectsDiscovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI Projects
Discovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI ProjectsWee Hyong Tok
 
GDC 2015 でのハイエンドグラフィックス
GDC 2015 でのハイエンドグラフィックスGDC 2015 でのハイエンドグラフィックス
GDC 2015 でのハイエンドグラフィックスTakashi Imagire
 
Moving NEON to 64 bits
Moving NEON to 64 bitsMoving NEON to 64 bits
Moving NEON to 64 bitsChiou-Nan Chen
 
Minko stage3d 20130222
Minko stage3d 20130222Minko stage3d 20130222
Minko stage3d 20130222Minko3D
 
04. The Rendering Pipeline
04. The Rendering Pipeline04. The Rendering Pipeline
04. The Rendering PipelineAmin Babadi
 
Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)Alexander Dolbilov
 
Rohit Ranjan-My works
Rohit Ranjan-My worksRohit Ranjan-My works
Rohit Ranjan-My worksRohit Ranjan
 
Pixel-Lab / Games:EDU / Michel Kripalani / Games Industry Overview and Trends
Pixel-Lab / Games:EDU / Michel Kripalani / Games Industry Overview and TrendsPixel-Lab / Games:EDU / Michel Kripalani / Games Industry Overview and Trends
Pixel-Lab / Games:EDU / Michel Kripalani / Games Industry Overview and Trendspixellab
 
XLcloud 3-d remote rendering
XLcloud 3-d remote renderingXLcloud 3-d remote rendering
XLcloud 3-d remote renderingMarius Preda PhD
 
[第34回 WBA若手の会勉強会] Microsoft AI platform
[第34回 WBA若手の会勉強会] Microsoft AI platform[第34回 WBA若手の会勉強会] Microsoft AI platform
[第34回 WBA若手の会勉強会] Microsoft AI platformNaoki (Neo) SATO
 
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...Daosheng Mu
 

Ähnlich wie Sprint - Exciting Insights from Translating a Classic Car Racing Game to JavaScript (20)

Minko stage3d workshop_20130525
Minko stage3d workshop_20130525Minko stage3d workshop_20130525
Minko stage3d workshop_20130525
 
C3D Labs. Geometric Modeling Toolkit
C3D Labs. Geometric Modeling ToolkitC3D Labs. Geometric Modeling Toolkit
C3D Labs. Geometric Modeling Toolkit
 
C3D Labs. Geometric Modeling Toolkit
C3D Labs. Geometric Modeling ToolkitC3D Labs. Geometric Modeling Toolkit
C3D Labs. Geometric Modeling Toolkit
 
Midterm revision 2022 without answer.pdf
Midterm revision 2022  without answer.pdfMidterm revision 2022  without answer.pdf
Midterm revision 2022 without answer.pdf
 
Introduce to 3d rendering engine
Introduce to 3d rendering engineIntroduce to 3d rendering engine
Introduce to 3d rendering engine
 
Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...
Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...
Lecture 02: Layered Architecture of Game Engine | GAMES104 - Modern Game Engi...
 
lecture4 raster details in computer graphics(Computer graphics tutorials)
lecture4 raster details in computer graphics(Computer graphics tutorials)lecture4 raster details in computer graphics(Computer graphics tutorials)
lecture4 raster details in computer graphics(Computer graphics tutorials)
 
Discovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI Projects
Discovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI ProjectsDiscovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI Projects
Discovering Your AI Super Powers - Tips and Tricks to Jumpstart your AI Projects
 
GDC 2015 でのハイエンドグラフィックス
GDC 2015 でのハイエンドグラフィックスGDC 2015 でのハイエンドグラフィックス
GDC 2015 でのハイエンドグラフィックス
 
Moving NEON to 64 bits
Moving NEON to 64 bitsMoving NEON to 64 bits
Moving NEON to 64 bits
 
Training Drone Image Models with Grand Theft Auto
Training Drone Image Models with Grand Theft AutoTraining Drone Image Models with Grand Theft Auto
Training Drone Image Models with Grand Theft Auto
 
Minko stage3d 20130222
Minko stage3d 20130222Minko stage3d 20130222
Minko stage3d 20130222
 
04. The Rendering Pipeline
04. The Rendering Pipeline04. The Rendering Pipeline
04. The Rendering Pipeline
 
Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)
 
Rohit Ranjan-My works
Rohit Ranjan-My worksRohit Ranjan-My works
Rohit Ranjan-My works
 
BEFLIX
BEFLIXBEFLIX
BEFLIX
 
Pixel-Lab / Games:EDU / Michel Kripalani / Games Industry Overview and Trends
Pixel-Lab / Games:EDU / Michel Kripalani / Games Industry Overview and TrendsPixel-Lab / Games:EDU / Michel Kripalani / Games Industry Overview and Trends
Pixel-Lab / Games:EDU / Michel Kripalani / Games Industry Overview and Trends
 
XLcloud 3-d remote rendering
XLcloud 3-d remote renderingXLcloud 3-d remote rendering
XLcloud 3-d remote rendering
 
[第34回 WBA若手の会勉強会] Microsoft AI platform
[第34回 WBA若手の会勉強会] Microsoft AI platform[第34回 WBA若手の会勉強会] Microsoft AI platform
[第34回 WBA若手の会勉強会] Microsoft AI platform
 
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
Using The New Flash Stage3D Web Technology To Build Your Own Next 3D Browser ...
 

Kürzlich hochgeladen

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
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
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 

Kürzlich hochgeladen (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Sprint - Exciting Insights from Translating a Classic Car Racing Game to JavaScript

  • 1. Sprint - Exciting Insights from Translating an Old Videogame to JavaScript Norbert Kehrer ViennaJS Meetup, March 30, 2016
  • 2. „Sprint“ is a primitive car-racing game, but it holds interesting aspects  Atari 1976: Sprint 2  Arcade machine  Very limited hardware  Black-and-white graphics  Many sequels
  • 3. This is what Sprint looks like
  • 4. Fun with Sprint  Make a browser game  Make it 3D  Understand the car AI  Design new levels  Use the methods in other projects
  • 5. Fun with Sprint  Make a browser game  Make it 3D  Understand the car AI  Design new levels  Use the methods in other projects
  • 6. The Sprint arcade machine is based on the 6502 microprocessor ROM: Program and 12 race tracks RAM 128 bytes Screen RAM 32 x 286502 Special-purpose video hardware Game logic Video hardware
  • 7. Original 6502 code translated to JavaScript makes up a browser game ROM: program and 12 race tracks RAM 128 bytes Screen memory 32 x 286502 Special-purpose video hardware Game logic Video hardware JavaScript program JS simulator of the video hardware Browser game
  • 8. Fun with Sprint  Make a browser game  Make it 3D  Understand the car AI  Design new levels  Use the methods in other projects
  • 9. Alternative interpretation of the game state and screen memory makes it a 3D game Little Cubes 3D Objects Camera
  • 10. Fun with Sprint  Make a browser game  Make it 3D  Understand the car AI  Design new levels  Use the methods in other projects
  • 11. Atari‘s patented method from 1976 ...
  • 13. Compare the car´s current direction with the cell´s direction guidance vector...
  • 14. ... and steer a little bit in that direction
  • 15. Fun with Sprint  Make a browser game  Make it 3D  Understand the car AI  Design new levels  Use the methods in other projects
  • 16. Sprint contains twelve tediously hand-crafted race tracks
  • 17. Designing new Sprint levels is a lot of work Design the race track itself Define all those direction vectors Test it
  • 18. Automation is a quite hard robotics problem Design the race track itself Define all those direction vectors Test it Automatically by using the potential field method
  • 19. Concepts of the potential field method  Potential field  Vector field  Gradient field
  • 21. Scalar fields (potential fields) 1 5 9 13 17 21 25 29 R1 R7 R13 R19 R25 R31 -450 -400 -350 -300 -250 -200 -150 -100 -50 0 z = f(x, y)
  • 22. Vector fields x y z = f (x, y)
  • 23. The gradient field indicates the direction of the steepest slope Source: „Kurs: Mathematik für Anwender (Osnabrück 2011-2012)“
  • 24. Robot path planing by finding an adequate potential field Source: Diemke: „Pfadplanung mit harmonischen Potentialfeldern“
  • 25. Sprint levels are gradient fields of „Bobsled tracks“
  • 26. The lateral and downhill slope definies the potential field
  • 27. The potential field of level 1 1 6 11 16 21 26 31 R1 R6 R11 R16 R21 R26 -1 -0,5 0 0,5 1
  • 28. Applying the potential field method to Sprint  Obstacles are given (track boundaries)  Calculate a harmonic potential field („bobsled track“)  From that, calculate its gradient field  The result is the vector field for the Sprint level
  • 29. Level 1 by the Atari Engineers
  • 32. The calculation is not fast, but slow  Complex mathematics  BUT: Unbelievably simple algorithm (Gauss 1823 und Seidel 1874)  64-bit floating-point numbers are not exact enough  BigNumber library needed  Slow also because of iteration (30 seconds per level)
  • 33. Fun with Sprint  Make a browser game  Make it 3D  Understand the car AI  Design new levels  Use the methods in other projects
  • 34. You can use the potential field method  Path planning for robots Lawn mowers Vacuum cleaners Robo soccer Autonomous cars  Games with moving computer oponents Car racing Mario-Kart-like games Etc.
  • 35. Summary  Browser Sprint by code translation  3D Sprint by alternative interpretation  Patented vector fields for the car AI  Automatic level generation with the Potential Field Method