Automatické testování má dnes své místo ve vývojovém cyklu většiny velkých/komerčních/dobře vedených projektů. Známe jsou například technologie JUnit, CPPUnit, apodob. Učebnice, manuály a tutoriály zabývající se touto problematikou nabízejí většinou pouze jednoduché příklady toho jak testovat že součet dvou čísel funguje. Na principu neustálého testování jsou založené celé programátorské metodologie (test-driven programming). V komplexním projektu, jakým muže být například počítačová hra, kde na sobě závisí mnoho akcí, a kde se mnoho věcí projeví pouze tehdy, pokud hra běží v reálném čase, se podobné testy píší velice těžko. Jak by měl vypadat framework, který usnadní vývojaři testování i samotný vývoj počítačové hry? Jak takový systém navrhnou, aby šel zapojit do existujícího projektu? Autor by mohl ke studiu a vývoji testovacího frameworku použít některý z existujících open-source herních projektů.
Téma je možné po dohodě dostatečně zúžit. Například se omezit na konkrétní platformu, knihovnu, engine (DirectX, OpenGL, SDL, Ogre, ...). Použitý jazyk, cílová platforma závisí primárně na řešení, pro které se autor rozhodne. Může jít o kombinaci více jazyků, nástrojů (knihovna + klientská aplikace, apodob.).
Zadáno: 25.2.08
Řešitel: Jiří Kavalík
Existuje mnoho editorů rastrových obrázků, několik málo editorů vektorových obrázků a ještě méně editorů trojrozměrných vektorových obrázků (3D Studio,...). Objemová data (skládajcící se z voxelů na místo pixelů) jsou prostředek, kterým přinést mnohem více informace do 3D počítačové grafiky než dovoluje tradiční povrchový model. Ze zpracování objemových dat těží například medicína, nebo materiálový, či chemický průmysl. S rostoucí kapacitou a rychlostí počítačů nachází objemová data čím dál větší uplatnění. Objemová data lze analyzovat, zobrazovat, ale také editovat. Jak pro analýzu tak i pro zobrazování jsou vyvíjeny nové algoritmy a postupy, které se odlišují od svých dvourozměrných předků. Stejně tak úloha editace skýtá velký prostor pro nové přístupy. Například pro editování obrázků se zažil pojem štětce s možnostmi nastavení tloušťky, průsvitnosti. Analogií pro editaci objemových dat by mohlo být dláto, kterým se budou oškrabovat voxely. Co v případě editování jiného než binárního obrazu? Jaké jiné nástroje uživatelského rozhraní by se daly použít? Průměty do rovin, masky, šablony, množinové operace...?
Tento projekt je velice snadno rozšiřitelný na bakalářskou práci. S trochou fantazie i nad úroveň bakalářské práce.
Použitý jazyk, cílová platforma závisí na dohodě. Preferováno je C++ a multiplatformnost.
Zadáno: 7.3.08
Řešitel: Josef Talaš
Řešitel se pokusí implementovat, složitější operaci pro editování objemových dat založenou na nelineárních deformacích. Jde o operace podobné warpingu 2D obrázku. Řešitel si prostuduje dostupnou literaturu k dané problematice a zaměří se na implementaci algoritmu s vlastnostmi důležitými pro interaktivní editační nástroj.
Tento projekt je velice snadno rozšiřitelný na bakalářskou práci. S trochou fantazie i nad úroveň bakalářské práce.
Použitý jazyk, cílová platforma závisí na dohodě. Preferováno je C++ a multiplatformnost.
Literatura:
Mario Botsch, Mark Pauly, Martin Wicke, Markus Gross: Adaptive Space Deformations Based on Rigid Cells
Liviu Tancau, Ravin Balakrishnan, Michael J. McGuffin: Using Deformations for Browsing Volumetric Data
H. Chen, J. Hesser, R. Männer: Fast Volume Deformation Using Inverse-Ray-Deformation and FFD
Tom Brunet, K. Evan Nowak, Michael Gleicher: Integrating Dynamic Deformations into Interactive Volume Visualization
Florian Schulze, Katja Buhler, Markus Hadwiger: Interactive deformation and visualization of large volume datasets
Simon Walton, Mark Jones: Interacting with Volume Data: Deformations using Forward Projection
Remco K. Chang: Simulation Techniques For Deformable Animated Characters, master thesis
Carlos D. Correa, Deborah Silver, Min Chen: Volume Deformation via Scattered Data Interpolation
Zadáno: 10.3.08
Řešitel: Vojtěch Kolomičenko
Řešitel implementuje hráče karetní hry Texas Hold'em, který se bude rozhodovat na základě svých karet, stavu hry (pozice u stolu, množství vsazených peněz, sázky ostatních hráčů). Program bude udržovat statistiku chování ostatních hráčů, díky které se pokusí vyhodnocovat jejich vlastnosti a taktiky. Nakonec může některé vlastnosti sám zkoušet (blafování, check-raise, tight-loose, ...). Řešitel se může inspirovat existující literaturou zabývající se optimalními strategiemi v této hře.
Aby mohl počítač hrát proti ostatním hráčům, vytvoří řešitel grafické rozhraní. Kromě toho implementuje i hru více hráčů po síti s architekturou klient-server. Jeden server bude spravovat uživatelské účty a bude schopen obsluhovat více klientů najednou. Klienti se budou připojovat ke hře v rámci sezení, během kterého budou na server posílat své herní akce akce (sázka, složení karet, ...) a budou přijímat informace o akcích ostatních klientů.
Literatura:
Ankur Chopra: Knowledge and Strategy-based Computer Player for Texas Hold'em Poker, Master thesis, www.inf.ed.ac.uk/publications/thesis/online/IM060394.pdf
Andrew Gilpin and Tuomas Sandholm: A competitive Texas Hold'em poker player via automated abstraction and real-time equilibrium computation, www.cs.cmu.edu/People/sandholm/texas.aaai06.pdf
Peter Bro Miltersen, Troels Bjerre Sorensen: A Near-Optimal Strategy for a Heads-Up No-Limit Texas Hold'em Poker Tournament, www.daimi.au.dk/~bromille/Papers/aamaspoker.pdf
Andrew Gilpin, Tuomas Sandholm: A Texas Hold'em poker player based on automated abstraction and real-time equilibrium computation, http://www.cs.cmu.edu/~sandholm/texas_demo.aamas-06.pdf