Gry w produkcji - część IX by Adam Wachowski 2014-11-05 00:03:03
Dziś prezentujemy dwie gry: jedną RPG i jedną logiczną – w obu
przypadkach można pobrać grywalne demo.
Moria
Kanadyjczyk Shawn Jefferson zainstalował sobie w 2011 roku
kartę VBXE i
zastanawiał się, do czego mógłby jej użyć jako programista. Jednym
z pomysłów było wykorzystanie jej wsparcia dla 80-kolumnowego
tekstu oraz dodatkowej pamięci RAM. Wybór padł na jego niegdyś
ulubioną grę roguelike: Morię.
Gry roguelike, zwane u nas "rogalikami", są dość
specyficzne. Zgodnie z kanonem gatunku rozgrywka odbywa się w
systemie turowym, polega na eksploracji wygenerowanych losowo
lochów i zabijaniu potworów, ale uwagę laika zwraca przede
wszystkim ich strona wizualna. Nie jest zbyt wyszukana – wszystko
jest prezentowane za pomocą semigrafiki ze znaków ASCII. Mimo tak
ascetycznej (hmm... "ASCII-etycznej"?) oprawy gry te do dziś
znajdują miłośników na całym świecie – fani tego gatunku
argumentują, że najważniejsza jest przecież grywalność, a
wyobraźnia gracza jest potężniejsza od jakiejkolwiek karty
graficznej...
Moria jest jedną z najstarszych gier roguelike, jej pierwsza
wersja została napisana w 1983 roku przez dwóch studentów
Uniwersytetu w Oklahomie. Rozwinięciem był bardzo popularny
"rogalik" Angband (1990) – co ciekawe kilka lat później na
podstawie tej gry, po obniżeniu poziomu trudności, dodaniu grafiki
i interfejsu pożyczonego z UFO: Enemy Unknown powstało
legendarne Diablo.
Ale wracając do Morii: jak można się domyślić na podstawie tytułu,
gra inspirowana jest "Władcą Pierścieni". Jej celem jest zabicie
Balroga – demonicznej istoty (w grze reprezentowanej przez groźną
literkę B), a rzecz dzieje się w podziemiach Morii, największej
krasnoludzkiej siedziby w Śródziemiu. Postać, którą sterujemy, ma
wiele różnych cech, przy jej tworzeniu mamy do wyboru m.in. 8 ras
(człowiek, półelf, elf, niziołek, gnom, krasnolud, półork,
półtroll) i 6 klas (wojownik, mag, kapłan, łotrzyk, łowca,
paladyn).
Istotne dla Shawna przy wyborze gry było też to, że jej źródła w C
są udostępnione publicznie, tak więc można było spróbować je
przenieść na Atari używając kompilatora cc65. Główna trudność
to odpowiednie zarządzanie pamięcią, właściwe rozmieszczenie
wszystkich danych i przełączanie między bankami pamięci (oryginalny
kod przeznaczony jest na maszynę z 640KB, więc trzeba się trochę
nagimnastykować).
O kolejnych postępach prac autor informuje na swoim blogu
programistycznym na AtariAge. Od 2011 roku trochę czasu już
minęło i po drodze zdarzały się dłuższe okresy nieaktywności, ale
ostatnio prace ruszyły z kopyta i w kolejnych tygodniach pojawiają
się nowe robocze wersje gry.
Ostatnia wersja jest do pobrania tutaj – można już definiować parametry postaci, targować
się we wszystkich 6 sklepach oraz chodzić po lochach.
UWAGA: aby uruchomić grę na Atari, potrzebna jest karta VBXE
i kartridż Atarimax 8-Mbit.
Osoby korzystające z emulatora Altirra muszą włączyć opcję:
System → Video → VBXE, a przy ładowaniu pliku w
oknie Select Cartridge Mapper wybrać opcję "*42: MaxFlash
1M / 8Mbit - older (bank 127)".
Shawn trochę już zoptymalizował generowanie mapy lochów, ale nadal
trwa to dość wolno (ok. pół minuty), więc można rozważyć
zwiększenie szybkości w emulatorze.
Sterowanie postacią:
y k u
h l
n j m
Jak widać, 4 podstawowe kierunki: lewo, prawo, dół, góra to
klawisze h, l, j,
k; można też poruszać się na ukos, używając:
y, m, n, u.
Te same klawisze połączone z wciśniętym klawiszem Shift pozwalają
na bieg, a z Ctrl na kopanie tunelu.
Dodatkowo Ctrl+strzałki dają możliwość poruszania się w
podstawowych 4 kierunkach, ale biec czy kopać już się za ich pomocą
nie da.
Inne polecenia:
c - (close) zamknij drzwi d - (drop) upuść przedmiot e - (equipment) lista używanego wyposażenia F - (force/bash) sforsuj drzwi I - (inventory) lista niesionych
przedmiotów O - (open) otwórz drzwi s - (search) wyszukaj w - (wear/wield) załóż/użyj C - (character) wyświetl charakterystykę
postaci E - (eat) jedz F - (fill) napełnij olej w lampie Q - (quit) wyjdź z gry R - (rest) odpocznij S - (spike) zabezpiecz drzwi używając żelaznych
kolców T - (take off) zdejmij X - (exchange) wymiana przedmiotu < - idź schodami w górę > - idź schodami w dół
# - tryb przeszukiwania Ctrl-P - (previous) poprzednia wiadomość
A tak wygląda rozgrywka w wersji na PC:
Bulls and Cows
Starwindz, autor kolekcji "Atari 800 - Best Game
Pack", w ramach nauki języka Action! tworzy na małe Atari
wersję tradycyjnej gry Bulls and Cows, znanej u nas jako gra
w "numerki" albo w "cyferki".
Zasady mogą brzmieć znajomo dla osób znających popularnego
Masterminda wymyślonego w roku 1970, bo jego twórca oparł się
właśnie na "Bykach i krowach", modyfikując nieznacznie reguły i
zastępując cyfry kolorami.
Gracz na początku wybiera długość zgadywanej sekwencji: 3 lub 4
cyfry. Następnie komputer generuje ciąg różnych cyfr ze
zbioru 0-9, a gracz ma za zadanie go odgadnąć. W każdej turze
podaje swoją propozycję, a w odpowiedzi dostaje informację, ile
cyfr jest na właściwej pozycji (są to "byki" oznaczone literą
B), a ile występuje w sekwencji, ale nie są umieszczone na
swoim miejscu ("krowy" oznaczone C).
Przykładowo: jeśli do odgadnięcia jest ciąg "5914", a gracz poda
"5421", to dostanie odpowiedź 1B, 2C (na właściwym miejscu jest 5,
a 1 i 4 występują w obu ciągach na innych pozycjach).
Gra kończy się sukcesem, gdy w pełni zgadniemy sekwencję (czyli
odpowiedzią będą 4 byki), a porażką, jeśli nie zdołamy tego
osiągnąć w 9 turach. Jak udowodniono, każdą 4-cyfrową kombinację da
się odgadnąć w maksymalnie 7 krokach (w Mastermind w 5).
Możemy już teraz pograć w "Bulls and Cows", ostatnia opublikowana
przez starwindza wersja to 0.03 – do pobrania (wraz ze źródłami)
stąd. Docelowo gra ma być nieco wzbogacona graficznie
oraz rozszerzona o listę najlepszych wyników zapisywaną na dysku.
pin 2014-11-05 00:26:25
"Moria" - ciekawy pomysł na grę dla VBXE, lecz obowiązkowe użycie flash-cart'a to kosmiczny niewypał. Szkoda.
Lepszym rozwiązaniem było by użycie rozszerzenia 1MB ram PortB i VBXE. Taka moja prywatna opinia. jhusak 2014-11-05 12:08:26
A gdzie wygoda? Wtykasz kart i grasz! wieczór 2014-11-05 12:55:02
Wygoda kończy się gdy MUSISZ mieć kart żeby zagrać :) Nickname 2014-11-05 13:13:57
No nareszcie jakaś gra która pokazuje co potrafi VBXE
;) jhusak 2014-11-05 14:21:35
Jak chcesz mieć wygodną jazdę, też MUSISZ na początku kupić auto. wieczór 2014-11-05 17:03:53
Auto już mam, nazywa się Atari. Ale niekoniecznie muszę kupować dodatkowe opony i wozić je ze sobą, jeśli już mam :) Jacques 2014-11-06 11:05:10
Marudzicie strasznie. Ktoś chciał zrobić grę na AtariMaxa i zrobił. A cart jest fajny, warto nabyć dla Space Harriera choćby :P wieczór 2014-11-06 12:41:09
@Jaques: no i zrobił i fajnie a my sobie pomarudzimy :) AtariMax jest fajny, ale mam wrażenie, że celem nie było zrobienie gry na AtariMaxa a rozwiązanie problemu z pamięcią, więc marudzimy nad przyjętym rozwiązaniem :) troll 2014-11-06 13:49:00
Rozdział 7
Pan Wołodyjowski, sławny i stary żołnierz, choć człowiek młody, siedział, jako się rzekło, w Pacunelach (...) by Wieczór -> czytaj dalej: http://literat.ug.edu.pl/~literat/potop/0007.htm troll 2014-11-06 13:49:33
ROZDZIAŁ 8
Te myśli spać mu nie dały następnej nocy. Przez kilka dni ciągle jeszcze rozmyślał (...) by Wieczór -> czytaj dalej: http://literat.ug.edu.pl/~literat/potop/0008.htm troll 2014-11-06 13:49:57
ROZDZIAŁ 9
Zaczęły się tedy dla pana Wołodyjowskiego czasy ciężkiej pracy, rozpisywania listów i rozjazdów. (...) by Wieczór -> czytaj dalej: http://literat.ug.edu.pl/~literat/potop/0009.htm Jacques 2014-11-06 14:11:16
wieczór: a... skoro tak to git, mógłby w sumie zrobić drugą wersję ;-) Postarajcie się z marudzeniem dotrzeć do autora, może się uda :-) wieczór 2014-11-06 14:34:45
No i masz Ci los, trza zaaplikować limit na długość komentarza pod nowinkami. Lubię Sienkiewicza, ale tego się tu nie spodziewałem :) sun 2014-11-06 15:51:47
To i tak, że nie poszedł Tadeusz, tylko Michał :) wieczór 2014-11-06 18:14:51
No, problem chwilowo rozwiązany powyżej, trzeba tylko zabezpieczyć na przyszłość :) Shawn 2014-11-08 06:08:37
A cartridge was definitely a requirement for memory space (VBXE2 memory is being banked at $4000-BFFF), and I happen to own some Atarimax cartridges and have programmed for them before, so it seemed an easy way to go.
And yes, this definitely shows the power of VBXE doesn't it. ;) I do plan on adding some pictures to keep your mind off the fact your 2 MHz computer is trying to run a PC game, while dungeons are being generated. If there's space on the cartridge I might pre-generate some caves and store them, so someone who doesn't want the full randomly generated experience can save time. First I need to finish the port though! :)
PS. I hope you don't mind me posting in English.
PPS. I'm sure the game can be ported to any cartridge of similar size... all source will get released when completed. wieczór 2014-11-08 11:47:13
@Shawn: Hi, this game is a very good job! We're discussing just about choosing other kind of memory banking that wouldn't need a cartridge, as internal memory extensions even up to 1MB are very popular recently and could be used allowing user to run it without cartridge (that could remain an option for stock hardware). But certainly that's a some not really tiny job to do :)
From program point of view other types of extensions or cartridges (there are some of them) it's just different switching, sometimes of other address range and window size. And of course for RAM extensions loading procedure would habve to be added, filling additional banks with data ;) xxl 2014-11-08 12:23:43
kardrydz i rozszerzenie pamieci zajmuja inna prestrzen. autor wybral wersje optymalna, gdyby przygotowal wersje na rozszerzenie pamieci to ci ktorzy nie maja takiej modyfikacji w gre nie zagraja. a obecny model na to pozwala. jest oczywiscie mozliwosc uzywania MEMACA skonfigurowanego na przestrzen carta w tym wypadku potrzebny by byl konfigurator na schemat sterowania rozszerzeniem. oczywiscie jesli na vbxe jest wystarczajaco pamieci do emulacji takiego rozszerzenia. wieczór 2014-11-08 14:00:27
Opcja OPTYMALNA to dostosowanie do roznych standardow, tych ktore sa powszechne. A to jest po prostu opcja , "jedna z" :) oczywiscie nkt nie kaze autorowi teraz tego przerabiac, to troche roboty i nieco inna konstrukcja programu - separacja jego logiki od logiki zarzadzania pamiecia itp. Łatwiej to zrobic na starcie niz dostosowywac gotowy program, czesto moze to byc ledwo mozliwe. pin 2014-11-08 20:08:28
@XXL - ale przyznasz, że zdecydowanie więcej maszyn ma 1MB ram, niż masz użytkowników zaopatrzonych w stosownego "mega"-carta. Ja np. nie mam takiego carta więc sobie nie zagram, bo nie uznaje grania na emulatorze. bob_er 2014-11-08 21:09:55
Sądzę osobiście, iż w tym przypadku największe znaczenie ma to, jaki sprzęt ma autor... larek 2014-11-08 22:22:22
@pin: "bo nie uznaje grania na emulatorze."
Oczywiście oprócz grania na emulatorze ZX Spectrum na Atari. xxl 2014-11-09 10:17:08
@Pin, nie wiem tego, Ty zreszta tez nie :) Ja na przyklad mam karta a nie mam rozszerzenia.