Přibližně poslední rok jsem programoval (a poslední tři týdny sepisoval) bakalářku na téma herní 3D engine pro Windows Phone 7. Včera jsem ji dokončil a odevzdal. Dávám ji k dispozici ke stažení, můžete si ji prohlédnout (zatím bez zdrojových kódů knihovny).
Abstrakt: Práce se zabývá implementací knihovny pro jednodušší vývoj her na platformě Windows Phone 7. Je v ní analyzováno prostředí mobilních telefonů a probráno, jaké vlastnosti by měl herní 3D engine obsahovat. Je navržena hierarchie projektu, popsány a naimplementovány jsou jednotlivé komponenty. Dodána je podpora pro efektivnější správu objektů ve scéně. Rozšířeny jsou grafické možnosti, především o zobrazování poloprůhlednosti a stínů. Algoritmy jsou vybrány s ohledem na omezený výkon mobilních zařízení. Přiložen je vzorový projekt a popsáno jeho použití.
Zvolené téma implementace 3D engine je pochopitelně hodně rozsáhlé, nemohlo tam být zmíněno úplně všechno. Možná se tam najdou i nějaké drobné chybky :) Myslím, že s výsledkem ale můžu být docela spokojený, uvidíme, jak dopadne obhajoba práce.
Nad touto knihovnou bych chtěl v brzké době postavit i nějaké komerční hry (složitější, než ty, co mám teď v Market-place). Jestli byste měli zájem o implementaci nějakého zajímavého projektu, rád se o tom pobavím :)
Ohledně dalšího vývoje, veřejně tuto knihovnu zatím dávat nebudu, zatím si ji ponechám pro sebe jako takovou “konkurenční výhodu”. Ještě ji samozřejmě budu dolaďovat, přidávat další funkce apod. Snad se v brzké době dostanu i k odzkoušení na Xboxu 360, abych zkusil pořádně zapřáhnout naplno tu bestii :D Mohl by to být i další směr jejího možného rozšiřování (implementace dalších efektů pomocí shaderů apod.).
Přikládám ještě krátké video z testovací scény. Nahrávané je z emulátoru, kvalita bohužel není úplně ideální. Navíc ani renderované FPS moc neodpovídají realitě, bylo to nahrávané na skoro pět let starém notebooku :) Na telefonu to ale běží plynule, konkrétní naměřené hodnoty FPS jsou popsány v kapitole 4.1 přímo v bakalářce. Ovládání kamery pomocí pohybového senzoru, používání multitouch gest, příp. využití hierarchie dotykových vrstev, na videu také není ukázáno.