» »

Razpored opravil v igrah

Razpored opravil v igrah

SodVina ::

Pozdravljeni,
Sam niti ne vem, kam naj bi tole pasalo, vendar dvomim da v oddelek igre, ceprav se neposredno nanasa na njih. Verjetno tudi ne pase v programiranje, ker je stvar bolj raziskovalne narave. Prosim ce moderator temo premakne, kamor se mu zdi najbolj primerno.

Torej zanima me, kje bi nasel kaj o tem, kako se "real-time" razporejajo resursi v igrah. Npr. toliko rama in diska gre za teksture, toliko % in taksni resursi/interrupti grejo za cakanje na komando uporabnika itd.Torej na kaksen nacin igro interpretira racunalnik in razdrobi na fragmente, da vse nekako dela sinhrono? Stric google ne najde nic pametnega, res pa je da niti ne vem, kaj oz. kako bi to iskal.

thx

Gundolf ::

Vse je odvisno od posamezne igre. Ni pa tako kot si predstavljaš. Večino stvari se ne razporeja real-time ampak takoj ko se zažene igro oz. ko se začne nov nivo ali kaj posobnega.

Morda boš kaj koristnega našel na Gamasutri. Drugače pa mislim da bi se našel kdo na tem forumu, ki sodeluje pri izdelavi iger, tako da si temo kar pravilno umestil.

Vesoljc ::

loop:
update timer
for all objects
    update(float dt)
    render
goto loop


dt je time delta, ki je pretekel od zadnjega update-a pa do zdajšnjega. če pač hočeš, da se stvari odvijajo "kao" v real time-u, moraš vse objekte osveževati po času.

resoursi znajo biti pa tricky stvar. ponavadi je to reseno z raznimi prioritetami. naprimer zvok avta ima večjo prioriteto, kot pa zvok pticev v gozdu. če pač tisti trenutek ni dovolj rama, ptičev ne boš slišal/videl.
Abnormal behavior of abnormal brain makes me normal...

SodVina ::

Hvala, samo jaz bi potreboval kaksen clanek oz. kaj daljsega, kar bi lahko uporabil v raziskovalni nalogi. Stvari ne mislim programirat.

OwcA ::

Poglej si kodo kakšne Open Source igre.
Otroška radovednost - gonilo napredka.

user4683 ::

OMG, zdej akademiki delajo znanost že iz tega :)
Težko boš našel kakšno primerno free igro, ki bi bila dovoljšne kompleksnosti, da bi se avtorji podrobneje ubadali s tem, kar te zanima. Mogoče v q2 izvorni kodi, kar močno dvomim. Če počakaš še malo, boš v q3 izvorni kodi morda našel kaj (tudi to nisem 100%, da bo kaj uporabnega).

Prav tako je (kar se tekstur tiče) zelo težko (no, ni nemogoče!) vedeti koliko zasedejo (zaradi različnih kompresij) oz. kje bo tekstura sploh končala (na VRAMu, AGPju, RAMu ali najbolj neidealno na disku na swapu), ker za to povečini skrbijo gonilniki grafične.

Kar se tiče urejanja drugih resourcov (spet povezanih z grafičnim delom igre) je zadnje čase tudi zanimiv pristop, da na VRAMu (isto velja za RAM) alociraš določeno velikost pomnilnika --> različnih velikosti (nekaj kosov po 4kB, nekaj po 16k, 32k, 64k, 128k). In potem ko dobiš podatke, da jih pošlješ grafični (torej v VRAM), jih glede na velikost podatkov zadegaš v režo določene velikosti.
Hkrati z vsem tem pa tudi vodiš evidenco porabe teh rež (slots) in če vidiš, da se nekatera ne rabi preveč (morda je to le nekaj sekund, recimo da si v manj kompleksni sceni ali kaj podobnega), združiš nekaj teh rež v kakšno večjo, ali obratno, razdeliš večjo na več manjših (odvisno od potreb). To teče vzporedno z glavnim threadom in se izvaja po potrebi.
Kaj več o tej pogruntavščini dobiš na tem linku:
http://www.gamedev.net/community/forums...

Kaj več trenutno nimam povedat (ni časa).
Mogoče bi lahko kdo drug še kaj napisal o streamingu podatkov (mislim da v GTA3). Ko se podatki neodvisno od glavne niti postopoma nalagajo, tako da je tistih LOADING.... scen čim manj.
malce poguglaj o "world streaming" zraven pa dodaj še GTA3. Morda tale pdf pride prav (nisem bral, ampak pomoje se kaj najde tudi na to temo) http://www.cs.ubc.ca/~krasic/cpsc538a/p...

Kaj bolj specifičnega o kakšnih % pa ne bi vedel, ker je zelo veliko faktorjev odvisnih od tega (od same scene, delovanja igre, pa v končni fazi posameznih gonilnikov).

[edited] pozabil dat link za "sliding slot"

Zgodovina sprememb…

  • spremenil: user4683 ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Microsoft Windows AntiSpyware Beta1

Oddelek: Operacijski sistemi
374650 (2599) Myth
»

Quake3 ter GTA:ViceCity v raytracing tehnologiji?

Oddelek: Novice / Grafične kartice
181954 (1954) nsignific
»

Quake1 : Tenebrae

Oddelek: Igre
211349 (1031) R33D3M33R
»

Detonator 40.41 XP drivers

Oddelek: Strojna oprema
452163 (1105) PassTrough
»

Renderiranje filmov v realnem času?

Oddelek: Zvok in slika
121315 (962) CaqKa

Več podobnih tem