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

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2188
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491

SA BITW SEGFiX Em TiGFiX Lary Engine
Grafikus motor (API)
Kategória: Grafikus motor
A projectről:
A következő grafikus motoromról van szó. Egy alapszintűt már csináltam Delphiben, ezt használta a szakdolgozatom, a PR00FPS . A mostanit Visual C++-ban csinálom, szintén egy DLL fogja tartalmazni, de sokkal profibb és gyorsabb megoldások lesznek benne. Kb. két hetet szenteltem arra, hogy átgondoljam a motor vázát és működési elvét, és már összeállt a kép. Delphiből és VC++ból is használható lesz a DLL, előbbit az is biztosítja, hogy a bemutató példaprogikat Delphiben írom, persze C++os példaprogi is lesz. Törekszek a minél gyorsabb és hatékonyabb működésre és a minél könnyebb használatra (a motort használó programozó részéről).
A project honlapja, letölthető verzió:
Fejlesztőeszköz, segédeszközök:
MS Visual C++ 2005 Express (nem managed kód),
Borland Delphi 6.0,
;

Fejlesztés kezdete: Tervezett befejezés:
2007. 05. 25.
2010
Beküldve:
2007.06.07 11:24
Fejlesztő:
PR00F (1 fő)
Elérhetőség:
e-mail: proof88@freemail.hu
Tagok:
beküldő: proof88
regisztrált tagok:



Fejlesztés állapota:
Fejlesztés alatt
Fejlesztés alatt
Készültség: 6%

Képek - SA BITW SEGFiX Em TiGFiX Lary Engine
Csiga élsimítás nélkül
Csiga élsimítás nélkül
2008.02.11. 13:24
Csiga élsimítással
Csiga élsimítással
2008.02.11. 13:24
Teleport élsimítás nélkül
Teleport élsimítás nélkül
2008.02.11. 13:24
PR00FPS-ből teleport item élsimítva
PR00FPS-ből teleport item élsimítva
2008.02.11. 13:23
Ütemterv
Ütemterv
2007.12.25. 03:54

Fejlesztési napló - SA BITW SEGFiX Em TiGFiX Lary Engine
proof88 2009.01.03. 22:35
Ja, a nevet megváltoztattam valami értelmesebbre. Bár a JointFuture megmarad, mint kódnév, a hivatalos neve a motornak már az új, szép hosszú név. :D
proof88 2009.01.03. 22:34
A helyzet az, hogy újra elkezdtem írni a motort, mert néhány dolog megváltozott bennem. Szerencsére az eddig befektetett munka nem vész kárba, a megírt osztályaim 90%-át felhasználom, csak apró módosításokat eszközlök bennük és a kapcsolatuk lesz más.
proof88 2008.10.07. 05:32
Ehh. Hát igen, legutóbb februárban történt érdemi dolog. Sajnos azóta nem foglalkoztam vele eleget.
De a project nem halt meg, de félig újrakezdem. Pontosabban, az eddig megírt osztályaimat használom, de a köztük lévő kapcsolatokat meg fogom változtatni, néhány dolgot ki fogok venni.
Sajnos, nagyon nehéz dolog megírni egy ultra univerzális grafikus API-t. Idő hiányában ezért stratégiát váltok, ezért néhány dolog kikerül a feature listből, és csak azokat valósítom meg, amik nekem kellenek a diplomamunkához.
proof88 2008.02.11. 13:26
Felkerültek az első hivatalos renderelt képek. Implementálva lett a hardveresen gyorsított élsimítás, multisampling, ennek minősége futás közben állítható. A képen látható ablak már a motor által kezelt ablak, melynek szintén bármikor megváltoztathatóak a tulajdonságai. Tervezek még egyéb élsimítási lehetőségeket, például supersampling, de egyelőre most arra koncentrálok, hogy az eddigi feature-ök hiányosságait javítsam, bugfixeljek, és főleg a kód méretét csökkentsem, hogy kialakulhasson egy stabil, 0.1-es verzió. Bár a motor jól megtervezett, jelenleg még az eddig megírt osztályoknak is sok hiányossága van, a további fejlődéshez elengedhetetlen az alap megszilárdítása.
proof88 2008.01.14. 14:52
Az utóbbi időm eléggé szűkösen alakult a vizsgák miatt, és még mindig van hátra vizsgám. A CWindowManager egy rejtett manager, csak a Renderer használja, kívülről nem elérhető. Így ablakot sem lehet létrehozni kívülről, csak kérni lehet, ha nem adnak HWND-t, akkor létrehoz egy managált ablakot, aminek meghívhatóak a metódusai. Csak egy ilyen ablak lehet (nem akartam az RC-kkel szórakozni).
Futásidőben, létrehozás után is állíthatóak az ablak paraméterei, de csak a lényegi dolgok (átméretezhetőség, méretek, pozíció, stb.). Be lehet kapcsolni egy olyat, hogy átméretezéskor figyelmeztesse a Camera Managereket, hogy átméretezés történt - ekkor a cammanagerek átméretezik a hozzájuk tartozó kamerák viewportját az arányoknak megfelelően.
A CCamera osztályt módosítottam úgy, hogy beállítható, hogy az aspect ratio fix legyen, tehát a beállított arány legyen mindig, vagy dinamikus, ilyenkor az arány mindig a szélessége/magassága a viewportnak.
Most kicsit az inicializálását a renderenek írogatom át, felkészítem a multisampling-re, és tervezem, hogy még 2 dolgot csinálok a CWindow-nak: eseményekhez rendelhető fv.-mutatók (pl. OnKeyDown(), stb...), ill. egy SetAttributes() függvényt, ahol maszkolva adhatóak meg a tulajdonságok konstansokkal, tehát így egyszerűbben is be lehet állítani a dolgokat, mintha külön-külön hívogatnánk a metódusokat.
Ja, és azt is tervezem, hogy a Renderer inicializáló függvényénél is meg lehet majd adni ezt a maszkot, tehát az inicializálással lespórolható a CWindow SetAttributes() metódusa is. MINDENT A FEJLESZTŐK KÉNYELMÉÉRT (már aki majd használni fogja ezt az API-t :)).
proof88 2007.12.25. 03:58
Felraktam egy képet az ütemtervről, majd kiderül, hogy alakul. :) Pl. most is már nem úgy alakul, mert egy új managert csináltam, ami se nem light-, se nem window-, habár a windowmanager is alakulgat. :P
Tényleg igyekszek, hogy januárban megírjam azt a wrapper DLL-t, amit berakva a PR00FPS alá az új grafikus motorral, már azt használhatja a PR00FPS. Ennek az az értelme, hogy a PR00FPS kódjának megváltoztatása nélkül tudom tesztelni az új motort a PR00FPS-sel, és elhagyva a régi motort, tovább optimalizálható a régi játék. :P Nagymértékű optimalizációkra számítok, betöltési sebesség és renderelési sebesség terén is. :)
proof88 2007.12.10. 13:42
Ja és még: textúránként állítható szűrési módok, anizotropikus is.
Van CCamera, ami egyértelmű, hogy mi. Kameránként lehet viewportot állítani, tehát egyszerre több aktív kamera is lehet, pl. osztott képernyő esetén 1. kamera a bal oldalt, 2. kamera a jobb oldalt adja. Kameránként állítható tulajdonságok a látószög, szélesség/magasság arány, viewport méretek, aktív-e, stb... Csak akkor látszik egy kamera képe, ha aktív. Tehát ha van 10 kamera és abból 1 aktív akkor csak annak a képét látjuk.
Képet csak akkor láthatunk, ha legalább 1 világ (CWorld) van, és benne van legalább 1 kamera. Több világ is lehet, világonként más-más környezeti beállítások, stb.

Általában minden osztály felett egy manager osztály őrködik, pl. CImage felett CImageManager, és így tovább. Ezek hozzák létre, törlik, tehát kezelik őket.
proof88 2007.12.10. 13:37
Tehát. A fejlesztés 2007. 06. 01-én kezdődött kb., ezt megelőzte egy kb. 2 hetes fejben tervezési állapot. Ez azt jelenti, hogy most kb. fél éve fejlesztem már a motort. Elég lassan haladok, ez több oknak tudható be: egyetem, napokig tartó bugfixelése az idegesítően láthatatlan bugoknak, stb...
Jelenlegi feature-ök:
- 1-, 4-, 8-, 24-, 32- bites BMP-k betöltési lehetősége, DDS-ek betöltése, ezeket pixelenként lehet módosítani. CImage osztály felel ezekért. Van egy CTexture osztály, ami a textúrákat testesíti meg, őt is létre lehet hozni közvetlenül fájlból, de nem kezel fájlt, mert CImage osztályból csinálja a textúrát. Most bonyolult így elmagyarázni, de mindegy. Ha a kártya támogatja, generáltatja a mipmapeket, különben CPU-val generáltat. Ha már vannak, nyilván nem generáltat (pl. DDS-ek esetén, ha van bennük). Ha a kártya támogatja a BGR pixelformátumot, akkor nem húzza az időt a BMP-k esetén a BGR->RGB konvertálással. A textúrákat lehet tömöríteni, választható tömörítéssel. Ha DDS-ről van szó, nyilván nem tömörít újra. Ha DDS-ről van szó, de ki van kapcsolva a tömörítés, tömörítetlenül tárolja a textúrát. Meg lehet adni minőséget is, ami azt jelenti, hogy alacsonyabb minőség esetén negyedeli a textúrák méretét (szélesség/2 és magasság/2).
Egyelőre OBJ formátumot tud betölteni, mint modellt, de azt is fapadosan, az előző motorhoz hasonlóan. Csak kompatibilitás miatt van, nem ez lesz az elsődleges formátuma. Textúrák terén az elsődleges a DDS lesz, a BMP csak kompatibilitás miatt maradt meg meg ugye elég gyorsan feldolgozható.
Nálam a CMaterial osztályok testesítik meg az anyagokat, melyek objektumokhoz társíthatóak (és objektumok is társíthatóak anyagokhoz). Egy anyag jelenti a textúra rétegeket, a csillanások, stb. mértékét. Több réteg multitextúrázással megy.
Az objektumok a CObject osztályok, ezeket lehet megjeleníteni. A CMesh osztályok a test osztályok, ezek az alap dolgokat tárolják, pl. vertexek, uvw-k, stb...

Na nagyjából így ennyi idáig. Állítható felbontás, színmélység, etc. természetesen. Most azon dolgozok, hogy ha nem valid ablak azonosítót kap a motor inicializálásnál, akkor csinál magának egyet és oda fog rajzolni.

Hozzászólások - SA BITW SEGFiX Em TiGFiX Lary Engine
Asylum - Törzstag | 5444 hsz       Online status #112126   2009.06.04 11:58 GMT+1 óra  
az én motorom is ebbe öszül bele, hogy állandoan ujrairom mert valami jobb megoldás jut eszembe. Bár most elég régóta fixen van (csak lassabbnak tünik mint az elözö verzio).

Söt még a csiga modell is átragadt
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
fpeti - Törzstag | 1290 hsz       Online status #112125   2009.06.04 11:48 GMT+1 óra  
A csigáról vetted a példát biztos, válassz valami gyorsabb kabalát.
   
proof88 - Törzstag | 528 hsz       Online status #112112   2009.06.04 07:42 GMT+1 óra  
Nahh hát egy jó ideje nem foglalkoztam a projecttel, március végén kb...
Kicsit más világban merültem el, szerelgetés, tuning...

Ugyebár régen regeltem ezt, de azóta már elkezdtem újraírni.
Ez lesz a PNG (Proof's NextGen) játék motor grafikus motorja.
Szóval a PNG-t ennek újraírásával feljegyzésem szerint 2008. szeptember 3-án kezdtem el. Minden fejlesztésről vezetem a naplót, szóval a végén meg tudom mondani, hogy mennyi órába telt a játék motor elkészítése, ezt fogom hasonlóan tenni a PR00FPS 2-vel is.
És férfiasan bevallom, hogy szept. 3. óta kemény ...

... 51 órát foglalkoztam a projecttel.

Tehát jelenleg sehol nem vagyok, csak egy nagy váz van meg...
igaz az újrakezdett graf motort megint elkezdtem újraírni, de az osztályok 95%-ban megmaradnak, mert azokkal nincs gond, nem kell módosítani... most komolyabban veszem ezt az egészet és mostantól inkább ismét a fejlesztésre koncentrálok, mint a gép összerakósdira, stb... csak hát az is érdekel nagyon. Viszont továbbra is álmom, hogy megírjam a PR00FPS 2-t, ami sokkal jobb lesz, mint az első rész.
Úgy legyen!
   
proof88 - Törzstag | 528 hsz       Online status #102180   2009.01.05 09:06 GMT+1 óra  
hwsw-t nem látogatom, nem jutottam el odáig már, ph!-n leragadtam.
Azért sok normális ember is van ott, ehh. Van, aki megkeresi a pénzt a konfigjára!
A tesztjeik tetszenek, bár egyre gyakrabban veszem észre h fizetett reklám a teszt, épp ezért jó a fórum, ahol a userekkel beszélitek ki a cuccokat.
   
Geri - Törzstag | 2188 hsz       Online status #102169   2009.01.05 04:29 GMT+1 óra  
No de a hwsw-t azért nem szoktam (ennyire) szidni, holott ott is hasonló "karriert" futottam be, tehát nem értem az összefüggést (=

   
Asylum - Törzstag | 5444 hsz       Online status #102168   2009.01.05 04:18 GMT+1 óra  
érzem onnan is bannoltak
ezt nem hagyhattam ki
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Geri - Törzstag | 2188 hsz       Online status #102166   2009.01.05 03:53 GMT+1 óra  
Szép kis portál a ph, újgazdag 13 éves modokkal akiknek anyuka 9800gtx SLI-t vesz, szerzői jogokért kapásból ügyvéddel és határidővel fenyegetőző admin gárdával, akik "meg kell mutatni, ki szarik büdösebbet" elv szerint irányítják a portált és a közösséget, beleértve a fórumot is.

   
proof88 - Törzstag | 528 hsz       Online status #102155   2009.01.04 15:49 GMT+1 óra  
FZoli - Szerkesztő | 4892 hsz       Online status #102151   2009.01.04 12:46 GMT+1 óra  
gondolom a prohardver akart lenni
   
gaborlabor - Moderátor | 4449 hsz       Online status #102146   2009.01.04 12:04 GMT+1 óra  
Most már mondjátok el, mi az a PH!, mert mikor először olvastam, akkor is kb 1 percig gondolkodtam rajta, de aztán feladtam

   
proof88 - Törzstag | 528 hsz       Online status #102143   2009.01.04 11:54 GMT+1 óra  
Idézet
kicsy :
mellé



OMG! Bocs, ezt jól benéztem. Mármint tudtam, hogy hol vagyok, csak rosszul írtam le ezek szerint.
   
kicsy - Szerkesztő | 4304 hsz       Online status #102137   2009.01.04 10:22 GMT+1 óra  
amit majd szintén regelek itt PH!-n

mellé
kicsy ● SilentVertigo Team - project Solarah
http://blog.yscik.com
   
proof88 - Törzstag | 528 hsz       Online status #102089   2009.01.04 04:07 GMT+1 óra  
Nah, oda kell képzelni egy csigát a PR00FPS-ből. Az van ott is, csak textúra nélkül.
Egyébként azért nincs rajta textúra, mert valami gebasz volt, sikerült összekutyulnom mindent, szóval nem működött a textúrázás.

szerk.: egyébként ez a rajzod nagyon tetszik.

Ezt a hozzászólást proof88 módosította (2009.01.04 04:18 GMT+1 óra, ---)
   
Sharp - Tag | 130 hsz       Online status #102084   2009.01.04 03:36 GMT+1 óra  
Amikor megláttam a project képeit, körülbelül ez jutott eszembe:
Csiga paintben, élsimítás nélkül:


A hozzám hasonló, grafikai témákban laikusnak számító emberek számára látványosabb képek kéretnek!

   
proof88 - Törzstag | 528 hsz       Online status #102070   2009.01.03 22:44 GMT+1 óra  
SA BITW SEGFiX Em TiGFiX L'ary Engine
"Slowly Advancing (Because I'm Tired) but Widely Scalable and Efficient GraFiX Engine made after Timcseee GraFiX Library" Engine

kiejtése: [szabitv szegfigsz em tigfigsz löri endzsin]

ez magyarul kb: "Lassan Fejlődő (Mert Fáradt Vagyok), de Szélesen Skálázható és Hatékony Grafikus Motor a Timcseee Grafikus Könyvtár után" Motor.

A Timcseee Grafikus könyvtár egyébként a PR00FPS graf. motorja. Azért írom könyvtárnak, mert valójában csak jópár rutin és típus az egész, bár végülis egy alapvető motornak mondhatnánk. Szóban motornak szoktam említeni.

Az a "Mert Fáradt Vagyok" csak poénnak van benn, ugyanis már ált. iskolás korom óta használom ezt a kifejezést arra, ha valamihez nincs kedvem. Például ha leckét kellett csinálni, fáradt voltam, vagy ha elmenni valahova, fáradt voltam. Persze mindenki tudta, hogy nincs kedvem hozzá.
Viszont itt nem azt jelenti, hogy a motorhoz nincs kedvem, hanem azért halad lassan, mert nem mindig van kedvem foglalkozni vele.


szerk.: most már biztos, hogy a PR00FPS2 fogja használni, amit majd szintén regelek itt PH!-n. Csak még felesleges lenne. Bár alapvető játék motort regelhetném, ugyanis a graf motorral egy játék motort kezdtem el írni. Ez viszont semmi komoly, csak valami frémvörk lenne, alátámasztva a graf motorral, input kezeléssel, hang, hálózat.
Egyébként ha már itt járok, megemlítem, hogy a PR00FPS2-nek nem sok köze lesz a PR00FPS-hez. Bár elvileg lesz benne csiga, de nem sok haszna lesz. Alapvetően multis játék lesz, a graf motor szélesen skálázhatósága arra utal, hogy gyengébb gépeken is menni fog jól, de jobb gépeken azért meglesz a grafikai színvonal. Valójában nem modernkori lesz az ultra high grafika, csak amolyan 2004-2005-ös szintű. Viszont a minimum grafikát vinnie kell majd a vuduháromnak meg a téentékettőnek.
A játékmenet érdekes lesz: kvék-csé-stalker keverékre lehet számítani. A szerver beállításain múlik, hogy inkább a pörgösebb hent vagy a lassabb, taktikásabb játékmenet legyen az adott szerveren.
Van rá 3 évem mindennel együtt. Terveim szerint ennyit rohadok még BSc-n, ez meg diplomamunka akarna majd lenni, ha meg nem, akkor a fő projectem (ahogy Asylum is írja vala).
No de ez már nagyon off.

Ezt a hozzászólást proof88 módosította (2009.01.03 22:53 GMT+1 óra, ---)
   
proof88 - Törzstag | 528 hsz       Online status #81500   2008.02.11 13:26 GMT+1 óra  
Nem ide akartam ezt írni, hanem a fejlesztési naplóba, mindegy. XD
   
proof88 - Törzstag | 528 hsz       Online status #81499   2008.02.11 13:25 GMT+1 óra  
Felkerültek az első hivatalos renderelt képek. Implementálva lett a hardveresen gyorsított élsimítás, multisampling, ennek minősége futás közben állítható. A képen látható ablak már a motor által kezelt ablak, melynek szintén bármikor megváltoztathatóak a tulajdonságai. Tervezek még egyéb élsimítási lehetőségeket, például supersampling, de egyelőre most arra koncentrálok, hogy az eddigi feature-ök hiányosságait javítsam, bugfixeljek, és főleg a kód méretét csökkentsem, hogy kialakulhasson egy stabil, 0.1-es verzió. Bár a motor jól megtervezett, jelenleg még az eddig megírt osztályoknak is sok hiányossága van, a további fejlődéshez elengedhetetlen az alap megszilárdítása.
   
proof88 - Törzstag | 528 hsz       Online status #77380   2007.12.25 03:59 GMT+1 óra  
Igyekszek, dehát vizsgák is vannak a világon.
   
proof88 - Törzstag | 528 hsz       Online status #76468   2007.12.10 13:25 GMT+1 óra  
Nahh, fejlesztési napló update
   
gaborlabor - Moderátor | 4449 hsz       Online status #58861   2007.06.08 07:09 GMT+1 óra  
Áhh, nem, az enyém az még nagyon nagyon kezdetleges.
Egy készülő játékhoz használom, az majd be lesz regelve, de csak a minigame verseny után, valamikor nyáron.
Igazából csak annyiból áll, hogy a leggyakrabban használt függvényeimet, megoldásaimat összegyűjtöm egy library-ba, így nem kell őket mindig újra megírni/bemásolni a kódba.
De nagyon lassan haladgat, mert közben tanulom az OpenGL-t is, hálózatkezelést is, meg nyáron C++t is akarok tanulni...

   
proof88 - Törzstag | 528 hsz       Online status #58859   2007.06.08 07:03 GMT+1 óra  
Wolfee: ááá, már értem.
gaborlabor: és te konkrétan milyen motort csinálsz? Regelve van itt JF-en?
   
gaborlabor - Moderátor | 4449 hsz       Online status #58810   2007.06.08 03:38 GMT+1 óra  
Idézet
proof88 :
Ehh, átírtam a szövegben a linket, mert tegnap elrontottam.

gaborlabor: csak a motort fejlesztem és mellé lesznek példaprogik is. Ha valami új szolgáltatást berakok a DLL-be, akkor példaprogival tesztelem, amit megírok hozzá. Persze nem kell mindenhez külön példaprogi, egy példaprogi is be tud mutatni több feature-t is. Amúgy teamben vagyok, ami játékot fog majd csinálni elvileg, ami ezt a motort fogja használni, de ha nem lennék benne, akkor is ezt csinálnám, mert ez érdekel igazán.

Wolfee: he?


Köszi, vágom.
Én is így csinálom...

   
Wolfee - Törzstag | 1336 hsz       Online status #58807   2007.06.08 03:11 GMT+1 óra  
Joint: füves cigi
Future: jövő
ééérted már...?
FZoli jóváhagyásával XD

   
proof88 - Törzstag | 528 hsz       Online status #58805   2007.06.08 03:00 GMT+1 óra  
Ehh, átírtam a szövegben a linket, mert tegnap elrontottam.

gaborlabor: csak a motort fejlesztem és mellé lesznek példaprogik is. Ha valami új szolgáltatást berakok a DLL-be, akkor példaprogival tesztelem, amit megírok hozzá. Persze nem kell mindenhez külön példaprogi, egy példaprogi is be tud mutatni több feature-t is. Amúgy teamben vagyok, ami játékot fog majd csinálni elvileg, ami ezt a motort fogja használni, de ha nem lennék benne, akkor is ezt csinálnám, mert ez érdekel igazán.

Wolfee: he?
   
Wolfee - Törzstag | 1336 hsz       Online status #58700   2007.06.07 12:51 GMT+1 óra  
őőő... a korral jár...
/OFF
FZoli jóváhagyásával XD

   
gaborlabor - Moderátor | 4449 hsz       Online status #58699   2007.06.07 12:39 GMT+1 óra  
Wolfee, te mindenben a rosszat látod.

   
Wolfee - Törzstag | 1336 hsz       Online status #58697   2007.06.07 12:37 GMT+1 óra  
Proof88 egy füvesekből álló jövőt vízionál...
FZoli jóváhagyásával XD

   
gaborlabor - Moderátor | 4449 hsz       Online status #58696   2007.06.07 12:35 GMT+1 óra  
Hello
Csak a motort fejleszted, vagy vele párhuzamosan írsz egy játékot is, vagy csak példaprogikat?
Ha egy új funkcióval/függvénnyel bővül a DLL fájl, azt hogyan próbálod ki, hogyan teszteled? Van egy teszt-progi, amiben mindig a legújabb feature-öket teszteled?

   
proof88 - Törzstag | 528 hsz       Online status #58689   2007.06.07 11:24 GMT+1 óra  
PR00F: JointFuture
   
> 1 <