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
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
Upravljanje projektima
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)
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
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
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
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
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,...
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 ....
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
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
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
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
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
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
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
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