Propozycje tematów prac inżynierskich (studia stacjonarne)

Projekt i implementacja aplikacji do prototypowania gier strategicznych

Zakres:
  1. Zapoznanie się z tematyką i analiza wymagań.
  2. Wybór technologii do realizacji zadania.
  3. Zaprojektowanie i implementacja aplikacji.
  4. Testowe wdrożenie programu.
Opis:

Celem pracy jest stworzenie aplikacji, która pozwoli na szybkie wykonanie prototypu gry strategicznej. Użytkownikiem programu nie jest gracz, ale projektant, który powinien mieć możliwość prostego testowania swoich pomysłów. Środowiskiem gry jest plansza (mapa), na której można rozmieszczać obiekty (np. miasta, zasoby, jednostki) opisane zdefiniowanymi przez projektanta parametrami. Interakcja pomiędzy elementami świata gry jest określana przez projektanta (np. w postaci skryptów). Temat nie obejmuje tworzenia AI - zakładamy grę typu hot seat (gracze przy jednym komputerze rozgrywają na przemian swe tury). Program powinien pozwalać na zapis przebiegu rozgrywki (w celu późniejszego odtworzenia lub analizy).

Projekt i implementacja aplikacji do prototypowania komputerowych gier zręcznościowych

Zakres:
  1. Zapoznanie się z tematyką i analiza wymagań.
  2. Wybór technologii do realizacji zadania.
  3. Zaprojektowanie i implementacja aplikacji.
  4. Testowe wdrożenie programu.
Opis:

Celem pracy jest program, który pozwoli na szybkie stworzenie prototypu gry zręcznościowej. Użytkownikiem programu nie jest gracz, ale projektant, który powinien mieć możliwość w prosty sposób testowania swoich pomysłów gameplayowych lub mechanicznych. Aplikacja powinna pozwalać na definiowanie środowiska gry (planszy) i jednoczesne poruszanie się w nim. Użytkownik powinien mieć możliwość określania sposobów ruchu postaci gracza (wybór sterowania, szybkości), a także zachowania postaci kierowanych przez komputer i wzajemnej ich interakcji (np. definiowanej w postaci skryptów). Wygląd powinien być ograniczony do podanych przez użytkownika grafik lub kolorowych prostokątów. Aplikacja powinna pozwolić na naśladowanie gier z gatunku scrolling shooter oraz gier platformowych.

Projekt i implementacja aplikacji do testowania mechaniki walki w grach fabularnych

Zakres:
  1. Zapoznanie się z tematyką i analiza wymagań.
  2. Wybór technologii do realizacji zadania.
  3. Zaprojektowanie i implementacja aplikacji.
  4. Testowe wdrożenie programu.
Opis:

O przebiegu starcia w grach fabularnych (RPG) decyduje zbiór reguł, określających szansę trafienia przeciwnika atakiem, zadania mu obrażeń, pokonania go, etc. Program będący tematem tej pracy ma służyć projektowaniu i kalibracji tych reguł. Są one często zbyt złożone, by modelować je w sposób analityczny. Dlatego aplikacja powinna pozwalać na automatyczne wykonanie serii testów (metodą Monte Carlo) i zwrócenie wyników informujących o spodziewanym rezultacie starcia. Ma to służyć takiemu ustawieniu parametrów systemu, aby walki stanowiły wyzwanie i przynosiły satysfakcję dla gracza. Użytkownik programu powinien móc zdefiniować reguł rządzące starciem (np. w postaci skryptów), a następnie uruchomić symulację. Program powinien pozwalać na dwa tryby symulacji - z interakcją (np. wybór ataku lub obrony co turę walki) oraz bez (wówczas ewentualne wybory dokonywane są wg określonych losowych reguł). Rezultaty powinien przedstawiać w postaci czytelnych wykresów i tabel.

Projekt i implementacja aplikacji generującej obrazy przy użyciu automatów komórkowych

Zakres:
  1. Zapoznanie się z tematyką i analiza wymagań.
  2. Wybór technologii do realizacji zadania.
  3. Zaprojektowanie i implementacja aplikacji.
  4. Testowe wdrożenie programu.
Opis:

Generative art czy algorithmic art jest ideą automatycznego tworzenia obrazów przy użyciu komputera, gdzie rolą człowieka jest jedynie dostarczenie algorytmu czy ustawienie współczynników systemu. Zadaniem aplikacji będącej tematem pracy, jest generowanie tego typu grafik z wykorzystaniem automatów komórkowych. Automat komórkowy jest regularną siatką komórek, gdzie każda komórka ma określony stan. Stan komórki zmienia się w kolejnych generacjach na podstawie określonych reguł lokalnych (czyli zależnie od stanu danej komórki oraz stanów jej sąsiadów). Użytkownik programu powinien mieć możliwość dostarczenia zbioru owych reguł (przy pomocy intuicyjnego interfejsu), a następnie obserwowania efektów działania algorytmy. Aplikacja powinna pozwalać zarówno na generowanie pojedynczych obrazów jak i całych ich serii (np. z kolejnych generacji lub zależnie od początkowego stanu automatu).

Projekt i implementacja aplikacji generującej obrazy przy użyciu modelowania agentowego

Zakres:
  1. Zapoznanie się z tematyką i analiza wymagań.
  2. Wybór technologii do realizacji zadania.
  3. Zaprojektowanie i implementacja aplikacji.
  4. Testowe wdrożenie programu.
Opis:

Generative art czy algorithmic art jest ideą automatycznego tworzenia obrazów przy użyciu komputera, gdzie rolą człowieka jest jedynie dostarczenie algorytmu czy ustawienie współczynników systemu. Zadaniem aplikacji będącej tematem pracy, jest generowanie tego typu grafik z wykorzystaniem agentów. Agentem jest punkt poruszający się po powierzchni obrazu zgodnie z określonymi przez użytkownika aplikacji regułami (dostarczonymi np. w postaci skryptu) i zostawiający ślad (traktowany jako pociągnięcie pędzla). Aplikacja powinna pozwalać na uruchomienie kilku takich agentów i obserwację ich działań oraz zapis wygenerowanych obrazów. Generowany obraz jest dwuwymiarowy, ale agent może faktycznie poruszać się w 3 lub więcej wymiarowej przestrzeni, zaś jego pozycja jest rzutowana na płaską powierzchnię.

Projekt i implementacja aplikacji konstruującej obrazy fraktalne na bazie przekształceń zawężających (IFS)

Zakres:
  1. Zapoznanie się z tematyką i analiza wymagań.
  2. Wybór technologii do realizacji zadania.
  3. Zaprojektowanie i implementacja aplikacji.
  4. Testowe wdrożenie programu.
Opis:

Zadaniem aplikacji jest automatyczne generowanie grafik fraktalnych na podstawie zadanego przez użytkownika zbioru funkcji zawężających.

Przykłady takich funkcji i generowanych na ich podstawie grafik można zobaczyć np. tutaj:
http://en.wikipedia.org/wiki/Barnsley_fern

Użytkownik powinien mieć możliwość wprowadzania funkcji na kilka sposobów (np. w postaci kodu oraz przy pomocy graficznego interfejsu, w którym definiuje przekształcenia afiniczne). Powinna istnieć możliwość ręcznego manipulowania współczynnikami i obserwowania na bieżąco efektów, a także możliwość zapisania wygenerowanych obrazów.

Projekt i implementacja aplikacji o otwartym kodzie do automatycznego generowania prostych rysunków technicznych

Zakres:
  1. Zapoznanie się z tematyką i analiza wymagań.
  2. Wybór technologii do realizacji zadania.
  3. Zaprojektowanie i implementacja aplikacji.
  4. Testowe wdrożenie programu.
Opis:

Aplikacja powinna działać w dwóch trybach. W pierwszym użytkownik może wygenerować szablon rysunku pewnego elementu (przeważnie rysując kształt i podając jego wymiary jako "zmienne"). W trybie generowania wystarczy później wybrać szablon, skalę oraz podać wartości zmiennych, a zostanie stworzony rysunek (wraz z wymiarowaniem), który można wyeksportować do kilku popularnych formatów rastrowych oraz wektorowych. Jako "zmienne" można podawać nie tylko rozmiary, ale również liczność pewnych elementów graficznych (np. liczbę kropek oznaczających zbrojenie na pewnym odcinku).

Projekt i implementacja platformy przeznaczonej do symulacji sztucznego życia

Zakres:
  1. Zapoznanie się z tematyką i analiza wymagań.
  2. Wybór technologii do realizacji zadania.
  3. Zaprojektowanie i implementacja aplikacji.
  4. Testowe wdrożenie programu.
Opis: Sztuczne życie w rozumieniu tej pracy to pojedyncze organizmy (agenci) umieszczeni w ograniczonym środowisku, wypełnionym elementami przyjaznymi (pokarm), neutralnymi (ściany) i niebezpiecznymi (wrogowie, pułapki). Organizmy otrzymują (ograniczone) informacje o otoczeniu przy pomocy receptorów i na tej podstawie podejmują decyzję o swym ruchu. Zadaniem pracy nie jest opracowanie "mózgu" (czyli reguł ruchu na podstawie otoczenia) - to dostarczać ma użytkownik programu (np. w postaci skryptu). Aplikacja ma zajmować się jedynie uruchomieniem symulacji, dostarczaniem danych, interpretacją odpowiedzi i wykonywaniem ruchów agentów.
Powrót