video games development
TRANSCRIPT
VIDEO GAMES TECHNOLOGYhow it’s made
by Vladyslav Kurmaz
June 2015, December 2014
about speaker 6 years – GAME DEVELOPMENT 4 years – INDUSTRIAL 3D
video
about speaker
AN-148 avia-simulator
Paintball editorpet project
my top 3 games
INCEPTION
what is game. why do we play it.based on
• curiosity
• entertainment
• escape from reality
non-entertainment domains
Achitectural visualizationAvia simulatorsIndustrial 3DMedicineGamification
team, rolesGame publisher
Game designer
2D artist
Art director
Lead programmerGraphic programmer
3D ModelerAnimatorFX artist
Sound programmerPhysics programmerAI programmerScript programmer
Network programmerGame testerSound maker
roadmap / workflowWe were an “Agile” before it became main stream
DEEP DIVE
high-level structure
input
render one frame
network sync (client) update
network sync (server)
Game is an infinity loop
high-level structureFinite State Machine
Mainmenu
Loading
GameSettings
Createserver
Connect
Single-player
timing (FPS – frames per second)
input syncupdate
physics soundbroadcast render
logic/ai
one frame
t1 t2
game entity
pbe demo
GRAPHICS
Renders DirectX OpenGL HTML canvas/WebGL Platform specific rendering
Everything is triangles and Textures and Lightning and Shaders
Render - viewport
Render - input data
float position[3] float normal[3] unsigned int color float texel [2] …
render - pipeline
shaders
GLSL, HLSL vertex shader pixel shader geometry shader tessellation shader
Microprogram which runs directly on GPU
lightning ambient point spot directional self-illuminated
FX particle system motion trail decal
animation - mesh/morph
high accuracy very expensive
data storing
animation - skeletal
good for body animation
requires less data storage
animation - motion capture
AoA demo
LODs & MipMaps
user interface
left,top
right,bottom
PHYSICS
Object :shapepositionorientationvelocitymassfrictionelasticity…
scene, static & dynamic
collision detection & collision response
Complexity :O(n^2)O(n log(n))
cloth simulation
spatial partitioning
havok, newton, bullet, physx, etc.demo
SOUND
sound (music, ambient, 3d)
Listener :position
orientationvelocity
Sound :positionvelocity
sound scene
OpenAL, Squall, BASS, Fmod, etc.
• Chorus• Compression• Distortion• Echo• Environmental
Reverberation• Flange• Gargle• Parametric Equalizer• Waves Reverberation
sound FX
NETWORK
c1
c2
c3
serverserver
server
c1 c2 c3
c1
c2
c3
input
input
input
collect info from clients update send new positions
build-in, standalone server
INPUT
input devices
pressedreleasedtoggle
swipetwo-finger scrolltap to zoometc.
• Control state• Message queue
button, axis, gesture
immediate vs buffered
SCRIPTING
game logic
Lua, Python, JS, C#, Cint, etc.
engine
scripts• setup/test game without engine rebuild
• reuse engine
APIsupdate
AIShould be repeatabilityNo neural networksKISSPath findingSensors
video
OVERVIEW
game engines, cross-platform development• Unreal• Unity• Popcap game engine• …
• Editor• Presets• Scripting• Debug
NEXT STEPS
resources, hacker space
gamedev.netgamasutra.comgamedev.rudtf.rusiggraph.org
THANK YOUquestions