Wpis z mikrobloga

Miałem na #studbaza projekt do zrobienia: gra typu serious games(czyli gra która służy nie tylko do dawania frajdy, ale też do "poważniejszych" rzeczy typu edukacja) do napisania w javie lub C#.
Jako że projekt typu "chwytanie myszką śmieci i wrzucanie ich do odpowiedniego kosza, by uczyć segregacji" zanudziłby mnie na śmierć, to postanowiłem napisać swoje kerbale w javie, tylko takie bardzo okrojone, bo miałem na to tylko 3 miesiące i to po godzinach, bo oprócz zdania studiów trzeba jeszcze zarobić na chleb.
Grę zrealizowałem z wykorzystaniem LibGdx, która to jest przeznaczona do gier raczej 2D, ale jako że używa OpenGL, to i sama z siebie pozwala na wykonywanie calli opengl, ale też ma funkcje do wczytywania modeli tekstur, dosyć nieskomplikowanego renderowania modeli(chociaż i tak musiałem się posiłkować "czystym" openglem)
Nazwanie tego kerbalami jest trochę nad wyraz, bo nie ma budowania rakiet, nie ma startów rakiet, nie ma latania samolotami, nie ma... a może lepiej powiem co jest. Oto długa lista tego, co zaimplementowałem:
1. Sterowanie statkiem kosmicznym i zmiana orbity pod wpływem ciągu
2. Nie ma punktu drugiego(to zdanie jest fałszywe)
Nawet ten punkt(1) nie obejmuje funkcjonalności Kerbali, gdyż możemy poruszać się wyłącznie po orbicie okołoziemskiej. Planowałem dodać też inne ciała, ale ze względu na ograniczenia czasowe, nie mogłem zdecydować się na wprowadzenie tak dużej zmiany - wymagałoby to m.in. zaimplementowanie nowego modelu ruchu statku kosmicznego opartego na tzw. "patched conic approximation"
Swoją drogą szukając możliwych rozwiązań problemów związanych z tym modelem, znalazłem post twórcy KSP na forum fizycznym, gdy KSP było jeszcze w powijakach. Co ciekawe, jedną z odpowiedzi otrzymał od byłego inżyniera NASA, który w 1970 napisał dla NASA papier właśnie o patched conic approximation.

Ale ten no. Mój projekt raczej tego ficzeru już nie dostanie, ponieważ już go najprawdopodobniej nigdy nie dotknę. Może bym pomyślał nad przeportowaniem na androida, bo wykorzystałem LibGdx, które w niezwykle łatwy sposób pozwala na przejście na inną platformę(praktycznie wyłącznie musiałbym ogarnąć sterowanie dotykiem i skalowanie UI)
Ale wy możecie się nim pobawić, bo tu poniżej udostępniam ten wspaniały program dla tych, którzy nie boją się zagrożeń płynących z uruchamiania .jarów dostarczonych przez randomów z internetu:
https://drive.google.com/file/d/1d8bnXUVeDnS0Zzv0TQkRbl9utLGgOqdz/view?usp=sharing
Aha, na zajęciach wymagali by gra miała poziomy, to na 20 minut przed oddaniem dodałem poziomy. Dwóch przedostatnich nawet nigdy nie testowałem xd

Tagi dla atencji
#rakiety #spacex #kosmos #programowanie #java #gownowpis #ksp #kerbalspaceprogram #gry #gamedev
Emerkaes - Miałem na #studbaza projekt do zrobienia: gra typu serious games(czyli gra...

źródło: comment_1645040277IbIzqHSbQOsR6qFT38BN1N.jpg

Pobierz
  • 6
@cohontes: Cała fizyka opiera się na elementach orbity Keplera oraz konwertowaniu ich na wektor stanu(to jest para wektorów położenia i prędkości obiektu) i z powrotem. W elementach keplera jest kilka sposobów na opis położenia ciała na orbicie(różnego rodzaju anomalie kątowe), ale najwygodniejsze z punktu widzenia symulacji jest reprezentowanie położenia za pomocą czasu który upłynął od minięcia periapsis, bo wystarczy co klatkę dodawać deltaT. Żeby dostać pozycję XYZ(by wyrenderować), po prostu konwertujesz
@Emerkaes: Aha, nie podałem sterowania dla ewentualnych nieustraszonych
Jak w kerbalach: WSADQE - obracanie
Shift/Ctrl - zwiększanie/zmniejszanie ciągu
PPM - obrót kamery
kółko myszki - oddalanie/przybliżanie kamery
Jak orbita statku będzie zbieżna z tą fioletową, to te błędy w prawym dolnym rogu będą na zielono i można zakończyć poziom