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]
zeller - Törzstag | 480 hsz       Online status #175398   2012.02.27 15:21 GMT+1 óra  
Magyar forras a minimaxrol biztos van.
Kiertekelorol nem talaltam de az elv a kovetkezo:
A tabla allasahoz kell egy szamot rendelned mindket jatekos szempontjabol egy fuggveny szerint.
Az a fuggveny a kovetkezo valtozokra epit (tobbek kozott, de masokra is):
rendelkezesre allo figurak
a center uraltsaga
kibontakozott figurak szama
kiraly vedettsege
stb... A fuggvenyt vagy kitalalod, vagy valami open source peldat lopsz le. Egy jo fuggveny kitalalasa nem trivialis feladat, meg akkor sem ha sakkmester vagy.

   
Sorenke - Tag | 72 hsz       Online status #175395   2012.02.27 14:21 GMT+1 óra  
Nem igazán tudok angolul csak töröm

   
zeller - Törzstag | 480 hsz       Online status #175366   2012.02.27 07:06 GMT+1 óra  
Konyvet nem de oldalt es kulcsszavakat igen.
minimax.
evaluation function.
A minimax konnyu, minden gyorsitott valtozataval egyutt.
Az eval fun mar kevesbe
http://chessprogramming.wikispaces.com/Evaluation
http://www.gamedev.net/page/resources/_/technical/artificial-intelligence/chess-programming-part-vi-evaluation-functions-r1208
http://www.chessbin.com/post/Chess-Board-Evaluation.aspx

   
Sorenke - Tag | 72 hsz       Online status #175345   2012.02.26 21:22 GMT+1 óra  
Biztos kérdezték már, de sokk idő lenne átolvasni a topicot
Tudnátok mestersége intelligenciáról szóló könyveket ajánlani? Főleg sakk MI érdekelne.

   
ddbwo - Tag | 1654 hsz       Online status #174691   2012.02.13 21:58 GMT+1 óra  
Ha sietek, akkor jönnek ki ilyen nevek. Meg az Immortal Technique - Golpe De Estado ment pont alatta. xD
Ez a Nyuszka Physics alapköve (már a zene, mert az aknakereső úgy is unalmas má)

Na mivel minden területen pepecselek, tudom milyen dolgok fordulnak elő, amik kivisznek a hajból pl a Bulletnél. Ezeket egy saját fizikával simán kikerülöm. Tapadás, súly, relatív életerő, rugalmasság, csúszásmentes dinamik mozgás, meg minden,
Tök brutál lesz.
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
   
fpeti - Törzstag | 1294 hsz       Online status #174688   2012.02.13 20:27 GMT+1 óra  
'el_csonto'
   
ddbwo - Tag | 1654 hsz       Online status #174680   2012.02.13 17:28 GMT+1 óra  
Triangle - ray ütközés, textúra vetítés és Inverz kinematika teszt módban.

Rózsaszín - talaj
vilikék - láb, (ami visszahúzódott és a talp a normalra állt. bár boka sérülés gyanúsan. túlzó lett.)

kis sárga négyzet - normálra forgatott kis plane (azaz vér, golyónyom, robbanás, ami kell)

piros - láb bundíciusza
nagy sárga - pláne bundíciusza
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
   
dvorgaz - Törzstag | 576 hsz       Online status #174678   2012.02.13 17:24 GMT+1 óra  
ezmi
   
ddbwo - Tag | 1654 hsz       Online status #174675   2012.02.13 16:54 GMT+1 óra  
Alakul.

Kód:
    if (plane.bundiciusz) glColor3f(1,1,0);
        else glColor3f(0,1,0);

    plane.draw();

    if ( el_csonto.kollozio ) glColor3f(1,0,0);
        else glColor3f(0,1,0);

    el_csonto.draw();


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
   
ddbwo - Tag | 1654 hsz       Online status #174533   2012.02.10 22:15 GMT+1 óra  
Most rászántam pár órát és kidolgoztam a ray-triangle és Plane intersection technikának az alkalmazását.
Tökéletesen működik getHitPos() is készült.

Milyen területekre lehet ezt kiterjeszteni? Itt jöhet bármilyen javaslat, szeretnék mindenféle alkalmazást meglelni, ami erre épül. Van ennél gyorsabb de hasonló célú módszer?

Amiket most hirtelen elképzeltem:

- ütközés / fizika / selection (picking),
- pontosabb, azonnali vonal alapú lövedék,
- a.i koordináció, látószög
- golyó becsapódás, falra / tárgyra vetett textúra
- láthatóság vizsgálat (bounding boxal)
- devbox, targetbox
- teljesen 3D-s talaj, mentesülés a grid alapú kötöttségektől
- inverz kinematika

Most hirtelen ennyi jutott eszembe. Ja textúrát festeni nem akarok ezzel, arra ott a Blender.
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 #174405   2012.02.08 10:32 GMT+1 óra  
Ugyan, ilyen van. A tök természetes dolgokat nem látja meg az ember, utána meg fogja a fejét.

   
LugaidVandroiy - Törzstag | 504 hsz       Online status #174403   2012.02.08 10:22 GMT+1 óra  
Igen, úgy köszönöm szépen Csak most még emésztem magam, hogy ennyire hülye vagyok, hogy egy ilyenre sem jövök rá

   
Pretender - Törzstag | 2498 hsz       Online status #174399   2012.02.08 08:45 GMT+1 óra  
Ahogy M4 is mondta:
Kód:
inline const byte& GetPixel(const int& _x, const int& _y) const
{
    return memVideo[_y * SCREENW + _x];
}

Feltéve természetesen, hogy soronként építed fel a tömböt, nem oszloponként
Tehát a 0. elem az a {0,0}, 1. elem az {1,0}. De úgy vélem igen, a mintapéldád szerint.

   
M4 - Tag | 187 hsz       Online status #174397   2012.02.08 07:53 GMT+1 óra  
y*screenw + x
A fordítottja: x = p%screenw; y = p/screenw. Itt / egész osztás

   
LugaidVandroiy - Törzstag | 504 hsz       Online status #174396   2012.02.08 07:49 GMT+1 óra  
Nem talaltam a kerdesnek jobb helyet, ezert itt kerdezem meg. Adott egy virtualis memoriaterulet, ami a kepernyon megjeleno pixelek szineert felel. Tudom a szelesseget magassagat, es kozvetlen nagyon szepen tudom manipulalni. Viszont nem jovok ra annyira hulye vagyok, hogyha x es y koordinata alakban akarom felirni a pixelt, akkor azt milyen keplet alapjan tudom a tomb indexenek szamara konvertalni? 1 byte minden pixel.

byte[] memVideo = new byte[SCREENW * SCREENH];

Kirajzolas megy, kokzvetlen cimzes is, de nem jovok ra, hogyha mondjuk a (0, 1) koordinatakra akarok hivatkozni azt hogy teszem meg (azon kivul, hogy 50, mert ilyen szeles jelenleg a virtualis kepernyo)

Elore is koszi es bocsi mert ilyen hulye vagyok.

   
Elodin - Tag | 177 hsz       Online status #174222   2012.02.05 16:49 GMT+1 óra  
Van egy kis problémám egy OKTV feladattal.

Van egy N hosszúságú számsor, melyből L-szer kiveszünk H hosszúságú számsorokat. A kivettek értékei lenullázódnak, de a helyük marad, tehát ha a számok pl. 5 7 7 1, és L=2, H=2, akkor ha először a két hetest vesszük ki, akkor utána az 5 0 0 1 számsorból kell két összefüggő számot választanunk. A cél az, hogy minél nagyobb legyen a kiválasztott számok értékeinek összege. Pontos határokat nem mindenhova tudok mondani, 1<=L<=10, az N 30000 lehet talán, a hosszra nem emlékszem.
Első lépésben átalakítottam a sorozatot úgy, hogy az új sorozatom i-edik tagja az a számérték, ahány pontot ér, ha onnan kezdve veszek ki H számot. Ez n-h+1 hosszúságú sorozat lesz, a fenti számok esetében: 12, 14, 8. Tudom, hogy ha az i-ediket kiveszem, akkor i+h-1-ig nem vehetek mást ki, ez lesz egy feltétel.
Utána az általam kreált sorozaton végigmentem backtrackel, és a jó lehetőségek közül a legnagyobbat kiválasztottam. Időhiány miatt nem volt időm másra, de nem is bánom, hogy ezt csináltam, mert jobbat azóta se tudtam kitalálni… Nyílván a nagy tesztekre nem fog lefutni, de kis számok esetén működnie kell.
A másik lehetőség az lett volna, hogy L-szer kiveszem a legnagyobbat, és közben módosítom a sorozatokat, de ez nem minden esetben adna jó eredményt (a fenti példában pl. először a két hetest venné ki, utána az ötöst és a nullát, amikor minden szám is kijöhetett volna).

Amire kíváncsi vagyok, az egy olyan megoldás, ami minden esetben helyes eredményt ad és időben lefut.

Szerk. Volt egy ötletem, de mégegyszer végiggondolva rájöttem, hogy hibás.

Ezt a hozzászólást Elodin módosította (2012.02.06 16:30 GMT+1 óra, ---)

   
zeller - Törzstag | 480 hsz       Online status #172736   2012.01.15 12:22 GMT+1 óra  
Nem az alapul szolgalo framework-okre gondoltam, hanem az architekturara.
Mindenesetre ez erdekes...

   
proof88 - Törzstag | 530 hsz       Online status #172728   2012.01.15 11:04 GMT+1 óra  
zeller - Törzstag | 480 hsz       Online status #172715   2012.01.15 08:50 GMT+1 óra  
Milyen UI architekturakat hasznalnak jatekokban?
SDL/OpenGL-re epitve egy kovetkezo wrappert kezdtem el irni, de ez elegge desktop alkalmazasos:
Component ossel a komponensek hierarchiaja
ComponentRegistry, ahol ezek be vannak regisztralva egy nezeti faba.
Event - az esemenyek ose
EventDispatcher - aki a event-et a megfelelo komponenshez juttatja.
A komponensekhez listenereket lehet aggatni, amik observerek es a dispatcher push mechanizmussal a fabol valo lookup utan juttatja el a megfelelohoz az eventet lekezelesre.
Lesz focusmanager is, a keyboard eventekhez.

   
Asylum - Törzstag | 5463 hsz       Online status #172222   2012.01.08 13:49 GMT+1 óra  
Hát ha külön threadböl hivodna ez meg akkor én a contentmanagert lockolnám regisztrácio elött (pontosabban a regisztrácio lockolná a cm megfelelö konténerét). Arra viszont vigyázz, hogy a dx (meg általában minden com cucc)-nak külön jelezni kell ha másik threadböl is hivogatod.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #172220   2012.01.08 11:47 GMT+1 óra  
@Asy: amúgy a T::Create(...) alatt olyasmire gondolok, mint ami neked van a GLProjects-ben, pl.
Kód:
success = mesh::fromQM(table, "box.qm");

   
zeller - Törzstag | 480 hsz       Online status #172218   2012.01.08 11:44 GMT+1 óra  
Hivatalos allaspont szerint ha a lock volatile akkor mukodik a dcl (tobb nyelven is).

   
Asylum - Törzstag | 5463 hsz       Online status #172217   2012.01.08 11:41 GMT+1 óra  
"elvileg"

Akkor meg ez a klasszikus író-olvasó probléma: http://en.wikipedia.org/wiki/Readers-writers_problem
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #172216   2012.01.08 11:41 GMT+1 óra  
A Set tuti lefut. Ezt olyan helyeken akarom használni, ahol pl. a program indításakor lefut a set a fő szálon, azután majd valamikor indul a betöltő szál, ami hívhatja ezeket a static metódusokat, amiket másik szálon közben biztosan nem babrálok.

Singleton meg ami van, az pl. a Logger, azt főleg betöltéskor használom eleve. Ami még kérdéses számomra az az (bár az anno működött), hogy ha van egy Game osztályom, ami egybegyűjti a komponenseket (pl. ContentManager, Input, stb.) és pl. úgy van, hogy
Kód:
Game* game;

// load szál
void Load()
{
    T* t = game->GetContent()->Load<T>("...");
    // stb. "game"-t használó cuccok
}

// közben a fő szálon futó cucc
void Update()
{
    if (game->GetInput()->KeyIsPressed(DIK_ESCAPE))
        game->Exit(); // természetesen ez lekezeli, ha van egy futó szál, stb.
}

akkor abból lehet-e gond? Anno nem vettem észre semmiféle problémát, de lehet, hogy csak nem jött elő, és most "safebbé" akarom tenni a cuccot

Annyi amúgy, hogy két szálon sose hívok ugyan azt, max. a Gettereket, amik értékeket adnak vissza (amik alapvetően vagy pointerek, vagy konstans referenciák)

   
zeller - Törzstag | 480 hsz       Online status #172215   2012.01.08 11:38 GMT+1 óra  
Idézet
Asylum :
Ez nem így megy..a kód amit leírtál nem kritikus szakasz, mert mindig egy új objektumot hoz létre; tehát ha két szál egyszerre hivja ezt akkor mindkettönek lesz egy saját ilyen példánya.



Sztem nem erre gondolt, hanem, hogy az egyik szal settel egyszer es utana a tobbi ezt az objektumot getteli.
Amugy miert oregedne meg a thread safe singletonban? A double checked locking elvileg eleg lehet.

   
Asylum - Törzstag | 5463 hsz       Online status #172214   2012.01.08 11:36 GMT+1 óra  
Ez nem így megy..a kód amit leírtál nem kritikus szakasz, mert mindig egy új objektumot hoz létre; tehát ha két szál egyszerre hivja ezt akkor mindkettönek lesz egy saját ilyen példánya.

A signeltont pedig baromi nehéz threadsafe-é tenni, ugyh arra semmiképp ne épits.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 480 hsz       Online status #172213   2012.01.08 11:36 GMT+1 óra  
Ha a set nem fut le teljesen a get hivasa elott akkor lesz bajos.
Altalanossagban veve, ha garantalt a mutex hozzaferes, akkor nem kell szalbiztossa tenni a kodot (vagy ha immutable az objektum, mert a repetable read akkor nem lesz inkonzisztens), de erre epiteni csak akkor lehet, ha ez architekturalisan garantalt.

   
Pretender - Törzstag | 2498 hsz       Online status #172212   2012.01.08 11:28 GMT+1 óra  
Nem singleton. Amúgy baj csak akkor van, ha egyszerre több szál akarja hívni ugyan azt, nem?
Tehát ha én biztos vagyok benne, hogy a T::Create() csak a betöltő szálon lesz meghívva, akkor nem jó?

Ugyan ez a singletonra: kicsit módosítva, nem akkor kap értéket az instance, amikor az első GetInstance() hívás jön, hanem:
Kód:
T* t = new T();
T::SetInstance(t);

ezt csinálom a fő szálban, akkor a Get ugyan úgy bajos lehet?

   
Asylum - Törzstag | 5463 hsz       Online status #172211   2012.01.08 11:23 GMT+1 óra  
Thread-safe singleton-t ne kezdj el irni, mert abba fogsz megöregedni.
Mit szeretnél csinálni?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 480 hsz       Online status #172208   2012.01.08 10:30 GMT+1 óra  
Igen, ha egyszerre tobb szal hiv create-et, es vannak exkluziv eroforrasok. Ilyenkor ra kell lockolni ezekre. Ha ez egy singleton akar lenni, akkor pedig mindenkepp kell a lock.

   
Pretender - Törzstag | 2498 hsz       Online status #172205   2012.01.08 08:37 GMT+1 óra  
Ha van egy külön betöltő szálam, és ilyet csinálok:
Kód:
class T
{
    static T* Create(...)
    {
        T* t = new T();

        // blabla

        return t;
    }
};

// valahol máshol, ahol a Load() egy betöltő szálon fut
void Load()
{
    T* t = T::Create(...);
}

abból lehet probléma? Betöltés közben senki más nem akarja az ott betöltött adatokat írni és olvasni.

   
Eldor - Tag | 163 hsz       Online status #171765   2012.01.02 09:50 GMT+1 óra  
Ismer valaki altalaban jol mukodo ( gyors ) Hamilton-kor kereso heurisztikat?

   
Parallax - Tag | 599 hsz       Online status #171598   2011.12.29 23:28 GMT+1 óra  
ddbwo: Úgy, hogy beleássa magát a szakirodalomba bizonyos szinten, másképp nem megy. Máskülönben nehéz lenne orvosi, játék, vagy egyéb programot tervezni és írni. Nekem most ultrahangos segéd progit kell fejleszteni így az orvosi témákba bele kellett tanulni. Kicsit ilyen polihisztor szakma ez a programozás, mikor mi kell. Ezek a bugyuta példák is az iskolában biztos erre akarják felkészíteni a vizsgázót, bármit hozhat az élet.

   
ddbwo - Tag | 1654 hsz       Online status #171589   2011.12.29 22:10 GMT+1 óra  
Azért kivi lennék hogy má honnan kéne kirángatnia egy programozónak
Az áruforgalmi tevékenység tervezése, irányítása, elemzése
és az
áruforgalmi ismeretek
modulokat, hogy ténylegesen hasznos programot tudjon összedobni így seperc alatt.
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
   
krees - Törzstag | 732 hsz       Online status #171549   2011.12.29 11:12 GMT+1 óra  
Aham, kezdem kapizsgálni a dolgokat, egyébként tényleg adatbázis szerű, ráadásul én kaptam azt a két tételt, ami nincs kidolgozva, az összes többi megvan már, a tavalyi évfolyamról,csak ezek nem...

Azért köszi, megpróbálok összetákolni valamit ebből, de alapnak mindenképp jó lesz

Szerk.:

Matzi: Szerencsére csak elméletben kell, de nem vagyok egy nagy marketinges, a vásárlás meg amúgy is távol áll tőlem, ez az, ami jobban zargatott De most már tisztul, köszönöm Neked is
   
Matzi - Szerkesztő | 2524 hsz       Online status #171548   2011.12.29 11:11 GMT+1 óra  
A konkrét feladathoz nem sokat segít, mert mindig is utáltam az ilyen idióta tervezési feladatokat, de azért leírom a gondolataimat.

Az biztos, hogy termék osztály kell, de jobban specifikálni nincs nagyon értelme. Főleg nem konkrét termékekre. Szóval olyasmi lenne, hogy van termék, van készlet (többféle, mert ugye raktár, központi raktár, meg többi bolt, meg ilyesmik), esetleg megrendelések, hogy nyomon lehessen követni, hogy ugyan kevés a répa, de holnapra már lesz. Lehet esetleg fogyási leltárt is csinálni, így statisztikát készíteni a dolgok fogyásából, ha elmész a döntéstámogató rendszerek felé, akkor előre lehet jegyezni, hogy mit érdemes még rendelni.
Persze rengeteg döntést meg kell hozni, mondjuk nem mindegy, hogy mihez rendeled az árat, mert ha a termékhez, akkor ha változik, akkor visszamenőleg elromlanak az adataid, de ha meg a vásárláshoz, akkor macera van vele. Érdemes például a terméktípusban az aktuális árat nyilvántartani, de a konkrét cuccban meg eltárolni a beszerzési, és eladási árat, amiből még az is kijön, hogy mennyi volt a nyereség.

Szóval én olyan osztályokat csinálnék első körben, hogy:
- TermékTípus (név, kategória, egyéb jellemzők, aktuális ár, stb...)
- Kosár, jobb szó nincs rá (terméktípus, darabszám, beszerzési ár, eladási ár)
- Leltár (sok kosárból áll, nyilván bejövő és kimenő kosarak külön, napi bontásban kezelődnek)
- Készlet (név, hely, az aktuális kosarak listája)
- Rendelés (státusz, kosarak listája és várható érkezési idő

Aztán jöhet a sok számolgatás, meg historikus és előrejelző számítások, kimutatás, hogy mi fogy jól, és mi kevésbé, mit kell rendelni. Lehet szélesíteni vagy szűkíteni a palettát. A termék kategóriák (zöldség, hús, konzerv, stb...) szerinti bontásokat is lehet végezni. Meg persze kellenek az alap manipulációs folyamatok, hogy vásároltak, vagy megrendeltél valami, megérkezett a megrendelés, stb...

Ha kicsit is produktív akarsz lenni, akkor aláteszel egy letesztelt perzisztencia kezelőt, és akkor az adatbázissal nem kell törődni.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
DMG - Szerkesztő | 3172 hsz       Online status #171545   2011.12.29 10:52 GMT+1 óra  
Ez így amrhaság, ez inkább Adatbázis kezelés mint sem OOP.

Egy posztban kicsit nehézkes lenne amúgy leírni, már eleve a követelmény feltárást is.

De ha már OOP akkor valami hasonlót tudnék elképzelni.

Van egy Termék ősosztályod, amiből lehet származtatni az egyes alkategóriákat, mint zöldség, felvágott egyebek, aztán ebből is lehet származtatni konkrét termékeket konkrét árakkal.

Így hírtelen ennyi, de a konkrét működés a követelmény feltárás részeként alakul ki, akkor menne oda a fejlesztő a boltoshoz, hogy "na mi kéne", szóval csinálj követelmény feltárást, mintha te lennél a boltos.



Szóval ez egy fasz feladat, mert nem OOP-hez való, hanem SQL-hez.
-----------------------------------------
Dont Listen to the Naysayers
   
krees - Törzstag | 732 hsz       Online status #171536   2011.12.29 09:39 GMT+1 óra  
Na jó, nem akartam, de feldobom a kérdést. Vizsga lesz, a feladat nem olyan hű,de rohadt nehéz, viszont nagyon keveset foglalkoztam OOP-vel, a boltok meg nagyon távol állnak tőlem.
A feladat:

Idézet

1. Egy feltörekvő élelmiszerbolt korszerűsíti az eladás folyamatát. Az a feladata, hogy objektumorientált módon tervezzen meg egy programot, ami segíti a bolt tevékenységét! Milyen lépésekben tervezné meg a programot?

Információtartalom vázlata

– Információkezelés alapfogalmai
– Objektumok meghatározása
– Együttműködési diagram
– Osztálydiagram
– Követelmény-feltárás
– Analízis
– Tervezés
– Implementálás
– Tesztelés
– Számhalmazok
– Osztályok számossága



Arra lennék kíváncsi, hogy mégis milyen osztályokat lenne célszerű létrehozni, vagy mik kellenének ebbe?

(Spec azt sem igazán tudom, mivel lehetne korszerűsíteni a vásárlási folyamatot, olyasmire gondoltam, hogy pl adatbázis, amiben benn a termék neve, helye, meg ilyen-olyan adatai, ez mellé egy keresés még, és a többiről fogalmam sincs )
   
gaborlabor - Moderátor | 4449 hsz       Online status #170037   2011.12.05 16:44 GMT+1 óra  
Hát, szerintem ha biztosra akarsz menni, akkor eleve ne a kliensoldalon kiszámolt world pos-t küldje el, hanem csak az egérpozíciót, és persze azt is validálni kell szerveroldalon (csalások kiszűrése...).
Client-side prediction mindenképp kell, hogy reszponzív legyen a játék, ne várjon a szervertől érkező válaszra, hanem rögtön reagáljon. (Legalábbis mozgásnál így célszerű, lövedékek létrehozásánál már nem feltétlenül). Aztán persze a szerver által küldött adatokkal felülírni a helyben számoltakat... Idáig viszonylag könnyű megcsinálni, de etől meg ugye "ugrálhat" a karakter, ezt is ki lehet szűrni, csak kicsit advancedebb technikák kellenek hozzá (pl server reconciliation), amik meg már erőteljesen függenek a játékstílustól, játékmenettől.

   
Pretender - Törzstag | 2498 hsz       Online status #170014   2011.12.05 11:00 GMT+1 óra  
igen, UDP, bocsi
Igen, a heartbeat az megy... Azt hittem szoktak disconnectet küldözgetni.
Vagy esetleg annyi, hogy a kliens az küld disconnect üzenetet, és ha a szerver megkapja, akkor tudni fogja, hogy ha x időn belül nem kap választ, akkor nem timeoutolt, hanem disconnectelt. De akkor jó lesz így, köszi.

Esetleg valami ötlet, hogy ilyen diablo 2-s irányítású játéknál hogy érdemes küldeni az üzenetet? Alapból arra gondoltam, hogy a kliens az az egér pozícióból és ugye a karakter pozíciójából kiszámolja magának azt, hogy hova kattintott (worldpos), és azt küldözgeti. Ekkor vagy az kellene, h addig nem indul el az új pozícióra, amíg a szerver le nem "okézta", vagy client-side-prediction, csak akkor meg "visszadobál".

   
gaborlabor - Moderátor | 4449 hsz       Online status #170012   2011.12.05 10:48 GMT+1 óra  
Gondolom az UPD elírás, UDP akart lenni.
Csináld kb pont úgy, mintha timeoutolna. Felesleges ide-oda üzengetni, hogy disconnectelni akar, oké, stb. Bizonyos időközönként a kliens küld heartbeat üzeneteket. Ha egy bizonyos ideig a szerver nem kap ilyet, akkor tudja, hogy az adott kliens disconnectelt. Hogy ez most miért történt, azt nem fogja tudni, de ha azt a bizonyos értéket néhány másodpercre állítod, akkor már eléggé valószínűtlen lesz hogy a hálózati kapcsolat késleltetése miatt esett ki... szóval direkt volt.

   
Pretender - Törzstag | 2498 hsz       Online status #170010   2011.12.05 10:43 GMT+1 óra  
UPD hálózat:
Van egy szerverem meg egy kliensem. A kliens disconnectelni akar, küld egy üzenetet a szervernek. Ha az megkapja, akkor küld egy válaszüzenetet, hogy disconnectelhet. Amire a szerver szintén vár választ, hogy megkapta-e ezt az üzenetet Viszont ha a kliens megkapja a szervertől a "szabad disconnectelned" üzenetet és lecsatlakozik, akkor az az 1 kiküldött "oké, megkaptam" nem feltétlen lesz elég (talán pont az veszik el)
Ha nem kapja meg, akkor nyilván timeoutol,de a "szabályos" disconnectet hogy szokták megcsinálni?

   
Marclee - Tag | 285 hsz       Online status #168452   2011.11.12 15:32 GMT+1 óra  
Ha a struktúra jelentése egy szabályok szerint rögzített adathalmaz amiben könnyen megkülönböztethetjük az adatokat akkor a struktúrált azt jelenti ,hogy egy ilyen adathalmaznak a tagja? ( elkezdtem programozás elméletet olvasgatni ,hogy könnyebben mennyen a programozás és rájöttem ,hogy elég nagy zavarok vannak a fejemben xd )
Humankind cannot gain anything without first giving something in return. To obtain, something of equal value must be lost.
Alphonse Elric

http://geeksworld.hu/
   
Kuz - Törzstag | 4455 hsz       Online status #168440   2011.11.12 07:51 GMT+1 óra  
4Bit, te most pontosan mit is akarsz elérni? Lehet inkább így kéne elindulnod, hátha tudunk segíteni, mert az, hogy kapkodsz itt össze-vissza a nyelvek/fejlesztőeszközök közt, az nem túl értelmes dolog. A C-ről is le fogsz mondani, amikor kiderül, hogy marha sok dolgot kell benne megcsinálnod, hogy egyáltalán egy képet ki tudj rajzolni?
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
4Bit - Tag | 548 hsz       Online status #168391   2011.11.11 13:53 GMT+1 óra  
Na jó, akkor Python dobva lesz innentől kezdve, és jöhet a C eltanulmányozása, hogy mire félévkor elindul a C prog. szakkör, addigra ne legyek hülye belőle..
Úgy álljunk meg az életben, akár a sziklaszírt a tengerben; ne engedjük, hogy a szüntelen hullámverés megingasson bennünket.
   
Pretender - Törzstag | 2498 hsz       Online status #168372   2011.11.10 20:08 GMT+1 óra  
Várható volt, hogy egy scriptnyelv nem lesz (a python az az, ugye? ). És hát igen, remélem megvan a tanulságod: ne hidd azt, hogy okosabb vagy a hülye pascalosoknál, mert ezek szerint csúnyán rádvertek. (nem úgy értem )

   
HomeGnome - Szerkesztő | 2919 hsz       Online status #168371   2011.11.10 19:54 GMT+1 óra  
@4Bit: Akkor a pszeudokód volt a nyerő, a folyamatábrával meg melléfogtam, sorry.. :\ Kár, hogy a konkrét feladatsort nem kérted el. Ja, és ki is nevette ki a pascal-osokat?..

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
4Bit - Tag | 548 hsz       Online status #168370   2011.11.10 19:40 GMT+1 óra  
Megvolt a programozói verseny, és én szerintem ennyi erővel végig is ülhettem volna azt a 3 órát...

Először. Tanuló neve, Iskola neve, stb... aztán jöttek a keményebb dolgok.
Választható programozási nyelvek:

- C++
- C#
- Pascal
- Delphi
- Java
- Visual Basic

Első kérdésem: (WTF?! HOL-A-PYTHON?) Na jólvan, akkor egy X esik a javára...

Most jön még a JAVA.. (és itt most nem poénkodni akarok, mert kurva szar kedvem van ezután a verseny után..

1. Feladat..

Időjárás... Miva'? Jólvan, egyszerű volt mint a pofon a kód, mivel pszeudo-kódok voltak csak, (ezt még meghálálom, hogy időben tudtam informálódni tőletek ) de aki magát a feladatot írta, szerintem örülhetett hogy nem verték ki onnan, ahol ezt a feladatlapot írta, mert tele volt helyesírási hibákkal, és egy kukkot sem értettem, hogy most mi a francot erőszakoljak azzal a példakóddal, mert a feladatnak legalább 5 jelentése volt, ha nem több...

2. Feladat..

Na, ez mégjobb volt, mert a kód is el lett kurva, és logikája nem volt az egésznek, sőt! Én kifejezetten éreztem, hogy enyhén bugos volt...

3. Feladat..

Kicsit jobban érthető, és áttekinthetőbb szöveg kerül a kezembe.. az illetőnek biztos ebédszünete volt, és helyette bepötyögte valaki más.. jajdekár.

4.Feladat..

Utolsó, egyben egyik legszemetebb feladat volt kérem szépen, függvény létrehozástól kezdve (ami még megy) egészen a funkciónális programozásig (?) mindennel telibe volt verve..

Maximális elérhető pontszám: 100 pont

Én őszintén szólva már 10-nek is örülni fogok..
Úgy álljunk meg az életben, akár a sziklaszírt a tengerben; ne engedjük, hogy a szüntelen hullámverés megingasson bennünket.
   
Sharp - Tag | 130 hsz       Online status #168342   2011.11.10 13:57 GMT+1 óra  
Köszönöm, meglett a megoldás!

Lássuk csak: A plane hosszát a Field Of View határozza meg. Az én esetemben 0.66 körüli volt a plane hossza. Tehát a valódi vetítési sík [-0.66; 0,66] volt. Amikor az r vektort rávetítettem a vetítési síkra, akkor a plane egységvektorát használtam. Ez adott egy számot [-1; 1] intervallumban, amit vissza kell transzformálni a valódi vetítési síkba, azaz [-0.66; 0.66]-ba.
Nagyon szépen működik, köszönöm szépen az észrevételeket.

   
Matzi - Szerkesztő | 2524 hsz       Online status #168330   2011.11.10 13:12 GMT+1 óra  
Sharp:
Egy tipp, de szerintem a w kiszámítása előtt normalizáld az r-t.
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]