Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 10

Seminarski: Izrada Igrice u C++ Jeziku

SREDNJA KOLA DUGO SELO


FERENAKOVA BB
DUGO SELO

Seminarski rad iz predmeta:


Sklopovsk Oprema Raunala

Tema:
Izrada igrice unutar c++ programskog jezika

Uenik
Matej Martinevi, 4.rt-a
Smjer: Raunalni Tehniar

k.god. 2014./2015.
1

Seminarski: Izrada Igrice u C++ Jeziku


Sadraj
1.

Kratki uvod................................................................................................................3

2.

Povijest......................................................................................................................4

3.

Poetak......................................................................................................................5

4.

Programiranje............................................................................................................6

5.

Faze Testiranja...........................................................................................................7

5.1.

Alpha tesitanje.......................................................................................................7

5.2.

Beta testiranje........................................................................................................8

6.

Putanje u javnost......................................................................................................9

Literatura.........................................................................................................................10

Seminarski: Izrada Igrice u C++ Jeziku


1. Kratki uvod
U ovoj prezentaciji govoriti emo o generalnom procesu izradi igara unutar C++
programskog jezika.
Kako i koju ideju uptrijebiti, to bi se trebalo izbjegavati i este te poznate greke koje mnogi
ine. To to je igra zavrena i izala ne znai da unutar nje nema hrpa bug-ova 1 koji su se
provukli unato beta testiranju.
Pokriti emo zato je ba C++ odobran za ovu funkciju. to ga to odvaja od drugih
programskih jezika. Proces kroz koj prolaze sve igre tijekom svoje izrade, to sve treba uzeti
u obzir i kako pristupiti samoj proizvodnji.

1 Bug greka unutar programa

Seminarski: Izrada Igrice u C++ Jeziku


2. Povijest
Igre u poetka nisu bile programirane u C++, i nisu bile kompleksne koliko su u dananje
doba. Prva igra ikada napravljena bila je Spacewar! 1962 na PDP-1 1raunalu, te je ona
bila, kao i veina igara u to vrijeme, programirana u asemblerskom jeziku. To je bila
jednostavna igra za dvoje igraa u kojoj bi se dva svemirska broda pokuala unititi a da se ne
zabiju u planet u sredini.
30 godina posje, i C++ je zapoeo svoju dominaciju sa Blizzard Entertainmentovim
Diablo, jednim od najpoznatijih naslova dananjice. 2001 Microsoft proizvodi Halo:
Combat Evolved, te C++ preuzima ulogu jezika vezanog uz igre.
Neke od poznatijih igara napravljenih u C++ osim onih ve nabrojanih:

Warcraft series
Darksiders & Darksiders II
Need for Speed: Most Wanted
League of Legends
Smite
The Sims series
Grand Theft Auto series
The Elder Scrolls V: Skyrim
Mass Effect series

1Programmed Data Processor-1 raunalo poznato po poetku hakerske hulture te zbog


prve igre Spacewar!

Seminarski: Izrada Igrice u C++ Jeziku


3. Poetak
Nije se svaka igra zapoeta sa nekom odreenom idejom na umu. Neke igrice kreu
jednostavno bacanjem ideja jednu na drugu tjekom razvoja dok se ne pronae ono to
funkcionira. Primjer toga bi bila igrica The Sims. Ona je zapoela kao hrpa ideja nabacana
u jednu igru. Neke od njih su bile bolje, a neke gore. Kada se je pronalo ono zabavno unutar
te igre, to je zadrano, i krenula je daljna produkcija.
Ipak, ovakav pristup nee nuno davati pozitivne rezultate. Ponekad je najbolje dobro
razraditi ideju i odluiti to elimo od svoje igre. Da li bismo htijeli igru koja bi bila zabavna
nama osobno i mogue uoj publici, ili bismo htijeli igru koja e zadovoljiti iru publiku? Da
li je igra namjenjena hardcore1 ili casual2 igraima? Hoe li igra biti primjerena za sve dobi i
uzraste, ili se unutar igre nalazi mnogo neprimjerenih sadraja za mlau publiku.
Takoer je vano znati anr igre koju elimo.
Postojei enrisu:

Akcija
Akcija-avantura
Avantura
Role-playing
Simulacija
Strategija
Sport
Kartake

Svaki od navedenog se djeli na svoje podanre. Danas neki od najpopularnijih su MOBA


(Multiplayer online battle arena), FPS (First person shooter), MMORPG (Massive
multiplayer online role-playing game) i RTS (Real-time strategy).

1Netko tko ulae veliki dio dana u igre


2Netko tko ulae mali dio dana u igre

Seminarski: Izrada Igrice u C++ Jeziku


4. Programiranje
Nakon to smo odluili kako elimo da nam igra izgleda kree se na programiranje. Ovo je
naj tei i naj dui proces, te se odvija sve do samog izlaska igre na trite. Ukoliko je igra
koju radimo iznimno jednostavna, moemo ju raditi kao isti kod koji se odvija polulinearno, ovisno o korisnikovom unosu.
Ovakvih igara je vrlo malo, te nisu najprivlanije publici. Popularne igre obino imaju The
Game Loop koji se odvije cijelo vrijeme. Poto proccesor ne moe u jednom trenutku raditi
na vie od jednog procesa, a u jednoj igri se moe odvijati po pedeset razliitih stvari u
jednom momentu, potrebna nam je ova petlja. Ona se neprestano izvrava, te tako u jednom
vremenu on procesor obavlja samo jednu funkciju koja traje kratko vrijeme, te daje igrau
osjeaj da se odvija vie stvari od jednom.
U dananje vrijeme se takoer vrlo esto koristi RNG 1. Pomou njega u igru moemo uvesti
neki element nesigurnosti i sree. Primjerice, moemo zadati da on generiar bilo koj broj
izmeu od 1 do 4, ukljuujui i njih, te ovisno o tom broju postavi se kakvo e biti vrijeme. 1
bi na primjer bilo sunano vrijeme, 2 oblano, 3 kino, 4 oluja. Nisu svi RNG isti,neki su
bolji, ili nasuminiji, od drugih, ali niti jedan od njih nije potpno nasumian zato to raunalo
ne poznaje takvu stvar. Sve se odvija po odreenom algoritmu koji moe davati bolje ili gore
rezultate, ovisno o njegovoj sloenosti. Jedan od naina stvaranja pravog totalno nasuminog
RNG-a je prikljuivanje Geigerovog brojaa na radioaktivni element i na raunalo, te kako je
radioaktivno truljenje (navodno) nasumino, dobiva se neki nasumini broj na raunalu. Ovaj
pristup ipak nije dobro rijeenje zbog vie rezloga, stoga nas zadovoljavaju i pseudo-RNG-i.
Ovdje dolazimo i do prednosti C++-a nad ostalim programskim jezicima, a to je OOP 2. Osim
to C++ obino ima manje koda za istu funkciju u odnosu na druge programske jezike, on
doputa i stvaranje klasa i objekata. Svakoj klasi moemo dati neke njezine atribute, i tono
odrediti tko moe pristupiti emu u toj klasi. Nakon toga se iz nje moe izvesti objekt. On je
preslike klase, te njegovi atributi tada mogu poprimiti neku vrijednost, i iz jedne klase se
moe izvui beskonaan broj objekata. Primjerice iz klase Enemy moemo izvui objekt Bat
sa nekom vrijednou 23 u sebi, objekt Wolf sa vrijednou 9, te objekt Horse sa svrijednou
74. Ova tri objekta su neovisna jedan o drugome makar su proizali iz iste kalse.
Sve pokriveno do ovoga dijela takoer se zove i Pre-alpha faza.

1 Random number generator


2 Object-oriented programming

Seminarski: Izrada Igrice u C++ Jeziku

5. Faze Testiranja
Osim navedene Pre-alpha faze testiranja postoji nekoliko ostalih faza.

5.1. Alpha tesitanje


Ovo je prva faza testiranja u koju igra dolazi. Ona se odvija rano dok igra jo nije napravljena
do kraja te ima vrlo ogranien broj stvari koje se u njoj mogu raditi. Tjekom ove faze igra se
testira na sve naj kritinije aspekte. Tehnike koje se koriste su White-box, Black-box i
Gray-box
White-box tehnika je provjera same strukture koda i analiza na izlazima. Da li vrijednost na
izlazu odgovara u ovisnosti s formulom onome to je na ulazu. Po samome source-code-u se
trai to bi moglo prouzroiti probleme u budunosti, te to ih prouzroava trenutano. Ova
razina testiranja je vrlo komplicirana te zahtijeva programera da ju izvrava zbog potrebe
snalaenja unutar koda.
Black-box tehnika je provjera da li sve radi kako bi trebalo unutar igre. Ona se ne zamara
kodom nego trai mogue greke u igri. Testeru se da to bi se trebalo dogoditi nakon koje
akcije, te on ne mora znati zato ili kako se to dogaa. Njegov cilj je provjeriti samo dogaa li
se to.
Gray-box tehnika je kombinacija White-box i Black-box tehnike. Za nju je potrebno znati se
snalaziti unutar koda, te pronai gdije se greka dogaa unutar njega, dok se na nju mora
naii unutar same igre kao kod Black-box testiranja. Gray-box tester mora imati dostupnu
dokumentaciju untranje strukture podataka te algoritmima koji su koriteni.

Seminarski: Izrada Igrice u C++ Jeziku


5.2. Beta testiranje
Beta faza testiranje kree nakon to su se sve planirane mogunosti igre napravile. Ovakav
proizvod jo nije spreman za komercijalizaciju zbog mnogih bug-ova, nestabilnosti, i
problema u brzini te koritenju resursa, te moe doi do ruenja programa i gubitka podataka.
Beta testiranje se obino provodi u jednoj od dvije, a ponekad i u obadvije verzije:

Open beta
Closed beta

Open beta je otvorena svima i svatko tko hoe moe preuzeti igru i testirati ju. U ovakvoj
vrsti testiranja proizvoai obino od testera trae prijave o bug-ovima na koje su naili, te
trae njihovo miljenje o tome kako kako bi igru mogli unaprijediti.
Closed beta je dostupna samo odreenim korisnicima, i obino se odluuje putem RNG-a koji
nekada takoer uzima u obzir registrirane proizvode od strane proizvoaa na e-mail
korisnika.
Open beta je korisna jo i u svrhu testiranja stabilnosti servera ukoliko je pitanje o online igri,
te vie ljudi znai vea mogunost pronalaska greke.
Closed beta je dobra zato to ako neki popularni proizvoa radi neku novu igru, ne moraju
kupovati nove, jae servere, nego se mogu ograniiti na onoliko koliko ih trenutno imaju da
smanje trokove, te ovisno o prijavama za beta klju, mogu pripremiti servere kada e se igra
pustiti u javnost.
Beta testeri obino igru dobivaju po snienoj cijeni kada se zavri, ili je dobiju besplatno.
Indie developeri 1su u zadnje vrijeme poeli zvati beta testiranje Early Access te naplauju,
ali po snienoj cijeni. To im omoguuje da se fininciraju tijekom proizvodnje, te da projekt
postane stvarnost.

1 Indie Developer Independent Developer, proizvoa koj iza sebe ima vrlo mali ili uope
nema tim, te nije dio nikakve velike tvrtke.

Seminarski: Izrada Igrice u C++ Jeziku


6. Putanje u javnost
Nakon to su zavrile sve faze testiranje proizvod je napokon spreman za komercijalizaciju.
Prije samog slanja u trgovine obino se daju besplatno velikim kuama za preglede koje daju
svoje miljenje o igri te ju ocjene. Ovisno o ocjeni vei broj ljudi bi se mogao zainteresirati i
kupiti igru, ali naravno, ocjena ne mora nuno biti pozitivna. Neki e igru prihvatiti bolje,
neki gore. To sve ovisi o osobnim preferencijama i izvan nae kontrole je ukoliko nismo
ciljali na iroku publiku od samoga poetka.
Igra e vjerovatno unutar sebe imati jo nekoliko bug-ova koji se nisu detektirali pri svim
fazama testiranje. Zbog njih se igra nastavi odravati kroz besplatne zakrpe.

Seminarski: Izrada Igrice u C++ Jeziku


Literatura
http://computer.howstuffworks.com/question697.htm
http://www.successful-quality-assurance.com/types-of-software-testing.html
http://research.microsoft.com/en-us/um/people/gbell/Digital/timeline/pdp-1story.htm
http://www.wheels.org/spacewar/creative/SpacewarOrigin.html
http://istqbexamcertification.com/what-are-the-software-development-life-cycle-sdlc-phases/

10

You might also like