SlideShare a Scribd company logo
1 of 22
Download to read offline
Star Wars video game developed in Three.js and WebGL
Sapienza – University of Rome
MSc in Engineering in Computer Science
Course of Interactive Graphics
SUMMARY
 Environments
 Libraries, tools and imported
models
 Hierarchical models
 Lights and textures
 User interaction
 Animations
ENVIRONMENTS
WebGL
Three.js
THREE.JS
AND
WEBGL
Three.js is a cross-browser JavaScript library
used to create and display animated 3D
computer graphics in a web browser
Three.js uses WebGL
WebGL (Web Graphics Library) is a JavaScript
API for rendering interactive graphics within any
compatible web browser without the use of
plug-ins
TOOLS
 Brackets coding
 Dropbox file organizations
 Microsoft Office documentation
 Skype calls
 GitHub version control
 LinkedIn and SlideShare sharing
IMPORTED
MODELS
We imported the X-Wing model with a
3D JSON file downloaded from Clara.io
SIMPLE
MODELS
We used a simple three.js model to
represent rocks, which is a tetrahedron
HIERARCHICAL
MODEL #1
BB-8 droid
A sphere, a semi-sphere and four cylinders
LIGHTS AND SHADOWS
PCFSoftShadowMap filters shadow
maps using the Percentage-Closer
Soft Shadows (PCSS) algorithm using
renderer.shadowMap.type =
THREE.PCFSoftShadowMap;
DIRECTIONAL LIGHT
It is a light that gets emitted in a
specific direction. This light will
behave as though it is infinitely far
away and the rays produced from it
are all parallel
The common use case for this is to
simulate daylight; the sun is far
enough away that its position can
be considered to be infinite, and all
light rays coming from it are
parallel
LAMBERT MATERIAL
For the BB-8 model, it has been used the Lambert
Material: shading is calculated using
a Gouraud shading model. This calculates shading per
vertex and interpolates the results over the polygon's
faces
It allows to obtain a soft degradation from light
points to shadow points
TEXTURES
In the visual arts, texture is
the perceived surface quality
of a work of art
It is an element of two-
dimensional and three-
dimensional designs and is
distinguished by its perceived
visual and physical properties
ANIMATIONS
Animation is a dynamic standard in which images or objects are manipulated to
appear as moving images
Three.js allows the creation of Graphical Processing Unit (GPU)-accelerated 3D
animations using the JavaScript language as part of a website without relying on
proprietary browser plugins
BUSINESS LOGIC:
GAME’S WORLD
 The entire world game is a whole and
enormous sphere, which rotating gives to
the observer the sensation of moving on it
 The sphere is generated with
THREE.SphereGeometry, it is not a real
sphere but a geometric solid composed
using many triangles and characterized by
some parameters: ray, longitudinal
segments, latitudinal segments, phi and
theta
 It has been decided to don’t use many
triangles to make the world not perfectly
rounded and spherical, giving the sensation
of a non-perfect and more natural surface.
Also, because we are zooming on it, it
should be very difficult to make such a big
world perfectly spherical, while BB-8 was
easier because of its smallness and
distance from camera
BUSINESS LOGIC:
WORLD’S BACKGROUND
 Instead of a monochromatic
background that give a sensation of a
flat and less natural world, it has been
applied as background an image with
the same style of the world sphere, it
gives the sensation to reach it and it
lets the users to see a beautiful
panorama (remembering also that
Jakku has two Suns!)
BUSINESS LOGIC: WORLD’S POPULATION
 World is populated with rocks. Rocks, as anticipated before, are three.js
models which represent a tetrahedron. They have a collision logic that lets
them to be attached to the world’s surface and let the game ends when the
player, moving BB-8, collides on a rock
 Another logic that characterize rocks is the spawn: rocks casually spawn with
a random position on the world’s surface and with a random dimension,
making the game more difficult and less predictable
BUSINESS LOGIC: GAME’S PLAYER
 The game has a player, which is the user interacting with BB-8 droid. BB-8
droid is a hierarchical model (as described before) and it stands on the same y
axis even if it seems to move forward. BB-8 can move only on the z axis
jumping and falling down simulating world’s gravity and it can move on the x
axis, trying to avoid rocks and the consequential game over.
USER INTERACTIONS
User interaction researches the
design and use of computer
technology, focused on the
interfaces between people (users)
and computers
In our video game, the user can
take the control of BB-8 droid and
move it using keyboard
USERS MANUAL:
HOW TO USE IT
 This software is a challenging video game,
addressed to those who want to test their
personal skills. User can use this easy-to-read
and portable manual wherever he wants, at
home, in the office, at a remote job site or even
in the car (if you’re not driving!). User can start
reading this manual from “Getting started”
section skipping this introduction. This manual
also doesn’t need expertise or knowledge to be
used, thanks to its simple language and its full-
provided steps and instructions, also, it doesn’t
include high technical language to help who
doesn’t have technical background
USER MANUAL:
GETTING STARTED
 To start the video game, users have to open a
terminal in the folder containing all the project,
type:
 $ python -m http.server
 To start a simple http server using Python 3.x, or:
 $ python -m SimpleHTTPServer
 For Python 2.x. Now just go to “localhost:8000”
using any browser and the game will start.
 Note: you should clear your browser’s caches
sometimes, or your browser could not be
supported. If you found any trouble, try to clear
your caches and to use Google Chrome or Safari
USER MANUAL:
PLAY THE GAME
 At this point the software should be
running and you should be ready to
play it.
 In the browser, just click on START
button and here you go! The video
game will start.
 You will impersonate BB-8 droid trying
to escape from imperial army, running
for your life you must avoid rocks
jumping (by pressing ↑ arrow) and
moving left (← arrow) or moving right
(→ arrow).
THANK YOU!

More Related Content

What's hot

What's hot (20)

CSC103 Gaming Overview (for Everyone)
CSC103 Gaming Overview (for Everyone)CSC103 Gaming Overview (for Everyone)
CSC103 Gaming Overview (for Everyone)
 
Advanced techniques for development of 2D Windows 8 games
Advanced techniques for development of 2D Windows 8 gamesAdvanced techniques for development of 2D Windows 8 games
Advanced techniques for development of 2D Windows 8 games
 
The Basics of Unity - The Game Engine
The Basics of Unity - The Game EngineThe Basics of Unity - The Game Engine
The Basics of Unity - The Game Engine
 
Computer Game Graphics
Computer Game GraphicsComputer Game Graphics
Computer Game Graphics
 
Digital graphics (urtak)
Digital graphics (urtak)Digital graphics (urtak)
Digital graphics (urtak)
 
ANIMATION SEQUENCE
ANIMATION SEQUENCEANIMATION SEQUENCE
ANIMATION SEQUENCE
 
Unity 3D game engine seminar
Unity 3D game engine  seminarUnity 3D game engine  seminar
Unity 3D game engine seminar
 
Presentation on Virtual Reality
Presentation on Virtual RealityPresentation on Virtual Reality
Presentation on Virtual Reality
 
Unity 3d
Unity 3dUnity 3d
Unity 3d
 
Animation
AnimationAnimation
Animation
 
Unity 3d Basics
Unity 3d BasicsUnity 3d Basics
Unity 3d Basics
 
Animation
AnimationAnimation
Animation
 
Computer animation
Computer animationComputer animation
Computer animation
 
PRESENTATION ON Game Engine
PRESENTATION ON Game EnginePRESENTATION ON Game Engine
PRESENTATION ON Game Engine
 
Academy PRO: Unity 3D. Environment
Academy PRO: Unity 3D. EnvironmentAcademy PRO: Unity 3D. Environment
Academy PRO: Unity 3D. Environment
 
3D Movie Presentation
3D Movie Presentation3D Movie Presentation
3D Movie Presentation
 
Ani mation
Ani mationAni mation
Ani mation
 
Computer Game Graphics
Computer Game GraphicsComputer Game Graphics
Computer Game Graphics
 
Presentación Unity
Presentación UnityPresentación Unity
Presentación Unity
 
2d pixel art
2d pixel art2d pixel art
2d pixel art
 

Similar to BB8 RUN - A Star Wars video game

Web3D - Semantic standards, WebGL, HCI
Web3D - Semantic standards, WebGL, HCIWeb3D - Semantic standards, WebGL, HCI
Web3D - Semantic standards, WebGL, HCIVictor Porof
 
What is 3 d modeling unit 66
What is 3 d modeling   unit 66What is 3 d modeling   unit 66
What is 3 d modeling unit 66Richard Marshall
 
HA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The Basics
HA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The BasicsHA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The Basics
HA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The Basicshamza_123456
 
HA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The Basics
HA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The BasicsHA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The Basics
HA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The Basicshamza_123456
 
Introduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsIntroduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsLuca Galli
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminologyShaz Riches
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminologyShaz Riches
 
Y1 gd engine_terminologyhj
Y1 gd engine_terminologyhjY1 gd engine_terminologyhj
Y1 gd engine_terminologyhjShaz Riches
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Johan Andersson
 
Computer Graphics Power Point using Open GL and C Programming
Computer Graphics Power Point using Open GL and C ProgrammingComputer Graphics Power Point using Open GL and C Programming
Computer Graphics Power Point using Open GL and C Programmingkemal678348
 
Android Game Minisyonize
Android Game MinisyonizeAndroid Game Minisyonize
Android Game Minisyonizesavvy
 
Ancient world online
Ancient world online Ancient world online
Ancient world online SeifElDeen3
 
WebGL: 3D Graphics for the Web
WebGL: 3D Graphics for the WebWebGL: 3D Graphics for the Web
WebGL: 3D Graphics for the WebShritesh Bhattarai
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminologyJordanianmc
 

Similar to BB8 RUN - A Star Wars video game (20)

Web3D - Semantic standards, WebGL, HCI
Web3D - Semantic standards, WebGL, HCIWeb3D - Semantic standards, WebGL, HCI
Web3D - Semantic standards, WebGL, HCI
 
What is 3 d modeling unit 66
What is 3 d modeling   unit 66What is 3 d modeling   unit 66
What is 3 d modeling unit 66
 
3D - The Basics
3D - The Basics 3D - The Basics
3D - The Basics
 
HA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The Basics
HA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The BasicsHA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The Basics
HA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The Basics
 
HA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The Basics
HA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The BasicsHA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The Basics
HA5 – COMPUTER ARTS BLOG ARTICLE – 3D: The Basics
 
Introduction to html5 game programming with impact js
Introduction to html5 game programming with impact jsIntroduction to html5 game programming with impact js
Introduction to html5 game programming with impact js
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
3D Technology
3D Technology 3D Technology
3D Technology
 
Y1 gd engine_terminologyhj
Y1 gd engine_terminologyhjY1 gd engine_terminologyhj
Y1 gd engine_terminologyhj
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
 
Ha4 constraints
Ha4   constraintsHa4   constraints
Ha4 constraints
 
Blendertut
BlendertutBlendertut
Blendertut
 
Computer Graphics Power Point using Open GL and C Programming
Computer Graphics Power Point using Open GL and C ProgrammingComputer Graphics Power Point using Open GL and C Programming
Computer Graphics Power Point using Open GL and C Programming
 
Android Game Minisyonize
Android Game MinisyonizeAndroid Game Minisyonize
Android Game Minisyonize
 
HTML5 Game Development frameworks overview
HTML5 Game Development frameworks overviewHTML5 Game Development frameworks overview
HTML5 Game Development frameworks overview
 
3D in Android
3D in Android3D in Android
3D in Android
 
Ancient world online
Ancient world online Ancient world online
Ancient world online
 
WebGL: 3D Graphics for the Web
WebGL: 3D Graphics for the WebWebGL: 3D Graphics for the Web
WebGL: 3D Graphics for the Web
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 

More from Roberto Falconi

River Trail: A Path to Parallelism in JavaScript
River Trail: A Path to Parallelism in JavaScriptRiver Trail: A Path to Parallelism in JavaScript
River Trail: A Path to Parallelism in JavaScriptRoberto Falconi
 
Biometric Systems - Automate Video Streaming Analysis with Azure and AWS
Biometric Systems - Automate Video Streaming Analysis with Azure and AWSBiometric Systems - Automate Video Streaming Analysis with Azure and AWS
Biometric Systems - Automate Video Streaming Analysis with Azure and AWSRoberto Falconi
 
Biometric Systems - Automate Video Streaming Analysis with Azure and AWS
Biometric Systems - Automate Video Streaming Analysis with Azure and AWSBiometric Systems - Automate Video Streaming Analysis with Azure and AWS
Biometric Systems - Automate Video Streaming Analysis with Azure and AWSRoberto Falconi
 
Black-Box attacks against Neural Networks - technical project presentation
Black-Box attacks against Neural Networks - technical project presentationBlack-Box attacks against Neural Networks - technical project presentation
Black-Box attacks against Neural Networks - technical project presentationRoberto Falconi
 
Black-Box attacks against Neural Networks - technical project report
Black-Box attacks against Neural Networks - technical project reportBlack-Box attacks against Neural Networks - technical project report
Black-Box attacks against Neural Networks - technical project reportRoberto Falconi
 
SUOMI - UCD approach to build an IoT smart guide for spa
SUOMI - UCD approach to build an IoT smart guide for spaSUOMI - UCD approach to build an IoT smart guide for spa
SUOMI - UCD approach to build an IoT smart guide for spaRoberto Falconi
 
Kalypso: She who hides. Encryption and decryption web app.
Kalypso: She who hides. Encryption and decryption web app.Kalypso: She who hides. Encryption and decryption web app.
Kalypso: She who hides. Encryption and decryption web app.Roberto Falconi
 
Venice boats classification
Venice boats classificationVenice boats classification
Venice boats classificationRoberto Falconi
 
Visual Analytics: Traffic Collisions in Italy
Visual Analytics: Traffic Collisions in ItalyVisual Analytics: Traffic Collisions in Italy
Visual Analytics: Traffic Collisions in ItalyRoberto Falconi
 
Visual Analytics: Traffic Collisions in Italy
Visual Analytics: Traffic Collisions in ItalyVisual Analytics: Traffic Collisions in Italy
Visual Analytics: Traffic Collisions in ItalyRoberto Falconi
 
SUOMI - Web and mobile app for spa users, using STM32 IoT, Microsoft Azure Cl...
SUOMI - Web and mobile app for spa users, using STM32 IoT, Microsoft Azure Cl...SUOMI - Web and mobile app for spa users, using STM32 IoT, Microsoft Azure Cl...
SUOMI - Web and mobile app for spa users, using STM32 IoT, Microsoft Azure Cl...Roberto Falconi
 
Game Ratings Predictor - machine learning software to predict video games co...
Game Ratings Predictor  - machine learning software to predict video games co...Game Ratings Predictor  - machine learning software to predict video games co...
Game Ratings Predictor - machine learning software to predict video games co...Roberto Falconi
 
House Temperature Monitoring using AWS IoT And Raspberry Pi
House Temperature Monitoring using AWS IoT And Raspberry PiHouse Temperature Monitoring using AWS IoT And Raspberry Pi
House Temperature Monitoring using AWS IoT And Raspberry PiRoberto Falconi
 

More from Roberto Falconi (15)

River Trail: A Path to Parallelism in JavaScript
River Trail: A Path to Parallelism in JavaScriptRiver Trail: A Path to Parallelism in JavaScript
River Trail: A Path to Parallelism in JavaScript
 
Biometric Systems - Automate Video Streaming Analysis with Azure and AWS
Biometric Systems - Automate Video Streaming Analysis with Azure and AWSBiometric Systems - Automate Video Streaming Analysis with Azure and AWS
Biometric Systems - Automate Video Streaming Analysis with Azure and AWS
 
Biometric Systems - Automate Video Streaming Analysis with Azure and AWS
Biometric Systems - Automate Video Streaming Analysis with Azure and AWSBiometric Systems - Automate Video Streaming Analysis with Azure and AWS
Biometric Systems - Automate Video Streaming Analysis with Azure and AWS
 
Black-Box attacks against Neural Networks - technical project presentation
Black-Box attacks against Neural Networks - technical project presentationBlack-Box attacks against Neural Networks - technical project presentation
Black-Box attacks against Neural Networks - technical project presentation
 
Black-Box attacks against Neural Networks - technical project report
Black-Box attacks against Neural Networks - technical project reportBlack-Box attacks against Neural Networks - technical project report
Black-Box attacks against Neural Networks - technical project report
 
SUOMI - UCD approach to build an IoT smart guide for spa
SUOMI - UCD approach to build an IoT smart guide for spaSUOMI - UCD approach to build an IoT smart guide for spa
SUOMI - UCD approach to build an IoT smart guide for spa
 
Kalypso: She who hides. Encryption and decryption web app.
Kalypso: She who hides. Encryption and decryption web app.Kalypso: She who hides. Encryption and decryption web app.
Kalypso: She who hides. Encryption and decryption web app.
 
Game ratings predictor
Game ratings predictorGame ratings predictor
Game ratings predictor
 
Malware analysis
Malware analysisMalware analysis
Malware analysis
 
Venice boats classification
Venice boats classificationVenice boats classification
Venice boats classification
 
Visual Analytics: Traffic Collisions in Italy
Visual Analytics: Traffic Collisions in ItalyVisual Analytics: Traffic Collisions in Italy
Visual Analytics: Traffic Collisions in Italy
 
Visual Analytics: Traffic Collisions in Italy
Visual Analytics: Traffic Collisions in ItalyVisual Analytics: Traffic Collisions in Italy
Visual Analytics: Traffic Collisions in Italy
 
SUOMI - Web and mobile app for spa users, using STM32 IoT, Microsoft Azure Cl...
SUOMI - Web and mobile app for spa users, using STM32 IoT, Microsoft Azure Cl...SUOMI - Web and mobile app for spa users, using STM32 IoT, Microsoft Azure Cl...
SUOMI - Web and mobile app for spa users, using STM32 IoT, Microsoft Azure Cl...
 
Game Ratings Predictor - machine learning software to predict video games co...
Game Ratings Predictor  - machine learning software to predict video games co...Game Ratings Predictor  - machine learning software to predict video games co...
Game Ratings Predictor - machine learning software to predict video games co...
 
House Temperature Monitoring using AWS IoT And Raspberry Pi
House Temperature Monitoring using AWS IoT And Raspberry PiHouse Temperature Monitoring using AWS IoT And Raspberry Pi
House Temperature Monitoring using AWS IoT And Raspberry Pi
 

Recently uploaded

OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 

Recently uploaded (20)

OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 

BB8 RUN - A Star Wars video game

  • 1. Star Wars video game developed in Three.js and WebGL Sapienza – University of Rome MSc in Engineering in Computer Science Course of Interactive Graphics
  • 2. SUMMARY  Environments  Libraries, tools and imported models  Hierarchical models  Lights and textures  User interaction  Animations
  • 4. THREE.JS AND WEBGL Three.js is a cross-browser JavaScript library used to create and display animated 3D computer graphics in a web browser Three.js uses WebGL WebGL (Web Graphics Library) is a JavaScript API for rendering interactive graphics within any compatible web browser without the use of plug-ins
  • 5. TOOLS  Brackets coding  Dropbox file organizations  Microsoft Office documentation  Skype calls  GitHub version control  LinkedIn and SlideShare sharing
  • 6. IMPORTED MODELS We imported the X-Wing model with a 3D JSON file downloaded from Clara.io
  • 7. SIMPLE MODELS We used a simple three.js model to represent rocks, which is a tetrahedron
  • 8. HIERARCHICAL MODEL #1 BB-8 droid A sphere, a semi-sphere and four cylinders
  • 9. LIGHTS AND SHADOWS PCFSoftShadowMap filters shadow maps using the Percentage-Closer Soft Shadows (PCSS) algorithm using renderer.shadowMap.type = THREE.PCFSoftShadowMap;
  • 10. DIRECTIONAL LIGHT It is a light that gets emitted in a specific direction. This light will behave as though it is infinitely far away and the rays produced from it are all parallel The common use case for this is to simulate daylight; the sun is far enough away that its position can be considered to be infinite, and all light rays coming from it are parallel
  • 11. LAMBERT MATERIAL For the BB-8 model, it has been used the Lambert Material: shading is calculated using a Gouraud shading model. This calculates shading per vertex and interpolates the results over the polygon's faces It allows to obtain a soft degradation from light points to shadow points
  • 12. TEXTURES In the visual arts, texture is the perceived surface quality of a work of art It is an element of two- dimensional and three- dimensional designs and is distinguished by its perceived visual and physical properties
  • 13. ANIMATIONS Animation is a dynamic standard in which images or objects are manipulated to appear as moving images Three.js allows the creation of Graphical Processing Unit (GPU)-accelerated 3D animations using the JavaScript language as part of a website without relying on proprietary browser plugins
  • 14. BUSINESS LOGIC: GAME’S WORLD  The entire world game is a whole and enormous sphere, which rotating gives to the observer the sensation of moving on it  The sphere is generated with THREE.SphereGeometry, it is not a real sphere but a geometric solid composed using many triangles and characterized by some parameters: ray, longitudinal segments, latitudinal segments, phi and theta  It has been decided to don’t use many triangles to make the world not perfectly rounded and spherical, giving the sensation of a non-perfect and more natural surface. Also, because we are zooming on it, it should be very difficult to make such a big world perfectly spherical, while BB-8 was easier because of its smallness and distance from camera
  • 15. BUSINESS LOGIC: WORLD’S BACKGROUND  Instead of a monochromatic background that give a sensation of a flat and less natural world, it has been applied as background an image with the same style of the world sphere, it gives the sensation to reach it and it lets the users to see a beautiful panorama (remembering also that Jakku has two Suns!)
  • 16. BUSINESS LOGIC: WORLD’S POPULATION  World is populated with rocks. Rocks, as anticipated before, are three.js models which represent a tetrahedron. They have a collision logic that lets them to be attached to the world’s surface and let the game ends when the player, moving BB-8, collides on a rock  Another logic that characterize rocks is the spawn: rocks casually spawn with a random position on the world’s surface and with a random dimension, making the game more difficult and less predictable
  • 17. BUSINESS LOGIC: GAME’S PLAYER  The game has a player, which is the user interacting with BB-8 droid. BB-8 droid is a hierarchical model (as described before) and it stands on the same y axis even if it seems to move forward. BB-8 can move only on the z axis jumping and falling down simulating world’s gravity and it can move on the x axis, trying to avoid rocks and the consequential game over.
  • 18. USER INTERACTIONS User interaction researches the design and use of computer technology, focused on the interfaces between people (users) and computers In our video game, the user can take the control of BB-8 droid and move it using keyboard
  • 19. USERS MANUAL: HOW TO USE IT  This software is a challenging video game, addressed to those who want to test their personal skills. User can use this easy-to-read and portable manual wherever he wants, at home, in the office, at a remote job site or even in the car (if you’re not driving!). User can start reading this manual from “Getting started” section skipping this introduction. This manual also doesn’t need expertise or knowledge to be used, thanks to its simple language and its full- provided steps and instructions, also, it doesn’t include high technical language to help who doesn’t have technical background
  • 20. USER MANUAL: GETTING STARTED  To start the video game, users have to open a terminal in the folder containing all the project, type:  $ python -m http.server  To start a simple http server using Python 3.x, or:  $ python -m SimpleHTTPServer  For Python 2.x. Now just go to “localhost:8000” using any browser and the game will start.  Note: you should clear your browser’s caches sometimes, or your browser could not be supported. If you found any trouble, try to clear your caches and to use Google Chrome or Safari
  • 21. USER MANUAL: PLAY THE GAME  At this point the software should be running and you should be ready to play it.  In the browser, just click on START button and here you go! The video game will start.  You will impersonate BB-8 droid trying to escape from imperial army, running for your life you must avoid rocks jumping (by pressing ↑ arrow) and moving left (← arrow) or moving right (→ arrow).