1

Temat: Laura na karuzeli

Laura Rotator<->rotatoR (REMIX.TXT) by QTZ (c)2023

Kiedyś zacząłem pisać własny edytor do Laury na PC, niestety finalna wersja nigdy nie powstała.
Jedną z opcji miało być obracanie całości lub fragmentu poziomu.

Kilka dni temu przypomniałem sobie o idei tworzenia remiksów z dostępnych poziomów, a ponieważ to wymaga sporo pracy, pomyślałem, że najszybciej i najprościej będzie poziomy obrócić i już to będzie pewnym urozmaiceniem.

W ten sposób powstał Laura Rotator. Program napisany w Turbo Basicu, działa więc na Atari (w emulatorze).
Program jest dość powolny i zdaję sobie sprawę, że da się go sporo przyspieszyć (używając wyszukiwania z TB), ale póki co najważniejsze, że działa.

Program automatycznie odwraca o 180 stopni mapy z gry Laura, co uzyskuję poprzez wykonanie dwóch odbić lustrzanych:
- lustro względem osi X (V)
- lustro względem osi Y (H) (nie zawsze możliwe)

Przy jego pisaniu okazało się, że samo obrócenie planszy nie wystarcza.

Trudno było nie zauważyć, że po obrocie "poziome" murki przestają pasować do murków "pionowych".
Aby to naprawić program przechodzi od góry w dół każdą kolumnę mapy, a gdy znajdzie murek (jeden z dwóch podstawowych) sprawdza czy pod nim jest kolejny (jeden z trzech) albo drzwi, i w zależności od tego podmienia murek na "pionowy" - kontynuacja, albo "poziomy" - zakończenie.

Ponieważ jedynym kryterium jest to, żeby murki były ułożone poprawnie, wszelkie "wzory" z nich utworzone zostaną zamienione w lity mur.
Nie ma to bezpośredniego wpływu na grywalność, jednak może zubożyć poziom wizualnie (np. napis C60 będzie nieczytelny), więc dla odwzorowania podobnego do oryginału wyglądu może być potrzebna edycja.

Przy wszystkich operacjach program sprawdza i zachowuje invers. Mimo, że w dostępnej wersji Laura Konstruktora nie ma inversu, to w wielu oryginalnych poziomach takie znaki są użyte (z uwagi na kolor, ale przy okazji mogą też nieco inaczej działać).

Znaki w inversie wyszukiwane są, przed rozpoczęciem odwracania, jednak nie jest to w tym momencie konieczne, a zostało dopisane, aby dowiedzieć się czy w danym poziomie są użyte takie znaki. Właściwe rozróżnianie znaków jest zaimplementowane w innych miejscach.

Aby mapy były grywalne trzeba jeszcze obrócić wszystkie ruchome obiekty. Przy odbiciu V obiekty poruszające się poziomo, a przy H pionowo. W sumie jest ich 6 par - promienie, stworki, strażnicy i tropiciele.

Niestety swoich odpowiedników nie mają miotacz i miotnik (są tylko w wersji skierowanej do góry), przez co gdy występują, po odwróceniu w pionie, mapa przeważnie staje się niegrywalna lub traci sens i wymaga modyfikacji aby znów była grywalna.

Aby nie tworzyć niegrywalnych poziomów program nie obraca mapy w pionie gdy występują te elementy.
Elementy te są wskazywane na wyświetlonej mapie.

Aby wyświetlać mapę przygotowałem zestaw znaków z uproszczonymi grafikami.
Ponieważ mapa ma wymiary 40x20, to mieści się w całości na ekranie.

Program próbuje odczytać kolejno pliki od H1:LETAP.1 do H1:LETAP.32 i zapisuje obrócone z literą "M" na końcu - H1:LETAP.1M do H1:LETAP.32M. Także najwygodniej umieścić go z tymi plikami w katalogu ustawionym w emulatorze jako H1:
Pliki te można zapisać z Laura Konstruktora i w nim odczytać i utworzyć z nich nową grę. Jednak utworzona gra w pliku xex wymaga co najmniej 130XE.

Można też te dane umieścić w obrazie cartridge-a (powinien działać z podstawową pamięcią).
Do tego celu przygotowałem pliki batch korzystające z PC-towego sfk.exe (mogą wymagać modyfikacji w zależności od potrzeb).

Można też użyć tego programu do automatycznej korekty ścian (bez użycia odbić) - aby miały poprawny wygląd "3D".

Standardowo program odwraca H gdy możliwe i V zawsze. Ściany poprawia tylko gdy uda się odwrócić H; wyszukuje inversy (to wyszukiwanie można pominąć)
150 EXEC MAPPRINT:EXEC TESTINV:EXEC MIRRORH:EXEC MIRRORV
360 EXEC FIXWALLS

Aby zawsze poprawiał ściany (niezależnie czy zadziała odbicie H):
150 EXEC MAPPRINT:EXEC TESTINV:EXEC MIRRORH:EXEC FIXWALLS:EXEC MIRRORV
360 REM EXEC FIXWALLS

Aby wyłącznie poprawić ściany (np. we własnych poziomach):
150 EXEC MAPPRINT:EXEC FIXWALLS
(linia 360 w tym przypadku nie ma znaczenia)

Oczywiście można też użyć tylko jednego wybranego odbicia (H nie zawsze jest możliwe).

Prawdopodobnie po dostosowaniu można by go używać z innymi grami np. Robbo.
Można by też wbudować taki mechanizm w samą grę.



Przy okazji - pomocny byłby handler H#: dla SIO2SD, który umożliwiałby dostęp do wybranych w configu katalogów na karcie SD z poziomu OS Atari. Umożliwiłby też dostęp do dużych plików.



EDIT:

W załączniku listing (wczytywany w Turbo Basic-u przez: E."H6:REMIX.TXT"), wraz z przykładowym plikiem mapy (LETAP.4) do obracania i grania.



No i gotowe obrazy kartridża z obróconymi poziomami - Laura Revolve

LauraRevolve.bin - obraz carta zawierający odwrócone podstawowe (32) i bonusowe (32) poziomy z pierwszej edycji gry (przeróbka bazuje na oficjalnie udostępnionym obrazie kartridża)
LauraNAARevolve.bin - zawiera odwrócone poziomy z edycji kasetowej - Laura New Adventures (16) i jako bonus z edycji Atariada (32)
LauraNAA.bin - zawiera powyższe poziomy, ale nie odwrócone - z tego co wiem to pierwszy raz kiedy znalazły się na kartridżu (oficjalnie udostępniony plik cas). Dodatkowo poziomy z wersji Atariada mają gdzieniegdzie poprawione ściany.

W wersjach obróconych starałem się zachować oryginalny wygląd ścian, ale jeżeli zmienione przez program wyglądają dobrze to tak je zostawiłem.


Do całości brakuje plików umożliwiających wyciągnięcie danych z obrazu kartridża -> lka, lka -> letap.## i ponowne ich w pliku kartridża umieszczenie letap.##M->bin. Te pliki muszę jeszcze dopracować...


Nie orientuję się czy ukazały się mapy z konkursu, w którym niestety nie miałem czasu wziąć udziału. Jednak z pewnością nie są to wszystkie poziomy, gdyż kolejne bonusowe poziomy doszły do kolejnej edycji gry (wybierane na ekranie gdzie doszedł wybór języka), jednak nie wiem czy ta lub inna wersja z dodatkowymi poziomami została udostępniona w sieci.

Update: Okazuje się że wersja konkursowa jest dostępna tu: https://www.retronagazie.eu/gramy-na-ga … -do-laury/ (http://www.retronagazie.eu/wp-content/u … ra_RNG.zip)

Widzę, że nie jestem na czasie z tymi edycjami, a przecież wersja kasetowa doczekała się edycji na kartridżu...

U mnie z "lenistwa" jest to wersja polska, więc jednak przypadkiem jest pierwsza (była tylko angielska) ;) Ciekawe czy na kartridżu są jakieś dodatkowe poziomy czy tylko te 16 z konkursu.

Ostatnio edytowany przez QTZ (2023-11-25 13:03:23)

Post's attachments

LauraRevolve.7z 77.29 kb, liczba pobrań: 5 (od 2023-11-25) 

LETAP.4 931 b, liczba pobrań: 1 (od 2023-11-25) 

REMIX.TXT 5.79 kb, liczba pobrań: 2 (od 2023-11-25) 

Tylko zalogowani mogą pobierać załączniki.

2

Odp: Laura na karuzeli

Fajne. Gratuluję pomysłu i cieszę się, że Laura żyje :)


Chciałbym zwrócić uwagę na to, że wszystkie wersje gry Laura robione przy pomocy Laura Konstruktora mają zmieniony ekran tytułowy i mają podtytuł "Wyprawy". Podobnie było z wersją kasetową - tu tytuł gry też był inny. W tych wersjach nie ma również możliwości wysłania wyniku do HSC oraz nie ma informacji, że Tenchi testował grę, co dawało gwarancję, że etapy są dobrze zaprojektowane i można je przejść a grę ukończyć.

Wykonałeś fantastyczną pracę podmieniając oryginalne poziomy. Podmień jeszcze ekran tytułowy na taki, gdzie będzie jasna informacja, że to nie jest oryginalna gra. Wówczas będę w pełni szczęśliwy :)

3

Odp: Laura na karuzeli

Super ;)
Następny będzie FRED? Wtedy nie będzie już złośliwością powiedzenie "przeszedłem FREDA w lewo" :P

Sikor umarł...

4

Odp: Laura na karuzeli

Hej @Larek,

Oczywiście pamiętam "wyprawy" i czym się różnią od innych wersji, sam przecież przygotowywałem tłumaczenia, które udostępniłem do użytku z Laura Konstruktorem, w tym przygotowywałem ekrany tytułowe i pamiętam jak było to pracochłonne.

Do wersji Atariada autor zrobił własne poziomy i tłumaczenie, grafiki nie dał rady zrobić, o czy pisał, więc przypuszczam, że ekran z "wypraw" został tylko z tego powodu. Ponieważ chciałem przygotować tłumaczenie tej wersji miałem też zamiar przygotować obrazek (mam odpowiedni napis, choć słaba jakość wymaga edycji). Jednak do obecnego projektu byłoby to za mało, bo chodzi o nowe spojrzenie - nowy podtytuł.

To również nie wystarczy, bo Atariadę umieściłem jako drugą (bonus) przy Nowych Przygodach, więc ekran powinien zawierać informacje o obydwu grach.
Mógłbym rozdzielić te gry i obrócone wersje dodać (dostępne jako bonus) do wersji podstawowych, jednak chciałem, aby wersja obrócona była osobno, do tego Atariada przez to, że jest dłuższa dobrze uzupełnia Nowe Przygody.

Co do wersji podstawowej to uważam, że info jest ok, brakuje tylko informacji, że jest to wersja "Revolve". Jednak poziomy są te same które testował Tenchi, więc nie mam zamiaru pozbawiać go zasługi w testowaniu (a nie wiemy czy testując nie patrzył w lustro czy nie miał odwróconego monitora ;)).

Poziomy można odwrócić ponownie i jeżeli będą się czymś różnić będą to murki ("poziome" mogą być zmienione na "pionowe", co ma skutek tylko wizualny, jednak w większości przypadków zamieniłem je ręcznie, tak, aby wygląd był podobny (nie da się odwrócić murków, żeby wyglądały tak samo, czasami zmiany pozostawiłem celowo - np. ostatni poziom Atariady).

Oczywiście żeby wychwycić co jeszcze powinien robić Rotator również testuję i obecnie widzę, że działa poprawnie, porównuję dodatkowo poziomy wizualnie uruchamiając dwa Laura Konstruktory, jeden zmodyfikowany, tak, aby swoje pliki LETAP.## przechowywał w innym katalogu.

Jedynie nie grałem jeszcze (wcale) w zwycięskie poziomy - I i II miejsce z edycji RNG, od wczoraj zdążyłem zagrać tylko w poziomy z kolejnych "miejsc" :)

W wersji RNG jest najlepiej - jasno wiadomo co to za wersja, choć przyznam, że też byłoby fajniej, gdyby każda "gra" miała... własny ekran tytułowy...
Myślę o tym żeby zrobić wersję RNG na bazie pierwszego kartridża, bo mapy zmieszczą się w dostępnym miejscu  - wiem, minusem będzie brak dostępności do poszczególnych "gier", więc między poszczególnymi "grami" wstawiłbym poziomy informacyjno-uzupełniające energię, nawet jeden już wstępnie zrobiłem.

Także myślałem już o tych obrazkach (i nie tylko), jednak na raz tego wszystkiego nie dam rady zrobić, skupiam się na tym co najważniejsze dla tego projektu, a jeżeli będzie czas i zapał obrazki tytułowe postaram się zrobić, bo sam chciałbym po uruchomieniu widzieć o jaką wersję chodzi.



Hej @Sikor Następny będzie Flob! ;-)



Okazuje się, że na odwrót rozumiałem odbicia lustrzane i użyłem ich nazw odwrotnie, także powyższy opis wymaga poprawienia...

W załączniku aktualna wersja Laura Rotatora (REMIX.TXT):
- dodana obsługa znanych elementów spoza palety upublicznionego LK (automatyczna zmiana kierunku; miniatury do wyświetlania na mapie)
- poprawione nazwy mirror-ów i procedur
- w załączniku testowy poziom gry pokazujący niektóre z dodatkowych elementów

Update obrazów kartridży:
- dodana wersja Revolve konkursowej wersji gry - Laura RNG (na bazie oryginalnego obrazu kartridża)
- wizualnie poprawione murki w wielu obróconych mapach - upodobnienie do oryginałów
- drobne poprawki murków w nieobróconych mapach (nie wpływa na rozgrywkę; nie dotyczy poziomów z pierwszej edycji gry i RNG)
- obrazy kartridży zapisane z nagłówkiem *.car

Oprócz dostępnych w edytorze elementów jest 20 które można wstawić na mapę (niepublikowana wersja LK to umożliwiała, obecny edytor je wyświetla i można je w nim kopiować - i działają w grze, choć nie wszystkie mają sens):

30,31,32,33 - fazy wybuchu - 32 i 33 częściej mogą wywołać pożar
54 - wybuch działający podobnie jak zapalona bomba
43,44 - strzały wystrzeliwane z plujki (Rotator zamienia kierunki)
45,46,47,48 - lecące kamienie (4 kierunki, również zamienianie kierunku)

53 - gadająca Laura - nieśmiertelny klon - myślę, że można użyć dla ozdoby

Poniższe mogą służyć do ozdoby, ale też do utrudnienia gry bo jak zginie którakolwiek następuje koniec gry
59 - Laura - laleczka voodoo - idzie w miejscu
60,61 - Laura - laleczka voodoo - idzie w miejscu w prawo / w lewo (zamieniane kierunki)
62 - Laura - laleczka voodoo - idąca w miejscu, widziana z tyłu (nie podlega zamianie kierunku)

Info: sklonowane Laury tupią cały czas - podobnie jak grywalna Laura przy chodzeniu.

Poniższe raczej nie mają zastosowania, gdyż ich obecność niemal natychmiast kończy grę
50,51,52 - Laura - laleczka voodoo - tonąca w bagnie (zatonięcie kończy grę)
58 - Laura - laleczka voodoo kamikadze - wybucha po chwili (poziom jest niegrywalny)

Grywalna Laura to 63, dalsze znaki dają powtórzone elementy, choć uszkodzone (nie obsługiwane), można używać inversu (dodatkowy kolor używany w oficjalnych poziomach; obsługiwane przez LK oraz Rotatora).

Ostatnio edytowany przez QTZ (2023-11-27 10:44:01)

Post's attachments

LauraRevolve.7z 90.6 kb, liczba pobrań: 3 (od 2023-11-27) 

LETAP.1 931 b, liczba pobrań: 1 (od 2023-11-27) 

REMIX.TXT 6.28 kb, liczba pobrań: 1 (od 2023-11-27) 

Tylko zalogowani mogą pobierać załączniki.

5

Odp: Laura na karuzeli

No coś słabo ta Laura żyje, chyba nikt nie ma ochoty grać ;)
Także pewnie też nikt tych ekranów tytułowych nie obejrzy jak je zrobię :P

A ja się przysiadłem i po pracowitej nocy mam jeden ekran tytułowy do jednego z kartridży.
Pracy było sporo, najwięcej przy wycinaniu tytułu, dopasowaniu i poprawianiu napisu ATARIADA, sporo prób z podtytułem. Creditsy się nie załapały, ale w tej chwili już muszę to odłożyć, może później spróbuję je jakoś upchać...

Zauważyłem też kartridż w wersji angielskiej i myślę, że na jego bazie dużo fajniej będzie zrobić te "obracanki", bo tam są kody i można zaczynać od dalszych poziomów :D, tylko będę musiał rozpracować gdzie i jak te kody są zapisane? Bo nie chciałbym żeby każda wersja miała te same...

Ostatnio edytowany przez QTZ (2023-11-28 13:33:07)

Post's attachments

LauraNAARevolve.tytul.car 256.02 kb, liczba pobrań: 3 (od 2023-11-28) 

Tylko zalogowani mogą pobierać załączniki.

6

Odp: Laura na karuzeli

Początkowo miał to być wątek w którym chciałem tylko pokazać swój pomysł w działaniu i udostępnić programik.
Teraz zanosi się na to, że z wersji demonstrujących działanie programu powstaną kompletne gry.
Jednak nie czuję się dobrze i musi to poczekać.

W międzyczasie zablokowałem HSC - poprzez zablokowanie klawisza Option - zamiast CMP 03 wstawiłem CMP F0 - 3x - dla trzech ekranów - tytułowego, porażkowego i gratulacji.
(Oprócz tego są jeszcze trzy sytuacje gdy sprawdzany jest Option - jest to mechanizm służący wchodzeniu i wychodzeniu z HSC, więc jako niedostępny pozostał bez zmian.)

Testując "odwróconą" grę zauważyłem coś czego nie zauważyłem testując ją wiele razy wcześniej.
Często zdarza się, że pędzimy prosto w pułapkę i chcąc skręcić w ostatniej chwili nam się to nie udaje...
No i okazuje się, że jeżeli poruszamy się w górę lub w dół unik jest możliwy, jednak gdy poruszamy się w lewo lub prawo nieuchronnie wpadniemy na przeszkodę, uratować się możemy jedynie się zatrzymując.
Nie analizowałem jak to jest w kodzie, a ciekawy jestem z czego to wynika i czy da się to zrobić lepiej.
Być może zabezpiecza to przed poruszaniem się po skosach?
Przypuszczam, że jest tu użyty podobny mechanizm jak przy wywoływaniu HSC - pewnego rodzaju zatrzask.
Wiele razy tak "wpadłem" i myślałem, że coś jest nie tak, ale takiego ograniczenia się nie spodziewałem.

Wyszukanie kodów zacząłem od ich spisania i tu też niespodzianka - nie tylko ekran tytułowy (pewnie i pozostałe) w wersji RNG jest wspólny, ale też kody. Szkoda, że nie ma innych kodów jak w podstawowej wersji gry dla poziomów podstawowych i bonusowych.
Można więc np. przejść najprostszą z gier (zamek) i użyć zdobytych pięciu kodów w dwóch pierwszych grach.

Sprawdziłem też jak jest w drugą stronę - czy da się uzyskać dostęp przy użyciu dalszych kodów z dłuższych wersji do krótszych, aby wyjść poza zakres grywalnych etapów, tym bardziej, że każda z krótszych gier jest uzupełniona pustymi etapami do 16-tu i dalej ich kopią do 32.
Dzięki temu można utworzyć własny zestaw składający się z 32x5 plansz, a wygląda na to, że na końcu jest miejsce na jeszcze jeden zestaw 32 poziomów.
Kody do dalszych poziomów nie działają, co zabezpiecza przed wyjściem poza dopuszczalny zakres i jak się okazuje zabezpiecza też przed zawieszeniem gry, co opisałem niżej.
Testowo usunąłem znacznik ostatniego poziomu z ostatniego grywalnego poziomu (pierwszego i ostatniego w jednym) i jego kopii, niestety gra kodów nie odblokowała, więc jeżeli chcielibyśmy dodać więcej poziomów trzeba jeszcze odblokować kody w programie gry.

Tu ponownie wyszedł błąd z LK / brak zabezpieczenia w grze, gdyż 32 poziom mimo, że w LK ma zablokowane zaznaczone pole "OSTATNI" faktycznie nie musi mieć tego znacznika ustawionego i gra się zawiesza próbując odczytać dane poziomu 33.
O ile tu nie jest to istotne, bo te poziomy są normalnie niedostępne, jednak w LK można utworzyć grę która nie zakończy się na ostatnim poziomie.
Dlatego tez postanowiłem dodać sprawdzanie tego znacznika w moim programie. Teraz wyświetlane są komunikaty gdy ustawiony jest znacznik "OSTATNI" i gdy nie jest ustawiony na poziomie 32 - wtedy w pliku wynikowym automatycznie jest ustawiany (w pliku źródłowym należy poprawić ten znacznik samodzielnie).

Ponieważ znacznik końca można ustawić wielokrotnie w jednym zestawie, a do poziomów możemy skakać poprzez użycie kodów, można do zapisanych w jednym zestawie krótkich gier dostawać się kodami zapisanymi w menu. W ten sposób testowo przygotowałem wersję RNG na 256kB, bez konieczności dodawania poziomów informacyjno-leczniczych, jak to wymyśliłem wcześniej.
Na razie nie udostępniam, bo choć menu robocze już jest, to kody niestety te same.

Nie wiem czy dam sobie radę ze zmianą kodów, spróbowałem skopiować podejrzany "blok" z jednej wersji gry do drugiej i kody się przeniosły, jednak nie wiem jak je zmienić, a mimo, że nic więcej nie zmieniłem to i tak zmodyfikowana gra mi się po kilku etapach zawiesiła, także wymaga to dokładniejszego przyjrzenia się jak ten mechanizm działa.

Niestety nie wiem jak symulować klawisze / consolę / joystick w debuggerze Altirry, więc ciężko mi to testować.

Co do Tenchi-ego to myślę, że jako pierwszy tester testował nie tylko poziomy, ale też, a może przede wszystkim silnik gry, więc w zasadzie mógłby być wymieniony w każdej wersji.

W załączniku program ze sprawdzaniem znacznika "OSTATNI".

Ostatnio edytowany przez QTZ (2023-12-04 23:01:00)

Post's attachments

REMIX.TXT 7.04 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.

7

Odp: Laura na karuzeli

W załączniku Laura Rotator (REMIX.TXT) wersja 1.0.4 - nieco zmienione niektóre grafiki i dodane miganie do komunikatów dodanych w wersji 1.0.2.

Co do sterowania Laurą, doszukiwałem się jakiegoś skomplikowanego mechanizmu, a okazuje się, że po prostu na sztywno skosy działają jak lewo i prawo, stąd nie da się pójść w górę / dół żadnym skosem w odróżnieniu gdy idziemy góra / dół, gdzie odnosi się wrażenie, że skosy działają lewo / prawo z kierunku w którym idziemy.

Może byłoby lepiej gdyby skosy nie działały - byłoby spójne odczucie.

Jednak jest to dość ciekawe zagadnienie żeby zrobić tak aby skosy działały inaczej w zależności z jakiego kierunku się do nich przejdzie. Spróbuję coś takiego napisać w TB z użyciem operacji logicznych.

Ostatnio edytowany przez QTZ (2023-12-09 20:17:26)

Post's attachments

REMIX.TXT 7.4 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.