SlideShare a Scribd company logo
1 of 23
Mobile WebVR game
https://github.com/daoshengmu/aframe-lesson
Daosheng Mu
05/25/2016
What is a mobile VR game?
A general 3D game
- 3D scene
- Game character
- Game controller
- Monoscopic camera
- Sound effect
- Collision detection
A Mobile VR game needs?
- 3D scene
- Game character
- Game controller 

Auto movement
- Stereoscopic camera
- Sound effect
- Collision detection

Training Stage
3D Coordinate
3D Transform
Object3D
http://math.hws.edu/graphicsbook/c3/s5.html
3D Transform
Object3D
http://math.hws.edu/graphicsbook/c3/s5.html
Model matrix
Rotate
Translate
Scale
3D Transform
https://glumpy.github.io/modern-gl.html
Camera
Object3D
- model matrix
- position- viewport
- near / far
- projection matrix
*View matrix
inherit
3D Transform
https://glumpy.github.io/modern-gl.html
x M[]projx M[]view
Object3D
M[]model
Camera space Screen spaceWorld space
Game Design
• First-Person viewport
• Character
• Camera control
• Auto movement
• GUI
• Collision detection
• Sound effect
Game State
Menu Game
Game start
Game End Game loop
Init
1. FPV: Character
<a-entity id="vehicle">
<a-entity geometry="primitive: box; depth: 3; height: 1; width: 1" material="color:
#AAAA44"></a-entity>
<a-entity mixin="sphere" material="color: #999999" position="-0.7 -0.5 1.5" scale="0.3
0.3 0.3"></a-entity>
<a-entity mixin="sphere" material="color: #999999" position="0.7 -0.5 1.5" scale="0.3
0.3 0.3"></a-entity>
<a-entity mixin="sphere" material="color: #999999" position="-0.7 -0.5 -1.5"
scale="0.3 0.3 0.3"></a-entity>
<a-entity mixin="sphere" material="color: #999999" position="0.7 -0.5 -1.5" scale="0.3
0.3 0.3"></a-entity>
</a-entity>
1. FPV: Camera control
<a-entity id=“camera" wasd-
controls camera look-controls
position="0 5 2">
<a-entity id="cursor"
cursor="fuse: false; maxDistance:
30; timeout: 500"
position="0 0 -5"
geometry="primitive:
ring; segmentsTheta: 8;
segmentsPhi: 2"
material="color:
#4CC3D9; shader: flat"
scale="0.1, 0.1, 0.1">
</a-entity>
</a-entity>
2. GUI
entity.setAttribute('rotation', { x: radianToDegree(cameraRotate.x),
y: radianToDegree(cameraRotate.y), z:
radianToDegree(cameraRotate.z) });
entity.setAttribute('position',{ x: cameraPos.x + lookAtVector.x + offset.x,
y: cameraPos.y + offset.y, z: cameraPos.z + lookAtVector.z +
offset.z });
<a-entity class="menu"
id="playButton" mixin="menu"
material="transparent: true;
src:
#playBtnTexture"scale="0.4
0.2 1" visible="true">
<a-animation
begin="hovered"
attribute="visible"
from="true" to="false">
</a-animation>
</a-entity>
3. 3D Scene
<a-entity physics-body="primitive: box; boundingBox: 200 2
200; mass: 0; velocity: 0.2 0 0" geometry="primitive: box"
material="color: #117777" position="0 0 0" scale="100 1 100”>
</a-entity>
X N times
3. 3D Scene
{
"geometry": "box",
"position": {"x": -50, "y": 10, "z": 0},
"scale": {"x": 0.1, "y": 20, "z": 100},
"rotation": {"x": 0, "y": 0, "z": 0},
"material": {"color": "#aaaaaa"}
},
{
"geometry": "box",
"position": {"x": 50, "y": 10, "z": 0},
"scale": {"x": 0.1, "y": 20, "z": 100},
"rotation": {"x": 0, "y": 0, "z": 0},
"material": {"color": "#aaaaaa"}
}
To save your works!
4. Collision detection
<a-entity physics-body="primitive: box; boundingBox: 200 2 200; mass: 0;
velocity: 0.2 0 0" geometry="primitive: box" material="color: #117777"
position="0 0 0" scale="100 1 100"></a-entity>
https://github.com/ngokevin/aframe-physics-components
5. Audio
• Support formats: mp3*, wav, ogg
<a-mixin id="menu-hovered" material="color: #11dd22"
scale="7 3 1" sound="src: asset/kick.wav; autoplay: true”>
</a-mixin>
*mp3 is more compatible on browsers
Third-party A-
Frame components
• https://github.com/
aframevr/
awesome-aframe
• https://github.com/
donmccurdy/
aframe-extras
Optimization
• Stats
• Control entity no.
• Face no. of Sphere

• Text: aframe-text-component
• Run on your target device frequently
<a-mixin id="sphere" geometry="primitive: sphere; segmentsWidth: 4;
segmentsHeight: 4" scale="1 1 1"></a-mixin>
<a-scene stats> </a-scene>
Thanks for your attention
https://github.com/daoshengmu/aframe-lesson
• Build from BasicScene
1.Modify map
2.Making GUI
3.Implement hitting function

More Related Content

What's hot

WebVR - MobileTechCon Berlin 2016
WebVR - MobileTechCon Berlin 2016WebVR - MobileTechCon Berlin 2016
WebVR - MobileTechCon Berlin 2016Carsten Sandtner
 
Goodbye, Flatland! An introduction to React VR and what it means for web dev...
Goodbye, Flatland! An introduction to React VR  and what it means for web dev...Goodbye, Flatland! An introduction to React VR  and what it means for web dev...
Goodbye, Flatland! An introduction to React VR and what it means for web dev...GeilDanke
 
Getting Started with Web VR
Getting Started with Web VR Getting Started with Web VR
Getting Started with Web VR Saurabh Badhwar
 
Getting Started in VR with JS
Getting Started in VR with JSGetting Started in VR with JS
Getting Started in VR with JSRudy Jahchan
 
AngularJS: The Bridge Between Today and Tomorrow's Web (Todd Motto)
AngularJS: The Bridge Between Today and Tomorrow's Web (Todd Motto)AngularJS: The Bridge Between Today and Tomorrow's Web (Todd Motto)
AngularJS: The Bridge Between Today and Tomorrow's Web (Todd Motto)Future Insights
 
Enjoy the vue.js
Enjoy the vue.jsEnjoy the vue.js
Enjoy the vue.jsTechExeter
 
Marionette: the Backbone framework
Marionette: the Backbone frameworkMarionette: the Backbone framework
Marionette: the Backbone frameworkfrontendne
 
Minimalism in Web Development
Minimalism in Web DevelopmentMinimalism in Web Development
Minimalism in Web DevelopmentJamie Matthews
 
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!Takashi Yoshinaga
 
Writing Virtual And Augmented Reality Apps With Web Technology
Writing Virtual And Augmented Reality Apps With Web TechnologyWriting Virtual And Augmented Reality Apps With Web Technology
Writing Virtual And Augmented Reality Apps With Web TechnologyMichaela Lehr
 
Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...
Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...
Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...Ontico
 
Introduction to The VR Web
Introduction to The VR WebIntroduction to The VR Web
Introduction to The VR WebLiv Erickson
 
Arquitetura de Front-end em Aplicações de Larga Escala
Arquitetura de Front-end em Aplicações de Larga EscalaArquitetura de Front-end em Aplicações de Larga Escala
Arquitetura de Front-end em Aplicações de Larga EscalaEduardo Shiota Yasuda
 
Backbone/Marionette introduction
Backbone/Marionette introductionBackbone/Marionette introduction
Backbone/Marionette introductionmatt-briggs
 
Intro to @viewport & other new Responsive Web Design CSS features
Intro to @viewport & other new Responsive Web Design CSS featuresIntro to @viewport & other new Responsive Web Design CSS features
Intro to @viewport & other new Responsive Web Design CSS featuresAndreas Bovens
 
Creating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of todayCreating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of todaygerbille
 
The Art of AngularJS in 2015 - Angular Summit 2015
The Art of AngularJS in 2015 - Angular Summit 2015The Art of AngularJS in 2015 - Angular Summit 2015
The Art of AngularJS in 2015 - Angular Summit 2015Matt Raible
 

What's hot (20)

WebVR - MobileTechCon Berlin 2016
WebVR - MobileTechCon Berlin 2016WebVR - MobileTechCon Berlin 2016
WebVR - MobileTechCon Berlin 2016
 
WebVR - JAX 2016
WebVR -  JAX 2016WebVR -  JAX 2016
WebVR - JAX 2016
 
Goodbye, Flatland! An introduction to React VR and what it means for web dev...
Goodbye, Flatland! An introduction to React VR  and what it means for web dev...Goodbye, Flatland! An introduction to React VR  and what it means for web dev...
Goodbye, Flatland! An introduction to React VR and what it means for web dev...
 
Getting Started with Web VR
Getting Started with Web VR Getting Started with Web VR
Getting Started with Web VR
 
Web vr creative_vr
Web vr creative_vrWeb vr creative_vr
Web vr creative_vr
 
Getting Started in VR with JS
Getting Started in VR with JSGetting Started in VR with JS
Getting Started in VR with JS
 
AngularJS: The Bridge Between Today and Tomorrow's Web (Todd Motto)
AngularJS: The Bridge Between Today and Tomorrow's Web (Todd Motto)AngularJS: The Bridge Between Today and Tomorrow's Web (Todd Motto)
AngularJS: The Bridge Between Today and Tomorrow's Web (Todd Motto)
 
Enjoy the vue.js
Enjoy the vue.jsEnjoy the vue.js
Enjoy the vue.js
 
Marionette: the Backbone framework
Marionette: the Backbone frameworkMarionette: the Backbone framework
Marionette: the Backbone framework
 
Minimalism in Web Development
Minimalism in Web DevelopmentMinimalism in Web Development
Minimalism in Web Development
 
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
 
Writing Virtual And Augmented Reality Apps With Web Technology
Writing Virtual And Augmented Reality Apps With Web TechnologyWriting Virtual And Augmented Reality Apps With Web Technology
Writing Virtual And Augmented Reality Apps With Web Technology
 
Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...
Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...
Портируем существующее Web-приложение в виртуальную реальность / Денис Радин ...
 
Introduction to The VR Web
Introduction to The VR WebIntroduction to The VR Web
Introduction to The VR Web
 
Arquitetura de Front-end em Aplicações de Larga Escala
Arquitetura de Front-end em Aplicações de Larga EscalaArquitetura de Front-end em Aplicações de Larga Escala
Arquitetura de Front-end em Aplicações de Larga Escala
 
Backbone/Marionette introduction
Backbone/Marionette introductionBackbone/Marionette introduction
Backbone/Marionette introduction
 
Modular and Event-Driven JavaScript
Modular and Event-Driven JavaScriptModular and Event-Driven JavaScript
Modular and Event-Driven JavaScript
 
Intro to @viewport & other new Responsive Web Design CSS features
Intro to @viewport & other new Responsive Web Design CSS featuresIntro to @viewport & other new Responsive Web Design CSS features
Intro to @viewport & other new Responsive Web Design CSS features
 
Creating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of todayCreating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of today
 
The Art of AngularJS in 2015 - Angular Summit 2015
The Art of AngularJS in 2015 - Angular Summit 2015The Art of AngularJS in 2015 - Angular Summit 2015
The Art of AngularJS in 2015 - Angular Summit 2015
 

Viewers also liked

Case (iidf) team 1 (eng)
Case (iidf)   team 1 (eng)Case (iidf)   team 1 (eng)
Case (iidf) team 1 (eng)EVA
 
사업계획서 알음알음 포스코기술투자
사업계획서 알음알음 포스코기술투자사업계획서 알음알음 포스코기술투자
사업계획서 알음알음 포스코기술투자Sangmo Kang
 
Begi cube zombie vr
Begi cube zombie vrBegi cube zombie vr
Begi cube zombie vrKiwon Seo
 
노비 게임 발표자료
노비 게임 발표자료노비 게임 발표자료
노비 게임 발표자료은우 사
 
성준영 소프트콘 발표
성준영 소프트콘 발표성준영 소프트콘 발표
성준영 소프트콘 발표Junyoung Sung
 
[IGC 2016] 허니잼게임즈 이형호 - 소규모 개발사의 게임 완성과 유지 보수 과정
[IGC 2016] 허니잼게임즈 이형호 - 소규모 개발사의 게임 완성과 유지 보수 과정[IGC 2016] 허니잼게임즈 이형호 - 소규모 개발사의 게임 완성과 유지 보수 과정
[IGC 2016] 허니잼게임즈 이형호 - 소규모 개발사의 게임 완성과 유지 보수 과정강 민우
 
[2D5]무인항공기드론이자동으로움직이는비밀
[2D5]무인항공기드론이자동으로움직이는비밀[2D5]무인항공기드론이자동으로움직이는비밀
[2D5]무인항공기드론이자동으로움직이는비밀NAVER D2
 
[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발
[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발
[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발MinPa Lee
 
하코사세미나_캔버스 파이그래프 만들기
하코사세미나_캔버스 파이그래프 만들기하코사세미나_캔버스 파이그래프 만들기
하코사세미나_캔버스 파이그래프 만들기정석 양
 
Unite Seoul 2016 - 스매싱 더 배틀의 멀티플랫폼 개발
Unite Seoul 2016 - 스매싱 더 배틀의 멀티플랫폼 개발 Unite Seoul 2016 - 스매싱 더 배틀의 멀티플랫폼 개발
Unite Seoul 2016 - 스매싱 더 배틀의 멀티플랫폼 개발 Daehoon Han
 
퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다정석 양
 
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화Eunseok Yi
 
Hacking & its types
Hacking & its typesHacking & its types
Hacking & its typesSai Sakoji
 

Viewers also liked (16)

Introduction to VR Development
Introduction to VR DevelopmentIntroduction to VR Development
Introduction to VR Development
 
19. 초록별마을_2015 에너지자립마을 성과발표자료
19. 초록별마을_2015 에너지자립마을 성과발표자료19. 초록별마을_2015 에너지자립마을 성과발표자료
19. 초록별마을_2015 에너지자립마을 성과발표자료
 
Case (iidf) team 1 (eng)
Case (iidf)   team 1 (eng)Case (iidf)   team 1 (eng)
Case (iidf) team 1 (eng)
 
사업계획서 알음알음 포스코기술투자
사업계획서 알음알음 포스코기술투자사업계획서 알음알음 포스코기술투자
사업계획서 알음알음 포스코기술투자
 
Begi cube zombie vr
Begi cube zombie vrBegi cube zombie vr
Begi cube zombie vr
 
노비 게임 발표자료
노비 게임 발표자료노비 게임 발표자료
노비 게임 발표자료
 
성준영 소프트콘 발표
성준영 소프트콘 발표성준영 소프트콘 발표
성준영 소프트콘 발표
 
[IGC 2016] 허니잼게임즈 이형호 - 소규모 개발사의 게임 완성과 유지 보수 과정
[IGC 2016] 허니잼게임즈 이형호 - 소규모 개발사의 게임 완성과 유지 보수 과정[IGC 2016] 허니잼게임즈 이형호 - 소규모 개발사의 게임 완성과 유지 보수 과정
[IGC 2016] 허니잼게임즈 이형호 - 소규모 개발사의 게임 완성과 유지 보수 과정
 
[2D5]무인항공기드론이자동으로움직이는비밀
[2D5]무인항공기드론이자동으로움직이는비밀[2D5]무인항공기드론이자동으로움직이는비밀
[2D5]무인항공기드론이자동으로움직이는비밀
 
[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발
[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발
[제86회 Open Technet]OGC 표준 기반의 공간자료 분석과 시각화 기술 개발
 
하코사세미나_캔버스 파이그래프 만들기
하코사세미나_캔버스 파이그래프 만들기하코사세미나_캔버스 파이그래프 만들기
하코사세미나_캔버스 파이그래프 만들기
 
Unite Seoul 2016 - 스매싱 더 배틀의 멀티플랫폼 개발
Unite Seoul 2016 - 스매싱 더 배틀의 멀티플랫폼 개발 Unite Seoul 2016 - 스매싱 더 배틀의 멀티플랫폼 개발
Unite Seoul 2016 - 스매싱 더 배틀의 멀티플랫폼 개발
 
퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다
 
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
 
4조 최종
4조 최종4조 최종
4조 최종
 
Hacking & its types
Hacking & its typesHacking & its types
Hacking & its types
 

Similar to Maze VR

Html5 game programming overview
Html5 game programming overviewHtml5 game programming overview
Html5 game programming overview민태 김
 
Leaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGLLeaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGLgerbille
 
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...Ontico
 
"Augmented reality in your browser", Alina Karpelceva
"Augmented reality in your browser", Alina Karpelceva"Augmented reality in your browser", Alina Karpelceva
"Augmented reality in your browser", Alina KarpelcevaFwdays
 
Begin three.js.key
Begin three.js.keyBegin three.js.key
Begin three.js.keyYi-Fan Liao
 
Ember.js Tokyo event 2014/09/22 (English)
Ember.js Tokyo event 2014/09/22 (English)Ember.js Tokyo event 2014/09/22 (English)
Ember.js Tokyo event 2014/09/22 (English)Yuki Shimada
 
Webgl para JavaScripters
Webgl para JavaScriptersWebgl para JavaScripters
Webgl para JavaScriptersgerbille
 
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)Oswald Campesato
 
まよいの墓(WebVR編)
まよいの墓(WebVR編)まよいの墓(WebVR編)
まよいの墓(WebVR編)KatsuyaENDOH
 
Mobile Application Development for the Web Developer
Mobile Application Development for the Web DeveloperMobile Application Development for the Web Developer
Mobile Application Development for the Web DeveloperCraig Johnston
 
HTML5 - Daha Flash bir web?
HTML5 - Daha Flash bir web?HTML5 - Daha Flash bir web?
HTML5 - Daha Flash bir web?Ankara JUG
 
Making Games in JavaScript
Making Games in JavaScriptMaking Games in JavaScript
Making Games in JavaScriptSam Cartwright
 

Similar to Maze VR (20)

Html5 game programming overview
Html5 game programming overviewHtml5 game programming overview
Html5 game programming overview
 
3D everywhere
3D everywhere3D everywhere
3D everywhere
 
Wpf Workgroup 4
Wpf Workgroup 4Wpf Workgroup 4
Wpf Workgroup 4
 
Three.js basics
Three.js basicsThree.js basics
Three.js basics
 
Leaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGLLeaving Flatland: getting started with WebGL
Leaving Flatland: getting started with WebGL
 
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...
Как мы сделали многопользовательскую браузерную игру для HL++ с воксельной гр...
 
"Augmented reality in your browser", Alina Karpelceva
"Augmented reality in your browser", Alina Karpelceva"Augmented reality in your browser", Alina Karpelceva
"Augmented reality in your browser", Alina Karpelceva
 
Begin three.js.key
Begin three.js.keyBegin three.js.key
Begin three.js.key
 
Ember.js Tokyo event 2014/09/22 (English)
Ember.js Tokyo event 2014/09/22 (English)Ember.js Tokyo event 2014/09/22 (English)
Ember.js Tokyo event 2014/09/22 (English)
 
WebXR if X = how?
WebXR if X = how?WebXR if X = how?
WebXR if X = how?
 
WebGL 3D player
WebGL 3D playerWebGL 3D player
WebGL 3D player
 
Webgl para JavaScripters
Webgl para JavaScriptersWebgl para JavaScripters
Webgl para JavaScripters
 
Svcc 2013-d3
Svcc 2013-d3Svcc 2013-d3
Svcc 2013-d3
 
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)
 
まよいの墓(WebVR編)
まよいの墓(WebVR編)まよいの墓(WebVR編)
まよいの墓(WebVR編)
 
Mobile Application Development for the Web Developer
Mobile Application Development for the Web DeveloperMobile Application Development for the Web Developer
Mobile Application Development for the Web Developer
 
Real life XNA
Real life XNAReal life XNA
Real life XNA
 
HTML5 - Daha Flash bir web?
HTML5 - Daha Flash bir web?HTML5 - Daha Flash bir web?
HTML5 - Daha Flash bir web?
 
CreateJS
CreateJSCreateJS
CreateJS
 
Making Games in JavaScript
Making Games in JavaScriptMaking Games in JavaScript
Making Games in JavaScript
 

Recently uploaded

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
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

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
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

Maze VR

  • 2. What is a mobile VR game?
  • 3. A general 3D game - 3D scene - Game character - Game controller - Monoscopic camera - Sound effect - Collision detection
  • 4. A Mobile VR game needs? - 3D scene - Game character - Game controller 
 Auto movement - Stereoscopic camera - Sound effect - Collision detection

  • 9. 3D Transform https://glumpy.github.io/modern-gl.html Camera Object3D - model matrix - position- viewport - near / far - projection matrix *View matrix inherit
  • 10. 3D Transform https://glumpy.github.io/modern-gl.html x M[]projx M[]view Object3D M[]model Camera space Screen spaceWorld space
  • 11.
  • 12. Game Design • First-Person viewport • Character • Camera control • Auto movement • GUI • Collision detection • Sound effect
  • 13. Game State Menu Game Game start Game End Game loop Init
  • 14. 1. FPV: Character <a-entity id="vehicle"> <a-entity geometry="primitive: box; depth: 3; height: 1; width: 1" material="color: #AAAA44"></a-entity> <a-entity mixin="sphere" material="color: #999999" position="-0.7 -0.5 1.5" scale="0.3 0.3 0.3"></a-entity> <a-entity mixin="sphere" material="color: #999999" position="0.7 -0.5 1.5" scale="0.3 0.3 0.3"></a-entity> <a-entity mixin="sphere" material="color: #999999" position="-0.7 -0.5 -1.5" scale="0.3 0.3 0.3"></a-entity> <a-entity mixin="sphere" material="color: #999999" position="0.7 -0.5 -1.5" scale="0.3 0.3 0.3"></a-entity> </a-entity>
  • 15. 1. FPV: Camera control <a-entity id=“camera" wasd- controls camera look-controls position="0 5 2"> <a-entity id="cursor" cursor="fuse: false; maxDistance: 30; timeout: 500" position="0 0 -5" geometry="primitive: ring; segmentsTheta: 8; segmentsPhi: 2" material="color: #4CC3D9; shader: flat" scale="0.1, 0.1, 0.1"> </a-entity> </a-entity>
  • 16. 2. GUI entity.setAttribute('rotation', { x: radianToDegree(cameraRotate.x), y: radianToDegree(cameraRotate.y), z: radianToDegree(cameraRotate.z) }); entity.setAttribute('position',{ x: cameraPos.x + lookAtVector.x + offset.x, y: cameraPos.y + offset.y, z: cameraPos.z + lookAtVector.z + offset.z }); <a-entity class="menu" id="playButton" mixin="menu" material="transparent: true; src: #playBtnTexture"scale="0.4 0.2 1" visible="true"> <a-animation begin="hovered" attribute="visible" from="true" to="false"> </a-animation> </a-entity>
  • 17. 3. 3D Scene <a-entity physics-body="primitive: box; boundingBox: 200 2 200; mass: 0; velocity: 0.2 0 0" geometry="primitive: box" material="color: #117777" position="0 0 0" scale="100 1 100”> </a-entity> X N times
  • 18. 3. 3D Scene { "geometry": "box", "position": {"x": -50, "y": 10, "z": 0}, "scale": {"x": 0.1, "y": 20, "z": 100}, "rotation": {"x": 0, "y": 0, "z": 0}, "material": {"color": "#aaaaaa"} }, { "geometry": "box", "position": {"x": 50, "y": 10, "z": 0}, "scale": {"x": 0.1, "y": 20, "z": 100}, "rotation": {"x": 0, "y": 0, "z": 0}, "material": {"color": "#aaaaaa"} } To save your works!
  • 19. 4. Collision detection <a-entity physics-body="primitive: box; boundingBox: 200 2 200; mass: 0; velocity: 0.2 0 0" geometry="primitive: box" material="color: #117777" position="0 0 0" scale="100 1 100"></a-entity> https://github.com/ngokevin/aframe-physics-components
  • 20. 5. Audio • Support formats: mp3*, wav, ogg <a-mixin id="menu-hovered" material="color: #11dd22" scale="7 3 1" sound="src: asset/kick.wav; autoplay: true”> </a-mixin> *mp3 is more compatible on browsers
  • 21. Third-party A- Frame components • https://github.com/ aframevr/ awesome-aframe • https://github.com/ donmccurdy/ aframe-extras
  • 22. Optimization • Stats • Control entity no. • Face no. of Sphere
 • Text: aframe-text-component • Run on your target device frequently <a-mixin id="sphere" geometry="primitive: sphere; segmentsWidth: 4; segmentsHeight: 4" scale="1 1 1"></a-mixin> <a-scene stats> </a-scene>
  • 23. Thanks for your attention https://github.com/daoshengmu/aframe-lesson • Build from BasicScene 1.Modify map 2.Making GUI 3.Implement hitting function