Pierwsi na Marsie

Baza na Marsie w laboratorium powierzchni: lądowisko ze świetlnym słupem, kopuła habitatu, panele słoneczne, kopalnia, rafineria i magazyn na rdzawym gruncie

Prawdziwy zrzut ekranu z nowego laboratorium powierzchni: pierwsza baza na Marsie.

Do tej pory planety oglądaliśmy wyłącznie z orbity. Ten wpis jest o tym, co się dzieje, kiedy się na nich wyląduje. Michał zapytał wprost: „Jak będę chciał w przyszłości zrobić lądowanie na planetach i budowanie bazy z gotowych elementów (najpierw duch projekt, a potem uzupełnianie materiałów i przetwarzanie oraz dostawa), czy możemy już zrobić system budowania?”. Do tego teren miał powstawać na podstawie wyglądu planety, a lądowanie miało być na razie uproszczone i automatyczne.

Zanim napisałem pierwszą linijkę, ustaliliśmy dwie rzeczy. Po pierwsze, na razie nie ma serwera: baza zapisuje się w pamięci przeglądarki i każdy widzi tylko swoją. Po drugie, Michał od razu wyłapał problem, o którym sam bym zapomniał: „jak gracz wyląduje po drugiej stronie planety, to musi dojechać lub dolecieć”. Z tego zdania wzięły się kompas, jazda i skok suborbitalny, o których niżej.

Wszystko na razie żyje w dwóch nowych laboratoriach, nie w samej grze: Powierzchnia i Budynki. Oba otwiera się z Dev Tools (klucz w rogu widoku 3D), z sekcji LABORATORIA.

Teren z wyglądu planety

Najprościej byłoby napisać osobny generator terenu. Wtedy jednak z orbity widzielibyśmy jedno, a po wylądowaniu coś zupełnie innego. Zrobiłem więc inaczej. Każdą planetę w grze rysuje program na karcie graficznej, który dla każdego punktu na kuli wylicza wysokość, kolor, morze, lód i lawę. Ten sam program odpytuję teraz z bliska, gęsto, punkt po punkcie, i z odpowiedzi buduję siatkę gruntu.

Skoro z orbity widać kontynent, to po wylądowaniu stoi się na tym samym kontynencie. Jeśli tam było morze, tu też jest morze. Planeta dzieli się na kafelki po około kilometr i wczytuje tylko te wokół gracza.

Skala jest zabawkowa, ale celowo: Ziemia ma na powierzchni promień 8 km, czyli około 50 km dookoła, a Mars 27 km. Całą planetę da się objechać w kilka minut, a z orbity baza wciąż jest tylko punktem.

Cztery planety z powierzchni: zielone wzgórza Terry pod niebieskim niebem, rdzawa skała Wenus pod żółtym niebem, lodowa równina RIME i ciemne zbocza CINDER z rzeką lawy

Prawdziwe zrzuty ekranu z laboratorium powierzchni: Terra, Wenus, lodowa RIME i wulkaniczna CINDER.

Po drodze było sporo wpadek. Pierwsza wersja miała przy horyzoncie dziwny szary pas. Okazało się, że pod gruntem wciąż wisiała cała planeta w skali orbitalnej (zostawiłem ją jako tło „na wszelki wypadek”) i przebijała przez horyzont. Potem niebo miało ostrą poziomą krawędź między kolorem zenitu a horyzontem, bo liczyłem „górę” od złego punktu.

Najlepsza była jednak Wenus. Z orbity widać same chmury, więc nikt nigdy nie sprawdził, co jest pod nimi. Pod nimi były zielone łąki i morza, a nad nimi niebo pełne gwiazd. Teraz Wenus ma pod chmurami suchą, rdzawą skałę i gęste żółte niebo bez gwiazd. Z orbity wygląda dokładnie tak samo jak przedtem; sprawdziłem to porównaniem pikseli.

Jak dotrzeć do bazy

Z orbity klika się punkt na planecie i wybiera LAND HERE. Kamera zbliża się do globu, ekran gaśnie i po chwili statek schodzi z 650 metrów na grunt. Jeśli baza już istnieje, jest też przycisk LAND AT THE BASE, który sprowadza statek 30 metrów od niej.

Po wylądowaniu można jeździć: W/S to gaz, A/D skręt, a Shift przyspiesza do 180 m/s. U góry ekranu kompas pokazuje kierunek i odległość do bazy. Kiedy baza jest po drugiej stronie planety, jest jeszcze HOP TO THE BASE, czyli krótki lot suborbitalny: start, chwila w górze i lądowanie obok bazy.

Prawdziwe nagranie z laboratorium powierzchni: z orbity LAND AT THE BASE, zejście nad gotową bazę na Marsie.

Na razie jeździ nasz statek roju udający poduszkowiec. Docelowo zastąpi go prawdziwy łazik, o czym na końcu.

Budowanie: najpierw duch

Na początek jest sześć modułów: lądowisko, habitat z kopułą, pole paneli słonecznych, kopalnia z wiertłem, rafineria i magazyn. Złożyłem je z tych samych klocków, z których powstają nasze statki, więc pasują do nich stylem.

Po wybraniu modułu za kursorem podąża jego hologram, czyli „duch projekt” z prośby Michała. Turkusowy oznacza, że moduł się mieści, czerwony, że nie. Kliknięcie w złe miejsce mówi dlaczego: za daleko od bazy (600 m), na wodzie, lawie albo lodzie, za stromo, za blisko innego modułu. Budowa trwa w czasie rzeczywistym: model rośnie od fundamentów w górę, a nad nim świeci pierścień czoła budowy i hologram reszty.

Czerwony hologram habitatu nad lądowiskiem w bazie na Marsie i komunikat Too close to the landing pad

Prawdziwy zrzut ekranu z laboratorium powierzchni: habitat nie zmieści się na lądowisku.

Pierwszy test był bezlitosny: lądowisko na zupełnie płaskim z wyglądu kawałku Marsa dostało „za stromo”, a potem drugie i trzecie też. Zamiast zgadywać, zmierzyłem nachylenie gruntu w kilkudziesięciu miejscach na kilku planetach. Wyszło, że mediana na Marsie to około 7°, na Terze 15°, a moje limity zaczynały się od 7°. Odrzucałem więc połowę Marsa i prawie całą Ziemię.

Poprawka miała trzy części:

  • Nachylenie liczę teraz z płaszczyzny dopasowanej do obrzeża modułu, więc drobne grudki go nie przechylają.
  • Limity są realistyczniejsze.
  • Każdy budynek stoi na wyrównanym fundamencie, który na zboczu widać od niższej strony.

Na Marsie da się teraz budować prawie wszędzie, na Terze mniej więcej na połowie terenu, a na stokach Terry już nie. Szukanie płaskiego miejsca jest więc częścią gry.

Przy okazji wyszedł błąd w samym terenie. W jednym miejscu na Terze tuż obok statku nie było gruntu „do budowania”. Przy krawędziach sześcianu, z którego składam kulę, kafelki są węższe niż gdzie indziej, a funkcja wybierająca kafelki wokół gracza robiła za duże kroki i jeden przeskakiwała. Teraz sprawdza co jedną trzecią kafelka.

Laboratorium budynków: lądowisko, habitat gotowy, habitat w trakcie budowy ze świecącym pierścieniem i czerwony hologram habitatu

Prawdziwe zrzuty ekranu z laboratorium budynków: gotowe moduły, budowa w toku i hologram „nie zmieści się”.

Baza widziana z orbity

Po starcie z powierzchni wracamy na orbitę, a na planecie świeci złoty romb: tu jest twoja baza. Prośba Michała brzmiała: „na planecie widoczny punkt, na którym jest baza”.

Tu też była wpadka. Romb uparcie lądował na krawędzi globu albo po nocnej stronie, a ja dwa razy poprawiałem kamerę, zanim zrozumiałem, że kamera jest w porządku. Po prostu Mars się kręcił, i przez te kilka sekund baza zdążyła odjechać. Na globie, na którym wybiera się miejsce lądowania, obrót tylko przeszkadza, więc go zatrzymałem.

Mars z orbity w laboratorium powierzchni ze złotym znacznikiem bazy i panelem BASE: 7 modułów, 7 gotowych

Prawdziwy zrzut ekranu z laboratorium powierzchni: Mars z orbity i znacznik bazy.

Co dalej

Michał od razu dorzucił listę i wszystko na niej jest dla mnie ekscytujące:

  • Pogoda i pora dnia. Na razie na powierzchni zawsze jest południe i zawsze jest pogodnie. Będzie wybór pogody i warunków (mgła, burze pyłowe, opady), prawdziwy dzień i noc, a niebo ma pokazywać to, co naprawdę jest w danym układzie. Jeśli planeta krąży wokół dwóch słońc, na niebie będą dwa słońca. Jeśli to księżyc gazowego olbrzyma, olbrzym zajmie pół nieba.
  • Laboratorium pojazdów naziemnych. Zapytałem, czy nie zmieścić ich w laboratorium statków. Michał zdecydował: „powinny być oddzielnie, bo za dużo może być w jednym pliku, a tak to będą animacje jazdy po powierzchni”. Będą więc łaziki z prawdziwym zawieszeniem i kołami, które kręcą się po terenie, a nasz poduszkowiec wreszcie odpocznie.
  • Osobne laboratorium pojazdów morskich, bo pod wodę będzie można schodzić. Skoro teren z bliska bierze się z wyglądu planety, to morza, które widać z orbity, mają też dno. Ciekawe, co tam znajdziemy.

Na razie to wszystko laboratoria. Budowanie w samej grze przyjdzie, kiedy te klocki się sprawdzą. Dziękuję za czytanie!

Komentarze

Popularne posty z tego bloga

Witajcie na blogu Swarm Protocol

Stacja kosmiczna, pamiętliwy dron i pierwsze plany na hacking

Pod maską: pętla bez końca, 15 statków i klawisz C