játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5463
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2524

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2192
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] > 9 < [10] [15] [16]
gopher - Törzstag | 496 hsz       Online status #162338   2011.09.02 17:08 GMT+1 óra  
@ddbwo: a különböző process eljárások meghívását hogyan oldod meg egy sima for-ral?
   
ddbwo - Tag | 1654 hsz       Online status #162337   2011.09.02 17:07 GMT+1 óra  
@Pretender:
Akkor visszatértünk a gyökerekhez, beigazolódott, hogy bárki tud programozni minden suli nélkül azonnal. A pár hónapot más mondta, sziget editorom meg már van, és if - es pongom is van egy jó ideje.
Ha az összes megoldásomat elolvasod mindenhonnan, szerintem meg simán kiderül, hogy bármit összerakok ha olyanom támadna.

@Zeller:
Ez csak egy másik megoldás. Nálam is vannak struktúrák, meg írhatok class-okat is, de a megöröklött metódusok if-eket takarnak, ha hatások alapján vagy idő alapján reagálnak valamire.

@gopher
A struktúrák öröklött metódusait én is for-al bonyolítom le az egységek száma alapján. Az sem stájsz.

Az if nincs elkerülve. Ott vannak a metódusokban...
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
gopher - Törzstag | 496 hsz       Online status #162336   2011.09.02 17:00 GMT+1 óra  
Az OOP-t (és azon belül a polimorfizmust) nem csak az if-ek elkerülésére használjuk.

Ezt inkább nézzük úgy, hogy van Entity, abból van Entity_Zombie és Entity_Bat. Mind a kettőnek van "process" metódusa. És van egy listánk is: list<Entity*>. Minden entitás process-szét meg akarjuk hívni:

Kód:
for (i = list.begin(); i != list.end(); i++) (*i)->process()


Jóval átláthatóbb, mintha lenne mind ezekre struktúránk, és azokhoz tartozó process eljárások:

Kód:
EntityZombie z;
EntityBat b;

for (i = 0; i < count; i++)
{
    Entity e = list[i];
   
    switch (e.type) {
         ENTITY_ZOMBIE:
              z = (EntityZombie)e;
              EntityZombieProcess(z);
              break;
         ENTITY_BAT:
              b = (EntityBat)e;
              EntityBatProcess(b);             
              break;
    }
}


A count meghatározásáról, meg arról, hogy mivan, ha új típusú entitást teszünk be, ne is beszéljünk
   
zeller - Törzstag | 480 hsz       Online status #162335   2011.09.02 16:44 GMT+1 óra  
ddbwo:
polimorfizmus, a teljesseg igenye nelkul.
if(kolbasz)
doKolbaszThings();
if(szalami)
doSzalamiThings();

Helyett:

class HentesAru {
public:
virtual void doThings() = 0;
}

class Szalami : public HentesAru {
public:
void doThings(){...}
}

class Szalami : public HentesAru {
public:
void doThings(){...}
}

...
HentesAru *bigyo = new Szalami();
bigyo->doThings();

vagy

HentesAru *bigyo2 = new Kolbasz();
bigyo2->doThings();

ugyanott vagyok. If nelkul.
Bar lehet, hogy a falnak beszelek...

btw, hogy lehet 'kod' formazassal idetenni ezt?

   
Pretender - Törzstag | 2498 hsz       Online status #162334   2011.09.02 16:39 GMT+1 óra  
oké, nem is tudom mit erőlködök Még mindig a szokásos jut eszembe: "A hülyének úgysem tudod megmagyarázni, hogy hülye, mert hülye."
Oké, te így gondolod, akkor lássuk a nagy programokat (főleg, hogy pár hónapos munkára beígértél egy crysis-t), "if-"et írni egy 10 éves is tud

   
ddbwo - Tag | 1654 hsz       Online status #162331   2011.09.02 16:17 GMT+1 óra  
Nemhogy csak egy része, de elhagyhatatlan része. If nélkül maga a program dinamikus jellege nem lenne meg. Csak lefutna magában és nem lehetne beleszólni a dolgokba. De minden érdemi metódus is if-ekből épül fel. Az algoritmusok menetét meg maguk az előtte ellenőrzött feltételek módosítják.

Persze attól még minden más is része a programnak, de átvitt értelemen egy stóc if-ből áll az érdemi rész.
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Pretender - Törzstag | 2498 hsz       Online status #162329   2011.09.02 16:01 GMT+1 óra  
Jó, de én magáról a technikáról beszéltem... addig oké, hogy iffel lehet csekkolni dolgokat, de attól még nem lesz neked shadered, ilyen-olyan rendszered... az if is a része, ennyi, de az csak egy darab logikai művelet a sok közül...

   
ddbwo - Tag | 1654 hsz       Online status #162327   2011.09.02 15:45 GMT+1 óra  
@Pretender:

if (deferred_shading)
{
deferred_shading_m();
}

Na ugye?

Hát pedig csak pár if, azt kész a progi.

A deferred shading-ből sem lesz A.I. vagy fizika. Az egy elhagyható oldalág, sőt, zsákutca a teljes program szempontjából, ami a számolgatások után meg is szűnik.
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Asylum - Törzstag | 5463 hsz       Online status #162325   2011.09.02 15:26 GMT+1 óra  
Ha már stream processzor: ott nincsenek bitmüveletek.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #162324   2011.09.02 15:22 GMT+1 óra  
szerintem magával a felvetéssel van baj, h programozás = if/else. Hiába írogatnék egy rakat feltételt, abból még nem lesz deferred shading

   
Akybron - Törzstag | 456 hsz       Online status #162323   2011.09.02 15:15 GMT+1 óra  
Vannak rendszerek, ahol költséges az IF (pl. Messze kell ugrani, PipeLine-t újra kell tölteni, cache-en kívülre esik, stb), esetleg nem is létezik (pl. Régebbi shader nyelvek, bizonyos DSP-k). Ilyen esetben másképp kell megoldani.

Olvasnivaló:

Bit Twiddling Hacks
   
zeller - Törzstag | 480 hsz       Online status #162321   2011.09.02 15:01 GMT+1 óra  
az a >2 kivalthato lenne state-tel, csak eppen semmi ertelme nem lenne.

A patternek es az oo az atlathatosag es nem a teljesitmeny kedveert vannak.

c#-ba meg ne programozz c++-ban is van polimorfizmus.

   
borsi - Tag | 180 hsz       Online status #162320   2011.09.02 14:48 GMT+1 óra  
Rossz példát hoztam, és lehet, hogy amúgy sincs igazam. Még bev.progról annyi megmaradt a témában, hogy kerüljük a feltételes elágazásokat, mert meglehetősen költségesek főleg egy stream processzoron (GPU).

   
ddbwo - Tag | 1654 hsz       Online status #162319   2011.09.02 14:35 GMT+1 óra  
De ezen a címen semmi nincs. A problémájuk egy sima tömbbel kiváltható. De hülyeség a feladatjuk.

char betuk[101] (feltételezem az A-t elírta, különben ütközne az F-el)
először a betűket a tömbbe vázolják a megfelelő szám alapján. Ezek a lehetséges variációk.
amikor a szám, amire meg akarják kapni a betűjüket például 45, hívásnál a kövi jöhet ki:

char fokozat = betuk[45]

Vagyis a szabály alapján a kérdezet fokozat egyből 'F' lesz így. De ezt előtte be kéne írni minden lehetséges változatra, és azt sem tudom, hogy lehet-e kisebb nullánál. (már a lekérdezendő számuk)

if helyettesítő-nek jó, amennyiben ismertek a lehetséges változatok és számokról van szó.

// két dolog javítva, alszok még xd
+ najó, magnézium pótlás kell
+ ok, rájöttem, százalékot számolnak, abban nincs kevesebb 0-nál
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Asylum - Törzstag | 5463 hsz       Online status #162318   2011.09.02 13:50 GMT+1 óra  
Másold már be azt a sort a linkedböl ami teljesítményben jobb mint az if...
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
borsi - Tag | 180 hsz       Online status #162316   2011.09.02 13:43 GMT+1 óra  
Ezt így nem lehet kiváltani, de nem is életszerű a példa. Viszont sokszor van, hogy egy if/else kiváltható többé-kevésbé komplex matekkal. Az átláthatóságnak nem tesz jót, viszont a teljesítménynek igen.
Egy példa: http://www.bleepingcomputer.com/forums/topic375886.html

   
ddbwo - Tag | 1654 hsz       Online status #162315   2011.09.02 13:40 GMT+1 óra  
Hát nem is tudom, a példák mindig metódusokban dolgoznak már, aztán visszalapozva pár oldalt meg kiderül, hogy a metódus sok-sok if - et takar.

Ha már megvannak a logiai dolgok, amiket csak le kéne ellenőrizni, van rá mód hogy csak egy if legyen. Múltkor épp ezt találtam ki.

Ha minden dolognak kell teljesülni... és és és alapján, ha a szorzat 0, valami nincs meg. Ha nagyobb, minden feltétel adott.
and_thing = 1*1*128*1*1*1*0*1*0*5*1.14*0*12*1*16*1*33*0 (= 0)

Ha vagy vagy vagy, elég az egyik feltétel, összeadásnál kiderül. Amennyiben bármelyik van, az összeg nagyobb, mint 0.
or_thing = 0+0+0+0+0+1+0+48+0+0+0+0+0+0 (= 49)

Ezzel ki lehet váltani az újboli if-ezést, de először mindenképpen ki kell számolni valami alapján a mért dolgokat, kivéve ha olyan tulajdonságok, amik amúgy is változnak logic step-enként. Ezeket újra lehet összegezni vagy szorozni, több lépcsőben is a végére kiderülhet amit akarunk.
Szép kis logic metódusok lehetnek belőle. De fogalmam sincs hogy számít-e.

De ezt is csekkolni kell a legvégén if el, és ott is csak egy bool jön ki.
A Half-Life 2: Deathmatch promóció megszűnt! [B¤°
Kezdetben volék az üresség. Ám akkor a Struktúrfüggöny megteremté az Urat.
DrunkenDragon* Blackwolf
   
Asylum - Törzstag | 5463 hsz       Online status #162313   2011.09.02 13:21 GMT+1 óra  
Ha ezt kiváltod nekem polimorfizmussal akkor elkezdek c#-ben programozni:

Kód:
if( a > 2 )
{
    // blabla
}
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 480 hsz       Online status #162308   2011.09.02 12:40 GMT+1 óra  
napokkal ezelott volt szo arrol, hogy a programozas == if-else.

Ehhez annyi jutott eszembe, hogy a felteteles elagazasok kivalthatoak
polimorfizmussal
state vagy strategy patternnel.
Mar ha eppen megeri.

Hatha valakinek ujat mondtam...

   
TomX - Törzstag | 223 hsz       Online status #152271   2011.05.19 15:34 GMT+1 óra  
Én még mindig 24 FPS párti vagyok. Ha ennél nagyobb folyamatosság kell, ott a motion blur.
   
gopher - Törzstag | 496 hsz       Online status #152269   2011.05.19 15:02 GMT+1 óra  
Az azért van, mert fix framerate-es a játék (jelenleg 77 FPS-en kéne mennie). Tudom-tudom sz.r, gány, blöáh, de most evvan

Ha Intel GMA-n futtatod a cuccot, akkor a be kell állítani az OpenGL driver-ét, hogy fullscreen-en se legyen vsync, nem veszi figyelembe az SDL beállításokat Ez miatt lehet átírom az egészet fix 60 FPS-re, hogy ezzel se legyen gond.

Szerk: Fix 50 lett, így most ablakos módban nem idegesítő a "tearing".

Ezt a hozzászólást gopher módosította (2011.05.19 19:45 GMT+1 óra, ---)
   
fpeti - Törzstag | 1294 hsz       Online status #152078   2011.05.16 01:03 GMT+1 óra  
Megnéztem az fps értékeket, nálam 1024x768-ban atom stabilan 75 fps volt 1280x1024-en pedig 60. De 640x480-on is csak 75, pedig 'screen_vsync = 0' beállítottam a config.ini-ben.
Mintha a játék is lassulna kisebb fps esetén, ez fura volt.
Szerintem elég gyors.

Idézet
Asylum :
Nem olyan szar az az intel gma, minden progim faszán fut rajta.


Néztem neten miket tudhat, annyira tényleg nem rossz, mint gondoltam:
playable games on Intel GMA 4500

Ezt a hozzászólást fpeti módosította (2011.05.16 01:51 GMT+1 óra, ---)
   
gopher - Törzstag | 496 hsz       Online status #152077   2011.05.15 23:59 GMT+1 óra  
Kipróbáltam: Soldier of Fortune mégsem fut normálisan, de az valami más lehet (hiába állítgatom a felbontásokat, minőséget), viszont a Halo (1), teljesen rendben fut, még 1600x900-on is (nagyjából).

A gond ott van (szerintem), hogy glColor/glTexCoord/glVertex-hez lett igazítva a kód, így jelenleg egy vertex adatot többször is átadok feleslegesen (az már csak hab a tortán, hogy olyat is kirajzolok, ami takarásban van). Szóval ez ilyen gány na Ahhoz pedig, hogy ne legyen az, eléggé hozzá kéne nyúlni, és igazából így is megfelel, a legtöbb gépen elfog futni (tegye fel a kezét, akinek mondjuk van PIII-asa és használja is). Szóval annyit nem ér meg, hogy tovább forszírozzam.

Ettől függetlenül, mindenkinek kösz a tanácsokat, a legközelebbi OpenGL-es projektnél már nem fogok használni ilyen ősrégi dolgokat ígérem

Szerk: azért jár rajta az agyam, de előbb inkább legyen meg az öt pálya fullosan, aztán ha lesz rá igény, még optimalizálok rajta.

Ezt a hozzászólást gopher módosította (2011.05.16 00:13 GMT+1 óra, ---)
   
Asylum - Törzstag | 5463 hsz       Online status #152074   2011.05.15 22:55 GMT+1 óra  
Nem olyan szar az az intel gma, minden progim faszán fut rajta.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
fpeti - Törzstag | 1294 hsz       Online status #152073   2011.05.15 22:07 GMT+1 óra  
Nem is a poligonszámmal van a baj, inkább a fillrate (kirajzolt pixelek száma) lehet a ludas. Esetleg ha nagyon sok a drawcall, de 500 alatt nem érdemes foglalkozni vele. Sajnos az Intel gma-k nem arról híresek, hogy gyorsan rajzolnának a képernyőre (ha megnézed a neten, kb pong-ra tartják alkalmasnak kis túlzással a 4500-asat, pedig dx10-es kari - elvileg). Azaz felbontásfüggő a gépeden a sebesség - ahogy mondtad is, sokkal gyorsabb 1024x768-on, a 3szögek száma gondolom közben nem csökken.

Ahogy emlékszem a játékra, nem volt ott túl sok képernyő újraírás, a látótávolság nem túl nagy és elég messze vannak egymástól a falak, hogy ne irkálják többször újra a pixeleket. Szóval túl sokat nem lehet ezen javítani. (ha tényleg ettől van)

Annyit esetleg még megpróbálhatnál, ha még nincs, hogy a előröl hátrafelé rajzolsz (legközelebbi fallal kezdeni), akkor az ' early-z-test' még dobhat rajta valamit.
   
gopher - Törzstag | 496 hsz       Online status #152072   2011.05.15 21:20 GMT+1 óra  
Amúgy, majd neki fogok szerintem állni, mert lett végre egy full HD-s monitorom, és csak mozgatja a fantáziám, hogy menjen ezen is rendesen (és az X4500-as integrált videó nem kifogás, mert pl. Soldier of Fortune simán megy rajta, és abban szerintem egy nézetben van annyi poligon, mint nálam az egész pálya mindenestől)
   
Parallax - Tag | 599 hsz       Online status #152070   2011.05.15 20:33 GMT+1 óra  
Idézet
gopher :
No, hát csináltam egy TileVertexArray osztályt, ennek adogattam át az infókat, majd a végén egy glDrawArrays-zal kitettem. Nem túl sok változás történt. Persze, tudom, hogy miért, mert ugyanannyi infót adok át, rengeteg a redundancia

Persze önmagában ez se csodaszer, ha 100*100-as mátrixban 10 ezerszer hívsz meg mindent. Kicsit át csoportosítod, listákba rendezed és kész.

   
gopher - Törzstag | 496 hsz       Online status #152062   2011.05.15 19:29 GMT+1 óra  
No, hát csináltam egy TileVertexArray osztályt, ennek adogattam át az infókat, majd a végén egy glDrawArrays-zal kitettem. Nem túl sok változás történt. Persze, tudom, hogy miért, mert ugyanannyi infót adok át, rengeteg a redundancia, kb. így nem is fog érni semmit. Attól félek, így kellett volna kezdeni az elején (VBA, vagy inkább VBO), akkor rögtön más lenne a struktúra is, így most a sz.nak egy pofon

Egyébként ez most annyira nem is prioritásos, csak gondoltam, hátha lehet valamit gyorsan alkotni. 1024x768-on kb. 140-170 az FPS, szóval ezzel egyelőre megelégszem, inkább csinálom a negyedik pályát, meg a negyedik ellenfelet

Seeting: hát igen. Jelenleg abszolút nincs a sorrendre figyelve. Úgy vagyok vele, majd ha valakinél lassú lesz, akkor esetleg neki állok, de addig is legyen má' kész
   
Seeting - Törzstag | 2306 hsz       Online status #152055   2011.05.15 17:10 GMT+1 óra  
Az alpha blending miatt is sokat esik altalaban ha a fixed pipeline-t hasznalod. Ugy lehet ezt megoldani, hogy irsz egy pixel shadert, ami nem csinal semmit, csak atveszi a texel szinet, es igy (ha a texel alphas, akkor ) nem ignoralodik az atlatszo pixel (ami altalaban nagyon lassit), hanem felveszi a mogotte levo pixel szinet.

Persze ennek a modszernek az a hatranya, hogy oda kell figyelned a kirajzolas sorrendjere is.
   
Parallax - Tag | 599 hsz       Online status #152052   2011.05.15 16:42 GMT+1 óra  
Idézet
gopher :
Okés, értem én Akkor megpróbálkozok ezekkel a Vertex Array-okkal.


Van egy darab vertices tömb, mert minden tile egyforma. Van n textúra index és m tile pozíció. Akkor lesz elvileg összesen egy VertexPointer, n BindTexture és m Translate-Draw hívás. Így jónak kell lennie, mégha nem VBO-zol, vagy egyéb akkor is.

   
gopher - Törzstag | 496 hsz       Online status #152049   2011.05.15 15:55 GMT+1 óra  
Okés, értem én Akkor megpróbálkozok ezekkel a Vertex Array-okkal.
   
Parallax - Tag | 599 hsz       Online status #152026   2011.05.15 12:57 GMT+1 óra  
Idézet
gopher :
glBegin és glEnd csak egy van az egész tilemap kirajzolásánál). Ez így egész jó, viszont így is van amikor 70 FPS alá megy 1920x1080-as felbontáson (Intel X4500, dehát ezt a grafikát akkor is bírnia kéne ).


Még esetleg, ha valami modernebb módszert használnál még az is segíthetne. Így most minden egyes render ciklusban fölküldöd az egész adathalmazt folyamatosan. Vannak ilyenek, hogy glVertexPointer, glDrawArrays stb.

   
Joga - Törzstag | 1791 hsz       Online status #152013   2011.05.15 11:50 GMT+1 óra  
Szerintem az is segíthetne, ha az összefüggő területű azonos textúrájú dolgokat nem bontod tile-okra, hanem egybe rajzolod ki, GL_REPEAT-tel
(ಠ ›ಠ) Stewie!

   
gopher - Törzstag | 496 hsz       Online status #152012   2011.05.15 11:45 GMT+1 óra  
Üdv mindenkinek!

Elméleti kérdésem lenne. Van nekem a Damned Cemetery projektem. Ott tile-onként rajzolom a pályát. Odáig már eljutottam, hogy "view frustum culling", illetve mostmár az összes tile egy textúrán van (csak a textúra koordinátákat használom, glBegin és glEnd csak egy van az egész tilemap kirajzolásánál). Ez így egész jó, viszont így is van amikor 70 FPS alá megy 1920x1080-as felbontáson (Intel X4500, dehát ezt a grafikát akkor is bírnia kéne ).

A kérdésem az volna, hogy hogy tudnám ezt feljebb tornászni? A lényeg az volna, hogy tényleg csak azt rajzoljam ki, amit lát a játékos, ne azt, ami a view frustum-ban van. Raycasting szerűségre gondoltam, csak fordítva, szóval egy tile oldalának két szélétől indítana egy-egy sugarat a játékos felé, és nézné, hogy metszi-e valami. Ha mindkettőnél talált metszetet másik tile-al (és az magasabb, vagy ugyanolyan magasságú), akkor nem kell kirajzolni. Más ötlet? (mielőtt neki vágok)
   
Harsh - Tag | 245 hsz       Online status #144904   2010.12.13 09:35 GMT+1 óra  
.. én ezt nem vágom.. miért érnél vissza oda ahonnan indulsz? Tudtok linkelni valamit ezzel kapcsolatban? Tudtommal az univerzumnak van egy véges kiterjedése, ami még most is folyamatosan ráadásul gyorsulva tágul a sötét energia miatt, és kész slussz passz , nem látom, hogy hogy következik az, hogy visszaérnél ugyan oda ahonnan indultál.???

szerk: az általános off-ba is jó ha kapom a linket, csak hogy ne offoljuk a prog. elméletet..

Bacce: Válaszoltam az általános topicban, a továbbiakban oda folytatni ami oda illik, innen törlöm a nem ide illő hszeket. FYI

Ezt a hozzászólást Bacce módosította (2010.12.13 10:14 GMT+1 óra, ---)

   
glezmen - Törzstag | 381 hsz       Online status #144903   2010.12.13 09:21 GMT+1 óra  
Idézet
Asylum :
Nem végtelen, mert egy idő után visszaérsz oda ahonnan indultál. Olyan mint egy gömb felülete csak 3D-ben.



ez igaz, viszont olyan hatalmas ez a 'gomb', hogy fenysebesseggel haladva is megszunne az univerzum mire korbeernel
   
bit.0x8000 - Törzstag | 574 hsz       Online status #144891   2010.12.12 20:41 GMT+1 óra  
Amúgy szerintem a "brute force" megoldások helyett érdemes valahogy csalni, de úgy, hogy a "közönségnek" ne tűnjön fel a csalás, esetleg még az egyediséghez is hozzáadjon...
   
Matzi - Szerkesztő | 2524 hsz       Online status #144890   2010.12.12 20:21 GMT+1 óra  
A WoW pályáit szerintem kézzel heggesztik javarészt, amúgy is annyit kell rajta igazgatni, meg textúrázni, hogy onnantól már majdnem mindegy, hogy mennyit simogatják.

A csillagkapunál meg nincs végtelen sok kapu. Meg amúgy is csak oda mehetsz, ahol van kapu, és ahová beenged, amit játék szintjén lehet kiegészítgetni.

Idézet
Aki járatosabb a csillagászatban, esetleg kiszámolhatná, hogy egy olyan űreszközzel, ami a mi naprendszerünkön belül "kényelmes" mozgást tesz lehetővé (néhány perc alatt elérhetőek a külső bolygók is)
A nap 8 fénypercre van tőlünk, vagyis a fénysebesség kb ez a tempó, amit te szeretnél, a legközelebbi csillag meg 4 fényévre van, ha jól tudom.

syam:
A procedurális generálás jó is, de csak tölteléknek főleg, illetve elvégezheti a munka egy részét, esetleg némi control mellett kigenerálható belőle pár alap, amit ki lehet dolgozni. Magában az algoritmus sokat nem ér, legalábbis nem érdemes berakni, hogy mostantól minden pályát magától ő generáljon.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
bit.0x8000 - Törzstag | 574 hsz       Online status #144889   2010.12.12 20:20 GMT+1 óra  
Idézet
Pretender :
Az oke, de pl. ottvan a Csillagkapu: felfedeztek ilyen-olyan eszkozoket, vannak urhajoik, a pegazus galaxisba atruccannak, stb.


Ha csak olyan galaxisba lehet menni, ahol már van valamiféle kiépített kapcsolat (féregjárat, ilyesmi)?
   
Pretender - Törzstag | 2498 hsz       Online status #144888   2010.12.12 20:11 GMT+1 óra  
Az oke, de pl. ottvan a Csillagkapu: felfedeztek ilyen-olyan eszkozoket, vannak urhajoik, a pegazus galaxisba atruccannak, stb.

syam:
ismeros-ismeros, jo kis cucc

   
bit.0x8000 - Törzstag | 574 hsz       Online status #144887   2010.12.12 20:06 GMT+1 óra  
Idézet
Pretender :
Vegulis ebben is van igazsag. Bar akar megtehetne a jatekos azt is, hogy elindul, aztan megy es megy, nem tudom hogy lehetne megallitani. Az ur ugye elmeletben - jelenlegi allaspont szerint - vegtelen viszont a jatekban nincs vegtelen szamu bolygo es csillag/nap, az meg milyen dolog mar, hogy kimegy a nagy semmibe...?


Aki járatosabb a csillagászatban, esetleg kiszámolhatná, hogy egy olyan űreszközzel, ami a mi naprendszerünkön belül "kényelmes" mozgást tesz lehetővé (néhány perc alatt elérhetőek a külső bolygók is), annak mennyi időbe tellene elérni a legközelebbi naprendszert...
   
syam - Törzstag | 1491 hsz       Online status #144886   2010.12.12 20:01 GMT+1 óra  
Asylum - Törzstag | 5463 hsz       Online status #144884   2010.12.12 19:46 GMT+1 óra  
Szerintem a wow is valami hasonlo modszert használ. Legenerálják a terraint, aztán kézzel rárakják a falukat stb., esetleg javitgatják ahol kell. Miből gondolom ezt: még sose sikerült beakadnom.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #144882   2010.12.12 19:40 GMT+1 óra  
Idézet
Asylum :
Nem végtelen, mert egy idő után visszaérsz oda ahonnan indultál. Olyan mint egy gömb felülete csak 3D-ben.


Az elmeletem nekem is ez, megis lehulyeznek

syam:
es ez tenylegesen megvalosithato egy urhajos jatek eseteben is? Egyelore tekintsunk el attol, hogy le lehessen szallni a bolygora, tehat texturakat is generalni kell.

Nyilvan a legjobb mindig az, ha kezzel epiti fel az ember, de az rengeteg ido es munka, es folyamatosan csinalni is kell

   
Asylum - Törzstag | 5463 hsz       Online status #144881   2010.12.12 19:35 GMT+1 óra  
Nem végtelen, mert egy idő után visszaérsz oda ahonnan indultál. Olyan mint egy gömb felülete csak 3D-ben.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
syam - Törzstag | 1491 hsz       Online status #144880   2010.12.12 19:34 GMT+1 óra  
A procedurális generálás elterjedőben van tekintve, hogy mekkora méretű helyszíneket lehet játékokban kezelni.
Az algoritmusok között vannak egyszerűbbek (fbm, fraktál, hiperfraktál, sejtautomata) és vannak a szabályokkal leírható rendszerek (egy jut eszembe Lindenmayer).
Természetesen ezek már nem beavatkozást igényelnek felhasználói oldalról, de utána már csak pár kattintás
Példa: CityEngine, ami az UE-ben is szerepel csakúgy, mint a SpeedTree, de szinte mindenre van már procedurális algoritmus.

Ha pályát akarsz generálni, akkor kb annyi a lényeg, h minden részlet bejárható legyen és minden elérhető legyen és persze artist control :]
alias aalberik
   
Pretender - Törzstag | 2498 hsz       Online status #144879   2010.12.12 19:32 GMT+1 óra  
Vegulis ebben is van igazsag. Bar akar megtehetne a jatekos azt is, hogy elindul, aztan megy es megy, nem tudom hogy lehetne megallitani. Az ur ugye elmeletben - jelenlegi allaspont szerint - vegtelen viszont a jatekban nincs vegtelen szamu bolygo es csillag/nap, az meg milyen dolog mar, hogy kimegy a nagy semmibe...?

   
Matzi - Szerkesztő | 2524 hsz       Online status #144878   2010.12.12 19:16 GMT+1 óra  
Az a baj a random contentel, hogy nem túl szórakoztató az esetek nagy részében. Nincs meg benne az a szándék, és munka, ami egy kézzel jól összeállított pályán / bolygón / akármin látszik. Ráadásul ismétlődhetnek, és valószínűleg érdektelen lesz az egész.
Bizonyos dolgokban segíthet a random generálás, de rengeteg munka kell bele így is úgy is. Például a diablo random pályái is csak azért voltak életképesek, mert nem a pályáról szólt a játék, így majdhogynem lényegtelen volt, hogy tervezett e vagy sem.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Pretender - Törzstag | 2498 hsz       Online status #144865   2010.12.12 16:45 GMT+1 óra  
Tetelezzuk fel a vicc kedveert, hogy urhajos (mmo)jatekot akarok. Ez a problema foleg mmo-nal jelentkezhet, de nem arthat single modban sem. Egy mmo jatekot az tart eletben, ha frissul a content, avagy nincs egy megszabott hatarvonal, amit nem lephet at a jatekos. En az utobbira (is?) szavaznek, es azon gondolkoztam el, hogy ezt hogy lehetne megvalositani.
- van az a lehetoseg, hogy parameterekkel leirni egy bolgyorendszert: bolygok szama, kulonleges tenyezok (pl. nebula, vagy akarmi), bolgyok tavolsaga, ellipszis, nap tipusa, stb., es ezeknek megfeleloen generalna egyet, a bolgyok meg veletlenszeruen lakhatoak / banyaszhatoak, stb.
- a masik dolog, hogy kezzel mindig hozzaadogatni bolgyogat / rendszereket.
Az elobbivel kicsit ugy randomabb az egesz, es a jatek elkeszulte utan kevesebb munkat igenyel talan. Azon gondolkoztam, hogy ez igy vajon jarhato ut, megvalosithato? (nem mintha lenne ilyen jatekom)

   
Matzi - Szerkesztő | 2524 hsz       Online status #136312   2010.06.20 15:38 GMT+1 óra  
Ha jól sejtem, akkor egy minimális súlyú feszítő fát kell neked generálnod. Tételezzük fel, hogy éllistával adjuk meg a végén a fát, hogy könnyebb legyen. Valami olyasmi lesz az algoritmus, hogy:

Kell két lista, egy a lehetséges éleknek (ListA), és egy a fa éleinek (ListB).

1) Egy listába (ListA) felveszed az elérhető csúcspontokat a hozzájuk vezető élekkel, illetve a kiindulási csúccsal együtt. Azokat nem számítva, amelyekben már jártál.
2) Megnézed melyik a legkisebb súlyú, és a kiindulási és a végpontot beleteszed a fa éllistájába (ListB)
3) Az összes olyan élet kiveszed a fenti listából (ListA), amelyeknek a vég csúcspontja az előbb bejárt pont
4) Az újonnan elért csúcsból megnézed melyik csúcsokba vezet él, és amelyekben még nem jártál, felveszed a listába (ListA).
5) Ha még van elem, akkor folytatod a 2-es ponttal, ha már nincs, akkor végeztél.

Mivel tudjuk, hogy egy fának n-1 éle van, ha n pontja van, így a ListB helyettesíthető egy n-1 elemű tömbbel. ListA kicsit keményebb dió, de ugye ha nincs dupla él és hurok él (azokat könnyű kiszűrni), akkor n*n él lehetséges, de ez leszűkíthető úgy ,hogy megszámolod hány él van a tömbödben. Legjobb ha listát használsz.

Amennyiben a feladat arra kérdez rá, hogy mennyi a legrövidebb idő végtelen bejáró emberrel (vagyis egyszerre cselekedhetnek), akkor a fa leghosszabb útját kell megtalálni, ami már nem vészes, mert kör tuti nincs benne.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] > 9 < [10] [15] [16]