Digital Frontier: Programowanie gier - część 1

19
Programowanie gier Część 1 – Kto to: programista gier? Digital Frontier · 16-12-2012 Leszek Godlewski Programista [email protected] www.thefarm51.com

description

Pierwsza część mojego wykładu na kursie Digital Frontier. http://kurs.digitalfrontier.pl/

Transcript of Digital Frontier: Programowanie gier - część 1

Page 1: Digital Frontier: Programowanie gier - część 1

Programowanie gierCzęść 1 – Kto to: programista gier?

Digital Frontier · 16-12-2012

Leszek [email protected]

www.thefarm51.com

Page 2: Digital Frontier: Programowanie gier - część 1

Plan spotkania

www.thefarm51.com

● Część I: Kto to: programista gier?● Programista gier vs „klasyczny”● Przegląd dyscyplin programowania gier

● Część II: Silnik, czyli koń roboczy● Część III: Narzędzia (zbrodni)● Część IV: Rozgrywka, głupcze!● Część V: Back-end, front-end...

Infrastruktura sieciowa

Page 3: Digital Frontier: Programowanie gier - część 1

Kto zacz?

www.thefarm51.com

● Farmer od marca 2010● Painkiller HD, Adventurer...

● Entuzjasta open source● Modder gier od ~12 roku życia● Student Politechniki Śląskiej

WGK 2012

Page 4: Digital Frontier: Programowanie gier - część 1

Szukamy pracowników!

http://www.skillshot.pl/search/The+Farm+51 www.thefarm51.com

●Fajny zespół!●Fajne projekty!●Fajne miasto!●Polecam! � �

Page 5: Digital Frontier: Programowanie gier - część 1

www.thefarm51.com

Programista gier vs „klasyczny”

Page 6: Digital Frontier: Programowanie gier - część 1

Kto to jest: programista?

www.thefarm51.com

● Lubi:● Sensowne, techniczne wyzwania● Znać oczekiwania wobec niego● Optymalizować swoją pracę

● Nie lubi:● Braku designu● Marnowania jego czasu● Działu QA � �

Page 7: Digital Frontier: Programowanie gier - część 1

A programista gier?

www.thefarm51.com

programista gier!=

programista „klasyczny”(webdev, enterprise itd.)

● Natura i skala problemów● Sposób myślenia● Narzędzia● Interdyscyplinarne środowisko pracy (zespół)

Page 8: Digital Frontier: Programowanie gier - część 1

Problemy - „growe” vs „klasyczne”

www.thefarm51.com

Programowanie „klasyczne” Programowanie gierDużo czasu na rozwiązanie problemu

Większość problemów musi być rozwiązana w obrębie 1 klatki animacji (33⅓ ms lub mniej!)

Dużo dostępnej pamięci Mało dostępnej pamięci (zwłaszcza na konsolach)

Priorytet: niezawodność Priorytet: wydajność

Dziedzina problemów – głównie deterministyczna

Dziedzina problemów – głównie niedeterministyczna

Odpowiedzialność przed klientem/przełożonym

Odpowiedzialność przed kolegami z zespołu

Page 9: Digital Frontier: Programowanie gier - część 1

Inżynieria oprogramowania

www.thefarm51.com

● IO stosowana wyrywkowo...● UML – rzadkość● Continuous Integration – rzadkość● Testy jednostkowe – rzadkość● Wzorce projektowe – rzadkość

● ...ale jednak● Modne metodologie agile

– Scrum, Kanban...● Kontrola wersji, bugtracking● Code review

Page 10: Digital Frontier: Programowanie gier - część 1

www.thefarm51.com

Dyscypliny w programowaniu gier

Page 11: Digital Frontier: Programowanie gier - część 1

Struktura współczesnej gry

www.thefarm51.com

EdytorEdytorNarzędziapoziomówNarzędziapoziomów

Narzędziaassetów

Narzędziaassetów

SilnikSilnik

FizykaFizyka

RenderingRendering AudioAudio

SiećSieć

PlatformaPlatforma

WejścieWejście

Infrastrukturasieciowa

Infrastrukturasieciowa

GraGra

UIUI MechanikaMechanika AIAI

Page 12: Digital Frontier: Programowanie gier - część 1

Stanowiska programistyczne

www.thefarm51.com

● Engine Programmer/Engineer● Graphics/

Rendering...● Physics...● Platform...● Input...● Audio/Sound...● Tool...

● Network...● Gameplay...● Artificial

Intelligence...● User Interface...● Generalist...● Lead...

Page 13: Digital Frontier: Programowanie gier - część 1

Indywidualne specjalności

www.thefarm51.com

rozmiar zespołu

wsz

echs

tron

ność

wiedza

Page 14: Digital Frontier: Programowanie gier - część 1

I wszystko to musimy zrobić sami?

www.thefarm51.com

Nie.

● Gotowe silniki● Unity, Unreal Engine/UDK, CryEngine,

Unigine...● Middleware

● OGRE, Renderware, FMOD, Havok, PhysX, Bullet, SpeedTree, Scaleform...

Page 15: Digital Frontier: Programowanie gier - część 1

Jaki jest „plan minimum”?

www.thefarm51.com

EdytorEdytorNarzędziapoziomówNarzędziapoziomów

Narzędziaassetów

Narzędziaassetów

SilnikSilnik

FizykaFizyka

RenderingRendering AudioAudio

SiećSieć

PlatformaPlatforma

WejścieWejście

Infrastrukturasieciowa

Infrastrukturasieciowa

GraGra

UIUI MechanikaMechanika AIAI

Page 16: Digital Frontier: Programowanie gier - część 1

Jaki jest „plan minimum”?

www.thefarm51.com

EdytorEdytorNarzędziapoziomówNarzędziapoziomów

Narzędziaassetów

Narzędziaassetów

SilnikSilnik

FizykaFizyka

RenderingRendering AudioAudio

SiećSieć

PlatformaPlatforma

WejścieWejście

Infrastrukturasieciowa

Infrastrukturasieciowa

GraGra

UIUI MechanikaMechanika AIAI

Page 17: Digital Frontier: Programowanie gier - część 1

Jaki jest „plan minimum”?

www.thefarm51.com

EdytorEdytorNarzędziapoziomówNarzędziapoziomów

Narzędziaassetów

Narzędziaassetów

SilnikSilnik

FizykaFizyka

RenderingRendering AudioAudio

SiećSieć

PlatformaPlatforma

WejścieWejście

Infrastrukturasieciowa

Infrastrukturasieciowa

GraGra

UIUI MechanikaMechanika AIAI

Page 18: Digital Frontier: Programowanie gier - część 1

www.thefarm51.com

Pytania?

Page 19: Digital Frontier: Programowanie gier - część 1

Dziękuję za uwagę!

Polub nas na Facebooku!http://www.facebook.com/farm51http://www.facebook.com/ProjectAdventurerhttp://www.facebook.com/PainkillerGame

[email protected]

www.thefarm51.com