SlideShare a Scribd company logo
@hunterloftis
We Will All Be Game Developers
@hunterloftis
@hunterloftis
@hunterloftisdemo
@hunterloftis
“Would you be interested in a project for one of our
artists based on that FPS? We'd like to provide the
full album stream on Rustie's website while fans have
to navigate through the world.”
– Warp Records
@hunterloftis
Time
(3 weeks)
@hunterloftis
Budget
($)
@hunterloftis
Technical Constraints
(iPhone, iPad, Android & Desktop!)
@hunterloftis
“Optimism is an occupational hazard of
programming. ”
– Kent Beck
@hunterloftis
@hunterloftis
4 Million Rays / Second
demo (FF)
@hunterloftis
@hunterloftis
1 Month later…
demo (babylon)
@hunterloftis
I’m not a game developer.
Why should I care?
@hunterloftisLeveling Up
@hunterloftis
App interfaces are becoming
more like games.
@hunterloftis
App interfaces are becoming
more like games.
@hunterloftis
App interfaces are becoming
more like games.
@hunterloftis
App interfaces are becoming
more like games.
@hunterloftis
3 Ideas from gamedev
for better user interfaces
30 mins left?
@hunterloftis
1: Minimize and isolate state
@hunterloftis
@hunterloftis
@hunterloftis
Apparent State
(for just a running dude!)
demo (dude in forest)
• position
• velocity
• acceleration
• direction
• frame
• distance
• time
• all must sync!
@hunterloftis
Derived State
demo (walking speed)
frame
direction
posedistance
velocityposition
time acceleration
@hunterloftis
Pure Functions
demo (walking speed)
frame
direction
posedistance
velocityposition
time acceleration
@hunterloftis
Minimal State
@hunterloftis
2: Use deterministic, immediate-
mode rendering
@hunterloftis
Retained Mode
(the DOM)
graphics source: MSDN
@hunterloftis
Retained Mode
(the DOM)
graphics source: MSDN
Hacks go here
To indirectly
optimize here.
@hunterloftis
Immediate Mode
(Canvas, WebGL, ReactJS)
graphics source: MSDN
@hunterloftis
Deterministic Rendering
@hunterloftis
@hunterloftis
Immediate + Deterministic = simple
@hunterloftis
3: Separate rendering and simulation
@hunterloftis
A Browser Timeline
@hunterloftis
setInterval(frame, 0);
@hunterloftis
setInterval(frame, 17);
@hunterloftis
requestAnimationFrame(frame);
demo (variable bodies)
@hunterloftis
Decoupled rendering & simulation
@hunterloftis
Time accumulator
Accumulator
@hunterloftis
Time accumulator
Accumulator
- 16ms (1 “tick”)
- 32ms
@hunterloftis
Time accumulator
Frame (16ms) Accumulator
@hunterloftis
Time accumulator
Frame (16ms) Accumulator
accumulator + 16 = 16
@hunterloftis
Time accumulator
Accumulator Simulation step
1
accumulator - 16 = 0
steps = floor(16 / 16) = 1
@hunterloftis
Time accumulator
Frame (24ms) Accumulator
@hunterloftis
Time accumulator
Frame (24ms) Accumulator
accumulator + 24 = 24
@hunterloftis
Time accumulator
Accumulator Simulation step
1
accumulator - 16 = 8
steps = floor(24 / 16) = 1
@hunterloftis
Time accumulator
Frame (24ms) Accumulator
@hunterloftis
Time accumulator
Frame (24ms) Accumulator
accumulator + 24 = 32
@hunterloftis
Time accumulator
Accumulator Simulation steps
2
accumulator - 32 = 0
steps = floor(32 / 16) = 2
@hunterloftis
Time accumulator
demo (10 fps vs 60 fps)
@hunterloftis
My favorite bug
demo (box bug)
@hunterloftis
Thank you!
2D: Pixi.js, Matter.js
3D graphics: ThreeJS, BabylonJS
Game servers: iojs + Heroku (+ ws for multiplayer)
DOM & Native UIs: React.js
• http://gamasutra.com/view/news/169296/
Indepth_Functional_programming_in_C.php
• http://iamralpht.github.io/physics/

More Related Content

Similar to ConvergeSE: We Will All Be Game Developers

[Osxdev]3.swift playgrounds
[Osxdev]3.swift playgrounds[Osxdev]3.swift playgrounds
[Osxdev]3.swift playgrounds
NAVER D2
 
I don't know what I'm Doing: A newbie guide for Golang for DevOps
I don't know what I'm Doing: A newbie guide for Golang for DevOpsI don't know what I'm Doing: A newbie guide for Golang for DevOps
I don't know what I'm Doing: A newbie guide for Golang for DevOps
Peter Souter
 
Game Development Session - 3 | Introduction to Unity
Game Development Session - 3 | Introduction to  UnityGame Development Session - 3 | Introduction to  Unity
Game Development Session - 3 | Introduction to Unity
Koderunners
 
Ottawa unity user_group_feb13_2015
Ottawa unity user_group_feb13_2015Ottawa unity user_group_feb13_2015
Ottawa unity user_group_feb13_2015
Karman Interactive
 
XRobots
XRobotsXRobots
Golang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war storyGolang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war story
Aerospike
 
Controlling Project Size for Student/Hobby Videogame Development
Controlling Project Size for Student/Hobby Videogame DevelopmentControlling Project Size for Student/Hobby Videogame Development
Controlling Project Size for Student/Hobby Videogame Development
Chris DeLeon
 
Advanced #4 GPU & Animations
Advanced #4   GPU & AnimationsAdvanced #4   GPU & Animations
Advanced #4 GPU & Animations
Vitali Pekelis
 
Understanding Scratch Extensions with JavaScript (Part 2 of 2)
Understanding Scratch Extensions with JavaScript (Part 2 of 2)Understanding Scratch Extensions with JavaScript (Part 2 of 2)
Understanding Scratch Extensions with JavaScript (Part 2 of 2)
Darren Adkinson
 
Android game development
Android game developmentAndroid game development
Android game development
dmontagni
 
Create a Scalable and Destructible World in HITMAN 2*
Create a Scalable and Destructible World in HITMAN 2*Create a Scalable and Destructible World in HITMAN 2*
Create a Scalable and Destructible World in HITMAN 2*
Intel® Software
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hdslantsixgames
 
The tech. behind RoboBlastPlanet
The tech. behind RoboBlastPlanetThe tech. behind RoboBlastPlanet
The tech. behind RoboBlastPlanet
Javier Abud
 
Full stack development in Go
Full stack development in GoFull stack development in Go
Full stack development in Go
Yves Junqueira
 
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
Umbra Software
 
PHP Backends for Real-Time User Interaction using Apache Storm.
PHP Backends for Real-Time User Interaction using Apache Storm.PHP Backends for Real-Time User Interaction using Apache Storm.
PHP Backends for Real-Time User Interaction using Apache Storm.
DECK36
 
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
David Salz
 
Applying AI in Games (GDC2019)
Applying AI in Games (GDC2019)Applying AI in Games (GDC2019)
Applying AI in Games (GDC2019)
Jun Okumura
 
Real-time Semantic Web with Twitter Annotations
Real-time Semantic Web with Twitter AnnotationsReal-time Semantic Web with Twitter Annotations
Real-time Semantic Web with Twitter Annotations
Joshua Shinavier
 
Presentation sanlab workshops
Presentation sanlab workshopsPresentation sanlab workshops
Presentation sanlab workshopsArtur Roszczyk
 

Similar to ConvergeSE: We Will All Be Game Developers (20)

[Osxdev]3.swift playgrounds
[Osxdev]3.swift playgrounds[Osxdev]3.swift playgrounds
[Osxdev]3.swift playgrounds
 
I don't know what I'm Doing: A newbie guide for Golang for DevOps
I don't know what I'm Doing: A newbie guide for Golang for DevOpsI don't know what I'm Doing: A newbie guide for Golang for DevOps
I don't know what I'm Doing: A newbie guide for Golang for DevOps
 
Game Development Session - 3 | Introduction to Unity
Game Development Session - 3 | Introduction to  UnityGame Development Session - 3 | Introduction to  Unity
Game Development Session - 3 | Introduction to Unity
 
Ottawa unity user_group_feb13_2015
Ottawa unity user_group_feb13_2015Ottawa unity user_group_feb13_2015
Ottawa unity user_group_feb13_2015
 
XRobots
XRobotsXRobots
XRobots
 
Golang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war storyGolang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war story
 
Controlling Project Size for Student/Hobby Videogame Development
Controlling Project Size for Student/Hobby Videogame DevelopmentControlling Project Size for Student/Hobby Videogame Development
Controlling Project Size for Student/Hobby Videogame Development
 
Advanced #4 GPU & Animations
Advanced #4   GPU & AnimationsAdvanced #4   GPU & Animations
Advanced #4 GPU & Animations
 
Understanding Scratch Extensions with JavaScript (Part 2 of 2)
Understanding Scratch Extensions with JavaScript (Part 2 of 2)Understanding Scratch Extensions with JavaScript (Part 2 of 2)
Understanding Scratch Extensions with JavaScript (Part 2 of 2)
 
Android game development
Android game developmentAndroid game development
Android game development
 
Create a Scalable and Destructible World in HITMAN 2*
Create a Scalable and Destructible World in HITMAN 2*Create a Scalable and Destructible World in HITMAN 2*
Create a Scalable and Destructible World in HITMAN 2*
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
 
The tech. behind RoboBlastPlanet
The tech. behind RoboBlastPlanetThe tech. behind RoboBlastPlanet
The tech. behind RoboBlastPlanet
 
Full stack development in Go
Full stack development in GoFull stack development in Go
Full stack development in Go
 
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
Umbra Ignite 2015: Alex Evans – Learning from failure – prototypes, R&D, iter...
 
PHP Backends for Real-Time User Interaction using Apache Storm.
PHP Backends for Real-Time User Interaction using Apache Storm.PHP Backends for Real-Time User Interaction using Apache Storm.
PHP Backends for Real-Time User Interaction using Apache Storm.
 
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
 
Applying AI in Games (GDC2019)
Applying AI in Games (GDC2019)Applying AI in Games (GDC2019)
Applying AI in Games (GDC2019)
 
Real-time Semantic Web with Twitter Annotations
Real-time Semantic Web with Twitter AnnotationsReal-time Semantic Web with Twitter Annotations
Real-time Semantic Web with Twitter Annotations
 
Presentation sanlab workshops
Presentation sanlab workshopsPresentation sanlab workshops
Presentation sanlab workshops
 

More from Hunter Loftis

Making Sense of Multiplayer
Making Sense of MultiplayerMaking Sense of Multiplayer
Making Sense of Multiplayer
Hunter Loftis
 
Painting with Light: 3D Rendering in Golang
Painting with Light: 3D Rendering in GolangPainting with Light: 3D Rendering in Golang
Painting with Light: 3D Rendering in Golang
Hunter Loftis
 
Painting with Light (Scenic City Summit)
Painting with Light (Scenic City Summit)Painting with Light (Scenic City Summit)
Painting with Light (Scenic City Summit)
Hunter Loftis
 
Stop js-1999
Stop js-1999Stop js-1999
Stop js-1999
Hunter Loftis
 
Production-Ready Node.js
Production-Ready Node.jsProduction-Ready Node.js
Production-Ready Node.js
Hunter Loftis
 
Playing with Photons in JavaScript
Playing with Photons in JavaScriptPlaying with Photons in JavaScript
Playing with Photons in JavaScript
Hunter Loftis
 
Nobody Wants Junior Engineers
Nobody Wants Junior EngineersNobody Wants Junior Engineers
Nobody Wants Junior Engineers
Hunter Loftis
 
Stop JavaScripting like it's 1999
Stop JavaScripting like it's 1999Stop JavaScripting like it's 1999
Stop JavaScripting like it's 1999
Hunter Loftis
 
We Will All Be Game Developers
We Will All Be Game DevelopersWe Will All Be Game Developers
We Will All Be Game Developers
Hunter Loftis
 

More from Hunter Loftis (9)

Making Sense of Multiplayer
Making Sense of MultiplayerMaking Sense of Multiplayer
Making Sense of Multiplayer
 
Painting with Light: 3D Rendering in Golang
Painting with Light: 3D Rendering in GolangPainting with Light: 3D Rendering in Golang
Painting with Light: 3D Rendering in Golang
 
Painting with Light (Scenic City Summit)
Painting with Light (Scenic City Summit)Painting with Light (Scenic City Summit)
Painting with Light (Scenic City Summit)
 
Stop js-1999
Stop js-1999Stop js-1999
Stop js-1999
 
Production-Ready Node.js
Production-Ready Node.jsProduction-Ready Node.js
Production-Ready Node.js
 
Playing with Photons in JavaScript
Playing with Photons in JavaScriptPlaying with Photons in JavaScript
Playing with Photons in JavaScript
 
Nobody Wants Junior Engineers
Nobody Wants Junior EngineersNobody Wants Junior Engineers
Nobody Wants Junior Engineers
 
Stop JavaScripting like it's 1999
Stop JavaScripting like it's 1999Stop JavaScripting like it's 1999
Stop JavaScripting like it's 1999
 
We Will All Be Game Developers
We Will All Be Game DevelopersWe Will All Be Game Developers
We Will All Be Game Developers
 

Recently uploaded

A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 

Recently uploaded (20)

A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 

ConvergeSE: We Will All Be Game Developers