Témy na bak. a dipl. práce

Pri témach sú len veľmi krátke popisy, viac informácii k jednotlivým témam osobne. Samozrejme je možné sa dohodnúť na iných podobných témach a zadaniach.

Logické programovanie, ASP

TODO

Reprezentácia znalostí v hrách

Vyhodnocovanie stavu hry

Väčšina poč. hier využíva jednoduché skriptovacie jazyky na vyhodnocovanie stavu hry: či hráč splniť nejakú úlohu a pod. Možné riešenia tak musia byť "naskriptované"

Cieľ: Popísať mechaniku hry a questy pomocou nejakeho KR formalizmu (logika, ASP) a integrovať do existujúcej hry alebo vytvoriť jednoduchú vlastnú hru.

Dialógový systém

Cieľ: Navrhnúť a implementovať dialógový systém pre hry.

Dialógový systém by mal čo najvernejšie simulovať rozhorov hráča s postavou: mal by hráčovi ukazovať repliky postavy relevatné k aktuálnej situácii v hre a k otázkam hráča / doterajšiemu priebehu dialógu.

Plánovanie v hrách

Cieľ: Zaujímavým (z pohľadu KR) spôsobom implementovat plánovanie pre postavy/objekty v hre, či už samotného hráča (tj hrať hru za hráča), alebo pre NPC/nepriateľov/...

Storytelling

Tvorba príbehu ako plánovanie

Cieľ: Vytvoriť systém na tvorbu zaujímavých príbehov, ktoré sa vytváraju zo vzorov akcií, ktoré musia na seba rozumne nadväzovať.

Genrovanie úloh/questov v hrách

Cieľ: Navrhnúť systém na tvorbu náhodných úloh v hre, ktoré sú ale zmyslupnlné vzhľadom na aktuálny stav resp históriu hry

IoT, Embedded Linux, Home automation

Lienka

lienka

3D-printed Bee-Bot klon, založený na ESP8266 čipe s wifi. Momentálne s veľmi jednoduchou implementáciou (naprogramovanie pohybu tlačítkami, start, stop, zahranie niekoľkých pesničiek).

Cieľ: Rozšíriť o nové funkcie (wifi podpora: konfigurácia, discovery, komunikácia, programovanie), desktop(web?) / android app (programovanie, vizualizácia, ...)

Asynchrónny interpreter / asembler

Navrhnúť a implementovať interpreter jednoduchých inštrukcií, ktoré sú ale "asynchrónne".

Programovanie jazyky, frameworks, ...

Knižnica pre asynchrónne operácie v C++

Vo vačšine programovacích jazykov sa ťažko pracuje s asynchrónnymi operáciami, pretože nevedia pozastaviť vykonávanie funkcie a pokračovať v nej až keď asynchróna operácia skončí. Najčastejším prístupom sú "callbacks", prípadne "continuations", niekedy vo forme lambda funkcií. Existujú aj prístupy využívajúce generátory (javascript, python). C++ síce má std::future, ale tá je zameraná na viacvláknové prostredia a nie asynchrónne operácie v jednom vlákne.

diff based dátové štruktúry

Existujú rôzne jazyky a nástroje (thrift, protocol buffers, ...) umožňujúce definovať dátové štruktúry a generovať kód pre rôzne jazyky na ich reprezentáciu a serializáciu. Skoro všetky však serializujú a následne posielajú celé výsledné hodnoty, takže je ťažké pomocou nich posielať akcie ako "zvýš hodnotu o 10" alebo "prepni boolean hodnotu".

GPS, mapy, mobilné zariadenia

TODO
Vim logo FireFox logo CSS XHTML
Jozef Siska @ KAI FMFI UK YoYo @ KSP KAI (DAI) KSP