Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game...

16
Game Engines Martin Samuelčík VIS GRAVIS, s.r.o. [email protected] http://www.sccg.sk/~samuelcik

Transcript of Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game...

Page 1: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

Game Engines

Martin Samuelčiacutek

VIS GRAVIS sro

samuelciksccgsk

httpwwwsccgsk~samuelcik

2

Game Engine

bull Software framework (set of tools API)

bull Creation of video games interactive presentations simulations hellip (2D 3D)

bull Combining assets (models sprites textures sounds hellip) and programs scripts

bull Rapid-development tools (IDE editors) vs coding everything

bull Deployment on many platforms

ndash Win Linux Mac Android iOS Web Playstation XBOX hellip

Game Engines Martin Samuelčiacutek

3

Game Engine

Game Engines Martin Samuelčiacutek

Assets

Modeling scripting compiling

Running compiled assets + scripts + engine

4

Game Engine

bull Rendering engine

bull Scripting engine

bull User input engine

bull Audio engine

bull Networking engine

bull AI engine

bull Scene engine

Game Engines Martin Samuelčiacutek

5

Rendering Engine

bull Creating final picture on screen

bull Many methods rasterization ray-tracing

bull For interactive application rendering of one picture lt 33ms = 30 FPS

bull Usually based on low level APIs ndash GDI SDL OpenGL DirectX hellip

bull Accelerated using hardware

bull Graphics User Interface HUD

Game Engines Martin Samuelčiacutek

6

Scripting Engine

bull Adding logic to objects in scene

bull Controlling animations behaviors artificial intelligence state changes graphics effects GUI audio execution hellip

bull Languages C C++ C Java JavaScript Python Lua hellip

bull Central control of script executions ndash game consoles

Game Engines Martin Samuelčiacutek

7

User input Engine

bull Detecting input from devices

bull Detecting actions or gestures

bull Mouse keyboard multitouch display gamepads Kinect sensor Wii controllers

Game Engines Martin Samuelčiacutek

8

Scene Engine

bull Representing 2D 3D scene

bull Usually hierarchical structure scene graph

bull Unified rep of models lights cameras ndash game objects entities nodes actors hellip

bull Each entity has its own properties components

ndashImportant comp Transform

ndashScale translation rotation

Game Engines Martin Samuelčiacutek

9

Networking Engine

bull Downloading uploading data on web

bull Communicating with other instances

bull Running as client or server

bull Peer-to-peer communication

bull Using protocols like UDP TCP HTTP

Game Engines Martin Samuelčiacutek

10

List of Engines

bull Proprietary no source code big suites of developer tools many deployment targets

bull Unity (httpunity3dcom)

ndash Free for personal use

bull Unreal Engine (httpwwwunrealenginecom)

ndash Free for personal use

bull Cry Engine (httpcryenginecom)

ndash Small monthly fee

bull Source 2 (httpsdevelopervalvesoftwarecom)

ndash Coming in near feature Game Engines Martin Samuelčiacutek

11

List of Engines

bull Open-source projects usually without mature IDE mainly graphics engines less deployment

bull OGRE (httpwwwogre3dorg)

ndash Just graphics engine many add-ons

bull Irrlicht (httpirrlichtsourceforgenet)

ndash Easy to use engine with lots of features

bull OpenSceneGraph (wwwopenscenegraphorg)

ndash 3D graphics toolkit amp scene engine

bull Blender Game Engine (httpwwwblenderorg)

ndash Component of modeling package Game Engines Martin Samuelčiacutek

12

List of Engines

bull JavaScript engines using WebGL or HTML5 displaying scenes in web browsers

bull Threejs (httpthreejsorg)

ndash Simple but usable graphics engine

bull BabylonJS (httpwwwbabylonjscom)

ndash Full game engine

bull Turbulenz (httpbizturbulenzcom)

ndash Another full game engine

bull Construct 2 (httpswwwscirracom)

ndash Mainly for 2D graphics Game Engines Martin Samuelčiacutek

13

Resources

bull httpsunity3dcomlearntutorials

bull httpswikiunrealenginecomMain_Page

bull httpsdocsunrealenginecomlatestINTGettingStartedFromUnity

bull httpsenwikipediaorgwikiList_of_game_engines

bull httpwwwworldofleveldesigncomcategorieslevel_design_tutorialsrecommended-game-enginesphp

bull httpshtml5gameenginecom

bull httpwwwhtml5gamedevscom

bull httpopengameartorg

bull httparchive3dnet

bull httpwwwcgtexturescom

bull httpwwwfreesoundorg

Game Engines Martin Samuelčiacutek

14

Lectures

bull Simple introduction to one open source game (graphics) engine ndash OGRE

bull Introduction to one proprietary full IDE game engine ndash Unity

bull Basics of window management scene management rendering materials and shaders GUI (HUD) scripting user input interaction animations network communication physics deployment

Game Engines Martin Samuelčiacutek

15

Lecture evaluation

bull Implementing 3D interactive presentation project in one game engine

bull Based on written specification

bull Unity Unreal Engine Ogre Blender BabylonJS Turbulenz

bull For more info see httpwwwsccgsk~samuelcikgengineshtml

Game Engines Martin Samuelčiacutek

16

Questions

Real-time Graphics Martin Samuelčiacutek

Page 2: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

2

Game Engine

bull Software framework (set of tools API)

bull Creation of video games interactive presentations simulations hellip (2D 3D)

bull Combining assets (models sprites textures sounds hellip) and programs scripts

bull Rapid-development tools (IDE editors) vs coding everything

bull Deployment on many platforms

ndash Win Linux Mac Android iOS Web Playstation XBOX hellip

Game Engines Martin Samuelčiacutek

3

Game Engine

Game Engines Martin Samuelčiacutek

Assets

Modeling scripting compiling

Running compiled assets + scripts + engine

4

Game Engine

bull Rendering engine

bull Scripting engine

bull User input engine

bull Audio engine

bull Networking engine

bull AI engine

bull Scene engine

Game Engines Martin Samuelčiacutek

5

Rendering Engine

bull Creating final picture on screen

bull Many methods rasterization ray-tracing

bull For interactive application rendering of one picture lt 33ms = 30 FPS

bull Usually based on low level APIs ndash GDI SDL OpenGL DirectX hellip

bull Accelerated using hardware

bull Graphics User Interface HUD

Game Engines Martin Samuelčiacutek

6

Scripting Engine

bull Adding logic to objects in scene

bull Controlling animations behaviors artificial intelligence state changes graphics effects GUI audio execution hellip

bull Languages C C++ C Java JavaScript Python Lua hellip

bull Central control of script executions ndash game consoles

Game Engines Martin Samuelčiacutek

7

User input Engine

bull Detecting input from devices

bull Detecting actions or gestures

bull Mouse keyboard multitouch display gamepads Kinect sensor Wii controllers

Game Engines Martin Samuelčiacutek

8

Scene Engine

bull Representing 2D 3D scene

bull Usually hierarchical structure scene graph

bull Unified rep of models lights cameras ndash game objects entities nodes actors hellip

bull Each entity has its own properties components

ndashImportant comp Transform

ndashScale translation rotation

Game Engines Martin Samuelčiacutek

9

Networking Engine

bull Downloading uploading data on web

bull Communicating with other instances

bull Running as client or server

bull Peer-to-peer communication

bull Using protocols like UDP TCP HTTP

Game Engines Martin Samuelčiacutek

10

List of Engines

bull Proprietary no source code big suites of developer tools many deployment targets

bull Unity (httpunity3dcom)

ndash Free for personal use

bull Unreal Engine (httpwwwunrealenginecom)

ndash Free for personal use

bull Cry Engine (httpcryenginecom)

ndash Small monthly fee

bull Source 2 (httpsdevelopervalvesoftwarecom)

ndash Coming in near feature Game Engines Martin Samuelčiacutek

11

List of Engines

bull Open-source projects usually without mature IDE mainly graphics engines less deployment

bull OGRE (httpwwwogre3dorg)

ndash Just graphics engine many add-ons

bull Irrlicht (httpirrlichtsourceforgenet)

ndash Easy to use engine with lots of features

bull OpenSceneGraph (wwwopenscenegraphorg)

ndash 3D graphics toolkit amp scene engine

bull Blender Game Engine (httpwwwblenderorg)

ndash Component of modeling package Game Engines Martin Samuelčiacutek

12

List of Engines

bull JavaScript engines using WebGL or HTML5 displaying scenes in web browsers

bull Threejs (httpthreejsorg)

ndash Simple but usable graphics engine

bull BabylonJS (httpwwwbabylonjscom)

ndash Full game engine

bull Turbulenz (httpbizturbulenzcom)

ndash Another full game engine

bull Construct 2 (httpswwwscirracom)

ndash Mainly for 2D graphics Game Engines Martin Samuelčiacutek

13

Resources

bull httpsunity3dcomlearntutorials

bull httpswikiunrealenginecomMain_Page

bull httpsdocsunrealenginecomlatestINTGettingStartedFromUnity

bull httpsenwikipediaorgwikiList_of_game_engines

bull httpwwwworldofleveldesigncomcategorieslevel_design_tutorialsrecommended-game-enginesphp

bull httpshtml5gameenginecom

bull httpwwwhtml5gamedevscom

bull httpopengameartorg

bull httparchive3dnet

bull httpwwwcgtexturescom

bull httpwwwfreesoundorg

Game Engines Martin Samuelčiacutek

14

Lectures

bull Simple introduction to one open source game (graphics) engine ndash OGRE

bull Introduction to one proprietary full IDE game engine ndash Unity

bull Basics of window management scene management rendering materials and shaders GUI (HUD) scripting user input interaction animations network communication physics deployment

Game Engines Martin Samuelčiacutek

15

Lecture evaluation

bull Implementing 3D interactive presentation project in one game engine

bull Based on written specification

bull Unity Unreal Engine Ogre Blender BabylonJS Turbulenz

bull For more info see httpwwwsccgsk~samuelcikgengineshtml

Game Engines Martin Samuelčiacutek

16

Questions

Real-time Graphics Martin Samuelčiacutek

Page 3: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

3

Game Engine

Game Engines Martin Samuelčiacutek

Assets

Modeling scripting compiling

Running compiled assets + scripts + engine

4

Game Engine

bull Rendering engine

bull Scripting engine

bull User input engine

bull Audio engine

bull Networking engine

bull AI engine

bull Scene engine

Game Engines Martin Samuelčiacutek

5

Rendering Engine

bull Creating final picture on screen

bull Many methods rasterization ray-tracing

bull For interactive application rendering of one picture lt 33ms = 30 FPS

bull Usually based on low level APIs ndash GDI SDL OpenGL DirectX hellip

bull Accelerated using hardware

bull Graphics User Interface HUD

Game Engines Martin Samuelčiacutek

6

Scripting Engine

bull Adding logic to objects in scene

bull Controlling animations behaviors artificial intelligence state changes graphics effects GUI audio execution hellip

bull Languages C C++ C Java JavaScript Python Lua hellip

bull Central control of script executions ndash game consoles

Game Engines Martin Samuelčiacutek

7

User input Engine

bull Detecting input from devices

bull Detecting actions or gestures

bull Mouse keyboard multitouch display gamepads Kinect sensor Wii controllers

Game Engines Martin Samuelčiacutek

8

Scene Engine

bull Representing 2D 3D scene

bull Usually hierarchical structure scene graph

bull Unified rep of models lights cameras ndash game objects entities nodes actors hellip

bull Each entity has its own properties components

ndashImportant comp Transform

ndashScale translation rotation

Game Engines Martin Samuelčiacutek

9

Networking Engine

bull Downloading uploading data on web

bull Communicating with other instances

bull Running as client or server

bull Peer-to-peer communication

bull Using protocols like UDP TCP HTTP

Game Engines Martin Samuelčiacutek

10

List of Engines

bull Proprietary no source code big suites of developer tools many deployment targets

bull Unity (httpunity3dcom)

ndash Free for personal use

bull Unreal Engine (httpwwwunrealenginecom)

ndash Free for personal use

bull Cry Engine (httpcryenginecom)

ndash Small monthly fee

bull Source 2 (httpsdevelopervalvesoftwarecom)

ndash Coming in near feature Game Engines Martin Samuelčiacutek

11

List of Engines

bull Open-source projects usually without mature IDE mainly graphics engines less deployment

bull OGRE (httpwwwogre3dorg)

ndash Just graphics engine many add-ons

bull Irrlicht (httpirrlichtsourceforgenet)

ndash Easy to use engine with lots of features

bull OpenSceneGraph (wwwopenscenegraphorg)

ndash 3D graphics toolkit amp scene engine

bull Blender Game Engine (httpwwwblenderorg)

ndash Component of modeling package Game Engines Martin Samuelčiacutek

12

List of Engines

bull JavaScript engines using WebGL or HTML5 displaying scenes in web browsers

bull Threejs (httpthreejsorg)

ndash Simple but usable graphics engine

bull BabylonJS (httpwwwbabylonjscom)

ndash Full game engine

bull Turbulenz (httpbizturbulenzcom)

ndash Another full game engine

bull Construct 2 (httpswwwscirracom)

ndash Mainly for 2D graphics Game Engines Martin Samuelčiacutek

13

Resources

bull httpsunity3dcomlearntutorials

bull httpswikiunrealenginecomMain_Page

bull httpsdocsunrealenginecomlatestINTGettingStartedFromUnity

bull httpsenwikipediaorgwikiList_of_game_engines

bull httpwwwworldofleveldesigncomcategorieslevel_design_tutorialsrecommended-game-enginesphp

bull httpshtml5gameenginecom

bull httpwwwhtml5gamedevscom

bull httpopengameartorg

bull httparchive3dnet

bull httpwwwcgtexturescom

bull httpwwwfreesoundorg

Game Engines Martin Samuelčiacutek

14

Lectures

bull Simple introduction to one open source game (graphics) engine ndash OGRE

bull Introduction to one proprietary full IDE game engine ndash Unity

bull Basics of window management scene management rendering materials and shaders GUI (HUD) scripting user input interaction animations network communication physics deployment

Game Engines Martin Samuelčiacutek

15

Lecture evaluation

bull Implementing 3D interactive presentation project in one game engine

bull Based on written specification

bull Unity Unreal Engine Ogre Blender BabylonJS Turbulenz

bull For more info see httpwwwsccgsk~samuelcikgengineshtml

Game Engines Martin Samuelčiacutek

16

Questions

Real-time Graphics Martin Samuelčiacutek

Page 4: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

4

Game Engine

bull Rendering engine

bull Scripting engine

bull User input engine

bull Audio engine

bull Networking engine

bull AI engine

bull Scene engine

Game Engines Martin Samuelčiacutek

5

Rendering Engine

bull Creating final picture on screen

bull Many methods rasterization ray-tracing

bull For interactive application rendering of one picture lt 33ms = 30 FPS

bull Usually based on low level APIs ndash GDI SDL OpenGL DirectX hellip

bull Accelerated using hardware

bull Graphics User Interface HUD

Game Engines Martin Samuelčiacutek

6

Scripting Engine

bull Adding logic to objects in scene

bull Controlling animations behaviors artificial intelligence state changes graphics effects GUI audio execution hellip

bull Languages C C++ C Java JavaScript Python Lua hellip

bull Central control of script executions ndash game consoles

Game Engines Martin Samuelčiacutek

7

User input Engine

bull Detecting input from devices

bull Detecting actions or gestures

bull Mouse keyboard multitouch display gamepads Kinect sensor Wii controllers

Game Engines Martin Samuelčiacutek

8

Scene Engine

bull Representing 2D 3D scene

bull Usually hierarchical structure scene graph

bull Unified rep of models lights cameras ndash game objects entities nodes actors hellip

bull Each entity has its own properties components

ndashImportant comp Transform

ndashScale translation rotation

Game Engines Martin Samuelčiacutek

9

Networking Engine

bull Downloading uploading data on web

bull Communicating with other instances

bull Running as client or server

bull Peer-to-peer communication

bull Using protocols like UDP TCP HTTP

Game Engines Martin Samuelčiacutek

10

List of Engines

bull Proprietary no source code big suites of developer tools many deployment targets

bull Unity (httpunity3dcom)

ndash Free for personal use

bull Unreal Engine (httpwwwunrealenginecom)

ndash Free for personal use

bull Cry Engine (httpcryenginecom)

ndash Small monthly fee

bull Source 2 (httpsdevelopervalvesoftwarecom)

ndash Coming in near feature Game Engines Martin Samuelčiacutek

11

List of Engines

bull Open-source projects usually without mature IDE mainly graphics engines less deployment

bull OGRE (httpwwwogre3dorg)

ndash Just graphics engine many add-ons

bull Irrlicht (httpirrlichtsourceforgenet)

ndash Easy to use engine with lots of features

bull OpenSceneGraph (wwwopenscenegraphorg)

ndash 3D graphics toolkit amp scene engine

bull Blender Game Engine (httpwwwblenderorg)

ndash Component of modeling package Game Engines Martin Samuelčiacutek

12

List of Engines

bull JavaScript engines using WebGL or HTML5 displaying scenes in web browsers

bull Threejs (httpthreejsorg)

ndash Simple but usable graphics engine

bull BabylonJS (httpwwwbabylonjscom)

ndash Full game engine

bull Turbulenz (httpbizturbulenzcom)

ndash Another full game engine

bull Construct 2 (httpswwwscirracom)

ndash Mainly for 2D graphics Game Engines Martin Samuelčiacutek

13

Resources

bull httpsunity3dcomlearntutorials

bull httpswikiunrealenginecomMain_Page

bull httpsdocsunrealenginecomlatestINTGettingStartedFromUnity

bull httpsenwikipediaorgwikiList_of_game_engines

bull httpwwwworldofleveldesigncomcategorieslevel_design_tutorialsrecommended-game-enginesphp

bull httpshtml5gameenginecom

bull httpwwwhtml5gamedevscom

bull httpopengameartorg

bull httparchive3dnet

bull httpwwwcgtexturescom

bull httpwwwfreesoundorg

Game Engines Martin Samuelčiacutek

14

Lectures

bull Simple introduction to one open source game (graphics) engine ndash OGRE

bull Introduction to one proprietary full IDE game engine ndash Unity

bull Basics of window management scene management rendering materials and shaders GUI (HUD) scripting user input interaction animations network communication physics deployment

Game Engines Martin Samuelčiacutek

15

Lecture evaluation

bull Implementing 3D interactive presentation project in one game engine

bull Based on written specification

bull Unity Unreal Engine Ogre Blender BabylonJS Turbulenz

bull For more info see httpwwwsccgsk~samuelcikgengineshtml

Game Engines Martin Samuelčiacutek

16

Questions

Real-time Graphics Martin Samuelčiacutek

Page 5: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

5

Rendering Engine

bull Creating final picture on screen

bull Many methods rasterization ray-tracing

bull For interactive application rendering of one picture lt 33ms = 30 FPS

bull Usually based on low level APIs ndash GDI SDL OpenGL DirectX hellip

bull Accelerated using hardware

bull Graphics User Interface HUD

Game Engines Martin Samuelčiacutek

6

Scripting Engine

bull Adding logic to objects in scene

bull Controlling animations behaviors artificial intelligence state changes graphics effects GUI audio execution hellip

bull Languages C C++ C Java JavaScript Python Lua hellip

bull Central control of script executions ndash game consoles

Game Engines Martin Samuelčiacutek

7

User input Engine

bull Detecting input from devices

bull Detecting actions or gestures

bull Mouse keyboard multitouch display gamepads Kinect sensor Wii controllers

Game Engines Martin Samuelčiacutek

8

Scene Engine

bull Representing 2D 3D scene

bull Usually hierarchical structure scene graph

bull Unified rep of models lights cameras ndash game objects entities nodes actors hellip

bull Each entity has its own properties components

ndashImportant comp Transform

ndashScale translation rotation

Game Engines Martin Samuelčiacutek

9

Networking Engine

bull Downloading uploading data on web

bull Communicating with other instances

bull Running as client or server

bull Peer-to-peer communication

bull Using protocols like UDP TCP HTTP

Game Engines Martin Samuelčiacutek

10

List of Engines

bull Proprietary no source code big suites of developer tools many deployment targets

bull Unity (httpunity3dcom)

ndash Free for personal use

bull Unreal Engine (httpwwwunrealenginecom)

ndash Free for personal use

bull Cry Engine (httpcryenginecom)

ndash Small monthly fee

bull Source 2 (httpsdevelopervalvesoftwarecom)

ndash Coming in near feature Game Engines Martin Samuelčiacutek

11

List of Engines

bull Open-source projects usually without mature IDE mainly graphics engines less deployment

bull OGRE (httpwwwogre3dorg)

ndash Just graphics engine many add-ons

bull Irrlicht (httpirrlichtsourceforgenet)

ndash Easy to use engine with lots of features

bull OpenSceneGraph (wwwopenscenegraphorg)

ndash 3D graphics toolkit amp scene engine

bull Blender Game Engine (httpwwwblenderorg)

ndash Component of modeling package Game Engines Martin Samuelčiacutek

12

List of Engines

bull JavaScript engines using WebGL or HTML5 displaying scenes in web browsers

bull Threejs (httpthreejsorg)

ndash Simple but usable graphics engine

bull BabylonJS (httpwwwbabylonjscom)

ndash Full game engine

bull Turbulenz (httpbizturbulenzcom)

ndash Another full game engine

bull Construct 2 (httpswwwscirracom)

ndash Mainly for 2D graphics Game Engines Martin Samuelčiacutek

13

Resources

bull httpsunity3dcomlearntutorials

bull httpswikiunrealenginecomMain_Page

bull httpsdocsunrealenginecomlatestINTGettingStartedFromUnity

bull httpsenwikipediaorgwikiList_of_game_engines

bull httpwwwworldofleveldesigncomcategorieslevel_design_tutorialsrecommended-game-enginesphp

bull httpshtml5gameenginecom

bull httpwwwhtml5gamedevscom

bull httpopengameartorg

bull httparchive3dnet

bull httpwwwcgtexturescom

bull httpwwwfreesoundorg

Game Engines Martin Samuelčiacutek

14

Lectures

bull Simple introduction to one open source game (graphics) engine ndash OGRE

bull Introduction to one proprietary full IDE game engine ndash Unity

bull Basics of window management scene management rendering materials and shaders GUI (HUD) scripting user input interaction animations network communication physics deployment

Game Engines Martin Samuelčiacutek

15

Lecture evaluation

bull Implementing 3D interactive presentation project in one game engine

bull Based on written specification

bull Unity Unreal Engine Ogre Blender BabylonJS Turbulenz

bull For more info see httpwwwsccgsk~samuelcikgengineshtml

Game Engines Martin Samuelčiacutek

16

Questions

Real-time Graphics Martin Samuelčiacutek

Page 6: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

6

Scripting Engine

bull Adding logic to objects in scene

bull Controlling animations behaviors artificial intelligence state changes graphics effects GUI audio execution hellip

bull Languages C C++ C Java JavaScript Python Lua hellip

bull Central control of script executions ndash game consoles

Game Engines Martin Samuelčiacutek

7

User input Engine

bull Detecting input from devices

bull Detecting actions or gestures

bull Mouse keyboard multitouch display gamepads Kinect sensor Wii controllers

Game Engines Martin Samuelčiacutek

8

Scene Engine

bull Representing 2D 3D scene

bull Usually hierarchical structure scene graph

bull Unified rep of models lights cameras ndash game objects entities nodes actors hellip

bull Each entity has its own properties components

ndashImportant comp Transform

ndashScale translation rotation

Game Engines Martin Samuelčiacutek

9

Networking Engine

bull Downloading uploading data on web

bull Communicating with other instances

bull Running as client or server

bull Peer-to-peer communication

bull Using protocols like UDP TCP HTTP

Game Engines Martin Samuelčiacutek

10

List of Engines

bull Proprietary no source code big suites of developer tools many deployment targets

bull Unity (httpunity3dcom)

ndash Free for personal use

bull Unreal Engine (httpwwwunrealenginecom)

ndash Free for personal use

bull Cry Engine (httpcryenginecom)

ndash Small monthly fee

bull Source 2 (httpsdevelopervalvesoftwarecom)

ndash Coming in near feature Game Engines Martin Samuelčiacutek

11

List of Engines

bull Open-source projects usually without mature IDE mainly graphics engines less deployment

bull OGRE (httpwwwogre3dorg)

ndash Just graphics engine many add-ons

bull Irrlicht (httpirrlichtsourceforgenet)

ndash Easy to use engine with lots of features

bull OpenSceneGraph (wwwopenscenegraphorg)

ndash 3D graphics toolkit amp scene engine

bull Blender Game Engine (httpwwwblenderorg)

ndash Component of modeling package Game Engines Martin Samuelčiacutek

12

List of Engines

bull JavaScript engines using WebGL or HTML5 displaying scenes in web browsers

bull Threejs (httpthreejsorg)

ndash Simple but usable graphics engine

bull BabylonJS (httpwwwbabylonjscom)

ndash Full game engine

bull Turbulenz (httpbizturbulenzcom)

ndash Another full game engine

bull Construct 2 (httpswwwscirracom)

ndash Mainly for 2D graphics Game Engines Martin Samuelčiacutek

13

Resources

bull httpsunity3dcomlearntutorials

bull httpswikiunrealenginecomMain_Page

bull httpsdocsunrealenginecomlatestINTGettingStartedFromUnity

bull httpsenwikipediaorgwikiList_of_game_engines

bull httpwwwworldofleveldesigncomcategorieslevel_design_tutorialsrecommended-game-enginesphp

bull httpshtml5gameenginecom

bull httpwwwhtml5gamedevscom

bull httpopengameartorg

bull httparchive3dnet

bull httpwwwcgtexturescom

bull httpwwwfreesoundorg

Game Engines Martin Samuelčiacutek

14

Lectures

bull Simple introduction to one open source game (graphics) engine ndash OGRE

bull Introduction to one proprietary full IDE game engine ndash Unity

bull Basics of window management scene management rendering materials and shaders GUI (HUD) scripting user input interaction animations network communication physics deployment

Game Engines Martin Samuelčiacutek

15

Lecture evaluation

bull Implementing 3D interactive presentation project in one game engine

bull Based on written specification

bull Unity Unreal Engine Ogre Blender BabylonJS Turbulenz

bull For more info see httpwwwsccgsk~samuelcikgengineshtml

Game Engines Martin Samuelčiacutek

16

Questions

Real-time Graphics Martin Samuelčiacutek

Page 7: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

7

User input Engine

bull Detecting input from devices

bull Detecting actions or gestures

bull Mouse keyboard multitouch display gamepads Kinect sensor Wii controllers

Game Engines Martin Samuelčiacutek

8

Scene Engine

bull Representing 2D 3D scene

bull Usually hierarchical structure scene graph

bull Unified rep of models lights cameras ndash game objects entities nodes actors hellip

bull Each entity has its own properties components

ndashImportant comp Transform

ndashScale translation rotation

Game Engines Martin Samuelčiacutek

9

Networking Engine

bull Downloading uploading data on web

bull Communicating with other instances

bull Running as client or server

bull Peer-to-peer communication

bull Using protocols like UDP TCP HTTP

Game Engines Martin Samuelčiacutek

10

List of Engines

bull Proprietary no source code big suites of developer tools many deployment targets

bull Unity (httpunity3dcom)

ndash Free for personal use

bull Unreal Engine (httpwwwunrealenginecom)

ndash Free for personal use

bull Cry Engine (httpcryenginecom)

ndash Small monthly fee

bull Source 2 (httpsdevelopervalvesoftwarecom)

ndash Coming in near feature Game Engines Martin Samuelčiacutek

11

List of Engines

bull Open-source projects usually without mature IDE mainly graphics engines less deployment

bull OGRE (httpwwwogre3dorg)

ndash Just graphics engine many add-ons

bull Irrlicht (httpirrlichtsourceforgenet)

ndash Easy to use engine with lots of features

bull OpenSceneGraph (wwwopenscenegraphorg)

ndash 3D graphics toolkit amp scene engine

bull Blender Game Engine (httpwwwblenderorg)

ndash Component of modeling package Game Engines Martin Samuelčiacutek

12

List of Engines

bull JavaScript engines using WebGL or HTML5 displaying scenes in web browsers

bull Threejs (httpthreejsorg)

ndash Simple but usable graphics engine

bull BabylonJS (httpwwwbabylonjscom)

ndash Full game engine

bull Turbulenz (httpbizturbulenzcom)

ndash Another full game engine

bull Construct 2 (httpswwwscirracom)

ndash Mainly for 2D graphics Game Engines Martin Samuelčiacutek

13

Resources

bull httpsunity3dcomlearntutorials

bull httpswikiunrealenginecomMain_Page

bull httpsdocsunrealenginecomlatestINTGettingStartedFromUnity

bull httpsenwikipediaorgwikiList_of_game_engines

bull httpwwwworldofleveldesigncomcategorieslevel_design_tutorialsrecommended-game-enginesphp

bull httpshtml5gameenginecom

bull httpwwwhtml5gamedevscom

bull httpopengameartorg

bull httparchive3dnet

bull httpwwwcgtexturescom

bull httpwwwfreesoundorg

Game Engines Martin Samuelčiacutek

14

Lectures

bull Simple introduction to one open source game (graphics) engine ndash OGRE

bull Introduction to one proprietary full IDE game engine ndash Unity

bull Basics of window management scene management rendering materials and shaders GUI (HUD) scripting user input interaction animations network communication physics deployment

Game Engines Martin Samuelčiacutek

15

Lecture evaluation

bull Implementing 3D interactive presentation project in one game engine

bull Based on written specification

bull Unity Unreal Engine Ogre Blender BabylonJS Turbulenz

bull For more info see httpwwwsccgsk~samuelcikgengineshtml

Game Engines Martin Samuelčiacutek

16

Questions

Real-time Graphics Martin Samuelčiacutek

Page 8: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

8

Scene Engine

bull Representing 2D 3D scene

bull Usually hierarchical structure scene graph

bull Unified rep of models lights cameras ndash game objects entities nodes actors hellip

bull Each entity has its own properties components

ndashImportant comp Transform

ndashScale translation rotation

Game Engines Martin Samuelčiacutek

9

Networking Engine

bull Downloading uploading data on web

bull Communicating with other instances

bull Running as client or server

bull Peer-to-peer communication

bull Using protocols like UDP TCP HTTP

Game Engines Martin Samuelčiacutek

10

List of Engines

bull Proprietary no source code big suites of developer tools many deployment targets

bull Unity (httpunity3dcom)

ndash Free for personal use

bull Unreal Engine (httpwwwunrealenginecom)

ndash Free for personal use

bull Cry Engine (httpcryenginecom)

ndash Small monthly fee

bull Source 2 (httpsdevelopervalvesoftwarecom)

ndash Coming in near feature Game Engines Martin Samuelčiacutek

11

List of Engines

bull Open-source projects usually without mature IDE mainly graphics engines less deployment

bull OGRE (httpwwwogre3dorg)

ndash Just graphics engine many add-ons

bull Irrlicht (httpirrlichtsourceforgenet)

ndash Easy to use engine with lots of features

bull OpenSceneGraph (wwwopenscenegraphorg)

ndash 3D graphics toolkit amp scene engine

bull Blender Game Engine (httpwwwblenderorg)

ndash Component of modeling package Game Engines Martin Samuelčiacutek

12

List of Engines

bull JavaScript engines using WebGL or HTML5 displaying scenes in web browsers

bull Threejs (httpthreejsorg)

ndash Simple but usable graphics engine

bull BabylonJS (httpwwwbabylonjscom)

ndash Full game engine

bull Turbulenz (httpbizturbulenzcom)

ndash Another full game engine

bull Construct 2 (httpswwwscirracom)

ndash Mainly for 2D graphics Game Engines Martin Samuelčiacutek

13

Resources

bull httpsunity3dcomlearntutorials

bull httpswikiunrealenginecomMain_Page

bull httpsdocsunrealenginecomlatestINTGettingStartedFromUnity

bull httpsenwikipediaorgwikiList_of_game_engines

bull httpwwwworldofleveldesigncomcategorieslevel_design_tutorialsrecommended-game-enginesphp

bull httpshtml5gameenginecom

bull httpwwwhtml5gamedevscom

bull httpopengameartorg

bull httparchive3dnet

bull httpwwwcgtexturescom

bull httpwwwfreesoundorg

Game Engines Martin Samuelčiacutek

14

Lectures

bull Simple introduction to one open source game (graphics) engine ndash OGRE

bull Introduction to one proprietary full IDE game engine ndash Unity

bull Basics of window management scene management rendering materials and shaders GUI (HUD) scripting user input interaction animations network communication physics deployment

Game Engines Martin Samuelčiacutek

15

Lecture evaluation

bull Implementing 3D interactive presentation project in one game engine

bull Based on written specification

bull Unity Unreal Engine Ogre Blender BabylonJS Turbulenz

bull For more info see httpwwwsccgsk~samuelcikgengineshtml

Game Engines Martin Samuelčiacutek

16

Questions

Real-time Graphics Martin Samuelčiacutek

Page 9: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

9

Networking Engine

bull Downloading uploading data on web

bull Communicating with other instances

bull Running as client or server

bull Peer-to-peer communication

bull Using protocols like UDP TCP HTTP

Game Engines Martin Samuelčiacutek

10

List of Engines

bull Proprietary no source code big suites of developer tools many deployment targets

bull Unity (httpunity3dcom)

ndash Free for personal use

bull Unreal Engine (httpwwwunrealenginecom)

ndash Free for personal use

bull Cry Engine (httpcryenginecom)

ndash Small monthly fee

bull Source 2 (httpsdevelopervalvesoftwarecom)

ndash Coming in near feature Game Engines Martin Samuelčiacutek

11

List of Engines

bull Open-source projects usually without mature IDE mainly graphics engines less deployment

bull OGRE (httpwwwogre3dorg)

ndash Just graphics engine many add-ons

bull Irrlicht (httpirrlichtsourceforgenet)

ndash Easy to use engine with lots of features

bull OpenSceneGraph (wwwopenscenegraphorg)

ndash 3D graphics toolkit amp scene engine

bull Blender Game Engine (httpwwwblenderorg)

ndash Component of modeling package Game Engines Martin Samuelčiacutek

12

List of Engines

bull JavaScript engines using WebGL or HTML5 displaying scenes in web browsers

bull Threejs (httpthreejsorg)

ndash Simple but usable graphics engine

bull BabylonJS (httpwwwbabylonjscom)

ndash Full game engine

bull Turbulenz (httpbizturbulenzcom)

ndash Another full game engine

bull Construct 2 (httpswwwscirracom)

ndash Mainly for 2D graphics Game Engines Martin Samuelčiacutek

13

Resources

bull httpsunity3dcomlearntutorials

bull httpswikiunrealenginecomMain_Page

bull httpsdocsunrealenginecomlatestINTGettingStartedFromUnity

bull httpsenwikipediaorgwikiList_of_game_engines

bull httpwwwworldofleveldesigncomcategorieslevel_design_tutorialsrecommended-game-enginesphp

bull httpshtml5gameenginecom

bull httpwwwhtml5gamedevscom

bull httpopengameartorg

bull httparchive3dnet

bull httpwwwcgtexturescom

bull httpwwwfreesoundorg

Game Engines Martin Samuelčiacutek

14

Lectures

bull Simple introduction to one open source game (graphics) engine ndash OGRE

bull Introduction to one proprietary full IDE game engine ndash Unity

bull Basics of window management scene management rendering materials and shaders GUI (HUD) scripting user input interaction animations network communication physics deployment

Game Engines Martin Samuelčiacutek

15

Lecture evaluation

bull Implementing 3D interactive presentation project in one game engine

bull Based on written specification

bull Unity Unreal Engine Ogre Blender BabylonJS Turbulenz

bull For more info see httpwwwsccgsk~samuelcikgengineshtml

Game Engines Martin Samuelčiacutek

16

Questions

Real-time Graphics Martin Samuelčiacutek

Page 10: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

10

List of Engines

bull Proprietary no source code big suites of developer tools many deployment targets

bull Unity (httpunity3dcom)

ndash Free for personal use

bull Unreal Engine (httpwwwunrealenginecom)

ndash Free for personal use

bull Cry Engine (httpcryenginecom)

ndash Small monthly fee

bull Source 2 (httpsdevelopervalvesoftwarecom)

ndash Coming in near feature Game Engines Martin Samuelčiacutek

11

List of Engines

bull Open-source projects usually without mature IDE mainly graphics engines less deployment

bull OGRE (httpwwwogre3dorg)

ndash Just graphics engine many add-ons

bull Irrlicht (httpirrlichtsourceforgenet)

ndash Easy to use engine with lots of features

bull OpenSceneGraph (wwwopenscenegraphorg)

ndash 3D graphics toolkit amp scene engine

bull Blender Game Engine (httpwwwblenderorg)

ndash Component of modeling package Game Engines Martin Samuelčiacutek

12

List of Engines

bull JavaScript engines using WebGL or HTML5 displaying scenes in web browsers

bull Threejs (httpthreejsorg)

ndash Simple but usable graphics engine

bull BabylonJS (httpwwwbabylonjscom)

ndash Full game engine

bull Turbulenz (httpbizturbulenzcom)

ndash Another full game engine

bull Construct 2 (httpswwwscirracom)

ndash Mainly for 2D graphics Game Engines Martin Samuelčiacutek

13

Resources

bull httpsunity3dcomlearntutorials

bull httpswikiunrealenginecomMain_Page

bull httpsdocsunrealenginecomlatestINTGettingStartedFromUnity

bull httpsenwikipediaorgwikiList_of_game_engines

bull httpwwwworldofleveldesigncomcategorieslevel_design_tutorialsrecommended-game-enginesphp

bull httpshtml5gameenginecom

bull httpwwwhtml5gamedevscom

bull httpopengameartorg

bull httparchive3dnet

bull httpwwwcgtexturescom

bull httpwwwfreesoundorg

Game Engines Martin Samuelčiacutek

14

Lectures

bull Simple introduction to one open source game (graphics) engine ndash OGRE

bull Introduction to one proprietary full IDE game engine ndash Unity

bull Basics of window management scene management rendering materials and shaders GUI (HUD) scripting user input interaction animations network communication physics deployment

Game Engines Martin Samuelčiacutek

15

Lecture evaluation

bull Implementing 3D interactive presentation project in one game engine

bull Based on written specification

bull Unity Unreal Engine Ogre Blender BabylonJS Turbulenz

bull For more info see httpwwwsccgsk~samuelcikgengineshtml

Game Engines Martin Samuelčiacutek

16

Questions

Real-time Graphics Martin Samuelčiacutek

Page 11: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

11

List of Engines

bull Open-source projects usually without mature IDE mainly graphics engines less deployment

bull OGRE (httpwwwogre3dorg)

ndash Just graphics engine many add-ons

bull Irrlicht (httpirrlichtsourceforgenet)

ndash Easy to use engine with lots of features

bull OpenSceneGraph (wwwopenscenegraphorg)

ndash 3D graphics toolkit amp scene engine

bull Blender Game Engine (httpwwwblenderorg)

ndash Component of modeling package Game Engines Martin Samuelčiacutek

12

List of Engines

bull JavaScript engines using WebGL or HTML5 displaying scenes in web browsers

bull Threejs (httpthreejsorg)

ndash Simple but usable graphics engine

bull BabylonJS (httpwwwbabylonjscom)

ndash Full game engine

bull Turbulenz (httpbizturbulenzcom)

ndash Another full game engine

bull Construct 2 (httpswwwscirracom)

ndash Mainly for 2D graphics Game Engines Martin Samuelčiacutek

13

Resources

bull httpsunity3dcomlearntutorials

bull httpswikiunrealenginecomMain_Page

bull httpsdocsunrealenginecomlatestINTGettingStartedFromUnity

bull httpsenwikipediaorgwikiList_of_game_engines

bull httpwwwworldofleveldesigncomcategorieslevel_design_tutorialsrecommended-game-enginesphp

bull httpshtml5gameenginecom

bull httpwwwhtml5gamedevscom

bull httpopengameartorg

bull httparchive3dnet

bull httpwwwcgtexturescom

bull httpwwwfreesoundorg

Game Engines Martin Samuelčiacutek

14

Lectures

bull Simple introduction to one open source game (graphics) engine ndash OGRE

bull Introduction to one proprietary full IDE game engine ndash Unity

bull Basics of window management scene management rendering materials and shaders GUI (HUD) scripting user input interaction animations network communication physics deployment

Game Engines Martin Samuelčiacutek

15

Lecture evaluation

bull Implementing 3D interactive presentation project in one game engine

bull Based on written specification

bull Unity Unreal Engine Ogre Blender BabylonJS Turbulenz

bull For more info see httpwwwsccgsk~samuelcikgengineshtml

Game Engines Martin Samuelčiacutek

16

Questions

Real-time Graphics Martin Samuelčiacutek

Page 12: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

12

List of Engines

bull JavaScript engines using WebGL or HTML5 displaying scenes in web browsers

bull Threejs (httpthreejsorg)

ndash Simple but usable graphics engine

bull BabylonJS (httpwwwbabylonjscom)

ndash Full game engine

bull Turbulenz (httpbizturbulenzcom)

ndash Another full game engine

bull Construct 2 (httpswwwscirracom)

ndash Mainly for 2D graphics Game Engines Martin Samuelčiacutek

13

Resources

bull httpsunity3dcomlearntutorials

bull httpswikiunrealenginecomMain_Page

bull httpsdocsunrealenginecomlatestINTGettingStartedFromUnity

bull httpsenwikipediaorgwikiList_of_game_engines

bull httpwwwworldofleveldesigncomcategorieslevel_design_tutorialsrecommended-game-enginesphp

bull httpshtml5gameenginecom

bull httpwwwhtml5gamedevscom

bull httpopengameartorg

bull httparchive3dnet

bull httpwwwcgtexturescom

bull httpwwwfreesoundorg

Game Engines Martin Samuelčiacutek

14

Lectures

bull Simple introduction to one open source game (graphics) engine ndash OGRE

bull Introduction to one proprietary full IDE game engine ndash Unity

bull Basics of window management scene management rendering materials and shaders GUI (HUD) scripting user input interaction animations network communication physics deployment

Game Engines Martin Samuelčiacutek

15

Lecture evaluation

bull Implementing 3D interactive presentation project in one game engine

bull Based on written specification

bull Unity Unreal Engine Ogre Blender BabylonJS Turbulenz

bull For more info see httpwwwsccgsk~samuelcikgengineshtml

Game Engines Martin Samuelčiacutek

16

Questions

Real-time Graphics Martin Samuelčiacutek

Page 13: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

13

Resources

bull httpsunity3dcomlearntutorials

bull httpswikiunrealenginecomMain_Page

bull httpsdocsunrealenginecomlatestINTGettingStartedFromUnity

bull httpsenwikipediaorgwikiList_of_game_engines

bull httpwwwworldofleveldesigncomcategorieslevel_design_tutorialsrecommended-game-enginesphp

bull httpshtml5gameenginecom

bull httpwwwhtml5gamedevscom

bull httpopengameartorg

bull httparchive3dnet

bull httpwwwcgtexturescom

bull httpwwwfreesoundorg

Game Engines Martin Samuelčiacutek

14

Lectures

bull Simple introduction to one open source game (graphics) engine ndash OGRE

bull Introduction to one proprietary full IDE game engine ndash Unity

bull Basics of window management scene management rendering materials and shaders GUI (HUD) scripting user input interaction animations network communication physics deployment

Game Engines Martin Samuelčiacutek

15

Lecture evaluation

bull Implementing 3D interactive presentation project in one game engine

bull Based on written specification

bull Unity Unreal Engine Ogre Blender BabylonJS Turbulenz

bull For more info see httpwwwsccgsk~samuelcikgengineshtml

Game Engines Martin Samuelčiacutek

16

Questions

Real-time Graphics Martin Samuelčiacutek

Page 14: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

14

Lectures

bull Simple introduction to one open source game (graphics) engine ndash OGRE

bull Introduction to one proprietary full IDE game engine ndash Unity

bull Basics of window management scene management rendering materials and shaders GUI (HUD) scripting user input interaction animations network communication physics deployment

Game Engines Martin Samuelčiacutek

15

Lecture evaluation

bull Implementing 3D interactive presentation project in one game engine

bull Based on written specification

bull Unity Unreal Engine Ogre Blender BabylonJS Turbulenz

bull For more info see httpwwwsccgsk~samuelcikgengineshtml

Game Engines Martin Samuelčiacutek

16

Questions

Real-time Graphics Martin Samuelčiacutek

Page 15: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

15

Lecture evaluation

bull Implementing 3D interactive presentation project in one game engine

bull Based on written specification

bull Unity Unreal Engine Ogre Blender BabylonJS Turbulenz

bull For more info see httpwwwsccgsk~samuelcikgengineshtml

Game Engines Martin Samuelčiacutek

16

Questions

Real-time Graphics Martin Samuelčiacutek

Page 16: Grafika v reálnom čase - uniba.skfractal.dam.fmph.uniba.sk/~samuelcik/ge/Lecture0.pdf · 2 Game Engine • Software framework (set of tools, API) • Creation of video games, interactive

16

Questions

Real-time Graphics Martin Samuelčiacutek