15
Game Dev - Game Engine - Intro 17/10/2014 Marco Tarini - Verona - 2014 1 Master Game Dev Verona, 2014-2015 Game Engines Marco Tarini General info Marco Tarini Google for “marco tarini”, 1 st link Follow “teaching” (bottom) Follow “Master Computer game dev 2015”: pagina del corso: materiale, lucidi, links. Follow “contact” (bottom) Mail, tel, etc…

Game Engines - CNRvcg.isti.cnr.it/~tarini/teaching/engines2015/intro.pdf · Game Engines Marco Tarini General info ... Accento sui games! Possibili testi di rifemento ... Particle

Embed Size (px)

Citation preview

Game Dev - Game Engine - Intro 17/10/2014

Marco Tarini - Verona - 2014 1

Master Game Dev Verona, 2014-2015

Game Engines

Marco Tarini

General info

� Marco Tarini

� Google for “marco tarini”, 1st link

� Follow “teaching” (bottom)

� Follow “Master Computer game dev 2015”:pagina del corso: materiale, lucidi, links.

� Follow “contact” (bottom)

� Mail, tel, etc…

Game Dev - Game Engine - Intro 17/10/2014

Marco Tarini - Verona - 2014 2

This Course

this course

Possibili testi di rifemento (1/3)

Mathematics for 3D Game Progr. and C.G.

(3za ed)

Eric Lengyel

Copre bene il lato + tecnico: 3D math, CG pipeline, geometry + transforms, raytracing, visibility, physic sims, semplicegeom processing…

Game Engine ArchitectureJason Gregory

Abb. completo (con cenni di: software tools, software eng., AI prog, CG prog, math, game design...)

Game Dev - Game Engine - Intro 17/10/2014

Marco Tarini - Verona - 2014 3

Possibili testi di rifemento (2/3)

Introduction to Computer Graphicsa practical Learning Approach

Ganovelli, Corsini, Pattanaik, Di Benedetto

Tutto sulla CG, cenni di CV. Javascrpit + WebGL (+ GLSL).Pratico. Accento sui games!

Possibili testi di rifemento (3/3)

Game Coding Complete (4ta ed)

Mike McShaffry,David Graham

Visione pratica (attenzione a osolescenza)Accento su coding, software eng (es memory managment).

Introduction to

3D Game Programmingwith DirectX 11

Frank LunaRendering / GPU (in pratica, copre il corso di CG)

Game Dev - Game Engine - Intro 17/10/2014

Marco Tarini - Verona - 2014 4

Video Games(Interactive Electronic Entratainment)

“The Last of Us” (Naughty Dog, 2013)

“Space Invaders”(Taito, 1978)

~35 anni

Categorie: per gameplay

� Puzzle game� Color matching� Hidden object � Trivia game …

� Action game� Beat’em up / hack’n’slash� Fighting� Pinball� Platform� Maze� Shooter

� FPS� MMO FPS� LightGun� Shoot’em up� Rail shooter� 3rd person

� Action-Adventure� Stealth� Survival horror� Exploration� PoP / Tombrider

� Adventures� IF - Interactive Fiction� Real time 3D adv� Text

� Board game� Card games …

� Strategy� 4X� RTS� MOBA / MMOG Strategy� Action-RTS� Tower defences

� Vehicle simulation� Driving simulator� Flight simulator

� Amateur� Combat� Space ...

� Racing game� Vehicular combat

� Role-playing games� RPG (occidentali, orientali)� Sandbox RPG� MMOPRG� Roguelikes� Action RPG� Fighting game

� Sport games� Simulation / management

Game Dev - Game Engine - Intro 17/10/2014

Marco Tarini - Verona - 2014 5

Categorie: per fasce utenti

casual games VS hard core games

Categorie: per piattaforma

� Arcade� PC stand-alones

� Aka “desktop app” � (“computer game” propriamente detto)

� Win, Mac, Linux…

� Console� Wii, PS, XBox …

� Browser� html5, webGL, unity, flash…

� Mobile devices� Android, iDevices, PSP …

Game Dev - Game Engine - Intro 17/10/2014

Marco Tarini - Verona - 2014 6

Categorie: per sviluppatore

Independent games

� No/small publisher:

Mainstream games

� Big publisher

cosa fa un video-game publisher?

� Tasks:

� finanzia lo sviluppo

� compreso licenze

� distribuzione

� marketing

� pubblicità, lancio, ricerche di mercato...

� packaging, manuali

� localization

� Alto rischio

Game Dev - Game Engine - Intro 17/10/2014

Marco Tarini - Verona - 2014 7

Categorie: per sviluppatore

Independent games

� No/small publisher

� Low starting $

� Team piccoli

� + libertà +innovazione

� (spesso)

� Strade alternative per:

� Fundingper es: Crowd funding

� come indiegogo.com, kickstarters.com, …

� Distributing

� es: steam, popcap, apple store…

Mainstream games

� Big publisher

� Big $ per project

� (spesso, mega-$’s)

� High quality: imperativa

� Dev-teams grandi

Categorie: per tecnologie video usate

2D games

� Sprites + Tilemap / Tilesets

3D games

� Modelli + Scene 3D

TileSet TileMap Sprites

Game Dev - Game Engine - Intro 17/10/2014

Marco Tarini - Verona - 2014 8

Categorie: per tecnologie video usate

2D games

� Sprites + Tilemap / Tilesets

� Tecnologie:

� «Blitting»

� Tilemap rendering

� e 2D scrolling

� Funzionalità sprite

� sprite collision detection(«pixel perfect»)

� 2D transforms

� Transparency, z-ordering…

� 2D physical engines(a volte)

3D games

� Modelli + Scene 3D

� Tecnologie:

� 3D Modelling

� Scenegraph, models

� 3D Real time rendering

� trasformazione 3D

� Illuminazione,

� 3D animations

� Cinematica, motion capture, model animations...

� 3D phyisical simulations

� (3D sound localization)

Categorie: per tecnologie video usate

2D games

� Sprites + Tilemap

� Tecnologie:

3D games

� Modelli + Scene 3D

� Tecnologie:

......

blender game engine

Game Dev - Game Engine - Intro 17/10/2014

Marco Tarini - Verona - 2014 9

(NB: parliamo di enginenon di gameplay)

2D engine 3D engine

2D

ga

me

pla

y3

D g

am

ep

lay

Game Dev

� Task comuni affrontati� Rendering

� Real time transofrm + lighting

� Phyisics� Newtonian physical simulations� Collision detection + response

� Networking� Sound rendering � Input managing� Struttura del programma

� Loop di gestione degli eventi

� Memory management� Artificial intelligence

� Sotto task comuni: � Struttura generale

riusoriusoriusoriuso!!!!

� +Animationsscripted or computed

Game Dev - Game Engine - Intro 17/10/2014

Marco Tarini - Verona - 2014 10

Quanto riuso nel game dev

x1 solo gioco

xqualunque

gioco

Zero riuso

Riuso totale

x gioco

o varianti

x molti

generi

x un

genere

x giochisimili

http://www.wolfire.com/overgrowth

Per es: Modding

Game Dev-Teams

� Tecnici

� Artisti

Game Dev - Game Engine - Intro 17/10/2014

Marco Tarini - Verona - 2014 11

Game Dev-Teams

� Tecnici

� Artisti

game assets

Intro: game assets!(aka game contents)

� 3D data

� models

� textures

� materials

� shaders

� animations

� collision objects

� etc

� audio

� music

� sound fxs

� ambient sounds

� voice overs

� etc

� video

� cut-scenes, intros

� etc

� 2D art

� screen splashes

� backgrounds

� GUI / HUD elements

� [ sprites & tile-sets ? ]

� fonts

� etc

� text

� dialogues trees

� messages

� translations

� etc

� etc:

� scripts

� stats

� levels

� etc

Game Dev - Game Engine - Intro 17/10/2014

Marco Tarini - Verona - 2014 12

Game Dev-Teams

� Tecnici

� Artistigame engine

game tools

sviluppano customizzano

inegrano

Game Engine

� Parte del game che si occupa di alcuni dei task “comuni”� Scena / livello� Renderer

� Real time transofrm + lighting� Models, materials …

� Physics engine� (soft real-time) newtonian physical simulations� Collision detection + response

� Networking � (LAN – es tramite UTP)

� Sound mixer e “sound-renderer”� Gestore unificato HCI devices� Main event loop, timers, windows manager…� Memory management� Artificial intelligence module

� Soluz dei sotto task comuni AI

� Supporto alla localizzazione� Scripting� GUI (HUD)

Animationsscripted or computed

Game Dev - Game Engine - Intro 17/10/2014

Marco Tarini - Verona - 2014 13

game assets

Game Tools

game

game engine

game tools

digital artists

game assets

Game assets!(aka game contents)

� 3D data

� models

� textures

� materials

� shaders

� animations

� collision objects

� scenes

� etc

� audio

� music

� sound fxs

� ambient sounds

� voice overs

� etc

� video

� cut-scenes, intros, etc

� 2D art

� screen splashes

� backgrounds

� GUI / HUD elements

� [ sprites & tile-sets ? ]

� fonts

� etc

� text

� dialogues trees

� messages

� translations

� etc

� etc:

� scripts

� stats

� levels

� etc

Game Dev - Game Engine - Intro 17/10/2014

Marco Tarini - Verona - 2014 14

game assets

Assets inGame Development

game

game engine

game tools

digital artists

game assets

MOD assets

digression:

Game [MOD] Development

game

game engine

(public)game tools

game fans!

MODassets

Game Dev - Game Engine - Intro 17/10/2014

Marco Tarini - Verona - 2014 15

Game assets!(aka game contents)

� 3D content� models� textures� materials� shaders� animations� collision objects� scenes� etc

� audio� music� sound fxs� ambient sounds� voice overs� etc

� video� cut-scenes, intros� etc

� 2D art� screen splashes� backgrounds� GUI / HUD elements

(e.g. buttons, bars), � [ sprites & tile-sets ? ]� fonts� [ concepts ]� etc

� text� dialogues trees� messages� translations� etc

� etc: � scripts, � stats, � levels…

� 3D Models i.e. tri-meshes with:

� per vertex attrib

� normals, color, AO, …

� LODs

� “uv-mapping”

� keyframes

� cyclic animations

� face-morphs, …

� “skinning”

� Materials� lighting model stats / flags

� textures

� RGB maps

� normal maps

� alpha maps …

� shaders

� vertex, fragments, …

Parte 3D deigame assets

� Animations� blend shapes

� skeletal animations

� kinematic animations

� geometry caches

� Skeletons (rigs)

� Collision objects� hit-boxes

� bounding objects

� Particle systems

� Environments� 3d scenes

� skydomes

� env. maps

� scene props