• Non ci sono risultati.

Video Game Development

N/A
N/A
Protected

Academic year: 2021

Condividi "Video Game Development"

Copied!
18
0
0

Testo completo

(1)

Università degli Studi dell’Insubria

Game Development

Marco Tarini

Video Game Development

Sviluppo software di un Video Game

Perchè un corso specializzato su questa

categoria di sviluppo sw?

(2)

Video Games: fun facts

Industria enorme

Video games = killer apps

Propulsori di tecnologia (HW e SW)

Performance and complexity

Stato attuale:

consolidato set di soluzioni specifiche

Video Games: fun facts

Sono,

più spesso di qualunque altra categoria di sw:

le app più demanding sul tuo computer

e alcuni dei software più complessi

propuslori di progresso tecnologico HW / SW

CPU speed, bus, mass storage, sound cards, video cards, input devices, ...

on consoles, PCs, mobile devices...

“killer apps”

Video game industry: muove somme enormi

Molto > che, per es, movie industry

(3)

su Video Game Dev

SIGGRAPH

ACM Special Interest Group

i3D

Interactive 3D

GDC

Game Developers Conference

E3

Electronic Entertainment Expo

PAX

Penny Arcade Expo

Cosa impareremo

in questo corso

(4)

Cosa NON impareremo in questo corso

Game Design

es. design del gameplay

Artistic asset creation

gli skill propri dell’artista digitale

Game studies (o ludology)

Aspetticulturali/storico/ sociali/ filosofici…

videogame history

videogames come media (o IL next media)

…e le molte controversie

videogame Scene

Game Theory

alla Nash

neanche: Combinatorial GT

Serious gaming

(≠ entertainment)

e.g. “Gamification”

e.g. “Edutainment”

(on line) marketing

o funding Schemas, schemi di distribuzione…

Aspettigeneralidi

Programmazione

Computer Graphics

Artificial intelligence

Networking / ambienti distribuiti

Software engineer (vedi playtesting)

Cosa impareremo in questo corso

Nozioni sulle tecnologie più utilizzate dai moderni Computer Games

Algoritmi + Strutture Dati

Ambiti:

Rendering, Modellazione, AI, Physical simulation…

Struttura di:

un video game

un game engine

video game dev-teams

Vedi piano del corso! (alla fine)

(5)

Possible textbooks

Game Engine Architecture

Jason Gregory

Abb. completo (con cenni di:

software tools, software eng., AI prog, CG prog, math, game design...)

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, semplice geom processing…

Other interesting reads

(not textbooks for this course)

Game Coding Complete (4th ed)

Mike McShaffry,David Graham Visione pratica

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

Introduction to

3D Game Programming with DirectX 12

Frank Luna Rendering / GPU

(basically, Computer Graphics for games)

The Art of Game Design Jesse Schell poco tecnico, per designers!

(6)

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 (shumps)

Rail shooter

3rd person

Action-Adventure

Stealth

Survival horror

Exploration

PoP / Tombrider

Adventures

IF - Interactive Fiction

Real time 3D adv

Point and click

Board game

Card game …

Strategy

4X

RTS

Strategy MOBA / MMOG

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

Sport games

Soccer / Football / …

Simulation / management

(7)

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 …

(8)

Categorie: per tipo di sviluppatore

Independent games

No/tiny 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

(9)

Categorie: per sviluppatore

Independent games

No/small publisher

Low starting $

Team piccoli

+ libertà +innovazione

(spesso)

Strade alternative per:

Funding

per 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

3D games

Modelli + Scene 3D

TileSet TileMap Sprites

(10)

Categorie:

per tecnologie video usate

2D games

Sprites + Tilemap

3D games

Modelli + Scene 3D

3D rendering techniques 3D animation techniques

Categorie:

per tecnologie video usate

2D games

Sprites + Tilemap

Tecnologie:

Blitting

Tilemaps

e 2D scrolling

Funzionalità sprite

sprite collision detection

2D transform

(2D physical engines) (raramente)

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)

(11)

per tecnologie video usate

2D games

Sprites + Tilemap

Tecnologie:

3D games

Modelli + Scene 3D

Tecnologie:

... ...

blender game engine

(NB: parliamo di engine non di gameplay)

2D engine 3D engine

2D gameplay gameplay

(12)

Game Dev: introduzione

Sviluppo sw molto particolare

complesso

a cavallo fra arte e tecnologia e scienza

“Efficiency is KING”

Sviluppo Video Game:

alcuni ingredienti

Programmazione Avanzata

Strutture dati, multithreading,

programmazione ad eventi, networking

Deployment

Cross platforms, mobile platfororms, browsers

Gameplay design

Artificial Intelligence

Computer Graphics (3D)

Software Engineering

Ad-hoc input and output devices

Digital Art

(una marea)

(13)

Game Dev

Animations

scripted or computed

Common tasks need be faced

Rendering

Real time transform + lighting

Phyisics

Newtonian physical simulations

Collision detection + response

Networking

Sound rendering

Input management

Program structure

event loop

Memory management

Artificial intelligence

many common sub-task

goal-subgoal hierarchy

Implement once, use many times

Still possible to make games completely from scratch (zero reuse), but increasingly rare.

Even many projects/series started this way then switch to a game engine

Game-engines take care of many common functionalities needed by different games.

eg:

But

Reuse = constraints

(14)

How general is a tool for making games

tools for

one specific game

tools for

any game

Little effort Huge effort

tools for

a few variants

tools for

several genres

tools for

one genre

tools for

similar games

one stats editor for a RPG

Modding tools SCUMM

(Lucasfilm 1987-1999)

naked C++

OpenGL

UFE

Game

Dev-Teams

Technical Staff

Digital Artists

Designers

(15)

Dev-Teams

Technical Staff

Digital Artists

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

2D art

screen splashes

backgrounds

GUI / HUD elements

[ sprites & tile-sets ? ]

fonts

etc

text

dialogues trees

messages

translations

etc

etc:

scripts

stats

(16)

Game

Dev-Teams

Technical Staff

Digital Artists game

engine game

tools

develop customize

integrate

Game Engine

GRAPHICS PHYSICS

NETWORKING

ARTIFICIAL INTELLIGENCE

GUI + INTERFACES . . .

SCRIPTING

ASSET MANAGEMENT

SOUND

(17)

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)

Animations scripted or computed

game assets

Assets in

Game Development

game game engine game

tools

digital artists

game

assets

(18)

MOD assets digression:

Game [MOD] Development

game game engine (public)

game tools

game fans!

MOD assets

Course Plan

lec. 1: Introduction 

lec. 2: Game Mathematics 

lec. 3: Scene Graph 

lec. 4: Game 3D Models 

lec. 5: Game Textures 

lec. 6: Game Physics 

lec. 7: Game Particle Systems  lec. 8: Game Animations 

lec. 9: Game Networking 

lec. 10: Game Artificial Intelligence 

lec. 11: Game Audio 

lec. 12: Game Rendering Techniques lec. 1:

lec. 2:

lec. 3:

lec. 4:

lec. 5:

lec. 6:

lec. 7:

lec. 8:

lec. 9:

lec. 10:

lec. 11:

lec. 12:

Riferimenti

Documenti correlati

• The SIM sw helps a judge to evaluate the yellow zone programs by providing a series of potentially similar areas. The judge only has

The characteristic function of a TU Game may be obtained starting from the strategic or normal form of the game, taking into account the different possible total payoffs of a

– come sappiamo, cumulabile con qualunque altra trasf..

The rules also specify that the set of coins that may be turned over depends only on the position of the rightmost coin turned over and not otherwise on the position of the other

Authors proposed here for the first time a novel FICI interpre- tation model, where a Synergistic effect (SynA) is detected when FICI value < 1; a Commutative effect (ComA) when

Per far fronte a questo si è deciso in futuro di introdurre una classe adibita alla simulazione di interfacce bidimensionali attraverso l'uso di elementi a tre dimensioni, ciò che

Indipendentemente dalla citazione (non esplicitata da Paoli, ma evidente) «La gatta» è il brano che più di ogni altro contribuisce a creare l’immagine di Paoli, e per riflesso