Mialem problem, zeby wybrac odpowiedni dzial forum - to, co chce napisac powinno trafic do jakiegos "offtopic"... W koncu zdecydowalem sie na na ten dzial, wylacznie z powodu w miare swiezej ostatniej aktywnosci - mam tutaj wieksza szanse, ze ktos mnie przeczyta.
Zacznijmy moze od tego, ze z Otchlania jestem emocjonalnie zwiazany, od kiedy w mlodosci (dawno temu) zjadla mi ladnych kilka tygodni zycia. Zaczynalem od pierwszego dema, potem gralem w bete, a potem... nie pamietam za dobrze, ale w kilka kolejnych wersji tez gralem. Udzielalem sie nawet w rozmowach na forach - wtedy bylo jeszcze takie stare i brzydkie forum bez logowania, nowe dopiero mialo sie pojawic.
Krotka dygresja - jestem programista. Otchlan nie byla z pewnoscia jedyna przyczyna, dla ktorej obralem taka klase postaci w grze w zycie, ale wlasnie ona - bardziej, niz cokolwiek innego - utwierdzila mnie w przekonaniu, ze programowanie i informatyka to cos dla mnie. Mowie w takim samym stopniu o samej grze, jak i o "lamaniu szyfru cezara" ktorym "zaszyfrowane" byly podowczas opisy lokacji czy angazowaniu sie w projekty klonujace Otchlan. Zaden z nich nie przetrwal, o ile wiem, niemniej uczestnictwo w niektorych z nich bylo ciekawe i pouczajace.
Teraz wrocilem. I widze wciaz to samo, co tyle lat temu: 4k linii kodu (z faq wzieta informacja) w Pascalu z jedna wstawka assemblerowa. Nieprzyjazny dla klientow (tf, zmud, etc.) interfejs, brak multiplayera, brak wbudowanego w gre edytora obiektow, brak elementow wizualnych i dzwiekowych.
W 2010 roku.
Nie wiem, jakie sa powody, dla ktorych Weq nie wypuscil Otchlani 2. Gdyby ktos mi kazal zgadywac, z pewnym wahaniem wskazalbym na cos pomiedzy brakiem czasu a znudzeniem tematem. A byc moze Weq po prostu stwierdzil, ze przepisanie calej gry od zera to za duzy wysilek w porownaniu z w gruncie rzeczy niewielka popularnoscia, na jaka mozna liczyc przy tworzeniu gier tekstowych. Jak juz wspomnialem, mielismy kilka projektow, ktore moglyby Otchlan zdetronizowac - a przynajmniej uczciwie z nia konkurowac - ktore jednak padly; glownym powodem ich porazki byly (wtedy) niedostateczne umiejetnosci i znudzenie, brak konsekwencji. Ostatecznie porywaly sie na takie projekty osoby bardzo mlode...
Ale - jeszcze raz zaznacze - mamy juz 2010 rok. Tak jak i wszyscy inni, tak i ja w miedzyczasie expilem. Uwaga, wyjawiam pierwszy powod, dla ktorego pisze ten post! Otoz - chcialbym, zeby odezwali sie wszyscy, ktorzy kiedys podejmowali proby zaprogramowania klona Otchlani (MadGuy, patrze na Ciebie...). W jakim celu - o tym pisze ponizej.
Marzy mi sie gra.
Tekstowo-graficzny RPG single- i multiplayer. Zasadniczo polaczenie Otchlani, MUDow i japonskich "visual novel"... Kilka lat temu przerazilby mnie zakres prac, potrzebnych do wyprodukowania takiej mieszanki - dzis spokojnie zaczynam projektowac. Na kartce, bo tak mi najwygodniej, w UMLu, ale mocno uproszczonym i troche mniej formalnym - tylko ja bede to czytal przeciez.
Moze zacznijmy od podstawowych zalozen. Cala gra bedzie prawdopodobnie napisana w Pythonie - Ruby nie lubie, Pike ma za malo bibliotek, OCaml (prosze, listosci) odpada, jezyki niskopoziomowe to strata czasu, jezyki kompilowane - de facto tez, bo i tak trzeba w grze osadzic interpreter jakiegos jezyka (albo napisac wlasny), zeby bylo jak opisywac lokacje, przedmioty i cala reszte.
Troche o Pythonie (chcecie wiedziec?): silnie typowany, interpretowany jezyk bardzo wysokiego poziomu z mnostwem bibliotek. Wysoce przenosny - bez wiekszych zmian moze dzialac zarowno na Macu, jak i Windowsie, nie wspominajac o takich niszowych drobiazgach, jak wszystkie Linuxy i Unixy na praktycznie wszystkich architekturach albo niektore telefony. "Bardzo wysokiego poziomu" oznacza, ze serwer TCP pisze sie w szesciu linijkach kodu.
Python ma dwie wady - po pierwsze, zeby uruchomic jakis program napisany w Pythonie, trzeba miec w systemie zainstalowana odpowiednia wersje jego interpretera. Po drugie - sam interpreter wazy kolo 20 MB. W dzisiejszych czasach nie jest to wiele - niemniej spakowana Otchlan to tylko 1.2MB... Z drugiej strony - grafiki potrzebne grze maja szanse zajmowac nawet wiecej miejsca, niz interpreter, wiec moze mozna sie na takie obciazenie zgodzic.
Teraz o samej grze.
Technicznie klient i wlasciwa gra beda odrebnymi programami, ale dla uzytkownika nie bedzie to mialo znaczenia. Chcac uruchomic gre, uzytkownik uruchamia okienkowego klienta (we wczesnych wersjach dwa tekstboxy, jeden z inputem uzytkownika, drugi z outputem gry), ktory z kolei uruchamia serwer z ktorym od razu laczy sie i loguje. Z serwerem mozna sie polaczyc takze zwyklym telnetem, ale wtedy tracone jest formatowanie tekstu, grafiki w tle i dzwieki (nie ma innego wyjscia).
Sama zasada rozgrywki jest identyczna, jak w MUDach i Otchlani - wpisujemy (w jedno okienko) komende i czytamy jakis opis, ktory w odpowiedzi (w drugim okienku) wyskoczyl. Pierwsza roznica polega na tym, ze dowolny tekst moze miec dowolny styl graficzny, lacznie z tlem - i ze jest to kontrolowane przez serwer. Podobnie serwer ma mozliwosc odgrywania dzwiekow poprzez klienta.
Do tego momentu mamy Otchlan, tyle ze w okienku normalnym, a nie konsolowym. Jest kilka roznic, miedzy innymi mozliwosc korzystania z konsoli Pythona czy mozliwosc edytowania obiektow bez restartu gry, ale to jeszcze nie jest rewolucja. Naprawde fajne jest to, ze dwoch i wiecej graczy moze polaczyc swoje gry. Nie bedzie to nalozenie na siebie odrebnych swiatow, ale doslownie polaczenie korytarzem, czy drzwiami. Grajac caly czas pod tym samym klientem, na tym samych serwerze (wlasnym) mozna isc na wschod i znalezc sie w salonie kumpla.
Wlasnie. O tym nie powiedzialem - logujac sie, trafiamy do kilku podstawowych lokacji w ciele Gracza. Tzn. jeszcze nie jestesmy postacia tylko soba. Do tych kilku podstawowych lokacji mozemy swobodnie dodawac kolejne, zmieniac ich opisy, dodawac dzwieki - tworzyc swoj maly ogrodek. Gdzies na tych lokacjach bedzie pomieszczenie z przejsciami do misji. Kiedy uzytkownik przejdzie przez takie drzwi - dostaje cialo bohatera, jezeli pierwszy raz odwiedza te misje, to swiezego, jesli wraca po przerwie - wczytanego z save'a. Misje mozna przechodzic w wiele osob, kooperatywnie albo sobie przeszkadzac. Co wiecej, gracz, u ktorego rozgrywa sie misja, nie musi w niej brac udzialu - moze robic za niewidzialnego mistrza gry. Warunek jest taki, ze najpierw musi misje przejsc solo albo byc jej autorem.
Misje to zestawy obiektow, zasobow (grafik, dzwiekow) i funkcji; pojedyncza misja to jakby jedna przygoda w tradycyjnym erpegu. Misje beda tworzone zarowno przez graczy, jak i przez oficjalna ekipe. Nic nie stoi na przeszkodzie, zeby zrobic misje-gigantyczne expowisko - ja jednak wole bardziej klimatyczne przygody, gdzie bardziej liczy sie rozmowa, rozgladanie sie, niz mechanika walki.
Wymieniac sie misjami mozna bezposrednio w grze (oprocz np. sciagniecia z sieci i wrzucenia do odpowiedniego katalogu). Na przyklad:
Kod: Zaznacz cały
Salon twojego kumpla. # w tym momencie znajdujemy sie na serwerze kumpla
Stoi tu twoj kumpel.
Twoj kumpel daje ci niewielka paczuszke. # i my, i paczuszka, jestesmy na serwerze kumpla
> ob niewielka paczuszke
W tej paczce znajduje sie misja zatytulowana "Grona gniewu". Zanies ja do domu i rozpakuj lub zajrzyj do srodka.
> powiedz Dzieki!
Mowisz: Dzieki!
> teleport moj_dom
Znikasz w klebach dymu.
Twoj salon. # teraz jestesmy u siebie, ale paczuszka przyszla z nami
Lezy tu masa rupieci. # tylko czesciowo, trzeba ja dociagnac
> rozpakuj niewielka paczuszke # czym zajmuje sie nasz serwer za naszymi plecami.
Instalowanie modulu "Grona gniewu".
Sciaganie zasobow.....
Sciaganie zrodel....
Misja zainstalowana; idz do pomieszczenia odpraw i wybierz odpowiedni wpis z ksiegi lub teleportuj sie na grona_gniewu.
>
Wreszcie wyjawiam powod, dla ktorego chcialbym sie skontaktowac z programistami, zamieszanymi w poprzednie proby klonowania Otchlani. Jestem w stanie to zaimplementowac - kurcze, mam nawet juz troche dzialajacego kodu! - ale nie mam dosc czasu, zeby wymyslac wszystkie rozwiazania, zasady, cala mechanike. Potrzebuje z tym pomocy...
W skrocie - jesli komus pomysl sie podoba, dajcie mi znac - postawie strone, przedstawie sie, powyjasniam co trzeba i ruszymy z developerka! Nie sadze, zeby projekt mial zajac wiecej, niz pol roku - to znaczy z pominieciem (prawie kompletnym) tworzenia jakiegokolwiek contentu.
Pozdrawiam.