2k3 - rogue-like

Problemy związane z pracą w RM, poszukiwania współpracowników. Uwaga na zasady zakładania tematów!

Moderatorzy: Dragon Kamillo, GameBoy

Awatar użytkownika
Rave

Golden Forki 2010 - Dema (miejsce 2)
Posty: 1955
Rejestracja: 15 kwie 2009, 21:33
Lokalizacja: '; DROP TABLE 'Messages'

2k3 - rogue-like

Postautor: Rave » 09 lis 2017, 14:56

W przyszłości chciałbym zrobić sobie w 2k3 rogue-like. Sam gameplay mógłby być dość łatwy, jednak nie wiem do końca jak rozwiązać generację. Niby 2k3 ma generator map, można go ustawić żeby się "sam włączał", jednak jest on tragiczny i jak np. postawisz jakieś eventy to nie ma gwarancji że po generacji na ścianie nie wylądują (albo w suficie). Pomyślałem więc, żeby zrobić parę pokojów i jakoś je połączyć losowo poprzez odpowiedni skrypcik eventowy który by wygenerował "mapę poziomu". Same pokoje/ekrany byłyby statyczne (no, może z losowymi potworami, bo to dość łatwo zrobić), ale za to ładne.

Połączenia samo w sobie mam niejako obmyślone, każdy poziom miałby po 10 "ekranów", więc bym musiał użyć 100 zmiennych zawierających id mapy, ale nie wiem jak ogarnąć generację. Nie może to być totalne losowe, bo np. niektóre pokoje muszą się generować obok innych a inne tylko poniżej określonego poziomu i naprawdę nie wiem jak to ugryźć. Kiedyś w turbo pascalu zrobiłem rogue-like, no ale generację miał jeszcze gorszą niż 2k3 ;) więc to doświadczenie się nie przyda.

Jakieś pomysły?

//edit: Kurde, trochę szkoda że X-Tech dalej zbanowany. Jakkolwiek jego wywody były rakotwórcze, tak 2k3 naprawdę gościu ogarniał. No ale rozumiem, czemu go wywalono, więc bez #bringbackXTech mi tu ;).
Awatar użytkownika
Dragon Kamillo

Golden Forki 2016 - Pełne Wersje (miejsce 3); Golden Forki 2013 - Zapowiedzi (zwycięstwo); Liga Mapperów Sezon IV (miejsce 2)
Posty: 1788
Rejestracja: 18 paź 2009, 21:23
Lokalizacja: Poznań/Granowiec

Re: 2k3 - rogue-like

Postautor: Dragon Kamillo » 09 lis 2017, 15:21

Hmm - pomyślmy.
Na pewno będziesz miał mapy które będą miały przejście np z tylko jednej strony, z dwóch i tak dalej.
Robisz np parę wariantów lewego górnego rogu - i tylko z tych liczb wylosujesz pierwszą mapę.

Wylosowane mapy możesz zapisywać w zmienych, ale uwaga - o odpowiednich numerach (załóżmy że mapa będzie 100x100 mapek).
Numery zmiennych będą takie "XY" mapy.
Np mapę o współrzędnych 00 zapiszesz w zmiennej nr 10000 i tak dalej, dla współrzędnych 0,1 będzie to 10001, np dla 56,38 będzie to 15638 (użyjesz sobie patcha na więcej zmiennych to ci starczy) - ogólnie na zapisanie wszyskich map potrzebujesz 10000 zmiennych.

żeby obliczyć numer zmiennej z podanych współrzędnych zrobisz tak (100 + X) * 100 +Y (ta jedynka na początku żeby nie było sytuacji że współrzędne np 4,10 i 41,0 wygenerują ten sam numer - tak nie wygenerują bo wygeneruja 10410 i 14100, i gut.

No i se losujesz po kolei i zapisujesz po kolei wylosowane mapy, potem teleporty robisz sprawdzając na jakich współrzędnych na mapie jest nasz bohater i na jaką ma sie przenieść - to już proste.

Zostaje samo losowanie gdzie musisz sobie (np jak będziesz losować z lewej do prawej z góry na dół) numery map z mapy po lewej stronie i na górze i losować z warunkami że musi się z nimi zgadzać - możesz np mapy które się ze sobą zgadzają zapisać obok siebie w numerach zmiennych - wtedy warunki czy sie zgadzają czy nie zrobisz na przedziałach i wsio.

Ogólnie do zrobienia. Chyba że chcesz losować mapę podczas gry - w sumie zapis map zostaje ten sam - komplikuje się samo losowanie, ale nadal do zrobienia.
Awatar użytkownika
Rave

Golden Forki 2010 - Dema (miejsce 2)
Posty: 1955
Rejestracja: 15 kwie 2009, 21:33
Lokalizacja: '; DROP TABLE 'Messages'

Re: 2k3 - rogue-like

Postautor: Rave » 09 lis 2017, 15:46

Eh, Dragon, to twoje kombinowanie... Formułka jest prostsza.

x + (y*szerokość)

Gdzie szerokość to szerokość "mapy".

Tak jak mówię, zapis i podstawową generację (totalny random) mam obczajone. Nawet nie będę się bawił w "graniczne" mapy tylko po prostu jeśli ekran będzie w rogu czy na boku mapy zdarzenie teleportu zmieni się w jakąś skałę czy coś innego nie do przejścia, żeby gracz nie wyszedł tam gdzie nie powinien. Chodzi mi o bardziej skomplikowane przypadki generacji takie jak "specjalne" mapy które ZAWSZE muszą się pojawić obok innej mapy, mapy o określonej szansie pojawienia się oraz mapy generowane tylko na określonych poziomach.
Awatar użytkownika
Yoroiookami

Golden Forki 2015 - Pełne Wersje (miejsce 2); Golden Forki 2014 - Pełne Wersje (miejsce 3); Golden Forki 2010 - Gry (miejsce 2)
Posty: 504
Rejestracja: 02 wrz 2014, 12:45

Re: 2k3 - rogue-like

Postautor: Yoroiookami » 09 lis 2017, 16:07

Jeżeli masz tylko 10 pomieszczeń, a niektóre muszą zostać w tym samym miejscu, może łatwiej, szybciej i mniej bugowato byłoby je po prostu przekopiować i połączyć wszystkie możliwe opcje? :L
Po wejściu na nowy poziom gracz losuje numerek od 1-5 i zależnie od tego ma inną kombinację pokoików. A jeżeli nie masz ochoty na kopiowanie map, niech teleporty się zmieniają zależnie od wylosowanego numerku.
(Taka propozycja, gdybyś stracił nadzieję/ochotę na zbędne kombinowanie)
Awatar użytkownika
Rave

Golden Forki 2010 - Dema (miejsce 2)
Posty: 1955
Rejestracja: 15 kwie 2009, 21:33
Lokalizacja: '; DROP TABLE 'Messages'

Re: 2k3 - rogue-like

Postautor: Rave » 09 lis 2017, 18:16

Niby tak, tylko ja chcę zrobić to maksymalnie losowo, chociaż bez przesady. Taki np. Enter the Gungeon też ma zaprojektowane pokoje umieszczone w sposób losowy i połączone razem. Ja chcę, żeby można było ogrywać grę wiele razy i ciągle nie wiedzieć kompletnie co cię czeka (dlatego zawartość skrzynek będzie również losowa).
Awatar użytkownika
Yoroiookami

Golden Forki 2015 - Pełne Wersje (miejsce 2); Golden Forki 2014 - Pełne Wersje (miejsce 3); Golden Forki 2010 - Gry (miejsce 2)
Posty: 504
Rejestracja: 02 wrz 2014, 12:45

Re: 2k3 - rogue-like

Postautor: Yoroiookami » 09 lis 2017, 18:26

Jeżeli chcesz maksymalnie losowo, to możesz zostawić identyczny kształt pomieszczeń, a uzależnić szczegóły od przełączników lub zmiennych.
Np. w kuchni zależnie od zmiennej, na stole by leżało wino lub piwo.

To samo można zrobić ze skrzyniami, przeciwnikami i meblami.
Tylko wtedy będziesz mieć na mapach dużo zdarzeń. :L
Awatar użytkownika
Dragon Kamillo

Golden Forki 2016 - Pełne Wersje (miejsce 3); Golden Forki 2013 - Zapowiedzi (zwycięstwo); Liga Mapperów Sezon IV (miejsce 2)
Posty: 1788
Rejestracja: 18 paź 2009, 21:23
Lokalizacja: Poznań/Granowiec

Re: 2k3 - rogue-like

Postautor: Dragon Kamillo » 09 lis 2017, 19:06

tylko że z tym moim kombinowaniem - przypadek mapy pojawiającej się zawsze koło innej losowej mapy miałbyś rozwiązany.

i nie rozumiem problemu z generowaniem czegoś wyłącznie na jakimś piętrze - toć to tylko warunek numeru piętra i zrobienie kolejnego zbioru który może się tylko generować jak jest określone piętro - jak nie losuj od nowa do skutku.

I faktycznie twój wzór lepszy.

Wróć do „Pomoc”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości