Kolokvij vprasanja Flashcards

To kaj je reko na predavanju da rad da not

1
Q

Razlika med game engine in igralnim pohodom (framework)

A

Oba imata podobno nabor knjiznic, framework ima pomagalna orodja ki zadostujejo za izdelavo racunalniskih iger, uporabimo takrat kadar zelimo imeti popoln nadzor nad kodo in ali drugace napisati dele fw.

Game engina pa uporablja orodja kot ogordja, ima vsaj 1 vizualni urejevalnik za scene in vsaj 1 level editor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Kako bi nacrtoval igro sah

A

Dinamika: igra za 2 igralca, s svojimi figurami premagati nasprotnika, nacrtovanje posameznih figur. igralca se izmenjujeta v potezah.
Cilj je premagati nsprotnika z matiranjem njegovega kralja.

Mehanika: konec igre, zacetek igre, posebne poteze, premik za vsako figuro. izenacenje…

Elementi: cas, st poteze, sahovnica, prikaz odigranih potez

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

kaj je delta time in zakaj je pomemben

A

Delta time je cas ki pretece med dvema izrisoma, pomemben je saj so casovno odvisne akcije(spawn, gibanje, trajanje powerupa) neodvisne od zmogljivosti strojne opreme oz hitrosti osvezevanja

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Napisi glavno zanko igre

A

While {
handleInput;
update(deltatime);
render;
}

v update se izvede vsi premiki objektov, nastavijo se timerji itd..

V render pa se izrisujejo texture, particlsi itd…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Kaj se dogaja v svetu simulacij v igri soccer 2023

A

igra uporablja realisticne fizikalne zakone, AI upravlja nasprotnikovo ekipo, interkacije med igralci zogo in okoljem.

AI upravlja Igralce, kateri imajo razlicne lastnosti kot je vzdrzljivost, hitrost, in natancnost. tudi zoga sledi fizikalnim lastnostim kot je fels, izguba hitrosti odboji in pospeski.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Kako bi implementiral slow motion

A

delta time / 2
ali

delta time = speedtransformation.SlowMotion(getDeltaTIme()) // ni prav samo primer alternative

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Smer hitrosti je podana kot vektor dx,dy, izracunaj kot

A

dy/dx = |v|sin(α) / |v|cos(α) = tan(α)
α =arcTan(dy/dx) -> [-90, 90]
dx>0 ∧ dy >0 -> α =arcTan(dy/dx)
dx<0 -> α =180+arcTan(dy/dx)
dx>0 ∧ dy <0 -> α =360+arcTan(dy/dx)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hitrost podana s kotom in hitrostja

A

dx = 10px/scos(45)1s = 7.07px
dy = 10px/ssin(45)1s = 7.07px
x’ = x+dx=1px+7.07px=8.07px
y’ = y+dy=1px+7.07px=8.07px

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Kako bi naj enostavneje implementiral odboj s kotom in hitrostjo

A

levo in desno = 180 - alfa

gor in dol = 360 - alfa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Odboj s podanim vektorjem

A

levo desno dx = -dx

gor in dol dy = -dy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Kako pohitriti zaznavo trkov?

A

S tem da polygon pretvorimo v rectangle.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Kaj je Fragmentaija

A

tezava ki jo povzroca neucinkovito dodeljevanje in sproscanje pomnilnika (Bloki)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Pooling - resitev fragmentacije

A

namesto da vedno znova ustvarjamo in brisemo objekte (alokacija in delokacija pomnilmnika), imamo fiksno velik bazen (pool), iz katerega vzamemo po potrebo in vracamo objekte

Resuje tudi problem pocasne alokacije in delokacije pomnilnika pri OO

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

za katere stvari bi upoarbil pooling in slabost

A

Primeri uporabe poolinga so:
- neskocno veliko ovir, ki se pojavljajo in zginjajo
-razlicni metki
-zvocni ufekti
-particli

Slabost je da izvajanje ni nujno hitrejse kot v priemeru ustvarjanja in brisanja, Optimiziranje tega je lahko otezeno.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Kako dejansko impl pooling?

A

seznam pool <template>, osnovne funkc so:
FreeObject, obtainObject, freeCount, clear.</template>

Dobra praska je da je velikost bazena omejena na velikost, ki jo dolocimo v fazi optimizacije igre.

Enako: Koraki pouporabe objektov (5 korakov)
1 Objekt implementira poolable
2reset metoda se klice ob vracanju objekta v pool
3 pool.obrain vrne prost objekt iz pomnilnika
4. pool.free vrne objekt v pomnilnik
5 pool .fill vnaprej rezervira pomnilnik.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Mere sveta -> kako bi definiral igro SVET bakterij

A

vzel bi za enoto 1 bakterijo, nato pa naredil 2d prostor kjer se kreira velikost 20x20 enot

17
Q

Razlicne kamere

A

Kamera omogoca predstaviti KAJ vidimo,

Uporabljamo Perspektivno kamero, kjer so oddaljeni objekti manjsi,

Ortogonalno kamero, kjer so objekti iste velikosti, vendar uporabljamo z order

18
Q

Viewport

A

doloci kako bomo videli svet (rzmerje med sirino in visino slike) oz aspect ratio

Prilazuje del sveta (sceno), in resuje problem razmerij in locljivosti

Vrste pogledov so strecth,m fill, fit, screen, extend

Najpgoostejsi je fit, kateri obdrzi aspect ratio, lahko pa se pojavijo borderji.

19
Q

Sprite batch, paketni izris (nimam zapisano ampak zgleda pomembno)

A

sprite batch je proces, kiz druzi vec nalog v en skupen ukaz on paket ukazov ki se izvede naenkrat.

tako ne dobimo bottlenecka med komunikacijo med gpu in cpu (npr izris 10000 objektov)

morajo biti med begin in end

20
Q

Kaj vse lahko debugiramo?

A

izris mreze(grid),
Elementi v skatle(npr objekte v svoje skatle),
Loggiranje upoarbniku skritih stvari,
pomozna debug kamera ki je namenjena razkritju nevidnih napak v sceni,
in pa s pomocjo klasicnega debugerja

21
Q

Kako se uporabljajo kamere pri debug

A

kamero lahko premaknemo ven iz scene v kateri je uporabnik in preverimo ali se vredu spawnajo objekti, ali jih vredu cistimo in ali je vse v svojih boundsih. premik je lahko levo, desno, gor, dol, zoom in, zoom out.

22
Q

Kako delujejo sistemi delcev

A

vsebujejo nakljucno gibanje (naravni pojavi (ogenj, dim), explozije), generiramo delce, ki so predstavljeni s pomocjo slike, ta se izrisuje z lastnosti definiranimi v .p datoteki, vsak delec ima hitrost, cas, barve, velikost.

lahko se skalirajo, zmanjasjo itd

23
Q

Kako implementiramo sistem delcev

A

s pmocjo sistema za izdelovanje delcev, nato njegovo datoteko shranimo v nas projekt, V projektu uporabimo particleEffect za definicojo nasega delca, tako ga lahko klicemo v vecjh delih nase kode, kjer zelimo da se delec konca, ponovno izrise ali predvaja.

za rocket impl:
pe.setPosition(rocket.x, rocket.y)

24
Q

Kako dobimo efekt zarjenja?

A

ko se en cas transparentne teksture izrisuejo eno ces drugo, intenziteta svetlosti pa se sesteva. torej ucinek prekrivanja s uporabo blending mode

25
Q

ECS entitete, kompontente, sistemi

A

Entitete: predstavljajo objekte v igri, entitete same ne vsebujejo logike ampak se povezujejo s komponentami

Komponmente:
Vsebujejo podatke o lastnostih entitet (polozaj, bounds, z order….)
Sistemi
implementirajo logiko igre, npr entity factory, GoblinSpawn, Sound, MovementSystem.

26
Q

Star ecs

A

Entitete - objekte v igri kot so ladje, planeti in igralci

Komponente - position component, velocitzComponent, ResourceComponent…

Sistemi - MovementSystem, CombatSystem…