Platforme i razvoj Kompatibilnost Recikliranje koda Fragmentacija Platforma Hardware Software operativni sustavi i programski jezici Kratki pregled OSova Popularni i rašireni programski ID: 798353
Download The PPT/PDF document "Razvoj igrica Danijel Pobi, dipl. Ing. R..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Razvoj igrica
Danijel Pobi, dipl. Ing. Računarstva
Slide2Platforme i razvoj
KompatibilnostRecikliranje kodaFragmentacijaPlatformaHardware
Software (operativni sustavi i programski jezici)
Kratki pregled OS-ova
Popularni i rašireni programski
jezici
Cross-platform razvoj
Upravljanje
projektima
Slide3Kompatibilnost
Kompatibilnost u ovom smisliu je mogućnost programa i/ili sklopovlja da funkcioniraju zajednoZa program ili sklop koji nefunkcionira u inače funkcionalnom sustavu kažemo da je nekompatibilanBackward 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)
Slide4Recikliranje koda
Pomoću postojećeg programa ili koda stvaramo novi programEng. Code Reuse or code recyclingIdeja 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
Slide5Recikliranje koda - primjeri
Programske biblioteke (library)najrašireniji oblik ponovnog korištenja kodanema 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
Slide6Fragmentacija
Pojam u programiranju koji se koristi za probleme s određenim ekosustavomProblem s spremanjem podataka na diskProblem s formatom/formatima
podataka
Priprema podataka u mrežnim protokolima
Slide7Platforme
Hardware i software framework kombinacija na kojoj se izvršavaju programiSastavni dijelovi:Sklopovska arhitekturaOperativni sustav
Runtime biblioteke
Jako važna stvar prilikom razvoja programa je znati ciljanu platformu ili platforme
Slide8Hardware platforme
Uglavnom se definiraju oko CPU-a, tj. oko instrukcijskog seta procesora i samog pomoćnog sklopovlja proizvođača procesorax86-64ARMx86
PowerPC
Itanium
Sparc, MC68K, MMIX, MIPS, VAX, eSi-RISC, PA-RISC, SuperH,...
Slide9Operativni sustavi
Operativni sustav je kolekcija programa koji upravljaju sklopovskim resursima i pružaju servise ostalim programimaUpravljanje procesimaUpravljanje iznimkama i prekidima
Upravljanje memorijom
File system
Driveri
Sigurnost
I/O
....
Slide10Operativni sustavi
DesktopWindows, Linux, Mac OSOS/2, Solaris, VM, NetBSD, OpenBSDMobilni
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
Slide11Framework
.NET Framework (C#, VB, C++, F#, JS)Java platformMicro editionStandard edition
enterprise edition
Mobile
JavaFX
Microsoft XNA (C#, VB, F#)
Silverlight (C#, VB)
Mono
Oracle Database
Adobe AIR
SAP NetWeaver
Slide12Cross-platform razvoj
Cross-platform ili multi-platform se odnosi na metode, koncepte i implementacije programa koje će se izvoditi na više platformiPodjela na dvije kategorijeizvrš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
Slide13Cross-platform razvoj
C++ iako služi za razvoj za sve platforme, mora se kompajlirati za svaku platformu posebnoSkriptni 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
Slide14Cross-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 drugojNajč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
Slide15Upravljanje projektima
Planiranje, organizacija, motiviranje i kontroliranje resursima da bi se dostigao određeni cilj.Mjeri dvaput, reži jednom = planiraj dvaput, kodiraj jednomMora 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
Slide16Upravljanje projektima, razvoj igrice
Planiranje:odabir platforme i alatažanrglavni likovi
radnja
svijet
interakcije likova, objekata,...
Dizajn
skice likova, svijeta, radnje
alati za izradu
Slide17Upravljanje projektima, razvoj igrice
Podjela poslapodjela u neovisne cijelinedizajn, 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
Slide18Kraj predavanja
PITANJA?
danijel@dmt-softver.hr
zadaće
nema