Port F-15 Strike Eagle II na SDL3 i OpenGL


1

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

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster