[#1] Dune 3: Return of the Guild
Chciałbym by w tym temacie została przeprowadzona dyskusja na temat stworzenia nowej gry strategicznej na Amigę kontynuacji Dune 2. Pragnąłbym by dyskusja toczyła się pod kątem samego gracza jak i strony technicznej – potrzebuję pomocy w tej materii. Z góry przestrzegam, że chodzi tylko o grę dla jednego gracza – póki co nie ma mowy o multiplayer przez sieć bądź Internet, chyba że ktoś mi w tym pomoże.

Więc zaczynamy od strony gracza:

1) Gra będzie kontynucją Dune 2 więc toczyć się będzie w świecie Dune Franka Herberta z Atrydami, Ordosami i Hakonnenami, Sardaukarami (siłami Imperatora) oraz Gildią międzyplanetarną, nie mówiąc o Laandsrad. Fabuła do opracowania.

2) Każdy ród (Atrydzi, Orosi i Harkonneni) będzie posiadał własny zestaw budynków i jednostek, ulepszeń oraz własne metody konstruowania budynków. Opiszemy tutaj cechy każdego rodu.

3) Panel dowodzenia składał się będzie (jak w Starcrafcie i Dune 2) z mapy, panelu konstrukcji jednostek i podglądu zaznaczonych jednostek i panelu dowodzenia z komendami jak Attack, Move, Guard, Retreat, Deploy itd. Oraz mini mapki.

Strona techniczna (uwaga: tylko zarys engineu)

1) Mapa będzie się składała z komórek (jak w C&C) by uporządkować jednostki i budynki na mapie. Komórki (w tym budynki) będą rysowane za pomocą szybkiej funkcji BltBitMap(). Komórki będą mogły zawierać rampy i mieć szeroki wachlarz cech. Mapa będzie się składać z tzw. Cliffs, czyli obszarów z ograniczonym dostępem.

2) Jednostki będą umieszczane na mapie za pomocą funkcji BltMaskBitMapRastPort(). Proces rysowania to narysowanie całej mapy z komórek, następnie naniesienie jednostek i efektów specjalnych (pocisków, wybuchów itp.) i przełączenie buforów.

3) Panel dowodzenia i panel podglądu zaznaczonych jednostek będzie rysowany po prostu za pomocą BltBitMap(), a gadżety obsługiwany za pomocą UserPort okienka (wiadomości IDCMP_MOUSEBUTTON i IDCMP_RAWKEY).

4) Budynki i jednostki będą obsługiwane poprzez odpowiednie funkcje, które będą przemieszczały jednostki, tworzyły pociski, uszkadzały jednostki, zbierały przyprawę, reperowały budynki, tworzyły nowe jednostki, modernizowały budynki i mnóstwo innych rzeczy, które pojawią się w trakcie dyskusji.

5) Potrzebuję użyć algorytmu Path Finding by znaleźć najkrótszą ścieżkę pomiędzy dwoma punktami planszy: potrzebne do ruchu jednostek: jak napisać taki algorytm?

Oczywiście gra będzie napisana pod procesor PPC i kartę graficzną a ściślej pod system OS4.

To tyle na razie. Piszę to z pamięci i może brakować wielu istotnych rzeczy, które pokrótce wprowadzę w tym temacie. Zapraszam do dyskusji osoby interesujące się grami strategicznymi jak i programistów.

[#2] Re: Dune 3: Return of the Guild

@Minniat, post #1

Masz licencję na tytuł?
Czy ty już raz nie pisałeś strategi?

[#3] Re: Dune 3: Return of the Guild

@Minniat, post #1

Pathfinding w komórkach jest dość prosty. Na początku tworzysz tablicę, która każdej komórce planszy przyporządkowuje liczbę. Wypełniasz całą tablicę liczbą, która jest większa od wysokość * szerokość planszy (liczona w komórkach). Pierwsza część algorytmu to wypełnienie tablicy, robi się to rekurencyjnie. Pole zaczynające ścieżkę otrzymuje wartość 0. Następnie sprawdzasz wszystkich sąsiadów pola. Jeżeli dany sąsiad ma wartość mniejszą, lub równą, lub o jeden większą od Twojego, nie robisz nic. Jeżeli wartość sąsiada jest co najmniej o 2 większa, wstawiasz mu wartość Twojego pola zwiększoną o 1 i rekurencyjnie wywołujesz funkcję sprawdzającą sąsiadów. Rekurencja będzie się wykonywać aż do momentu przypisania wartości wszystkim polom planszy. Tu oczywiście pamiętasz o uwzględnieniu przeszkód. Jeżeli na dane pole nie można wejść, bo np. stoi na nim budynek, albo jednostka, to przy sprawdzaniu sąsiadów je pomijasz.

Po wypełnieniu całej planszy liczbami, numer na każdym polu oznacza ilość kroków jakie trzeba zrobić, aby przejść do niego z pola startowego. Druga faza to "zczytanie" najkrótszej ścieżki. Tym razem zaczynamy od końca ścieżki. Sprawdzamy sąsiadów i wybieramy sąsiada z najmniejszym numerem. Jeżeli więcej niż 1 sąsiad ma ten sam numer, wybieramy dowolnego, oznacza to, że istnieje więcej niż 1 droga o tej samej ilości kroków. Teraz dla wybranego sąsiada znów sprawdzamy sąsiadów i wybieramy tego z najmniejszym numerem. Czynność powtarzamy, aż dojdziemy do pola startowego (które, jako jedyne, ma numer 0). W ten sposób określiliśmy najkrótszą ścieżkę.

[#4] Re: Dune 3: Return of the Guild

@Minniat, post #1

GumBoy ma rację - możesz mieć problemy z nazwą/wykorzystaniem świata Herberta.

Druga sprawa - po co zamierzasz zostawić "ród" Ordosów? Herbert o nich nie wspomina (OK, można założyć, że to któryś z rodów Landsraadu). Nie lepiej wprowadzić do akcji zamiast nich Ixian, albo bene Tleilax? To mogłoby być ciekawe (Ix z ich nowoczesną technologią, albo Tleilaxianie z tancerzami oblicza i zbiornikami aksolotlowymi).

Po trzecie - czemu tylko OS4?
[#5] Re: Dune 3: Return of the Guild

@recedent, post #4

Bo minniat nie potrafi uruchomić MorphOSa.

[#6] Re: Dune 3: Return of the Guild

@Minniat, post #1

Nie zapomnij o wersji na AGA i bobach. ;)

[#7] Re: Dune 3: Return of the Guild

@Minniat, post #1

pisanie tylko pod os4 to strzał w nogę. nikt z polskich programistów nie ma os4. Poza tym akurat nie ma potrzeby pisać tylko pod ppc. Pisz tak abyś mógł kompilować także pod 68k (to, że będzie wolno to nic, wązne żeby działało)

Przedstaw tutaj nam zarys struktur, metod, nagłówków obiektów to będzie można coś ocenić.

[#8] Re: Dune 3: Return of the Guild

@MinisterQ, post #6

Koniecznie te superszybkie na 1 bitplane.
[#9] Re: Dune 3: Return of the Guild

@Kulfon, post #8

Proszę mi ten podwątek ironiczny zakończyć.

Moderator

[#10] Re: Dune 3: Return of the Guild

@Minniat, post #1

Widzę że post Minniat'a powoduje uśmiech u wielu osób. Pewnie nie bez podstawnie, ale myślę że nie zauważacie jednak pewnego uporu w tym co robi. Ja myślę że w końcu uda się napisać coś na kształt "Dune 2", pewnie minie dużo czasu ale uwieńczone to będzie czymś działającym. Zresztą życzę mu powodzenia.

ad5. najkrótsza scieżka
może poszukaj na sieci algorytmów grafowych które szukają najkrótszych scieżek (nawet z uwzględnieniem wagi krawędzi - np. co może oznaczać "trudność" pola)

[#11] Re: Dune 3: Return of the Guild

@Grzegorz Kraszewski, post #3

Swego czasu natknąłem się na pakiet, który ułatwia projektowanie inteligencji jednostek, które występują w grach typu RTS:

1. Stratagus - Real Time Strategy Engine
Link: http://stratagus.sourceforge.net/index.shtml

Zaletą tego pakietu jest to, że nie jest oparta na jakiejś bibliotece windowsowej, tylko jest oparty na includach oraz źródłach, które można "podczepić" pod swój kod. Gdzieś nawet widziałem kody napisane pod SDL-a.

2. PPTactical Engine
Link: http://aspc.cs.utt.ro/~karg/ppt/index.html

Ten pakiet jest bardziej rozbudowany niż poprzednik. Zawiera jakieś narzędzia pomocnicze, ułatwiający tworzenie logiki. Też jest oparty na licencji GPL oraz wspiera SDL.

Nie wykluczone że oba pakety wymagają przeportowania na Ami. Można też podejrzeć procedury jakie są tam zawarte, aby móc je wykorzystać w swoim projekcie lub też (jeśli ktoś oczywiście potrafi) zrobić z tego bibliotekę.



Ostatnia modyfikacja: 24.11.2008 14:24:31
[#12] Re: Dune 3: Return of the Guild

@Rafael/ARMO, post #10

Ten uśmiech, i ogólnie rzecz biorąc wszelakie tworzące się podwątki ironiczne, jak to określił krashan, biorą się tylko i wyłącznie z jednego powodu - minniat jest odporny na wszelakie sugestie, które po zastosowaniu w praktyce, wpłynęły by pozytywnie na jakość pisanego przez niego kodu.
Podejrzewam że i w tym przypadku, jeśli sam wyczai jakiś algorytm do obsługi najkrótszej drogi, to nawet jeśli będzie tragiczny w działaniu, to minniat i tak będzie go używać, niezależnie od tego co mu kto napisze na ten temat.

Nie mam nic przeciwko jego upartości - to bardzo dobra cecha jak na programistę. Jedyne co czasem drażni, a czasem bawi, to Jego odporność na sugestie ludzi, którzy wiedzą od Niego po prostu więcej.

[#13] Re: Dune 3: Return of the Guild

@GumBoy, post #2

Nie potrzebuję licencji. Próbowałem tworzyć już grę strategiczną z pewnym powodzeniem:

- napisałem program, który rysuje mapę składającą się z komórek z grafiką ściągniętą z Dune 2,
- stworzyłem poruszający się pojazd, który przemieszcza się pomiędzy komórkami,
- panel dowodzenia podobny do Starcrafta, w którym można było tworzyć jednostki, reperować i modernizować budynki (postęp reperacji i modernizacji był przedstawiony graficznie - na dowód mogę umieścić screenshoty),
- panel budowy budynków jak w C&C z tzw. tooltipami (małymi podpowiedziami),

Na drodze stanęła mi tylko prędkość animacji. Dzięki karcie graficznej ten problem zniknie.

Mam też pewną wiedzę na temat strony technicznej Dune 2. Na przykład wiem jak stworzyć listy jednostek, budynków, efektów specjalnych (pociski, wybuchy) i jak je obsługiwać (np. reperacja, modernizacja budynku, obsługa pałacu, warsztatu, rafinerii), wiem jak stworzyć działające działa obronne.

Nie wiem jeszcze natomiast jak np. opracować działające jednostki np. żniwiarka zbierająca przyprawę czy obsługa wystrzelonej rakiety ale to powinno być dość proste.

[#14] Re: Dune 3: Return of the Guild

@Grzegorz Kraszewski, post #3

Dziękuję za dokładny opis. Przeanalizuję go. Szukałem też tego algorytmu z powodzeniem w Internecie (bodajże nazywa się A*).

[#15] Re: Dune 3: Return of the Guild

@MinisterQ, post #6

Wersja na AGA nie powstanie. Co do systemowych Bobów to ich jednak nie użyję (choć gra będzie 2D) tylko użyję wspomnianych przez Ciebie funkcji akcelerowanych przez chipset graficzny BltMaskBitMapRastPort() bądź ewentualnie funkcje cybergraphics.library czyli chunky. Co do MorphOSa to jestem otwarty po prostu może ktoś moją grę przeportuje, przecież MOS i AOS4 są bliźniacze.



Ostatnia modyfikacja: 24.11.2008 14:57:48
[#16] Re: Dune 3: Return of the Guild

@Grzegorz Kraszewski, post #9

Ironiczny wątek zaczął się w poście nr 1.

Zresztą wystarczy przeczytać jego odpowiedź dotyczącą licencji.

Proponuje zamknąć topić zanim nam zamkną PPA.



Ostatnia modyfikacja: 24.11.2008 15:01:04
[#17] Re: Dune 3: Return of the Guild

@rzookol, post #7

Będzie można skompilować mój kod pod M68k - wystarczy użyć odpowiedniego kompilatora. OS4 to coś co jest dla mnie obecnie bardzo ważne - będę programował pod niego, bo spodobał mi się ten system.

Przedstaw tutaj nam zarys struktur, metod, nagłówków obiektów to będzie można coś ocenić.

Zrobię to w krótkim czasie, po prostu mój post był pisany z pamięci i nie przedstawiał wielu istotnych rzeczy.

[#18] Re: Dune 3: Return of the Guild

@Rafael/ARMO, post #10

Rafael/ARMO napisał(a):

> Widzę że post Minniat'a powoduje uśmiech u wielu osób. Pewnie
> nie bez podstawnie, ale myślę że nie zauważacie jednak pewnego
> uporu w tym co robi.

A jak widzisz kogoś z uporem maniaka próbującego własną głową przebić ścianę, zamiast użyć stojącego obom młota pneumatycznego, to co sobie myślisz? Doceniasz jego upór?

> Ja myślę że w końcu uda się napisać coś na
> kształt "Dune 2", pewnie minie dużo czasu ale uwieńczone to
> będzie czymś działającym.

Podobnież osobnikowi z przykładu prawdopodobnie uda się w końcu głową w ścianę przebić.

[#19] Re: Dune 3: Return of the Guild

@Minniat, post #13

Minniat napisał(a):

> Nie potrzebuję licencji.

Jak sobie zmienisz tytuł, to może nie będziesz potrzebował.

[#20] Re: Dune 3: Return of the Guild

@recedent, post #4

Ordosi są w Dune 2 więc ich użyję. Budynek technologiczny House of IX zostawiam tak jak jest. To samo dotyczy Sardaukarów i Fremenów - będą jak w Dune 2, czyli Fremeni będą wspierać Atrydów, a Sardaukarzy będą siłami Imperatora (nie wykluczone, że dam ich by wspomagali Harkonnenów). Tleilaxu, Ixian pozostawmy w Emperor: Battle for Dune, nie wykorzystam ich.

[#21] Re: Dune 3: Return of the Guild

@Kulfon, post #16

No cóż, 24 godziny bana za ciągnięcie wątku mimo ostrzeżenia moderatora.

[#22] Re: Dune 3: Return of the Guild

@Minniat, post #13

Minniat napisał(a):

napisałem program, który rysuje mapę składającą się z komórek
z grafiką ściągniętą z Dune 2


Niestety, minniat, grafika sciągnięta z Dune 2 też podlega ochronie prawnej. Czyli możesz taką gre napisać tylko dla siebie, natomiast nie możesz jej publikować w necie.

[#23] Re: Dune 3: Return of the Guild

@robwor, post #22

To był tylko mój program testowy! Oczywiście, że w mojej grze wykorzystam całkiem nową grafikę, muzykę i dźwięki!

[#24] Re: Dune 3: Return of the Guild

@Minniat, post #23

Minniat, nie przejmuj się. Przejdzie ci :)

Spóźniłeś się z tą swoją gierką jakieś 15 lat :)
[#25] Re: Dune 3: Return of the Guild

@Minniat, post #20

Stary fajnie że chcesz napisać taką grę. Tylko dwie sprawy:
Po pierwsze przeczytaj serie Diuna. Jak już przeczytasz to dojdziesz do wniosku że świat gry Dune 2 i Emperor: Battle for Dune to jest nawet nie luźna adaptacja książki tylko kilka głównych motywów zaczerpniętej ze świata Herberta. Gdybyś pisał grę umieszczoną w czasie gdy Paul Atryda dochodził do imperialnego tronu dowodząc Fremenami , to wszystkie jednostki były by jednostkami piechoty no jeszcze jakieś ornitoptery (I tom cyklu, żeby było śmieszniej już od połowy książki prawie cały rud Atrydów i ich wszystkie siły są wyrżnięte w pień). Niestety nie ma czołgów, rakiet są tylko ładunki nuklearne, rusznice laserowe i czerwie.
Po drugie Dom Rodu X występuje w grze Dune 2. No może nie do końca ale tą zagadkę zostawiam do rozwiązania dla ciebie.

Jak bardzo się upierasz przy tym by pozostały jednostki znane ci z gry Dune 2 to niestety czas w jakim się dzieje rozgrywka musisz przenieść o chyba 7 tysięcy lat do przodu (piszę teraz z pamięci więc mnie nie bluzgać) od czasu wstąpienia Paula Atrydy na tron imperatora. Świat po powrocie z "rozproszenia" i wtedy nawet technicznie jednostki by ci się zgadzały niestety rody byś musiał zmienić tzn. zastąpić Zakonem Żeńskim Benegeserit, Czcigodnymi Macierzami i Tleilaxu. Wszystko to znajdziesz w dwóch ostatnich tomach cyklu, Kapitularzu i Heretykach. Aha tam jest taki motyw że melanż wytwarzany jest od dawna syntetycznie zresztą i tak nie jest potrzebny bo istnieją specjalne maszyny iX które same potrafią nawigować i zaginać przestrzeń!!!!

Już tak na koniec jeżeli nie czytałeś Diuny to najwyższy czas przeczytać cała seria "ryje beret koncertowo". Idea "ćpuchania", nieśmiertelności i reinkarnacji u Herberta jest niesamowita. No i jeszcze ten Leto II Atryda!!! Wow!! Za ten pomysł to Herbertowi trzeba by postawić pomnik jeżeli chodzi o element zaskoczenia czytelnika ;).

Chcesz dobrą grę która spodoba się wielu ludzią nie tylko amigowcą?
Trzymaj się pierwowzoru książkowego, o licencje się nie martw bo Dune 2 i jej następczynie też nie są adaptacją serii Diuna.

[#26] Re: Dune 3: Return of the Guild

@aMifan, post #24

Spójrz na klony pecetowe. Wymienię je: Dune 2 Redux, Dune Legacy i Dune 2 the Maker. Wszystkie powstały niedawno i czerpią grafikę z oryginalnej Dune 2. BTW: Jestem zaprzyjaźniony z twórcą Dune 2 the Maker. Moja Dune 3 idzie o krok dalej i wprowadzi nową grafikę i dźwięki na dobrym poziomie. To prawda, że będzie 2D ale nie jest powiedziane, że takie gry nie mogą być nowoczesne.

[#27] Re: Dune 3: Return of the Guild

@jimiche, post #25

Przeczytałem niecałą Diunę :D, ale oglądałem kapitalny film w reżyserii Davida Lyncha oraz całkiem nowy serial (polecam). Poza tym to że Dune 2 wykorzystuje czołgi czy czterokołowce to wynika po prostu z tego, że autorzy mieli taki pomysł oraz dlatego, że jest to gra strategiczna. W Dune 1 (grze przygodowej) tego nie było, fabuła bardziej nawiązywała do pierwowzoru książkowego tj. był i książe Atryda i baron Harkonnen itp.

[#28] Re: Dune 3: Return of the Guild

@Minniat, post #27

Wiesz co do tych czołgów to można piechotę podzielić w zależności od wyszkolenia i specjalizacji więc już masz odpowiednią ilość zróżnicowanych jednostek. Nie trzeba uciekać się do takich sztuczek z naciąganiem fabuły. Czasami odnoszę wrażenie że Dune 2 tak naprawdę zaadaptowany na siłę pomysł do uniwersum Franak Herberta.

[#29] Re: Dune 3: Return of the Guild

@Minniat, post #20

Sardaukarowie zostali w zasadzie rozwiązani po wstąpieniu na tron Leto II Atrydy. Ordosów u Herberta nigdy nie było i absolutnie nie ma żadnych przesłanek w książkach by taka nacja istniała. Za to bardziej prawdopodobne że jedną ze stron konfliktu powinny stanowić 'myślące maszyny'. Gildia planetarna w zasadzie nie potrzebowała sił zbrojnych - uzalżnienei każdej rasy od ich nawigatorów było tak silne, że nikt nie odważyłby się rozpocząć jakiegoś zatargu zbrojnego. Zaginanie przestrzeni zawsze było dokonywane generatorami holtzmana, nawigatorzy poprzez ograniczoną predykcję przyszłości jedynie obierali najbezpieczniejszą drogę przez przestrzeń. System nawigacyjny Ixian był w zasadzie komputerem - czyli był zakazany przez postanowienia Jihadu Butlerjańskiego (-ej?) stąd też był używany jedynie przez ugrupowania które były wystarczająco wpływowe by takie fakty ukryć lub przetrwać gdyby to wyszło na jaw. Bene Tleilexu zostali ostro zmieceni przez ich 'samice' które to utworzyły Czcigodne Macierze (Matrony raczej powinno być ale kit z tym). Ale to przecież historia najnowsza! Zawsze mogło się to dziać wcześniej, może nawet lepiej byłoby pomyśleć o czasach właśnie jihadu - byłyby 'czarodziejki', byliby 'mistrzowie miecza', zwykli trooperzy, cymeki i inne tego typu ustrojstwa. W Emperor-BfD rozbawiło mnie jak saudarkar strzelający z rusznicy laserowej w laserowy czołg ordosów ginął razem z czołgiem - przecież wybuch rozniósłby całą mapę (w książkach kilkukrotnie było wspomniane że wystrzał z rusznicy laserowej w tarczę ochronną powoduje eksplozję podobną do wybuchu bomby atomowej). Ogółem jeśli kolega czuje się na siłach to właśnie doradziłbym coś właśnie z czasów krucjaty przeciwko myślącym maszynom.
[#30] Re: Dune 3: Return of the Guild

@GumBoy, post #18

GumBoy napisał(a):

> Rafael/ARMO napisał(a):
>
> > Widzę że post Minniat'a powoduje uśmiech u wielu osób. Pewnie
> > nie bez podstawnie, ale myślę że nie zauważacie jednak
> pewnego
> > uporu w tym co robi.
>
> A jak widzisz kogoś z uporem maniaka próbującego własną głową
> przebić ścianę, zamiast użyć stojącego obom młota
> pneumatycznego, to co sobie myślisz? Doceniasz jego upór?

Ja to widzę inaczej, widzę kogoś kto właśnie sam "tworzy" młot żeby
rozbić scianę, a w tym niema nic złego bo dzięki temu może wymyślić
całkiem nowy młot z nowymi możliwościami.

> > Ja myślę że w końcu uda się napisać coś na
> > kształt "Dune 2", pewnie minie dużo czasu ale uwieńczone to
> > będzie czymś działającym.
>
> Podobnież osobnikowi z przykładu prawdopodobnie uda się w końcu
> głową w ścianę przebić.

"Wymyślanie koła na nowo" nie jest czymś złym bo może prowadzić do
nowych odkryć, a poza tym jest zawsze bardzo dobrym treningiem "umysłowym".
Minniat w swoim uporze zrobił już wiele rzeczy (z tego co sam pisze),
a tylko dzięki takim ludziom "amiga" może istnieć i rozwijać się.

Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem