Esityksen kalvot

Download Report

Transcript Esityksen kalvot

Radiant Raccoon
13.4.2015
Radiant Raccoon
1
Ketä me olemme?

Remo
 Työkaluasiantuntija
 C++/C#
 .NET/WIN32

Timo
 3D-asiantuntija
 C/C++
 OpenGL

Radiant Raccoon
 Peliteknologiaan keskittynyt softatalo
 6+ työntekijää
13.4.2015
Radiant Raccoon
2
Mitä me teemme?
Peliteknologiaa
 Middleware-periaatteella

 Moottori jatkokehitykseen
 Valmis pohja käyttöön

Tuotteet
 3D-moottori
 Skriptimoottori
 Pelikoodipohja
 Työkalut
13.4.2015
Radiant Raccoon
3
Pelimoottorit
13.4.2015
Radiant Raccoon
4
Mikä on pelimoottori?

Pelinkehitysalusta (vrt .NET)
 Käytännössä
○ Valmiita kirjastoja
 DLL ja/tai LIB
○ Valmiita toteutuksia


Työkalut (Editorit, konvertterit yms.)
Tarkoitus auttaa pelin kehittelijöitä
 Keskittyä vain itse pelin tekemiseen


Yhtä monta toteutusta kuin tekijöitä
Suurimpia tekijöitä
 Id (Doom)
 Epic (Unreal Engine)
 Emergent (Gamebryo)
13.4.2015
Radiant Raccoon
5
Pelinkehitysrakenne
Animation Content
Realtime Rendering
Cinematic Content
Lip Sync
Motion Capture
Third Wish Software Magpie
OC3 Impersonator
Biovision
Motion Analysis
Vicon Motion Systems
Offline Renderer
Compositing Editor
Video Playback
Realtime Video Renderer
Realtime Audio Renderer
Pixar PRMan
Mental Images Mental Ray
Splutterfish Brazil
Nvidia Gelato
Adobe Premier
AVID Xpress
Adobe AfterEffects
Discreet Combustion
Newtek Digital Fusion
RAD Game Tools Bink
CRI Sofdec
Factor 5 DivX
RAD Games Tools Pixomatic
ATI Radeon
Nvidia GeForce
Creative Soundblaster
REALTEK AC’97
Nvidia NForce
Animation Editor
Kaydara MotionBuilder
RAD Game Tools Granny 3D
Natural Motion Endorphin
Curious Labs Poser
World/Level Editors
Simulation Technology
World/Level Editors
Physics Engine
3D Editors
Game Asset Conversion
Havok
Criterion Renderware Phyiscs
Novodex Novodex Physics
Game Engines
Game Asset Conversion
3D Editor
Game Engines
Alias Maya
Discreet 3D Studio Max
SoftImage XSI
Newtek Lightwave
Criterion Renderware Graphics
Epic Unreal
NDL Gamebyro (NetImerrse)
Touchdown Entertainment Jupiter
Id Quake/Doom
Valve Half Life 2
Crytek CryEngine
Vicarious Visions Intrinsic Alchemy
Spinor GmbH Shark 3D
Trinigy GmbH Vision
Virtools (Prototyping)
UI Creation/Menus
UI Creation/Menus
Macromedia Flash
Secret Level Flash Player
Anark GameFace
Criterion Maestro
Converters
Converters
AI
Criterion Renderware AI
Biographic AI.implant
Ikuni
Scripting Lang
Voice Recognition
LUA
Python
Java
UnrealScript
Advanced Media OmiVoice
C#, VB, C++
Multiplayer Technology
Right Hemisphere Deep Exploration
Okino Polytrans
Networking
MMOG
Quazal Net-Z
Terraplay
Demonware BitDemon
Butterfly Butterfly.NET
Zona TerraZona
Bigworld Bigworld
Online Services
DirectPlay
Winsock
GameSpy GameSpy
Sega SNAP
Valve Steam
Live
Mesh/Material Content
3D Image Editor
Image Editor
PixoLogic Z-Brush
Interactive Fx Amazon Paint
Right Hemisphere Deep Paint
Right Hemisphere Deep UV
Adobe Photoshop
JASC Paintshop PRO
Corel Painter
Web Technology Optpix iMageStudio
Shader - Composers
Shader - Creation
Face Generation
Nvidia FX Composer
ATI RenderMonkey
Rt/zen RT/Shader
Singular Inversions FaceGen
Virtual Clones
13.4.2015
Process
Audio Content
Audio
Asset Management
Dev Tools
Debugger
Bug Tracking
RAD Game Tools Miles
Creative Labs Sensaura
CRI ADX
Firelight FMOD Sound System
Alienbrain
Metroworks
SN Systems
Compuware SoftICE
BugZilla
XACT
DirectSound
Source Management
Build Tools
Perforce
CVS
Subversion
Xoreax IncrediBuild
JetFrog JetBuild
Audio Editors
Cakewalk Cakewalk Pro
Sonic Foundry Sound Forge
Adobe Audition
Digidesign ProTools
OSS Audacity
Test Tools
Visual Studio
Visual Studio
MS Build
Profilers
Intel Vtune
Sony Performance
Analyzer
PIX
Document Generation
HTML Help
VS SourceSafe
VS Team System
Radiant Raccoon
GamePlay Analysis
OSS Docbook
Doxygen
ndoc
Studio
Criterion Renderware Studio
6
Pelimoottorin rakenne
Yleinen piirtohallinta
Grafiikka
Renderöinti
Fysiikka
Tekoäly
Skripti
Tapahtumat
Pelimoottori
Pelidynamiikka
Actor
Hahmoluokkamääritykset
Static model
Konvertterit
Työkalut
Rakennuspalikat
13.4.2015
Radiant Raccoon
7
Tärkeimmät tekijät
Pelilogiikan järkevä hallinta
Järkevä näyttämön hallinta
Assettien hallinta
Resurssien hallinta
Nopeus ja tehokkuus
Muistivaatimukset
Monisäikeistys
Muunneltavuus
Komponenttien monikäyttöisyys
13.4.2015
Radiant Raccoon
8
Grafiikka
13.4.2015
Radiant Raccoon
9
Graafiset assetit

Näyttämögeometria
 Mesh
 Particle system
 Billboard
 Parametriset pinnat

Piirtoassetit
 Tekstuurit
 Varjostimet
 Materiaalit
13.4.2015
Radiant Raccoon
10
Näyttämögeometria
Mesh

Koostuu polygoneista
 Verteksit
 Verteksi-indeksit (topologia)
 Materiaali
 Tekstuurit
 Rendaajan raakamateriaali
13.4.2015
Radiant Raccoon
11
Näyttämögeometria
Particle system

Koostuu pisteistä (spriteistä)
 Verteksit
 Materiaali
 Tekstuurit

Efektit
 Räjähdykset
 Pölypilvet
 Kipinät
13.4.2015
Radiant Raccoon
12
Näyttämögeometria
Billboard

Periaatteessa kaksi polygonia
 Verteksit
 Materiaali
 Tekstuurit

Käyttöliittymä
 Napit
 Vivut

Efektit joissa tarvitaan isoja, suuren
alueen peittäviä polygoneja
13.4.2015
Radiant Raccoon
13
Näyttämögeometria
Parametrisoidut pinnat

Pinta määritellään tesseloimalla
polynomiaalipinta
 Luodaan edellä mainittu mesh
○ Automaattinen LOD
 Tesselointi voidaan suorittaa myöhään
○ Projektion jälkeen
 Bézier-pinnat
 NURBS (Non-Uniform Rational B-spline
Surfaces)
13.4.2015
Radiant Raccoon
14
Piirtoassetit
Tekstuurit
Bittikartta
 Venytetään polygoneiden päälle
 Käytetään parametreina varjostimille

 Voidaan käyttää monella eri tavalla
13.4.2015
Radiant Raccoon
15
Piirtoassetit
Varjostimet
Toteuttavat itse piirtämisen
 Verteksivarjostimet

 Käsittelevät yhden verteksin kerrallaan

Geometriavarjostimet
 Käsittelevät yhden kolmion kerrallaan

Fragmentvarjostimet
 Käsittelevät yksittäiset fragmentit
13.4.2015
Radiant Raccoon
16
Piirtoassetit
Varjostimet
Verteksivarjostin
13.4.2015
Geometriavarjostin
Radiant Raccoon
Fragmentvarjostin
17
Piirtoassetit
Materiaalit

Käytetyt varjostimet
 Parametrit
 Tekstuurit

Piirron tilan muutokset
 Alpha blending
 Stencil test
 Jne.
13.4.2015
Radiant Raccoon
18
Grafiikka
13.4.2015
Radiant Raccoon
19
Rakenteita

Scene graph
 BV-hierarkia
BSP-puu
 Octree (Kasipuu)
 Portal graph

13.4.2015
Radiant Raccoon
20
Graafisten assettien hallinta
Scene graph

Näyttämö hierarkisesti organisoitu
 Node
○ Kinematiikka
○ Bounding volume
 Leaf
○ Geometria
 Materiaalit
 Tekstuurit
○ Valot

Helppo käyttää skinnauksen kanssa
13.4.2015
Radiant Raccoon
21
Graafisten assettien hallinta
BSP-puu

Näkyvyysmäärittely
 Lehtisolmut konvekseja polygonisettejä
 Valmiiksi laskettu
○ PVS
 Dynaaminen
○ Portalit lehtisolmujen välillä
 Muistiin lataus vain tarvittaessa
13.4.2015
Radiant Raccoon
22
Graafisten assettien hallinta
Octree

Nopea tapa selvittää näkyvyys
 Jos solu näkyy, testataan lapset
 Tarvitaanko geometriaa

Voivatko objektit koskettaa toisiaan
13.4.2015
Radiant Raccoon
23
Graafisten assettien hallinta
Portal graafi
Solut minkä muotoisia tahansa
 Portalit solujen välillä
 Käsin koottu
 Laajentaa BSP-puita

13.4.2015
Radiant Raccoon
24
Grafiikka
13.4.2015
Radiant Raccoon
25
Yleisesti

Piiretään näyttämön geometria
 Materiaalit
 Varjostimet
 Tekstuurit
 Meshit
 Efektit

Ei yhtä oikeaa toteutusta
13.4.2015
Radiant Raccoon
26
Renderöinti
Syöte näyttämöltä
Pre-Process
• Materiaali
• Mesh
• Optiot
•
•
•
•
Luokittelu
Lajittelu
Jonotus
Vaativin
Process
• Jonon tyhjennys
Valmis kuva
13.4.2015
Radiant Raccoon
27
Renderöinti
13.4.2015
Radiant Raccoon
28
OpenGL
Periaatteet

Tilakone
 Objektit
○ Kiinnitykset
○ Parametrit
 Kutsuperiaate
○ Vrt. DX OO-lähestymistapa



Yksinkertainen
Laajennettavissa
Alustariippumaton
13.4.2015
Radiant Raccoon
29
OpenGL
Miksi käytämme?
Ei erityisiä syitä 
 Mukana teknologian kehityksessä
 Alustariippumaton
 GLSL

13.4.2015
Radiant Raccoon
30
OpenGL
Initialisointi





Luodaan ikkuna
Haetaan DC
Luodaan renderkonteksti (RC)
Liitetään RC aktiiviseksi DC:llä
Sample
13.4.2015
Radiant Raccoon
31
OpenGL
Vertex Buffer

Verteksidatan tallennuspaikka
 OpenGL hallitsee muistia
○ Missä verteksidata sijaitsee
 Vid mem
 System mem
 Nykyään myös stream out target
○ Verteksi-/Geometriavarjostimen output VB:hen
Voidaan myös tallentaa indeksidataa
 Sample

13.4.2015
Radiant Raccoon
32
OpenGL
Tekstuurit

Sample
13.4.2015
Radiant Raccoon
33
OpenGL
GLSL
Varjostintoteutus
 Korkean tason ohjelmointikieli
 Ällistyttävän helppo käyttää
 Sample

13.4.2015
Radiant Raccoon
34
OpenGL
Infoa

www.opengl.org
13.4.2015
Radiant Raccoon
35
Työkalut
13.4.2015
Radiant Raccoon
36
Komponentit
Yleisesti

Peruskäsitys
 Osa jotain suurempaa
 Itsenäinen
 Osaa keskustella

Esimerkiksi
 Microsoft Windows/.NET
○ Nappi, Valintaboksi, Ikkuna
○ Forms, Button, PictureBox
 Kaikki peritty Control:ista
13.4.2015
Radiant Raccoon
37
Komponentit
Ohjelmoinnin kannalta
Forms
Button
Control
13.4.2015
Radiant Raccoon
38
Komponentit
Pelimoottorissa

Peliobjektit = komponetit
 Helppo hallita
○ Lisäys, muokkaus ja poisto
 Yleensä hidasta
○ Muistia ja prosessointiaikaa kuluu hallintaan
○ Vaikea piirtää
 Riippuvuudet
 Ympäristö
 Käytetään hybridia
○ Komponentti
○ Proseduraalinen
13.4.2015
Radiant Raccoon
39
Komponentit
Ongelmana

Komponenttimaisuus
 Tehokkaasti
13.4.2015
Radiant Raccoon
40
Työkalut
13.4.2015
Radiant Raccoon
41
Yleiset tehtävät
Fysiikka
 Animaatiot
 Pelilogiikka
 Skripti
 Ääni
 Verkko
 Sisällöntuotanto
 Käsikädessä moottorin kanssa

13.4.2015
Radiant Raccoon
42
Pelimoottorityökalut
Fysiikka

Objektien parametrit
 Paino
 Voimat
Olomuoto (esim. vesi, tuli)
 Ympäristön määrittelyt

 Avaruus, vesi, maapallo yms.
13.4.2015
Radiant Raccoon
43
Pelimoottorityökalut
Animaatiot


Käyttö
Sekvenssit
 Animoitu tapahtuma
○ Kävely
○ Juoksu

Sekoitukset
 Animaatioiden miksaus
○ Juoksua ja nyrkillä lyöntiä

Hallinta
 Mitä missäkin ja miten
13.4.2015
Radiant Raccoon
44
Pelimoottorityökalut
Pelilogiikka

Tekoäly
 Reaktiot
○ Näkee jotain
○ Joku osuu

Skriptaus
 Tekoäly
 ”Käsikirjoitus” pelille
 ”Syy ja seuraus” -hallinta

Yleiset toiminnot
 Toimintojen hallinta
 Ohjaimen toiminta
○ Näppäimistö
○ Hiiri
○ Ohjain
13.4.2015
Radiant Raccoon
45
Pelimoottorityökalut
Ääni

Hallinta
 Nimeäminen
 Linkkaus
○ huuda = ukon_huuto.wav

Miksaus
 Äänen tasot
 Päällekkäisyydet

Ympäristön simulointi
 Ympäristöäänet
 3D-äänet
 Äänen suunnat
13.4.2015
Radiant Raccoon
46
Pelimoottorityökalut
Verkko

Moninpeli
 Pakettien hallinta

Päivitykset
 Patchit
 Lisäosat

Virheen raportointi
 Alustaongelmat
 Laitteistotuki
13.4.2015
Radiant Raccoon
47
Pelimoottorityökalut
Sisällöntuotanto


Kentän suunnittelu
Hahmot
 Parametrisointi
○ Ominaisuudet
○ Tekoäly
○ ”Identity”
 Lisäys
 Muokkaus

Peliobjektit
 Kukka, seinä yms
 Lisäys, muokkaus ja poisto
13.4.2015
Radiant Raccoon
48
Pelimoottorityökalut
Käsikädessä moottorin kanssa

Tehokkain hyötysuhde
 Spesifisiä toteutuksia
 Optimaalisin

Ominaisuudet aina tiedossa
 Varjostimet
 Rendaajat
13.4.2015
Radiant Raccoon
49
Työkalut
13.4.2015
Radiant Raccoon
50
Esimerkkejä työkaluista
Epic: Unreal Engine
13.4.2015
Radiant Raccoon
51
Esimerkkejä työkaluista
Id: DOOMEdit
13.4.2015
Radiant Raccoon
52
Esimerkkejä työkaluista
Emergent: Gamebryo
13.4.2015
Radiant Raccoon
53
Esimerkkejä työkaluista
Yleisiä vikoja

Liian komponenttimainen
 Ei helppoa siirtoa osasta toiseen
○ Jokainen oma ohjelmansa
○ Käyttöliittymät eroavat toisistaan
 Ei selvää sääntöä toiminnoissa

Yksinkertainen
 Suunniteltu vain tarkoitukseen
○ Ei ajateltu kehitystä
○ Vain kyseiseen versioon
○ Uusi kun uusi moottori
 Käyttöliittymä ei pysy samana
13.4.2015
Radiant Raccoon
54
Esimerkkejä työkaluista
Lisätietoja
www.unrealtechnology.com
 www.idsoftware.com
 www.emergent.net

13.4.2015
Radiant Raccoon
55
Pelimoottorit
13.4.2015
Radiant Raccoon
56
Pelimoottorit
13.4.2015
Radiant Raccoon
57
Kiinnostaako?
Pelin tekeminen
 Peliteknologian tekeminen
 Osallistua uuden teknologian
kehitykseen
 Graafinen suunnittelu
 Muuten vaan koodaaminen


Ota yhteyttä
13.4.2015
Radiant Raccoon
58
Lisätietoja
www.radiant-raccoon.com
 [email protected][email protected]

13.4.2015
Radiant Raccoon
59