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.





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:







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.