1 / 18

Razvoj igrica

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

lefty
Download Presentation

Razvoj igrica

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Razvoj igrica Danijel Pobi, dipl. Ing. Računarstva

  2. 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

  3. 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)

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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,...

  9. 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 • ....

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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 

  18. Kraj predavanja PITANJA? danijel@dmt-softver.hr zadaće nema

More Related