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

Transformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksTransformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksJinanKordab
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConNatan Silnitsky
 
Test Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdfTest Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdfkalichargn70th171
 
Encryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key ConceptsEncryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key Conceptsthomashtkim
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMarkus Moeller
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Henry Schreiner
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdftimtebeek1
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletAndrea Goulet
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024MulesoftMunichMeetup
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfICS
 
Rapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and InsightsRapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and Insightsrapidoform
 
Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Chirag Panchal
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanNeo4j
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Andreas Granig
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAShane Coughlan
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringPrakhyath Rai
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)Roberto Bettazzoni
 
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jGraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jNeo4j
 

Recently uploaded (20)

Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
 
Transformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksTransformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with Links
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
Test Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdfTest Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdf
 
Encryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key ConceptsEncryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key Concepts
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdf
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
Rapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and InsightsRapidoform for Modern Form Building and Insights
Rapidoform for Modern Form Building and Insights
 
Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements Engineering
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jGraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
 
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
Abortion Clinic Pretoria ](+27832195400*)[ Abortion Clinic Near Me ● Abortion...
 

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).