SlideShare a Scribd company logo
1 of 41
Download to read offline
JUSTIN GITLIN
BUILDING VIDEO GAMES FOR
MARKETING, ENTERTAINMENT, AND
OFFLINE GOODNESS
08.02.2014
JUSTIN GITLIN
MODE SET
who?
Born & raised in NH
Univeristy of Denver, 2002
Clevermedia [2000-2001]
[redacted]
Factory Design Labs [2005-2011]
Mode Set [2011-present]
find me:
@cacheflowe
modeset.com
cacheflowe.com (don't judge)
instagram.com/cacheflowe
flickr.com/cacheflowe
vimeo.com/cacheflowe
why build games?
Fun - a great way to learn programming
Multidisciplinary art - dig into other mediums & mix with
programming
Money?
Indie games - risk vs. reward
Marketable skills
Techniques extend far beyond games
Delve deeper into programming concepts & creativity
Graphical concepts
js1k
why build games? marketing :-/
Microsites / advertisements
Brand engagement
PR / wow factor
Business models
why build games? goodness :)
Learning & Education
Research says so
Jane McGonigal
Gamification / Game Theory
Science!
#OhHeckYeah / Public art
Creative Placemaking
Gamification of human interaction on the street
OHHECKYEAH
ohheckyeah
KacheOut: The "prototype"
Artplace grantees
1st-of-kind*
Benefits
Safer streets, economic development, revitalization, IRL
community building, new workforce breakroom, idea sharing
Open source
Demo: KacheOut
Opening night video
KINECT
using the kinect
What is the Kinect?
Skeleton tracking vs. raw data
Demos: KinectBodyParticles & KinectPixelated
Kacheout controls
Improvements & normalization for OHY
Demo: KinectHumanJoysticks - common controls for OHY
Demo: Catchy!
kinect protips
Kinects don't do well in direct sunlight
Kinects can lose data with reflective surfaces
Kinects aren't intuitive - there aren't great conventions yet. Educate
users!
Kinect v2 is amazing, but Microsoft tools are required
Bellco game & issues
Small humans don't skeleton-detect very well
PHYSICAL SPACE
ohheckyeah spatial challenges
General play area: more players = more area
Kinect remote control - UDP! (WebSockets, OSC)
16th St. - Wifi woes
16th St. - Audio woes
16th St. - Aversion to marketers
16th St. - If nobody's currently playing, you don't know what it is
15th St. - Buses
LEAP MOTION
leap motion
What is the Leap Motion?
Skeleton tracking of the hands
Like a mini Kinect, but just skeleton data (no raw depth data)
Demo: KacheOut w/Leap
ACCELEROMETER
accelerometer
Native came first: Audi games
Sept, 2008
5 Million+ downloads
iTunes Top 10 Game of 2008
Happy client
familiar game + novel control =
success
accelerometer
Accelerometer comes to the (mobile) web
deviceorientation event
devicemotion event (gyroscope -previously iOS-only)
Chrome console's accelerometer simulator
"Emulation" tab -> Sensors -> Accelerometer
g.co/rollit
accelerometer gestures
Demo: Roll It
New iOS & Android should be capable
Touch & mouse fallbacks
Timeout unless good data helps since there's not reliable
detection
Maeda: Familiarity + Novelty
ValueBuffer!
Time-based sampling of data
// create an array of values, defaulted to zero
function ValueBuffer(numSamples) {
this.numSamples = numSamples;
this.sampleIndex = 0;
this.buffer = [];
for( var i=0; i < this.numSamples; i++)
this.buffer.push(0);
};
// replace the oldest value in the buffer with a new value
ValueBuffer.prototype.update = function( value ) {
this.sampleIndex++;
if(this.sampleIndex == this.numSamples)
this.sampleIndex = 0;
this.buffer[this.sampleIndex] = value;
};
// return buffer's sum or average
ValueBuffer.prototype.sum = function() {
var sum = 0;
for( var i=0; i < this.numSamples; i++)
sum += this.buffer[i];
return sum;
};
ValueBuffer.prototype.average = function() {
return this.sum() / this.numSamples;
};
accelerometer protips
Skeeball throw gesture
HTML5ROCKS article
Timeout if real values haven't been detected (laptop browser's can
fire {0,0,0})
Androids (as of 1 year ago) are half as fast with event updates
Time-stamp & normalize across devices :(
ParaNorman gestures w/gyroscope event (iOS-only)
paranorman extra credit
Pinch gestures
See also: rotation gestures
Android support?
MORE MODERN INPUT:
MOBILE WEB
lock/unlock a mobile browser screen
To disable scrolling and enable fancy, custom touch interfaces
var lockTouchScreen = function( isLocked ) {
if( isLocked == false ) {
document.ontouchmove = null;
} else {
document.ontouchmove = function( event ) {
event.preventDefault();
};
}
};
boxtrolls custom gesture recognition
Demo
Screen lock
Gesture recognition with Dollar recognizer
PIXI.js
Vertical responsiveness with javascript
CORS image -> canvas issues & IE workaround
coke ahhh: ice toss
Demo
Screen lock again
CSS-based movement with transform:translate3d(x,y,z) for
hardware-accelerated speed
RequestAnimationFrame for best frame rate
Desktop normalization:
Disable mouse-dragging on HTML elements
Add a cursor: grab or cursor: move if you can drag something
ENOUGH INPUT.
MOTION!
coke ahhh: ice toss
Fake gravity
var speedY = 0;
var gravity = 0.1;
var throwIce = function() {
speedY = -10;
};
var updateIce = function() {
speedY += gravity;
};
motion
Spring/elastic calculations: Hooke's law
Easing (linear interpolation)
Demos & code
public class EasingFloat {
public float _value, _target, _easeFactor;
public EasingFloat( float value, float easeFactor ) {
_value = value;
_target = value;
_easeFactor = easeFactor;
}
public float value() {
return _value;
}
public void setTarget( float value ) {
_target = value;
}
public void update() {
_value -= ( ( _value - _target ) / _easeFactor );
}
}
public class ElasticFloat {
protected float _fric, _accel, _speed, _value, _target;
public ElasticFloat(float val, float fric, float accel) {
_fric = fric;
_accel = accel;
_value = _target = val;
}
public float value() {
return _value;
}
public void setTarget(float target) {
_target = target;
}
public void update() {
_speed = ((_target - _value) * _accel + _speed) * _fric;
_value += _speed;
}
}
trigonometry is important!
Oscillation: Boxtrolls
Demo: TrigCircle
Demo: TrigDistribute
Demo: TrigDriveTest
extending techniques to non-game
projects
Add whimsy to your site or app
Charts / data visualization
Animation for magic & context
CMKY visuals
Kinect drum machine
Generative & interactive art
tools
Unity
Processing
Cinder / OpenFrameworks
GLSL
HTML5
Phaser.io
PIXI
THREE.js
Impact.js / Ejecta
thank you.
@cacheflowe.

More Related Content

Viewers also liked

Project – extraordinary person file
Project – extraordinary person fileProject – extraordinary person file
Project – extraordinary person fileEliana Ak
 
Pumpingiron
PumpingironPumpingiron
Pumpingironjuanc007
 
20 Shocking Secrets About the News Business (Hint: It's All About Innovation)
20 Shocking Secrets About the News Business (Hint: It's All About Innovation)20 Shocking Secrets About the News Business (Hint: It's All About Innovation)
20 Shocking Secrets About the News Business (Hint: It's All About Innovation)Alexa Schirtzinger
 
2. konsepmatlamat strategi dan pelaksanaan kokurikulum
2. konsepmatlamat strategi dan pelaksanaan kokurikulum2. konsepmatlamat strategi dan pelaksanaan kokurikulum
2. konsepmatlamat strategi dan pelaksanaan kokurikulumali ahmad
 
sosiologi pendidikan UTHM/FPTV 2014
sosiologi pendidikan UTHM/FPTV 2014sosiologi pendidikan UTHM/FPTV 2014
sosiologi pendidikan UTHM/FPTV 2014ali ahmad
 
Bentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolah...
Bentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolah...Bentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolah...
Bentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolah...ali ahmad
 
The eID on Linux in 2015
The eID on Linux in 2015The eID on Linux in 2015
The eID on Linux in 2015Wouter Verhelst
 
142736840 definisi-pentadbiran-dan-pengurusan-sekolah-2dhc8gv
142736840 definisi-pentadbiran-dan-pengurusan-sekolah-2dhc8gv142736840 definisi-pentadbiran-dan-pengurusan-sekolah-2dhc8gv
142736840 definisi-pentadbiran-dan-pengurusan-sekolah-2dhc8gvali ahmad
 
Bentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolah
Bentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolahBentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolah
Bentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolahali ahmad
 
Proses kimpalan arka UTHM/FPTV 2014
Proses kimpalan arka UTHM/FPTV 2014Proses kimpalan arka UTHM/FPTV 2014
Proses kimpalan arka UTHM/FPTV 2014ali ahmad
 
5.4 pengurusan dan pentadbiran sekolah
5.4 pengurusan dan pentadbiran sekolah5.4 pengurusan dan pentadbiran sekolah
5.4 pengurusan dan pentadbiran sekolahali ahmad
 

Viewers also liked (12)

Project – extraordinary person file
Project – extraordinary person fileProject – extraordinary person file
Project – extraordinary person file
 
Pumpingiron
PumpingironPumpingiron
Pumpingiron
 
20 Shocking Secrets About the News Business (Hint: It's All About Innovation)
20 Shocking Secrets About the News Business (Hint: It's All About Innovation)20 Shocking Secrets About the News Business (Hint: It's All About Innovation)
20 Shocking Secrets About the News Business (Hint: It's All About Innovation)
 
Inside debian-installer
Inside debian-installerInside debian-installer
Inside debian-installer
 
2. konsepmatlamat strategi dan pelaksanaan kokurikulum
2. konsepmatlamat strategi dan pelaksanaan kokurikulum2. konsepmatlamat strategi dan pelaksanaan kokurikulum
2. konsepmatlamat strategi dan pelaksanaan kokurikulum
 
sosiologi pendidikan UTHM/FPTV 2014
sosiologi pendidikan UTHM/FPTV 2014sosiologi pendidikan UTHM/FPTV 2014
sosiologi pendidikan UTHM/FPTV 2014
 
Bentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolah...
Bentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolah...Bentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolah...
Bentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolah...
 
The eID on Linux in 2015
The eID on Linux in 2015The eID on Linux in 2015
The eID on Linux in 2015
 
142736840 definisi-pentadbiran-dan-pengurusan-sekolah-2dhc8gv
142736840 definisi-pentadbiran-dan-pengurusan-sekolah-2dhc8gv142736840 definisi-pentadbiran-dan-pengurusan-sekolah-2dhc8gv
142736840 definisi-pentadbiran-dan-pengurusan-sekolah-2dhc8gv
 
Bentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolah
Bentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolahBentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolah
Bentuk hirarki pentadbiran dan perkaitan dengan organisasi sekolah
 
Proses kimpalan arka UTHM/FPTV 2014
Proses kimpalan arka UTHM/FPTV 2014Proses kimpalan arka UTHM/FPTV 2014
Proses kimpalan arka UTHM/FPTV 2014
 
5.4 pengurusan dan pentadbiran sekolah
5.4 pengurusan dan pentadbiran sekolah5.4 pengurusan dan pentadbiran sekolah
5.4 pengurusan dan pentadbiran sekolah
 

Similar to Develop Denver 2014: Building Physical Video Games

Building a game engine with jQuery
Building a game engine with jQueryBuilding a game engine with jQuery
Building a game engine with jQueryPaul Bakaus
 
Developing AIR for Android with Flash Professional
Developing AIR for Android with Flash ProfessionalDeveloping AIR for Android with Flash Professional
Developing AIR for Android with Flash ProfessionalChris Griffith
 
Tips and Tricks for Mobile Flash Development
Tips and Tricks for Mobile Flash DevelopmentTips and Tricks for Mobile Flash Development
Tips and Tricks for Mobile Flash Developmentpaultrani
 
Google I/O 2011, Android Honeycomb Highlights
Google I/O 2011, Android Honeycomb HighlightsGoogle I/O 2011, Android Honeycomb Highlights
Google I/O 2011, Android Honeycomb HighlightsRomain Guy
 
iBasket: The story of an HTML5 game
iBasket: The story of an HTML5 gameiBasket: The story of an HTML5 game
iBasket: The story of an HTML5 gameIker Jamardo
 
Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5Chris Griffith
 
Mapping the world with Twitter
Mapping the world with TwitterMapping the world with Twitter
Mapping the world with Twittercarlo zapponi
 
Leaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGLLeaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGLgerbille
 
Class[6][5th aug] [three js-loaders]
Class[6][5th aug] [three js-loaders]Class[6][5th aug] [three js-loaders]
Class[6][5th aug] [three js-loaders]Saajid Akram
 
How I hacked the Google Daydream controller
How I hacked the Google Daydream controllerHow I hacked the Google Daydream controller
How I hacked the Google Daydream controllerMatteo Pisani
 
iPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumiPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumAxway Appcelerator
 
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAAppcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAJeff Haynie
 
Om Pawar MP AJP.docx
Om Pawar MP AJP.docxOm Pawar MP AJP.docx
Om Pawar MP AJP.docxOmpawar61
 
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014Verold
 
Øredev2013 - FirefoxOS - the platform HTML5 deserves
Øredev2013 - FirefoxOS - the platform HTML5 deservesØredev2013 - FirefoxOS - the platform HTML5 deserves
Øredev2013 - FirefoxOS - the platform HTML5 deservesChristian Heilmann
 
VR/AR + xAPI: Tracking Next-Gen Learning
VR/AR + xAPI: Tracking Next-Gen LearningVR/AR + xAPI: Tracking Next-Gen Learning
VR/AR + xAPI: Tracking Next-Gen LearningMargaret Roth
 
Google maps and GPS, camera, SD card, tips &amp; tricks
Google maps and GPS, camera, SD card, tips &amp; tricksGoogle maps and GPS, camera, SD card, tips &amp; tricks
Google maps and GPS, camera, SD card, tips &amp; tricksNikola Kapraljevic Nixa
 
Advanced #2 - ui perf
 Advanced #2 - ui perf Advanced #2 - ui perf
Advanced #2 - ui perfVitali Pekelis
 
Asynchronous Programming with JavaScript
Asynchronous Programming with JavaScriptAsynchronous Programming with JavaScript
Asynchronous Programming with JavaScriptWebF
 

Similar to Develop Denver 2014: Building Physical Video Games (20)

Building a game engine with jQuery
Building a game engine with jQueryBuilding a game engine with jQuery
Building a game engine with jQuery
 
Developing AIR for Android with Flash Professional
Developing AIR for Android with Flash ProfessionalDeveloping AIR for Android with Flash Professional
Developing AIR for Android with Flash Professional
 
Tips and Tricks for Mobile Flash Development
Tips and Tricks for Mobile Flash DevelopmentTips and Tricks for Mobile Flash Development
Tips and Tricks for Mobile Flash Development
 
Google I/O 2011, Android Honeycomb Highlights
Google I/O 2011, Android Honeycomb HighlightsGoogle I/O 2011, Android Honeycomb Highlights
Google I/O 2011, Android Honeycomb Highlights
 
iBasket: The story of an HTML5 game
iBasket: The story of an HTML5 gameiBasket: The story of an HTML5 game
iBasket: The story of an HTML5 game
 
Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5
 
Mapping the world with Twitter
Mapping the world with TwitterMapping the world with Twitter
Mapping the world with Twitter
 
Leaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGLLeaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGL
 
Class[6][5th aug] [three js-loaders]
Class[6][5th aug] [three js-loaders]Class[6][5th aug] [three js-loaders]
Class[6][5th aug] [three js-loaders]
 
How I hacked the Google Daydream controller
How I hacked the Google Daydream controllerHow I hacked the Google Daydream controller
How I hacked the Google Daydream controller
 
iPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumiPhone/iPad Development with Titanium
iPhone/iPad Development with Titanium
 
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAAppcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
 
Om Pawar MP AJP.docx
Om Pawar MP AJP.docxOm Pawar MP AJP.docx
Om Pawar MP AJP.docx
 
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014
From Hello World to the Interactive Web with Three.js: Workshop at FutureJS 2014
 
Øredev2013 - FirefoxOS - the platform HTML5 deserves
Øredev2013 - FirefoxOS - the platform HTML5 deservesØredev2013 - FirefoxOS - the platform HTML5 deserves
Øredev2013 - FirefoxOS - the platform HTML5 deserves
 
VR/AR + xAPI: Tracking Next-Gen Learning
VR/AR + xAPI: Tracking Next-Gen LearningVR/AR + xAPI: Tracking Next-Gen Learning
VR/AR + xAPI: Tracking Next-Gen Learning
 
Location Based Services Without the Cocoa
Location Based Services Without the CocoaLocation Based Services Without the Cocoa
Location Based Services Without the Cocoa
 
Google maps and GPS, camera, SD card, tips &amp; tricks
Google maps and GPS, camera, SD card, tips &amp; tricksGoogle maps and GPS, camera, SD card, tips &amp; tricks
Google maps and GPS, camera, SD card, tips &amp; tricks
 
Advanced #2 - ui perf
 Advanced #2 - ui perf Advanced #2 - ui perf
Advanced #2 - ui perf
 
Asynchronous Programming with JavaScript
Asynchronous Programming with JavaScriptAsynchronous Programming with JavaScript
Asynchronous Programming with JavaScript
 

Recently uploaded

OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...NETWAYS
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Kayode Fayemi
 
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024eCommerce Institute
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesPooja Nehwal
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024eCommerce Institute
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Delhi Call girls
 
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfhenrik385807
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Salam Al-Karadaghi
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Pooja Nehwal
 
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...NETWAYS
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptssuser319dad
 
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfOpen Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfhenrik385807
 
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...NETWAYS
 
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStrSaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStrsaastr
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Krijn Poppe
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )Pooja Nehwal
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxFamilyWorshipCenterD
 
Motivation and Theory Maslow and Murray pdf
Motivation and Theory Maslow and Murray pdfMotivation and Theory Maslow and Murray pdf
Motivation and Theory Maslow and Murray pdfakankshagupta7348026
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@vikas rana
 

Recently uploaded (20)

OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
 
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
 
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
 
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
 
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
 
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
 
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.ppt
 
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdfOpen Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
 
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
 
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStrSaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
 
Motivation and Theory Maslow and Murray pdf
Motivation and Theory Maslow and Murray pdfMotivation and Theory Maslow and Murray pdf
Motivation and Theory Maslow and Murray pdf
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@
 

Develop Denver 2014: Building Physical Video Games

  • 1. JUSTIN GITLIN BUILDING VIDEO GAMES FOR MARKETING, ENTERTAINMENT, AND OFFLINE GOODNESS 08.02.2014
  • 3. who? Born & raised in NH Univeristy of Denver, 2002 Clevermedia [2000-2001] [redacted] Factory Design Labs [2005-2011] Mode Set [2011-present]
  • 4. find me: @cacheflowe modeset.com cacheflowe.com (don't judge) instagram.com/cacheflowe flickr.com/cacheflowe vimeo.com/cacheflowe
  • 5. why build games? Fun - a great way to learn programming Multidisciplinary art - dig into other mediums & mix with programming Money? Indie games - risk vs. reward Marketable skills Techniques extend far beyond games Delve deeper into programming concepts & creativity Graphical concepts js1k
  • 6. why build games? marketing :-/ Microsites / advertisements Brand engagement PR / wow factor Business models
  • 7. why build games? goodness :) Learning & Education Research says so Jane McGonigal Gamification / Game Theory Science! #OhHeckYeah / Public art Creative Placemaking Gamification of human interaction on the street
  • 9. ohheckyeah KacheOut: The "prototype" Artplace grantees 1st-of-kind* Benefits Safer streets, economic development, revitalization, IRL community building, new workforce breakroom, idea sharing Open source Demo: KacheOut Opening night video
  • 11. using the kinect What is the Kinect? Skeleton tracking vs. raw data Demos: KinectBodyParticles & KinectPixelated Kacheout controls Improvements & normalization for OHY Demo: KinectHumanJoysticks - common controls for OHY Demo: Catchy!
  • 12. kinect protips Kinects don't do well in direct sunlight Kinects can lose data with reflective surfaces Kinects aren't intuitive - there aren't great conventions yet. Educate users! Kinect v2 is amazing, but Microsoft tools are required Bellco game & issues Small humans don't skeleton-detect very well
  • 14. ohheckyeah spatial challenges General play area: more players = more area Kinect remote control - UDP! (WebSockets, OSC) 16th St. - Wifi woes 16th St. - Audio woes 16th St. - Aversion to marketers 16th St. - If nobody's currently playing, you don't know what it is 15th St. - Buses
  • 16. leap motion What is the Leap Motion? Skeleton tracking of the hands Like a mini Kinect, but just skeleton data (no raw depth data) Demo: KacheOut w/Leap
  • 18. accelerometer Native came first: Audi games Sept, 2008 5 Million+ downloads iTunes Top 10 Game of 2008 Happy client
  • 19. familiar game + novel control = success
  • 20. accelerometer Accelerometer comes to the (mobile) web deviceorientation event devicemotion event (gyroscope -previously iOS-only) Chrome console's accelerometer simulator "Emulation" tab -> Sensors -> Accelerometer
  • 22. accelerometer gestures Demo: Roll It New iOS & Android should be capable Touch & mouse fallbacks Timeout unless good data helps since there's not reliable detection Maeda: Familiarity + Novelty ValueBuffer! Time-based sampling of data
  • 23. // create an array of values, defaulted to zero function ValueBuffer(numSamples) { this.numSamples = numSamples; this.sampleIndex = 0; this.buffer = []; for( var i=0; i < this.numSamples; i++) this.buffer.push(0); }; // replace the oldest value in the buffer with a new value ValueBuffer.prototype.update = function( value ) { this.sampleIndex++; if(this.sampleIndex == this.numSamples) this.sampleIndex = 0; this.buffer[this.sampleIndex] = value; }; // return buffer's sum or average ValueBuffer.prototype.sum = function() { var sum = 0; for( var i=0; i < this.numSamples; i++) sum += this.buffer[i]; return sum;
  • 24. }; ValueBuffer.prototype.average = function() { return this.sum() / this.numSamples; };
  • 25. accelerometer protips Skeeball throw gesture HTML5ROCKS article Timeout if real values haven't been detected (laptop browser's can fire {0,0,0}) Androids (as of 1 year ago) are half as fast with event updates Time-stamp & normalize across devices :( ParaNorman gestures w/gyroscope event (iOS-only)
  • 26. paranorman extra credit Pinch gestures See also: rotation gestures Android support?
  • 28. lock/unlock a mobile browser screen To disable scrolling and enable fancy, custom touch interfaces var lockTouchScreen = function( isLocked ) { if( isLocked == false ) { document.ontouchmove = null; } else { document.ontouchmove = function( event ) { event.preventDefault(); }; } };
  • 29. boxtrolls custom gesture recognition Demo Screen lock Gesture recognition with Dollar recognizer PIXI.js Vertical responsiveness with javascript CORS image -> canvas issues & IE workaround
  • 30. coke ahhh: ice toss Demo Screen lock again CSS-based movement with transform:translate3d(x,y,z) for hardware-accelerated speed RequestAnimationFrame for best frame rate Desktop normalization: Disable mouse-dragging on HTML elements Add a cursor: grab or cursor: move if you can drag something
  • 32. coke ahhh: ice toss Fake gravity var speedY = 0; var gravity = 0.1; var throwIce = function() { speedY = -10; }; var updateIce = function() { speedY += gravity; };
  • 33. motion Spring/elastic calculations: Hooke's law Easing (linear interpolation) Demos & code
  • 34. public class EasingFloat { public float _value, _target, _easeFactor; public EasingFloat( float value, float easeFactor ) { _value = value; _target = value; _easeFactor = easeFactor; } public float value() { return _value; } public void setTarget( float value ) { _target = value; } public void update() { _value -= ( ( _value - _target ) / _easeFactor ); }
  • 35. }
  • 36. public class ElasticFloat { protected float _fric, _accel, _speed, _value, _target; public ElasticFloat(float val, float fric, float accel) { _fric = fric; _accel = accel; _value = _target = val; } public float value() { return _value; } public void setTarget(float target) { _target = target; } public void update() { _speed = ((_target - _value) * _accel + _speed) * _fric; _value += _speed; }
  • 37. }
  • 38. trigonometry is important! Oscillation: Boxtrolls Demo: TrigCircle Demo: TrigDistribute Demo: TrigDriveTest
  • 39. extending techniques to non-game projects Add whimsy to your site or app Charts / data visualization Animation for magic & context CMKY visuals Kinect drum machine Generative & interactive art