Fire Tower
*

Offline Duobix

  • **
  • 140
Fire Tower
« dnia: Lipca 11, 2022, 15:43:43 »
Przedstawiam wam tutaj gierkę którą ostatnio robię, tj. Fire Tower.

Na Famiconie 14tym odbył się nawet konkurs gdzie każdy mógł spróbować swoich sił w specjalnej "famicon 14 edition".
Żeby nie było do końca pewne o co chodzi... atrakcja była oznaczona na harmonogramie jako "???" w niedzielę o 20stej :)

Jak to zrobiłeś?
Giera jest napisana eksperymentalnie w narzędziu które zwie się 8 bit workshop (link: https://8bitworkshop.com/) .Krótko je reklamując - jest one o tyle fajne, że ułatwia pracę z nesem dając nam język C do klepania gierek, który wsparty neslibem całkiem przyjemnie pozwala pracować nad logiką. Jest też w tym toolu prosty edytor grafiki. Odnośnie dźwięku- robimy niby w famitrackerze… ale nie udało mi się jeszcze zrobić eksportu do 8bitworkshop z famitrackera.
Jedyny minus, to że nie ma do niego aż tak dokumentacji, jest za to płatna książka, która tłumaczy jak pisać rzeczy pod np. NES’a za pomocą 8bitworkshop.
Cały development zajął jakieś tydzień-dwa rozrzucony po ostatnim szalonym półroczu, w czasie gdy rozwijałem grę, zwykle po 2-3h szkrobałem przy niej dziennie.

Jaki był pomysł?
Oryginalny pomysł na grę, to było bycie strażakiem który wspinać się miał po nieskończonej wierzy do góry, miał być autoscroll który coraz szybciej sam przewijał w górę, i papryki miały służyć jako “booster” (3 papryki miały gwarantować możliwość specjalnego pierdnięcia, które wynosiło by nas znacznie do góry). Ostatecznie jednak, ze względu na braki czasowe, zrobiłem nieco prostszą grę.

Dobrze, a jak się w to gra?
W wersji którą można było zagrać na famicon 14, mamy ograniczony czas na zebranie jak najwyższej liczby papryczek, oraz skaczemy koleżką podobnym do rumcajsa. Przyciskiem A skaczemy, przyciskiem B przytrzymanym - biegamy szybciej. Jedna uwaga: można czasem podczas ryzykownych skoków w dół złamać kark i przegrać przed upływem regulaminowego czasu.

Czy są jakieś dalsze plany na development?
Nie jestem w stanie niczego obiecać, także może kiedyś coś jeszcze będzie rozwijane w tym temacie.
Jeśli do tego dojdzie, będę też i tu postował.

Jakie ekipa miała wyniki na zlocie?
Zasady były takie, iż każdy posiadał trzy próby zagrania w Fire Tower na jednej konsoli, gdy ja notowałem wyniki.
Było dość dużo czasu by pograć (od 22giej do 15 dnia kolejnego-wszyscy zagrali do 13stej, stąd wyniki zostały ogłoszone wcześniej).

1wsze miejsce: Rocket, 31 papryk
2gie miejsce: PsxManiac, 30 papryk
3cie miejsce: Osa, 30 papryk
(PsxManiac otrzymał miejsce 2gie, jako że w pozostałych 2ch próbach miał lepsze wyniki niż Osa).



Dobrze, a gdzie rom?
Powinien być w załącznikach.
« Ostatnia zmiana: Lipca 12, 2022, 18:00:30 wysłana przez daf »

*

Offline Duobix

  • **
  • 140
Odp: Fire Tower
« Odpowiedź #1 dnia: Lipca 11, 2022, 15:57:42 »
I tego, dziękuję za paprykę!
https://imgur.com/a/wsCeu6k


*

Offline PsxManiac

  • *
  • 20
  • Siema siema pegasus jest zajebisty
Odp: Fire Tower
« Odpowiedź #2 dnia: Lipca 13, 2022, 13:20:46 »
A ja krótko powiem o tym turnieju co się odbył na famiCON'ie 14. No konkurs był fajny, nagrody też były ciekawe ale też napiszę krótko co ja uważam o tej gierce, na konkursie każdy kto chciał mógł zagrać 3 razy w tą gierkę. Tak jak wczesniej Duobix wspominał to jest jeszcze,, ROBIONA'' gra tak więc graliśmy w taką alphę albo betę. A co mogę powiedzieć o grze no jak najbardziej ma potencjał żeby wyszła z tego naprawdę solidna gra, fajnie było to potestować na konkursie było ciekawie czasami nawet śmiesznie mi się bardzo podobało. Mam nadzieję Duobix że w przyszłości bedzie jeszcze dużo ciekawych gierek z pod twojego skrzydła!
« Ostatnia zmiana: Lipca 13, 2022, 15:12:31 wysłana przez PsxManiac »

Odp: Fire Tower
« Odpowiedź #3 dnia: Lipca 15, 2022, 21:35:22 »
Dobre jajuchy były z tą grą na zlocie, niedopracowanie tylko wyszło na plus. Mocno się zdziwiłem jak po przyspiszeniu postać zaczęła się bugować w ruchu poziomym przez ściany, a to był dopiero początek absurdów heh.

Przyspieszenie + skakanie to był jakiś pomysł na nazbieranie jak największej ilości papryk ale za mało praktyki żeby to sprawnie wykonywać.
Grawitacja jak na Jowiszu niezbyt pozwalała na zbieranie papryk od góry, bo scroll zjadał chłopka.

Duobix, szkoda byłoby poprzestać na tej jednej gierce jak już poświęciłeś ileś czasu na zrobienie Fire Tower.



Dzięki za rozmowę na temat tego, jak gierka została zrobiona, wymianę informacji. Wspominałeś że był problem z muzyką. Spojrzałem o co chodzi i udało mi się zaimportować utwór z FamiTracker do 8BitWorkshop. Co takiego zrobiłem żeby działało, na bazie przykładu "Famitone Demo" z przykładowych projektów z 8BitWorkshop:
- Famitracker 0.4.6 -> File -> Export Text.
- Pobrałem text2data.exe z tego repo: https://github.com/nesdoug/famitone2d
- Wyeksportowany plik oraz text2data.exe wrzuciłem do jednego katalogu.
- Otworzyłem CMD / terminal, wpisałem:
text2data.exe <nazwa_pliku.txt> -ca65- Dostałem errorem że instrument zero nie ma obwiedni głośności, to na szybko ją ustawiłem w Famitrackerze; powtarzać konwersję aż skończą się błędy i narzędzie wypluje plik *.s.
- Skopiowałem zawartośc pliku *.s do pliku w 8BitWorkshop, dodałem export labelki, dodałem deklarację tablicy typu char w pliku fami.c, podobnie jak to jest dla przykładowego utworu "Danger Streets".
- Działa, muzyka się odtwarza w IDE.

FamiTone2 ma tam jakieś ograniczenia na efektach, także trzeba się nauczyć co przepada w trakcie konwersji. Na pewno jest jakiś problem z prędkością odtwarzania (efekt Fxx), bo muzyka odtwarza się inaczej w 8BitWorkshop i inaczej w Famitrackerze.

Link do repo: https://github.com/verteks16/8BitWorkshop_FamiTone2_Test
Ten link niby też powinien działać: https://8bitworkshop.com/v3.9.0/?platform=nes&githubURL=https%3A%2F%2Fgithub.com%2Fverteks16%2F8BitWorkshop_FamiTone2_Test&file=fami.c

To co zmieniłem w kodzie to plik fami.c oraz dodałem plik ftmtest.s, to co dodałem do kodu to dane oznaczone labelką "ftm_test_music_data".
FTM, plik tekstowy i plik *.s w załączniku, co by łatwiej było prześledzić proces.
« Ostatnia zmiana: Lipca 15, 2022, 21:44:10 wysłana przez Verteks »

*

Offline Duobix

  • **
  • 140
Odp: Fire Tower
« Odpowiedź #4 dnia: Lipca 18, 2022, 06:21:39 »
Dzięki Verteks za poświęcony czas! Tak też i myślałem że ten tool wymaga przebijania się przez parę warstw różnych błędów, ale na "ostatniej prostej" przed zlotem zabrakło mi już woli jaki i czasu na takie zabawy.

Myślę że zforkuję tego toola, i przelecę sobie przez najczęstsze błędy które najczęściej występują przy eksporcie z Famitrackera, i po prostu dorobię tryb interaktywny albo tryb "full yolo", żeby przy powrocie to tego toola za jakiś czas po prostu nawet i z jakimiś niedoróbkami, ale jednak dopiąć eksport (teraz, muszę wchodzi do pliku, grzebać, co zajmuje tylko IMHO niepotrzebnie czas - szczególnie że chcę zacząć robić nesówki na jamach, więc toolset musi być "czasoodporny").

Odp: Fire Tower
« Odpowiedź #5 dnia: Lipca 18, 2022, 08:42:13 »
Z ciekawości zajrzałem jeszcze do pliku *.cpp jakie błędy to narzędzie wyłapie, wszystkie błędy są ładnie ograne funkcjami parse_error oraz parse_error_ptn. Nie wszystkie błędy rozumiem, na przykład nie wiem o co chodzi z makrami czy "tablicą tptn" ale to pewnie do ogarnięcia jak się bardziej wgryzie w Famitrackera.

Pierwsze co, to widziałbym parsowanie pliku do końca mimo błędów, tak żeby od razu mieć wszystko co jest źle z eksportem - nawet jeśli zrobisz "inteligentne" narzędzie które poprawi niedoróbki to będziesz wiedział co automatycznie zostało naprawione. Chyba że nie można tak bo pierwszy błąd rzutuje na dalsze parsowanie i kolejne błędy są "wyciągnięte z kapelusza" to wtedy lipa.

Wyobrażam sobie że prostsze błędy z pliku Famitrackera łatwo naprawić, choćby ten błąd co ja miałem - "Instrument %i does not have volume envelope" to w kodzie konwertera powinno wystarczyć ustawić instruments[ins].volume na maksymalną wartość (15?) czyli tak jak zachowuje się Famitracker.

Powodzenia!

*

Offline Mcin

  • ***
  • 672
  • أَلْقُنْتْرابَنْديطا
Odp: Fire Tower
« Odpowiedź #6 dnia: Lipca 18, 2022, 17:39:40 »
Pograłem  wczoraj z godzinkę, Gry przejść się nie udało, rekord to 37 papryk, a jak się domyślam, jest 40. Małe podsumowanie.
EDIT jest 38, dwukrotnie udało się ukończyć :D

Uwaga Spoilery


Bardzo fajna mechanika z tym paprykowym skokiem. Na zlocie nie wyłapałem jak to działa i przez to przewaliłem, a okazuje się, że jak dobra plansza się wylosuje to 30 papryk tylko tą techniką idzie zebrać. Na ile rozumiem, aktywuje się, jak odpowiednio się rozpędzę i powoli traci moc. Co fajne, to że można zatrzymać skok, ale wciąż trzymać B i zachować część pędu.

Ciekawa jest mechanika spadania. Nie można nabrać rozpędu jak w prawdziwości. Albo spadniemy prosto w dół, albo cofnie nas w kierunku przeciwnym do marszu, często z dużą prędkością. Nietypowe, ale zmusza do wywrócenia mózgu na lewą stronę. No i zawsze można skoczyć przed przepaścią, wtedy polecimy do przodu, ale albo z małą prędkością, albo wręcz za dużą.

Scrollowanie ekranu w dół działa trochę dziwnie, z rzadka dostaje game over bo spadłem na łeb. zazwyczaj gra pozwala się cofnąć i to bardzo daleko. Cały jeden raz miałem sytuację, że ekran przewinął się w dół, a tam nie pojawiła się grafika planszy. Co prawda, kolizje dalej działały i zebrałem jedną paprykę, ale miałem ostry WTF.

Kolizje przy zbieraniu papryczki są chyba zaprogramowane bliżej nóżek niż rączek naszego alter ego - podobnie jak w grach Mojon Twins. Nic nadzwyczajnego, ale w sumie wymaga trochę przyzwyczajenia.

jedyny chyba błąd, albo funkcjonalność, bo nie wiem, czy celowe, psujący zabawę, to że na najwyższym poziomie nie można skoczyć po papryczkę nad nami. Jak się pojawi nad przepaścią, muszę spaść piętro niżej i kombinować z super skokiem.

Bardzo fajna grafika naszego paprykowego żyda. Często przy paprykowym skoku zdarza mi się widzieć błędy graficzne np w losowych miejscach pojawiają się znaki tekstu. ot bywa.

Dobre wyważenie poziomu trudności. Jak w icy tower, niby umarnełeś, ale czujesz, że było blisko i grać się chce dalej. Ja właśnie idę grać. Podoba mi się gra i tyle.

Fajne są losowe plansze. Niby wiele się nie zmienia, a często te parę pierwszych skoków decyduje o wyniku.

« Ostatnia zmiana: Lipca 18, 2022, 18:43:57 wysłana przez Mcin »

*

Offline Duobix

  • **
  • 140
Odp: Fire Tower
« Odpowiedź #7 dnia: Lipca 21, 2022, 17:05:00 »
Przy okazji - wrzuciłem grę na itch'a, dzięki czemu możecie teraz pograć sobie w przeglądarce.
https://duobix.itch.io/fire-tower

*

Offline Duobix

  • **
  • 140
Odp: Fire Tower
« Odpowiedź #8 dnia: Września 03, 2022, 23:16:38 »
Jako że pojawiła mi się chwila czasu:
-naprawiłem bug z skokiem i dashem, przez co postać latała nam przez cały ekran jak oszalała.
Obecnie do poprawienia/spojrzenia jeszcze przed kolejną wersją:
-kolizja z paprykami również na głowie, zamiast tylko na dupie.-glitch z końcem mapy.


*

Offline Duobix

  • **
  • 140
Odp: Fire Tower
« Odpowiedź #9 dnia: Września 04, 2022, 10:06:21 »
Tak więc, glitch pod koniec mapy raczej nie jest do końca naprawiony,
ale za to dorobiłem jako-taką pauzę (bo słyszałem opinie, że powinna być).
Kolizja z paprykami na głowie powinna też jako-tako być ogarnięta, nie jest to perfekcyjne, ale powinno działać.
Ogarnąłem też ściany które wyglądały jakby były wyżarte.

Do zbadania jeszcze zostaje kwestia spadania gracza, ale tu nie mam pomysłu jeszcze jak to rozwiązać (od strony kodu,
jak to ma wyglądać, to wiem).