Opublikowano projekt f15se2-ex 0.1.0 — port symulatora lotu MicroProse F-15 Strike Eagle II na nowoczesne systemy. Projekt oparty jest na zrekonstruowanych kodach źródłowych wersji F-15 Strike Eagle II v451.03 z rozszerzeniem Desert Storm Expansion Disk z 1991 roku.
Celem projektu jest przetransferowanie gry na nowoczesne architektury, zachowując ducha oryginału i poprawiając aspekty techniczne. Jako graficzna i okienna warstwa wykorzystywana jest SDL3, do wyświetlania grafiki 3D — OpenGL, dźwięk działa dzięki emulacji AdLib opartej na Nuked-OPL3.
Na obecną chwilę gra jest w pełni grywalna. Zrealizowano transfer renderowania i wejścia do SDL3, działający dźwięk, wsparcie dla joysticka oraz wyświetlanie grafiki przez OpenGL.
Zaimplementowano wywołania systemowe waitid (oczekiwanie na zmianę stanu procesu), pinsyscall (do przekazywania informacji o punkcie wejścia execve w celu ochrony przed exploitami ROP), getthrname i setthrname (uzyskiwanie i ustalanie nazwy wątku).
- usunięto ograniczenie do 15 klatek na sekundę;
- logika gry została oddzielona od renderowania;
- sterowanie stało się bardziej responsywne dzięki obsłudze zdarzeń przez SDL3;
- dodano wsparcie dla nowoczesnych rozdzielczości i szerokiego ekranu;
- obrazy stały się wyraźniejsze dzięki OpenGL i wygładzaniu;
- zwiększono zasięg rysowania;
- mapa, radar i ekran celu są teraz wyświetlane w wysokiej rozdzielczości;
- cele powietrzne można wybierać tak samo jak cele lądowe;
- naprawiono część problemów z rysowaniem obiektów 3D;
- stary programowy rendering można włączyć przez F15_RENDER=software.
Kompilacja pod Linux odbywa się przez CMake i Ninja. Na Ubuntu wystarczy zainstalować SDL3 i skompilować projekt:
sudo apt install libsdl3-dev cmake —preset base-ninja cmake —build build
Po skompilowaniu plik wykonywalny należy umieścić w katalogu z zasobami gry lub wskazać ścieżkę do nich poprzez parametr —game albo zmienną środowiskową F15SE2_DIR.
Projekt jest w fazie rozwoju, więc problemy wciąż występują, ale obecnie już można go skompilować, uruchomić i przejść grę. Dla tych, którzy chcą pracować nad starymi grami w C, to również może być interesujący przykład przeniesienia gry DOS na nowoczesny stos.
Planowane ulepszenia:
- bardziej realistyczne zachowanie rakiet;
- udoskonalenie środków przeciwdziałania rakietom;
- silniejsza sztuczna inteligencja przeciwników;
- poprawa strzelania z działka;
- ślady po rakietach;
- bardziej szczegółowy model uszkodzeń samolotu;
- wbudowane menu ustawień gry;
- poprawa chmur, dymu, ziemi i wody;
- pełnoprawna trzywymiarowa kabina;
- edytor scenariuszy i modeli;
- tryb wieloosobowy;
- powrót do 32-bitowego DOS;
- wsparcie dla wirtualnej rzeczywistości.
Źródło: linux.org.ru
