Ki használ még DirectDraw-t?
 

Ki, hát én, nem is tudom miért, de mégis, mert mindennek oka van. Ennek kb. az, hogy mindig ki akartam próbálni, milyen egy játékot hardver támogatás nélkül megírni. Na ja, de aki ismeri a DD-t, az tudja, hogy ha 2d-s is, de használja a hardveres-blit lehetőségét (ami nem más mint egy bitmap részének a képernyőre másolása nagy sebességgel). Az a helyzet, hogy a DD-t, csak felületként használtam, manapság nem nagyon vicces (szerintem) VESA-val vagy LFB-vel csinálni (DukeNukem3D pl ezt használta), nem is volt kedvem a hlsl cuccok után valami ilyesmivel fecsérelni az olcsó időmet, ezért esett a választás erre. Nagyon régi technológia ez, Win95-n már volt, szóval a támogatása manapság eléggé elterjedt :).
De akkor miért is szoftveres a cucc? - Azért mert nem csinálok mást, mint a DD-t backbuffer-ét lock-olom, ezzel kapok egy memóriaterületet, ahová rajzolgathatok kedvemre, majd egy húzással az egész kinn terem a képernyőn, ezzel a technikával nem is vibrál a kép. Ennek a sebessége max a monitor képváltásával egyezik meg, vagy lehet kevesebb is. (DD mindenképpen várja a VSync-et, mondjuk ablakban nem próbáltam, de ott a lehetőségek sokkal korlátozottabbak a D3D-vel szemben.)
Így minden pixelt a progi rak ki, fellengzősködhetnék a 'motor' emlegetésével, de ez inkább egy csomó for-ciklust jelent. A sebesség nem is rossz, az én 3000 AMD64 -emen kb 3* tele tud rajzolni egy 1024*768*(32bit) képernyőt (75 fps-el), a sebesség végül is csak a processzor és a RAM sebességétől függ.
(ez kb 708 megabyte/sec (32 bit/szín, és 75 hz a freq., - 24 bitet nem szerette a DD - ami nem rossz egy nem asm cucctól szvsz. - itt megjegyzem, ha nem a paint-et használom grafikára sokkal szebb lehetne az eredmény, de örültem, hogy azzal lett valamilyen.)
Egyáltalán nem használtam assembly-t, mert régen csináltam, ezért én most nem babráltam vele.

Egy régi kis játékötletemet valósítottam meg, még Commodore64-re találtam ki. Alapvetően egy sima ugrálós játék, de a főhősnek van egy erős mágnese, amit eldobhat valahova, majd azt bekapcsolva a mágnesen téren lebeghet (kb mint egy rúdugrás - vagy inkább mostanába' a rocket-jump;).
Na ez ebbe is benne van, csak több ilyen mágnes is lehet, mondjuk ezek csak taszítanak. A játék többi része klasszikus vonalakat és C64-esen sötét háttereket követ (szerk: végül is a taszítós rész nem került bele.)

A játék apropója a http://www.Jatekfejlesztes.hu megrendezett verseny volt, ami tulajdonképpen megadta a kezdőlökést a munkának, ezzel nevezek vele, meglátjuk leszek-e legalább utsó, mert erős a mezőny XD. (szerk: tényleg majdnem utolsó lett XD)

Amúgy ez a felület kiváló helyszíne lehetne bármilyen szoftveres 3d-s engine számára, mert nem kell a hardver-kompatibilitással, megszakításokkal stb. foglalkozni. Jó platform lehet(ne) buta iskolai grafika beadandóknak is, ajánlom mindeninek, aki szereti, vagy kényszerítve van ilyesmire :)

A játék linkje

Na, meg itt egy kis progi az alapokról, afféle csontváz, csak a directdraw-t kapcsolja be egy képpel, fps-t a log.txt-be teszi -nincs kiíró fv-je.
(VC6-ban követtem el)

DD2_scelet

Füleki Péter 2007 Október.
Email. pjotrfu kukac freemail pont hu.