Ahoj,nejak si nejsem jisty kterou z techto knihoven vyuzit pro jednoduche 2d hry. direct2d se mi zda strasne robustni a obrovske na neco tak maleho,opengl uz je lepsi ale zhruba to same,sdl je jenom strukturovane ale zatim vypada nejlip a qt .. to je hlavne na gui ale hry v tom pujdou delat taky. co by ste doporucili pro jednoduche hry,skakacky,pac mana a podobne?
Fórum › C / C++
2d hry direct2d vs opengl vs sdl vs qt
#1 rodinne.baleni.ryze
Direct2D
Od Visty je nativní součástí Windows takže není třeba na cílovém PC doinstalovávat žádné (leckdy monstrózní) runtimové knihovny.
Co je na Direct2D "strašně robusní"? Jsou to COM objekty, použiješ jen ty potřebné...
Dobré tutoriály na Direct2D napsal např. Kenny Kerr.
Radek Chalupa
- vývoj software na zakázku
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC)
http://www.radekchalupa.cz
Za mě sdl. snadno se učí, jediná nevýhoda je, že je záhodno si hned zkraje napsat si makra na takové prkotiny, jako je vykreslování objektů, aby člověk nemusel pořád psát ten samý kód dokola a taky doporučuju si vygooglit rotozoom.h, rotozoom.cpp
OpenGL a též se přiklánim k názoru, že Direct není robustní, použijš jen to, co potřebuješ, čili 2D knihovny
a to Qt vypusť z hlavy, to je primárně GUI framework, sice umí i vykreslit přes GPU, ale na to použivá nativní OpenGL, takže ve výsledku je úplně jedno, jestli použiješ OpenGL normálně nebo se budeš srát s Qt (a jen tak mimochodem, i čistá GUI app, má cca 37MB)
ale úplně nejlepší volba pro 2D (i 3D) hry je XNA framework, rychle a snadno se v to dělají hry, rendruje přes DirectX9 a jede na C#
samozřejmě nejde o high-end engine, ale na běžný hry, kór když začínáš bez problémů postačuje
#7 ingiraxo
Podpora XNA byla Microsoftem nedávno ukončena.
Sám jsem začinal s SDL, ale kdybych se mohl vrátit v čase, nebál bych se klidně začít rovnou s OpenGL nebo Direct3D. SDL totiž (alespoň v době, kdy jsem s ním pracoval) nepodporuje GPU akceleraci, což na běžné operace nevadí, ale jakmile chce člověk spritem rotovat, tak to pocítí.
Ze steného důvodu doporučuji i Direct3D, nikoliv Direct2D. Direct2D je hardwarově akcelerován až od Windows 8 (teď nevím, která verze DirectX to je). Ostatně s použitím knihovny D3DX není vykreslování spritů pomocí Direct3D ničím složitým - viz http://msdn.microsoft.com/en-us/library/windows/desktop/bb174249%28v=vs.85%29.aspx
#8 yaqwsx
Zdroj tvrzení o hw akceleraci Direct2D až od Windows 8?
V dokumentaci Windows SDK pro Windows 7 (vydané dávno před tím, než se o osmičkách vůbec vedělo) stojí že samozřejmě je hw akcelerované od počátku existence, tj. Windows 7 (dokonce jestli se nepletu tak i pro Visty byla dodatečně implementovaná runtimová podpora), viz citace:
"Direct2D is a hardware-accelerated, immediate-mode 2-D graphics API that provides high performance and high-quality rendering for 2-D geometry, bitmaps, and text. The Direct2D API is designed to interoperate with existing code that uses GDI, GDI+, or Direct3D"
Radek Chalupa
- vývoj software na zakázku
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC)
http://www.radekchalupa.cz
Děkuju za reakce,vyhrálo to sdl a direct2d,podívám se co mi bude vyhovovat víc a podle toho se rozhodnu. Jak se vám pracuje s COM objekty? někde jsem na ně četl negativní názory,tak si nejsem jistý jestli COM objekty nebo čisté C.
#9 Radek Chalupa
Trochu jsem zaspal dobu; o Direct2D jsem se zajímal v době, kdy světu vládl DirectX 9. HW akcelerace je podporována tedy už od verze DirectX 10 (a tedy Vist).
Direct2D can minimize CPU usage and utilise hardware rendering on a graphics card that supports Direct3D 10.1 and/or Direct3D 10 Level 9 with WDDM 1.1 drivers, falling back to software rendering using WARP10 in situations when hardware is not available, such as session 0, and for remote server-side rendering. Direct2D performance and memory usage scale linearly with primitive counts in both software and hardware.
zdroj: Wiki
Ahoj, pokud nechces javu. Tak ti doporucim SFML, je velice jednoducha rychla. viz http://www.sfml-dev.org/…res.php
tak nakonec jsem se rozhodl pro direct2d,mate prosimvas nejaky dobry tutorial nebo knizku,idealne v cestine? nejake sem nasel ale ta je uz celkem stara
#13 Doomista
Ano, ale není to zrovna elegantní řešení, pokud nepotřebuješ např. pouze pár natočení. Předrotování je totiž celkem náročné na pamět. Teď si z hlavy nemůžu vzpomenout, jak se jmenovala knihovna pro SDL, která to uměla. Existuje i modifikace SDL, ve které je vše hardwarově akcelerované pomocí OGL, bohužel tato modifikace neuměla pracovat s anti-aliasingem, tudíž byla pro rotaci objektů nepoužitelná.
EDIT: Modifikace SDL se nazývá glSDL a knihovna po pokročilou práci s SDL surface se nazývá SDL_gfx.
#15 yaqwsx
SDL_gfx mám nainstalované, ještě jsem se ale nedostal k tomu ho nějak studovat. osobně jsem kdysi na netu našel rotozoom.h, které umožňuje sprity natáčet, má antialiasing a zoom a s několika úpravama jsem i dosáhnul předrenderování do všech 360°. Bohužel šlo jen o testování zda to jde, nestudoval jsem vliv na cpu. Náročnost na paměť jsem zatím neřešil, dělám si zatím malý projekty, kde je pro mě těch pár desítek MB na ram celkem ještě ukradených.
Má direct2D vestavěný timer? Něco na způsob timeru z allegra? kéž by se tak allegro chovalo normálně na 64bit w7...
dival sem se na to direct2d a to je.. no tezke strasne. moc vysoky level na me,asi pujdu do opengl
Zasláno z mobilního telefonu.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
C++, OpenGL, SDL /// C++, OpenGL — založil Kolemjdouci
SDL, OpenGL, DirectX — založil radypala
SDL/OpenGL - změna barev při texturování — založil frantta
Hledám opensources na openGL hry — založil Pok
OpenGL 1.4 — založil koudis;
Moderátoři diskuze