Czech Danish Dutch English French German Hungarian Italian Norwegian Polish Portuguese Brasilian Portuguese Romanian Serbian Spanish Swedish
Poniższy dokument opisuje jak gra będzie wyglądać po ukończeniu. W ŻADNYM STOPNIU nie jest gwarantowana jego zgodność z aktualną wersją gry.

Gra

Celem tego projektu jest stworzenie nowej wersji popularnej gry DOS-owej Stunts, która będzie działać w systemach UNIX/Linux.

"Stara gra"

Oryginalną DOS-ową grę (wydaną przez Broderbund i Mindscape) można ściągnąć z różnych stron z oprogramowaniem "abandonware", np. ze strony XTC.

Stunts to gra wyścigowa z trójwymiarowym widokiem i prostą grafiką CGA/EGA/VGA bez tekstur i cieniowania. Jednak dzięki możliwości wykonywania widowiskowych wyczynów kaskaderskich (pętle, przeskakiwanie mostów itp.) gra potrafiła sprawić wiele frajdy. Do największych zalet gry należy wbudowany edytor tras. Ponieważ trasy konstruowane są z gotowych elementów, każdy gracz może zaprojektować własne trasy.

Podobieństwa / różnice

UltimateStunts będzie grą bardzo podobną do Stunts: Niektóre z drobnych różnic to: Istnieją jednak także zasadnicze różnice:

Opis szczegółowy

Gra

Będzie to gra wyścigowa z trójwymiarową grafiką. Istotnymi elementami gry będą: konstruowanie własnych tras oraz wykonywanie wyczynów kaskaderskich. Symulacja zjawisk fizycznych nie będzie w pełni realistyczna: frajda z gry jest ważniejsza niż realizm. Celem gracza może być: wygranie wyścigu z rywalami, ustanowienie rekordu trasy, a także konstruowanie określonych tras, np. bardzo długich, umożliwiających szybką jazdę albo (prawie) niemożliwych do przejechania.

Tryb wieloosobowy

Gracz będzie mógł jechać trasą sam (wyłącznie w celu uzyskania czasu dającego miejsce na liście rekordów), ścigać się z graczami komputerowymi, z kolegami (na podzielonym ekranie) albo grać w trybie wieloosobowym poprzez sieć lokalną (LAN) lub Internet. Możliwe będą też warianty łączone, np. rywalizacja z graczami komputerowymi przez Internet.

Sieć

Rozpoczęcie gry poprzez sieć powoduje uruchomienie oddzielnego programu serwera na jednym z komputerów. Serwer będzie można uruchomić z menu w programie-kliencie, lecz będzie też istniała możliwość ręcznego uruchomienia na komputerze mającym pełnić rolę serwera. Wszystkie programy będące klientami, które biorą udział w danej sesji gry, muszą połączyć się z serwerem. Serwer nie tylko przesyła wszystkie dane, lecz pełni także rolę arbitra. Symulacja gry będzie działać na serwerze, a wszystkie symulatory lokalne muszą zsynchronizować się z serwerem. Serwer określa także trasę, na której toczy się gra, oraz typy samochodów, które mogą brać w niej udział. Wszystkie pliki powinny być dostępne na serwerze, natomiast jeśli nie posiada ich jeden z klientów, to będzie on mógł automatycznie ściągnąć brakujące pliki.

Grafika

Gra Ultimate Stunts będzie w stanie wyświetlać trójwymiarową grafikę wysokiej jakości, ale będzie pod tym względem bardzo elastyczna. Aby zapewnić możliwość grania na komputerze bez akceleracji sprzętowej, stopień złożoności grafiki będzie można zredukować do minimum. Z drugiej strony, na nowoczesnym sprzęcie gra będzie wykorzystywać zaawansowane technologie.

Trasy

Trasy będą się składać z kwadratowych elementów, dokładnie tak samo jak w Stunts. Różnice są następujące: Rozmiary elementów tras będą wynosiły 40×40×12 metrów, ponieważ odpowiada to w przybliżeniu rozmiarom elementów w Stunts. Obsługa innych rozmiarów nie jest planowana. Duże elementy (takie jak łagodne zakręty w Stunts) są złożone z mniejszych elementów.

Edytor tras

Edytor tras będzie przyjaznym dla użytkownika programem do edycji tras. Uruchomienie go będzie następowało po wybraniu odpowiedniego polecenia menu w głównym programie. Ponieważ w Ultimate Stunts trasy są w większym stopniu trójwymiarowe niż w przypadku Stunts, edytor tras będzie bardziej złożony. Inspiracją do niego jest edytor kolejki górskiej w grze Rollercoaster Tycoon. Zasadnicza koncepcja sprowadza się do umieszczenia na końcu drogi "kursora". Użytkownik decyduje o tym, czy droga ma skręcać w prawo lub w lewo, czy ma się wznosić lub opadać, czy na trasie ma być umieszczony obiekt kaskaderski itp. Oczywiście edytor tras powinien też sprawdzać poprawność trasy oraz uniemożliwiać wprowadzanie nieprawidłowych zmian. Edytor powinien też mieć możliwość importowania tras oryginalnej gry Stunts.

Powtórki

Dokładnie tak samo jak w Stunts, w Ultimate Stunts będzie można zapisywać i oglądać powtórki (choć gra nie będzie w stanie odczytywać powtórek z oryginalnej gry Stunts). W powtórkach Ultimate Stunts każda klatka będzie zawierać informacje o położeniu i kierunku ustawienia każdego ruchomego obiektu na miejscu akcji. Używając odpowiednich narzędzi do konwersji dane te będzie można wykorzystać w programach do animacji (takich jak 3D Studio), na przykład w celu stworzenia filmowej czołówki do Ultimate Stunts. W Ultimate Stunts będzie też można wykorzystywać powtórki do wyświetlania tzw. ghost playera (wirtualnego gracza).

Edytor stunts3dedit

W początkach istnienia tego projektu nie było planów stworzenia edytora 3D, jednak potrzeba korzystania ze skomplikowanych elementów tras (i związana z tym trudność ręcznego definiowania ich w plikach tekstowych) wymusiła jego napisanie. Edytor 3D pozostanie prostym narzędziem do niskopoziomowego manipulowania wielokątami, z pewnymi możliwościami modyfikowania na wyższym poziomie. Coraz ważniejsza staje się możliwość importowania plików w obcych formatach. Tok postępowania będzie następujący: stworzenie modelu w zewnętrznym edytorze, zaimportowanie go do stunts3dedit, naniesienie poprawek i zapisanie modelu w celu użycia go w Ultimate Stunts.

Wymagania systemowe

Gra UltimateStunts jest bardzo elastyczna w kwestii wymagań systemowych: można w nią grać na komputerach bez akceleracji sprzętowej, ale na nowoczesnych komputerach jest w stanie w pełni wykorzystać możliwości technologii 3D.

Do uruchomienia plików binarnych dla Windows wymagane są:

W typowym systemie UNIX wymagane są: W celu przeprowadzenia kompilacji w systemie Windows można użyć programu Cygwin. Potrzebne będą pakiety opengl i w32api, SDL, oraz oczywiście wszystkie pozostałe elementy niezbędne do kompilacji.

Aby uzyskać ładną i płynnie animowaną grafikę zalecany jest następujący sprzęt:

UltimateStunts może również obsługiwać:

Technologia

Głównymi platformami, na których tworzona jest gra, są Linux oraz Cygwin (w systemie Windows), lecz staram się zachować możliwość przenoszenia do innych środowisk zbliżonych do Uniksa, takich jak MacOS/X. Do obsługi grafiki i urządzeń wejściowych stosowana jest kombinacja openGL/SDL. Komunikacja sieciowa jest realizowana poprzez standardowe funkcje sieciowe systemu UNIX (BSD). Komunikacja związana z rozgrywką będzie korzystać z UDP/IP. Dźwięk jest zaimplementowany zarówno w FMOD, jak i openAL.

Projekt będzie się składał z kilku różnych programów. Należą do nich:

Obecnie do pisania gry używany jest program kdevelop.

Sieć i symulacja

Funkcje poszczególnych programów biorących udział w danej sesji rozgrywki będą bardzo elastyczne, jako że optymalna konfiguracja będzie zależała od parametrów sieci, takich jak przepustowość. Poniższy tekst opisuje przyszłe wersje gry. NIE odnosi się natomiast do aktualnej wersji.

W grze lokalnej, czyli tylko z jednym komputerem biorącym udział w sesji rozgrywki, wszystkie operacje (wyświetlanie grafiki, sterowanie graczami komputerowi, symulacja zjawisk fizycznych) są wykonywane przez jeden program. W grze sieciowej, w której więcej niż jeden gracz jest sterowany przez człowieka, dane będą rozsyłane przez program serwera. Zasadnicza symulacja zjawisk fizycznych będzie przeprowadzana przez program serwera, ale (w zależności od przepustowości połączenia) niektóre programy klientów będą również mogły wykonywać obliczenia fizyczne w celu poprawienia błędów wynikających z powolnej synchronizacji z serwerem.

Stworzenie graczy sterowanych przez komputer (AI) jest możliwe zarówno z serwera, jak i z klienta Ultimate Stunts. Można też użyć do tego celu oddzielnego programu klienta AI. W celu uzyskania optymalnego działania gry zaawansowani użytkownicy mogą wykorzystać program serwera do działania również w charakterze klienta. W ten sposób program serwera będzie mógł zalogować się do rozgrywki internetowej na powolnym łączu i pełnić rolę serwera dla różnych graczy w sieci lokalnej (LAN). Umożliwi to wykorzystanie pojedynczego połączenia klient-serwer przez kilku graczy.

Grafika

Jako że grafika oparta jest na całych elementach, renderowanie można było przyśpieszyć poprzez wyłączenie "buforowania z" (które w openGL jest domyślnie włączone). Zamiast tego stosowane jest po prostu renderowanie elementów we właściwej kolejności. Ponadto grafikę będzie można w dużym stopniu konfigurować. Po wyłączeniu "buforowania z", teksturowania, wygładzonego cieniowania, wyświetlania tła, a także przy rozdzielczości ustawionej na 320×200 itd. itp., gra będzie wyglądać bardzo podobnie do oryginalnej gry DOS-owej, ale za to będzie ją można uruchomić na każdym komputerze.