Środowiska Wirtualne
Raport post-mortem
Mateusz Janeczek, GKM, 201207
Dariusz Jędrzejczak, TGSI, 201208
Krzysztof Kubiak, TGSI, 201216
Na początku założyliśmy, że projekt, który stworzymy musi tworzyć dopracowaną i zamkniętą całość. Nie było zatem czasu na stworzenie rozległego świata gry. Od razu przedyskutowaliśmy też problem immersji po założeniu Oculusa, którą chcielibyśmy osiągnąć. Konkretnie: jak dostarczyć “mocne wrażenia” bez wzbudzania zawrotów głowy, oraz: jak gracz może poruszać się po świecie gry?
Doszliśmy do wniosku, że najlepiej będzie stworzyć grę symulującą kierowanie jakimś pojazdem wysoko w powietrzu. W ten sposób nie będziemy musieli przygotować zbyt dużej ilości modeli, a widoczny kokpit będzie zawsze punktem odniesienia dla osoby rozglądającej się po wirtualnym świecie. Oprócz tego, poruszanie się będzie najbardziej intuicyjne i naturalne: gracz siedzący fizycznie w fotelu, siedzi również w świecie gry, wewnątrz pojazdu, który się porusza.
Po skonsultowaniu z prowadzącymi zajęcia, zdecydowaliśmy się stworzyć prosty symulator lotu małym statkiem kosmicznym. Ze względu na limit 30 sekund, oraz chęć wprowadzenia definitywnego rozpoczęcia i zakończenia naszej gry, stwierdziliśmy, że statek kosmiczny w naszej grze będzie się poruszał w obrębie pewnej ścieżki, która pozwoli łatwiej kontrolować średni czas rozgrywki.
Gracz kieruje statkiem kosmicznym za pomocą joysticka, którego ruchy są odzwierciedlane przez wirtualny odpowiednik. Może swobodnie rozglądać się po kokpicie. Rozpoczyna rozgrywkę w hangarze stacji kosmicznej. Stąd wylatuje do wnętrza tunelu umieszczonego w przestrzeni kosmicznej. Wewnątrz tunelu są rzadko rozmieszczone kosmiczne kamienie -- asteroidy, których gracz ma za zadanie unikać bądź zestrzeliwać. Ściany tunelu składają się z gęstszego obszaru podobnych kamieni.
Autopilot utrzymuje statek wewnątrz tunelu, oddalając go od ścian, gdy się do nich zbliży. Po pokonaniu pewnego dystansu, statek wylatuje z pasa asteroid i wchodzi w prędkość nadświetlną, dzięki czemu w krótkim czasie dolatuje do drugiego obszaru kosmicznych kamieni. Kiedy z niego wylatuje, autopilot nakierowuje go na wahadłowiec, inicjując sekwencję dokowania kończącą naszą grę.
Gra została zaprojektowana tak, żeby dało się ją ukończyć bez względu na umiejętności gracza. Uderzenie w asteroidę skutkuje jedynie odepchnięciem statku i uruchomieniem alarmu w kokpicie. Nie ma możliwości zawrócenia ani zboczenia z ustalonej trasy.
Poniższe zrzuty ekranu przedstawiają rozgrywkę:
Oprogramowanie i języki użyte do stworzenia dema:
Oprogramowanie do zarządzania projektem:
Sprzęt:
Okazało się, że nie ma możliwości stworzenia ściany tunelu z asteroid, która uniemożliwiałaby przedostanie się przez nią i jednocześnie wyglądała naturalnie. Zostaliśmy zmuszeni stworzyć mniej zwartą ścianę oraz autopilota, który będzie uniemożliwiał jej przekroczenie.
Kamienie tworzące tunel, którego pokonanie zajęłoby 30 sekund były zbyt liczne, żeby można je było generować i wyświetlać jednocześnie zachowując przy tym odpowiednią płynność działania aplikacji. W związku z tym podzieliliśmy tunel na dwie części i pomiędzy nimi wstawiliśmy sekwencję prędkości nadświetlnej, żeby skrócić czas przelotu pomiędzy nimi. Wprowadziło to dodatkowo urozmaicenie rozgrywki.
Autopilot okazał się dobrym rozwiązaniem problemu, ale nie był zbyt intuicyjny dla gracza, więc zaimplementowaliśmy interfejs wewnątrz kokpitu. Jego dwa główne składniki to panel wyświetlający aktualny cel lub stan statku oraz duży, niebieski napis “AUTOPILOT” wyświetlający się za każdym razem, gdy sterowanie jest graczowi z jakiegokolwiek powodu odbierane.