18
RAZVOJ IGRICA Danijel Pobi, dipl. Ing. Računarstva

Razvoj igrica

  • Upload
    lefty

  • View
    74

  • Download
    1

Embed Size (px)

DESCRIPTION

Razvoj igrica. Danijel Pobi, dipl. Ing. Računarstva. Platforme i razvoj. Kompatibilnost Recikliranje koda Fragmentacija Platforma Hardware Software (operativni sustavi i programski jezici) Kratki pregled OS-ova Popularni i rašireni programski jezici Cross-platform razvoj - PowerPoint PPT Presentation

Citation preview

Page 1: Razvoj igrica

RAZVOJ IGRICA

Danijel Pobi, dipl. Ing. Računarstva

Page 2: Razvoj igrica

Platforme i razvoj Kompatibilnost Recikliranje koda Fragmentacija

Platforma Hardware Software (operativni sustavi i programski

jezici) Kratki pregled OS-ova Popularni i rašireni programski jezici Cross-platform razvoj

Upravljanje projektima

Page 3: Razvoj igrica

Kompatibilnost Kompatibilnost u ovom smisliu je mogućnost programa i/ili sklopovlja da

funkcioniraju zajedno Za program ili sklop koji nefunkcionira u inače funkcionalnom sustavu

kažemo da je nekompatibilan Backward compatibility – kompatibilnost s urešajima prijašnjih

generacija Compatibility card – emulacija drugog uređaja (VM, odnosno Virtual

machine) Compatibility layer - ne nativna podrška za hardware Compatibility mode – mehanizam gdje program emulira stariju verziju

programa Computer compatibility – kompatibilnost stroja (IBM compatible) Foward compatibility – stariji urešaji razumiju podatke koje generira

noviji uređaj License compatibility – licenciranje novog programa starijom licencom Pin compatibility – spajanje novih uređaja direktno na pinove starijeg

uređaja (ISA, PCI, AGP, PCI-E)

Page 4: Razvoj igrica

Recikliranje koda Pomoću postojećeg programa ili koda stvaramo novi

program Eng. Code Reuse or code recycling Ideja je u tome da se program jednom napisan koristi

u drugom programu u cilju uštede vremena i energije da se smanji redundancija pisanja jedne te iste stvari

Koriste se dijelovi koda (sections or snippets), templateovi, funkcije, procedure, klase, sučelja, prototipa, itd...

Biblioteka nije ništa drugo nego idealni primjer ovog koncepta

OOP je nastalo na ovom konceptu

Page 5: Razvoj igrica

Recikliranje koda - primjeri Programske biblioteke (library)

najrašireniji oblik ponovnog korištenja koda nema potrebe za izmišljanjem „tople vode” dobro podešene i optimizirane nema promjena ako vam neki dijelovi nisu dovoljno brzi

Design patterns (hrv ?) rijšenje koje se može iznova koristiti za neki uobičajni problem Nije riješenje, nego uputa ili mapa kako riješiti problem koji se može koristiti u

mnogim situacijama 3 vrste: creational (stvaralački), structural (strukturni), behavioral (ponašajni) Creational: Abstract factory, Builder, Prototype, Singleton,... Structural: Adapter, Bridge, Module, Proxy,... Behaviora: Command, Iterpreter, Iterator, Mediator, Specification, State,

Strategy,... Frameworks (hrv ?)

Abstrakcija u kojoj generička funkcionalnost programa dodaje korisničkim dodavanjem koda

sastoji se od dopunskih programi, kompajlera, kodnih biblioteka, alati, API koji zajendno omogućuju razvoj projekta, tj. programa

Page 6: Razvoj igrica

Fragmentacija Pojam u programiranju koji se koristi za

probleme s određenim ekosustavom Problem s spremanjem podataka na disk Problem s formatom/formatima podataka Priprema podataka u mrežnim

protokolima

Page 7: Razvoj igrica

Platforme Hardware i software framework

kombinacija na kojoj se izvršavaju programi

Sastavni dijelovi: Sklopovska arhitektura Operativni sustav Runtime biblioteke

Jako važna stvar prilikom razvoja programa je znati ciljanu platformu ili platforme

Page 8: Razvoj igrica

Hardware platforme Uglavnom se definiraju oko CPU-a, tj. oko

instrukcijskog seta procesora i samog pomoćnog sklopovlja proizvođača procesora

x86-64 ARM x86 PowerPC Itanium Sparc, MC68K, MMIX, MIPS, VAX, eSi-RISC,

PA-RISC, SuperH,...

Page 9: Razvoj igrica

Operativni sustavi Operativni sustav je kolekcija programa koji

upravljaju sklopovskim resursima i pružaju servise ostalim programima

Upravljanje procesima Upravljanje iznimkama i prekidima Upravljanje memorijom File system Driveri Sigurnost I/O ....

Page 10: Razvoj igrica

Operativni sustavi Desktop

Windows, Linux, Mac OS OS/2, Solaris, VM, NetBSD, OpenBSD

Mobilni Windows Phone, Android, iOS Windows Mobile (CE), Blackberry, Embedded Linux, Symbian,

WebOS, Palm OS Tablet

Miješavina desktop i mobilnih Konzole

Xbox, Playstation, Nitendo Wii Serveri

Windows Server, Linux, Unix, Solaris, Radne stanice

mješavina desktop i server operativnih sustava

Page 11: Razvoj igrica

Framework .NET Framework (C#, VB, C++, F#, JS) Java platform

Micro edition Standard edition enterprise edition Mobile JavaFX

Microsoft XNA (C#, VB, F#) Silverlight (C#, VB) Mono Oracle Database Adobe AIR SAP NetWeaver

Page 12: Razvoj igrica

Cross-platform razvoj Cross-platform ili multi-platform se odnosi

na metode, koncepte i implementacije programa koje će se izvoditi na više platformi

Podjela na dvije kategorije izvršava se na ciljanoj platformi bez buildanja

(Java) izvršava se na ciljanoj platformi sa buildanjem

da bi bio neki program cross-polatform, mora se “vrtiti” bar na dvije kompjuterske arhitekture ili dva operativna sustava

Page 13: Razvoj igrica

Cross-platform razvoj C++ iako služi za razvoj za sve platforme, mora se

kompajlirati za svaku platformu posebno Skriptni jezici i interpreterski jezici mogu se bez

kompajliranja i u znikakve ili minimalne izmjene pokretati na različitim platformama python, PHP, bash, Ruby

Java se izvršava bez dodatnog kompajliranja, jer se prvobitno kompajlira u Java Byte Code koji se izvršava na Java VM-u instaliranom za ciljanoj platformi

Igrice koje uglavnom moraju kompajlirati za zadanu platformu radi optimiziranosti, brzine i specifičnosti ciljane platforme

Page 14: Razvoj igrica

Cross-platform razvoj Testiranje je izazov, jer svaka platforma ima drukčije

ponašanje i to može izazvati bugove na određenoj platformi koji se neće pojaviti na drugoj

Najčešće se koriste samo mogućnosti raspoložive na ciljanim platformama, prilagodbe specifične platforme ovise o tipu projekta

Različito sučelje ovisno o ciljanoj platformi Skriptni jezici i VM-ovi se moraju prevesti na ciljanu

platformu, što može negativno utjecati na performanse

Svaka platforma ima svoj način “pakiranja”, tj. format Problem sigurnosti

Page 15: Razvoj igrica

Upravljanje projektima Planiranje, organizacija, motiviranje i kontroliranje

resursima da bi se dostigao određeni cilj. Mjeri dvaput, reži jednom = planiraj dvaput, kodiraj

jednom Mora se znati tko je glavni! Demokracija u ovom slučaju

samo usporava stvari. Programi:

Project management: Microsoft Project, Excel,... Content Control: Team Fundation server, SVN, Hg,...

Tradicionalni pristup: inicijacija, planiranje i dizajn, izvedba, testiranje, kraj

Prince2, PRiSM, kritični lanac, metodologija lančanog niza, procesno upravljanje, Agile, Lean, Extreme, Korisno-realizacijsko upravljanje

Page 16: Razvoj igrica

Upravljanje projektima, razvoj igrice

Planiranje: odabir platforme i alata žanr glavni likovi radnja svijet interakcije likova, objekata,...

Dizajn skice likova, svijeta, radnje alati za izradu

Page 17: Razvoj igrica

Upravljanje projektima, razvoj igrice

Podjela posla podjela u neovisne cijeline dizajn, kodiranje, animiranje, dijalozi, zvuk,...

Posao optimiziranje poslova, tako da se stvari koje se mogu

paralelno raditi, rade izvršavanje dodjeljenih poslova

Testiranje u ovom slučaju igranje i bilježenje grešaka

Ispravljanje grešaka (bugovi) vraćanje na kodiranje i dizajniranje, tj. sam posao

Gotovo Igrajmo se koliko možemo

Page 18: Razvoj igrica

Kraj predavanja

PITANJA?

[email protected]će nema