Wave engine - zkušenosti?   otázka

C#, XNA

Zdravím,

chci se zeptat, zda tu má někdo zkušenosti s wave engine http:\\waveengine.net .

Pokud to chápu dobře, je oproti monogame zase o něco více abstraktní (je trochu vyše) a obsahuje rovnou už třídy na fyziku (asi ty samé co jsou doporučeny pro monogame).

Pokud by někdo dokázal říci pro a proti "Monogame vs Wave", byl bych rád :-). Děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

WaveEngine jsem se začal učit letos během soutěže LudumDare, a strašně moc se mi líbil (za 35h jsem v něm udělal kompletní hru, kterou bych jinak dělal týden i víc). Do té doby jsem dělal hry spíš v různých Frameworcích (C# Monogame - tehdy XNA, Java LibGDX, Python Pygame). Zkušenosti mám tedy výhradně s 2D hrami.

WaveEngine je v první řadě Engine, což znamená, že už to dělá spoustu věcí za tebe. Oproti tomu Framework je spíš sada nástrojů, a ty si uděláš všechno sám. To znamená, že například budeš ručně plnit metodu render a procházet všechny svoje entity a vykreslovat je na jejich pozici. WaveEngine má úplně skvělý systém scén a entit - pro každou obrazovku ve hře si vytvoříš třídu Scene, a pro každou entitu ve scéně přidáš novou třídu Entity a do ní přidáš komponenty, které potřebuješ, např. Transform2D, Sprite a SpriteRenderer. Transform2D určí pozici a velikost, Sprite drží texturu a SpriteRenderer to vykreslí na obrazovku.

A to je vše. Zbytek engine zařídí za tebe. Ve výsledku je pak celá hra spíš taková skládačka - složíš si entity z různých komponent a obrazovku z nejrůznější entit, a ono to všechno samo funguje. Aby se to nějak hýbalo, tak si budeš muset ještě k některým entitám přidat vlastní komponentu s ovládáním a chování, což je taky úplná hračka.

Celý Engine má dle mého názoru nádherný objektový návrh. Píše se v tom úplně božsky. Všechno buď přesně tak, jak bych čekal, nebo ještě mnohem jednodušeji.

Za asi poslední je, že to má spoustu implementovaných doplňků, já třeba rád používám TiledMapy (Tiled editor map), už zmíněná fyzika v podobě Farseer physics, což je C# varianta Box2D, ale tady je navíc skvěle zabudovaná do jejich komponentového systému, takže většina věcí se napíše místo 20 řádků v Box2D asi tak na 3 řádky ve WaveEngine. Jen mi chvilku trvalo, než jsem přišel na to, jak to celé funguje. Dále tam je třeba Spine, což je nástroj na 2D animace (ten plánuju taky v nejbližší době používat), a například obsahuje i různé Image Effects, což jsou více méně kamerové čočky, např. efekt rybího oka, filmu, 3D brýlí, zrnění atp. To zmiňuju jen ty rozšíření, které jsem používal, myslím, že toho je více.

A druhý problém byl, že během soutěže jsem objevil bug v jedné přídavné knihovně, a nemohl jsem to moc odladit, jelikož jsem měl stažené jen binárky. Nicméně jsem objevil, že velkou část zdrojáků mají mirrornutou na GitHubu, a tak jsem si tuhle knihovnu sám opravil a přilinkoval k projektu.

Následující výčet je opět pouze z pohledu vývoje 2D her:

Výhody Monogame (XNA):

- dobrá a rozsáhlá dokumentace, spousta tutoriálů

- vlastní návrh struktury aplikace, více si ovlivním vykreslování, vhodné na hodně specifické případy her

Výhody WaveEngine:

- velmi rychlý způsob psaní her - více méně jen psaní logiky, ne vykreslování atp.

- skvěle napsaná knihovna, je radost v ní programovat

- spoustu doplňků a rozšíření (TiledMaps, fyzika, Spine, ImageEffects..)

- předem daná architektura aplikace

- velké množství ukázkových her pokrývající většinu use-casů

- vhodné na 90% 2D her, typické věci

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback