[#31] Re: Pomysł gry strategicznej

@Minniat, post #30

Skupiasz sie na algorytmach "widokowych", a nie na sztucznej
inteligencji i temu podobnych algorytmach, czyli to co wciaga tak na
prawde w grze. Widok przyciaga jedynie uwage, ale jak gra bedzie
kiepska, to tak jak przyciagnie uwage, tak szybko wyladuje w koszu,
jesli nie wciagnie gra. Przykład, zonie kupilem w prezencie, gre, w
ktora kiedys grala i ktora dobrze jej sie kojarzyla i wraca do niej co
pare dni, mimo, ze wlasna ma juz pol roku, a gra nie jest nowa, ale ma
rozbudowane roznego rodzaju opcje. Algorytmy o ktorych piszesz maja
pierwszorzedne znaczenie w demach, ale w grze wazniejsze jest wnetrze,
a pozniej dopiero wizualizacja, stad tez taki sukces mudow w swoim
czasie.



Ostatnia modyfikacja: 05.05.07 10:39
[#32] Re: Pomysł gry strategicznej

@Minniat, post #10

jest coś takiego jak rtgmaster.library...

[#33] Re: Pomysł gry strategicznej

@Kaczus, post #31

Skupiasz sie na algorytmach "widokowych", a nie na sztucznej
inteligencji i temu podobnych algorytmach, czyli to co wciaga tak na
prawde w grze


Jeśli chodzi Ci o to, w jakiej kolejności programuję funkcje (od niskopozio-
mowych procedur do wysokopoziomowych procedur)?
Na początku wziąłem się za projektowanie budynków zarówno na mapie
jak i na panelu bocznym i stworzyłem kod całkiem uniwersalny (np. weźmy
za przykład Barracks. Tworzę na górze obrazek Barracks a poniżej
obrazki jednostek szkolonych czyli Soldier i Infantry

Jeśli chodzi o kolejność działania to np. jeśli chodzi o wszelkie obrazki
(guziki na panelu, czy czołg na polu bitwy) stosuję tę samą procedurę
tworzącą graficzne obiekty a następnie dopiero strukturę i statystykę
jednostek bojowych, czyli część abstrakcyjną (?!)

[#34] Re: Pomysł gry strategicznej

@Rafael/ARMO, post #24


Faktycznie nie tak to mialo zabrzmiec i kolega mogl sie poczuc urazony.
Za co z mojej strony przepraszam.

Chodzilo mi oczywiscie iz motto "samemu nic nie wiem, ale zeby wygladalo profesjonalnie bede pisal wiecej postow dla samego pisania" przyswieca tamtejszemu forum. Ot czym jest tamto forum dla mnie.
[#35] Re: Pomysł gry strategicznej

@Minniat, post #33

no nie do konca.abstrakcyjny model,masz obiekt -> budynek,obiekt nieruchomy.cechy pancerz wytrzymalosc,np pobor pradu etc.
z tego podstawowego obiektu tworzysz inny zlozony itd.chodzi o to abys mial dobry engine gry.tak samo z mapa,czy to maja byc tile 32x32,narzucasz dodatkowe warstwy dla przezroczystosci(a'la warstwy SNESa) czy robisz wszystko na sprite-ach(cgx a nie agowych).
zanim jednak zaczniesz pisac,pomysl i dokladnie sobie napisz scenariusz swiata bo potem okaze sie ze czegos zapomniales i polowa kodu do przepisania.zasada jest prosta im dokladniejszy zrobisz sobie scenariusz
tym szybciej bedziesz pisal gre.
Powodzenia :)

[#36] Re: Pomysł gry strategicznej

@Minniat, post #33

Dawno nikt nie zdecydował się na taki projekt. Mam nadzieję że Ci się uda go zakończyć. Trzymam kciuki. Powodzenia OK

[#37] Re: Pomysł gry strategicznej

@Minniat, post #30

Mógłbyś sprecyzować co to jest ta część logiczna i abstrakcyjna część świata?

OK, w takim razie podam przykład jak ja bym widział abstrakcyjno-obiektową część twojego RTSa, na etapie projektu. Opisze tu kawałek hierarchii klas/obieków.

Najpierw zdefiniujmy obiekt, a dokładniej klasę opisującą podstawowy elemente świata gry który może wchodzić w jakąkolwiek interakcje z innymi elementami w trakcie rozgrywki (np.: drzewo, głaz, melanż, budynek, jednostka ruchoma, kopalnia ...), nazwijmy tą klase RTS_ITEM. Każdy obiekt tej klasy wyposażamy w następujące atrybuty:
POZYCJA - określona przez dwie wartości całkowite (x,y), jeśli bedziesz potrzebował trzeci wymiar możesz dodać trzecią wartość całkowitą (z). Jednak możliwe, że zamiast atrybutu (z) wystarczy artybut przyjmujący trzy wartości: pod poziomem zero, poziom zero, nad poziomem zero. One wystarczą do umiejscowienia obiektu na lądzie (np.: budynki, jednostki wojskowe naziemne), pod ziemią lub pod wodą (np. czerw w Dune 2 lub statek podwodny w Warcraft 2), nad ziemią (np.: jednostki latające)
ROZMIAR - określony poprzez dwie wartości naturalne całkowite dodatnie) (w - szerokość, h - wysokość), przyjmujemy że wysokość nie ma dla nas znaczenia

Teraz dla obiektu klasy RTS_ITEM definiujemy metody:
ustaw_pozycje(x, y) - funkcja ta zmienia atrybut POZYCJA
ustaw_rozmiar(w, h) - funkcja zmieniająca atrybut ROZMIAR, a jaki to ma sens? ... np.: możesz sobie wymyślić, że budynek może zostać unowocześniony, co pociągnie za sobą powiększenie jego rozmiaru (np.: zwiększenie wywydajnośći fabryki poprzez zwiększenie jej hali), etc

Mając już bazową klase będący jedynie abstrakcyjnym tworem, na jego podstawie ... albo inaczej, dziedzicząc się z niej definiujemy następną klase obiektu który prócz atrybutów i metod RTS_ITEM, będzie posiadał swoje. RTS_H_ITEM - klasa obiektu który posiada dodatkową własność, a mianowicie stan zdrowia, zatem atrybut:
ZDROWIE - wartość całkowita od 0 do 100 (health), obrazująca procentową wartość zdrowia
do tego metody:
ustaw_zdrowie(health) - ustawiajaca poprostu atrybut ZDROWIE
zmniejsz_zdrowie(wartosc) - zmienjszająca ZDROWIE o zadaną wartość
czy_zdrowy() - metoda zwracająca wartość boolowską (true/false) czy obiekt czasem nie wykitował
Ktoś może się zapytać dlaczego nie wprowadziłem tego atrybutu do klasy podstawowej RTS_ITEM, moja odpowiedź jest następująca: z klasy RTS_ITEM będą dziedziczone klasy obiektów typu niezniszczalnego, np.: głazy, dziury w podłożu, a z obiektu RTS_H_ITEM będą dziedziczone klasy obiektów zniszczalnych, np.: drzewa (tak jak w Warcrafcie), melanż (jak w Dune 2), budynki, jednostki ruchome.

Teraz z klasy RTS_H_ITEM dziedziczymy klase RTS_BUILDING_ITEM, opisująca obiekty budynków, posiadającą atrybuty typu budynku (Baraki, Fabryka, ...) etc. Dodatkowo z klasy RTS_H_ITEM dziedziczymy klase RTS_ARM_ITEM, opisującą obiekty uzbrojone (czołgi, samoloty ...) posiadające m.in. atrybut siły ognia etc.
Te dziedziczenia można robić na dwa sposoby, albo poprzez minimalną ilość klas kosztem zwiększania atrybutów (czyli tak RTS_BUILDING_ITEM), albo poprzez wprowadzanie nowej klasy dla każdego końcowego obiektu, czyli np.: oddzielna klasa dla Fabryki Czołgów, dla Fabryki Samolotów, dla Barraków itd.
Jakbyś pisał całość w C++ to zdecydowanie polecam podejście drugie, wraz z wykorzystaniem szablonów.

Co do obiektu opisującego świat gry, to pewnikiem będzie klasa zawierająca dwuwymiarową tablice elementów nieruchomych stanowiących wartość podkładu (piasek, trawa, woda). Czyli być może wystarczy poprostu tablica wartości całkowitych, albo może dobrze będzie też zdefioniować klasy, bo może się okazać że rodzaj podłoża będzie decydował o prędkości poruszania się jednostki, tym samym będzie posiadał jakiś atrybut SPOWOLNIENIE, ale już może nie będzie potrzeby atrybutu pozycja, która jest zdeterminowana przez indeksy w tablicy.
Reszte obiektów typu budynki, jednostki, można umieścić w listach będących elementami klasy obiektu świata gry. Teraz dodawanie nowych lub usuwanie obiektów danej klasy staje się wygodniejsze i łatwiejsze do zapanowania. Do listy w C++ najlepiej użyć któregoś z szablonów z STLa, np.: vector<>.
Teraz dzięki temu że całość została zhierarchizowana i jest bardzo abstrakcyjna, bardzo łatwe staje się rozwijanie całości np.: dodanie nowego rodzaju budynku (lotnisko) poprostu przez wydzidziczenie nowej klasy.

OK, tyle wystarczy z mojej strony ... to co przedstawiłem to jest tylko taki zarys, mój zamysł, który mam nadzieje choć troch nakieruje Cię na początkową faze projektowania abstrakcyjnego.

[#38] Re: Pomysł gry strategicznej

@Pinto, post #32

jest coś takiego jak rtgmaster.library...

Jest, tylko problem z tym że ta biblioteka nie jest już rozwijana, nie wiem też jak się ma sprawa źródeł, czy są gdzieś chociarz dostępne. Jedyne co wiem że Itix zrobił zamiennik tej biblioteki dla MorphOSa, co jednak nie rozwiązuje problemu rozwoju tej biblioteki dla wszystkich amisystemów.

[#39] Re: Pomysł gry strategicznej

@selur, post #34

Faktycznie nie tak to mialo zabrzmiec i kolega mogl sie poczuc urazony.
Za co z mojej strony przepraszam.

Chodzilo mi oczywiscie iz motto "samemu nic nie wiem, ale zeby wygladalo profesjonalnie bede pisal wiecej postow dla samego pisania" przyswieca tamtejszemu forum. Ot czym jest tamto forum dla mnie.


OK. Przeprosiny przyjęte OK

A z tym GameDev.pl to poto tam jest karma która pozwala ocenić komentujących po tym co piszą, a nie po ilości postów. Ale zgodze się z tobą że nic nie wnoszących bredni jest tam cała masa, ale równocześnie też jest tam troche sensownych ludzi.

[#40] Re: Pomysł gry strategicznej

@Rafael/ARMO, post #37

Można jeszcze bardziej abstrakcyjnie i uniwersalnie. ;)
Np. sam obiekt może "nie wiedzieć" czy jest czołgiem czy budynkiem czy drzewem.
W ten sposób prócz zmiennych podstawowych:
ID obiektu, wielkości (kratki szerokości x kratki wys.), zmiennych w stylu: czyMoznaPrzezToPrzejechac, nalezyDo (typu Gracz, czasem null - jak drzewo niczyje), czyLataTeraz (to co lata przez to nie przecleci, a czolg pod tym przejedzie), czyToRuchome (budynek, drzewo - nieruchome) itp.
Posiada tablicę/listę atrybutów (np. vector intów) niezdefiniowanych ściśle.

Teraz tylko robimy scenariusz i duzy, obkomentowany plik .h z definami:
//Drzewo
#define OBIEKT_DRZEWO 0
//Atrybuty tylko dla drzewa
#define OBIEKT_DRZEWO_ILEJUZSCIETE 0
//Ogola stala
#define OBIEKT_DRZEWO_SCIETE 150

//Scinarka drzew
#define JEDN_SCINARKADRZEW 1
//Atrybuty wszystkich obiektow-jednostek
#define JEDN_ZYCIE 0
#define JEDN_UPGRADE 1
//Atrybuty tylko scinarki drzew
#define JEDN_SCINARKADRZEW_STAN 2
#define JEDN_SCINARKADRZEW_SCINA 3

A potem akcje-reakcje i wszystko specyficznego tylko dla tej gry, czyli linijki w stylu:
if(obiektZPola(x,y).dajID=JEDN_SCINARKADRZEW && obiektZPola(x,y-1).dajID==OBIEKT_DRZEWO && obiektZPola(x,y-1).dajAtrybut(OBIEKT_DRZEWO_ILEJUZSCIETE) obiektZPola(x,y-1).zmniejszAtrybut(OBIEKT_DRZEWO_ILEJUZSCIETE,obiektZPola(x,y).dajAtrybut(JEDN_SCINARKADRZEW_SCINA)); //Scina drzewo nad soba
//itd...
(Produkowane jednostki i generowane drzewa mają na wstępie przez engine scenariusza ustalane wartości startowe atrybutów)

Oczywiście to tylko malutki przykład (średnio udany) jak można to rozwiązać przy czysto abstrakcyjnej podstawie.
Do takich abstrakcji nie zaliczają się jednak same obiekty, a np. engine pathfindingu, ktory zapewni znalezienie drogi z ominięciem przeszkód do miejsca (kratki na mapie) - potem wykorzystywane do "dojazdu" do wroga czy w miejsce gdzie user kliknął.

No dobrze, ale zamiast wykładać jakieś filozofie lepiej poprostu życzyć powodzenia, bo przecież Ty sam wiesz najlepiej co i jak chcesz napisać i to Ci najlepiej wyjdzie (bo jak może wyjść, coś czego nie uważasz, coś sprzecznego z Twoim pomysłem, coś dla Ciebie "niesmacznego", albo coś czego wogóle nie znasz). ;)
[#41] Re: Pomysł gry strategicznej

@Mario, post #40

Niedobre wieści - program mi się sypie, będę pisał od nowa...
Przestudiuję zamieszczone w tym temacie opisy projektowania gier. (wielkie dzięki !) I rzeczywiście, moim podstawowym problemem jest mała uniwersalność funkcji oraz kolejność działań przy projektowaniu.

Pozdrowienia!

[#42] Re: Pomysł gry strategicznej

@Minniat, post #41

Szczerze... to nie zrozumialem ani zdania z tej teorii obiektow ;)

W ogole to mysle, ze takiej gry nie da sie zakodowac w C czy tam C++ ...
jesli juz to tylko assembler w najczystszej postaci.
Po prostu przypominaja mi sie ta skompilowana 'szmira' odpalana jeszcze na prockach serii MMX ... wiem, ze to dziwne porownanie ale wydaje mi sie, ze taki sam efekt bedzie po probie uruchomienia takiego cuda napisanego w C na golej A1200 bo rozumiem, ze to bedzie platforma docelowa.
A A1200 do demonow predkosci tez raczej nie nalezy.

Po prostu w tego typu grach trzeba postawic przede wszystkim na szybkosci wyswietlania grafiki i dzialania glownego programu inaczej bedzie to kolejny doslownie klon Dune 2, ktora momentami na 500'tkach potrafila tak przymulac, ze mozna bylo zasnac. A przeciez to gra RealTimeStrategy a nie "turowka".


----
swoja droga chetnie zobaczyl bym takiego klona Dune na OCS.
Wiem ,ze to nie to samo co 256 kolorow ale zdolny grafik i z 32 potrafi niezla grafe wycisnac. Chetnie bym wtedy uczestniczyl w takim projekcie ...
[#43] Re: Pomysł gry strategicznej

@selur, post #42


Witam!
Dla osłody zamieszczam obraz stworzony przeze mnię. Jest to ekran wyboru
strony: Roboty, Prastarzy i Ludzie. Jak Wam się podoba, proszę o opinię.
Polecam rozszerzanie scenariusza np. Ludzie: jednostka Komandos, Grenadier itp.
Prace nad silnikem gry ciągle trwają.OK



Ostatnia modyfikacja: 08.05.07 15:42
[#44] Re: Pomysł gry strategicznej

@Minniat, post #43

znajdz moze sobie jakiegos grafika:)

[#45] Re: Pomysł gry strategicznej

@kiero, post #44

Czy to znaczy, że Ci się nie podoba? Moją ulubioną formą graficzną
są ikonki np. 16x16 pikseli, które są potrzebne do uformowanie mapy.
Dopiero później pasjonują mnie duże formy jak powyższy rysunek.

Zarys planety na moim obrazku jest stworzony z efektów Personal Paint.
Zaś rysunki trzech frakcji stworzyłem całkowicie ręcznie.

P.S. Czy mogę w Graffiti umieścić mój pulpit Workbencha, który ma 8 kolorów, a tapetę tworzę za pomocą WBPattern (bodajże 16x16) :D Podpowiem, że rezultaty wychodzą mi całkiem fajne.

[#46] Re: Pomysł gry strategicznej

@Minniat, post #45

Czy to znaczy, że Ci się nie podoba?

tak.

Moją ulubioną formą graficzną są ikonki np. 16x16 pikseli, które są potrzebne do uformowanie mapy. Dopiero później pasjonują mnie duże formy jak powyższy rysunek.

pisalem o skrinszocie ktory pokazales. jak pokazesz wiecej to napisze wiecej:)

[#47] Re: Pomysł gry strategicznej

@Minniat, post #43

Mi się podoba, ale to tak zawsze jest że wszyscy suxxuja (tak jak na mój zajebisty 3d engine).

[#48] Re: Pomysł gry strategicznej

@Minniat, post #43

Mi się podoba ten robocik :) Ale nie przepadam za robocikami ;P

[#49] Re: Pomysł gry strategicznej

@Minniat, post #43

Niestety, ten człowiek na obrazku jest okropny.
Proporcje ma zupełnie nienaturalne.
On wygląda na takiego co może zawiązać sobie sznurówki będąc w pozycji wyprostowanej.

Reszta jest OK, ale i tak przypomina mi grę "Red Mars".

Będę okrutny. Dzisiaj taka graficzka odstrasza.
Jeśli gra będzie super-grywalna to przyciągnie tylko wielkich miłośników gatunku.

Pokaż więcej grafik, może tylko ekran wyboru robi na mnie takie wrażenie?
[#50] Re: Pomysł gry strategicznej

@Jaszczur, post #49

Dzięki za opinię. Ja sam jestem dumny z rysunku. Póki co to jedyny popis grafiki do nowej gry. Na razie używam grafiki z Dune 2

[#51] Re: Pomysł gry strategicznej

@Minniat, post #43

Mi tam się podoba klimat obrazka. Widać, że przyjemne cieniowanie można uzyskać nawet przy użyciu tak skromnej palety kolorów ;) .

Ty nad silnikiem pracuj a nie nad pierdołami . Obrazki zawsze ci mogą potem pomóc tworzyć życzliwe dusze, a silnik przeca tutaj najważniejszy żeby coś z tego projektu wyszło.
[#52] Re: Pomysł gry strategicznej

@Grygus, post #51

Witam!
Dziękuję za opinie na temat mojego obrazka, a także porady w programowaniu (wyróżniam tutaj Rafaela/ARMO)
Ja zabieram się za silnik, a Wam proponuję stworzyć scenariusz gry na przykład taki:

Ludzie: piechota, komandosi, czterokołowce, czołgi, wyrzutnie rakiet
Roboty: cyborgi, czołgi plazmowe, czołgi elektryczne, działo jonowe
Prastarzy: jaszczurki, bestia, potwór strzyga, plujka kwasem, bomby chemiczne

Powodzenia, :D

[#53] Re: Pomysł gry strategicznej

@Malin, post #47

A jaki jest ten Twoj "zajebisty 3D engine"? Pokfal sie... moze tez po suxxuje :P :)

[#54] Re: Pomysł gry strategicznej

@Lokaty, post #53


Ten Smok Diplodok to nawet sympatyczny jest :D ... ale pan w helmie to chyba jakis b-boy, ktory wlasnie daje pokaz electro-boogie

Proponuje zamiane nazwy "Prastarzy" na "Pierwotniacy" bo tak to sie odrazu ze starymi kojarzy i jakos zle wpada w ucho.
Jeszcze jakis rodzic uslyszy jak pociecha krzyczy "prastarzy mnie najezdzaja... ! " i bedzie niepotrzebna awantura w domu.
[#55] Re: Pomysł gry strategicznej

@selur, post #54

Hmmm to moze Dziady:D? Obrazek m nie sie podoba, mamnadzieje ze giera , powstanie byle pod gfx.



Ostatnia modyfikacja: 09.05.07 22:14
[#56] Re: Pomysł gry strategicznej

@Lokaty, post #53

Pisałem w C, w tablicy podaje sie ilość wierzchołków obracanego obiektu i ich współrzędne. W main() właściwie podaje się tylko wokół jakiej osi ma się obracać obiekt i o ile stopni. Główny problem polega na tym, że jestem lamerem i nie umiem zrobić double buffera, więc całość jest bezużyteczna.



Ostatnia modyfikacja: 09.05.07 22:37
[#57] Re: Pomysł gry strategicznej

@kiero, post #44

kiero :)

[#58] Re: Pomysł gry strategicznej

@Minniat, post #52

Cześć!
Prace nad grą idą powoli, postanowiłem w przerwie stworzyć trochę grafiki:
Zerknijcie na moją stronę w Internecie. Na razie jest tam piechota, kolory
trochę niezgodne z oryginałem (za ciemne) i trochę statystyk jednostek (broń, pancerz etc.)

Do mojej gry pragnąłbym stworzyć w późniejszym etapie tzw. replaye (powtórki gry) jak również zaopatrzenie swoich jednostek.

Dodatkowo nie odrzucam możliwości stworzenia RTSa mojego patentu
2-wymiarowego z widokiem z boku (!) gdzie zamiast
fabryk będą tworzone komnaty z personelem i sprzętem zamknięte za drzwiami.

[#59] Re: Pomysł gry strategicznej

@Minniat, post #58

od pomyslu do gry daleko droga ;). Ale zycze powodzenia.
[#60] Re: Pomysł gry strategicznej

@SzaryWilk, post #59

Potrzebuję pomocy w kwestii grafiki. Dla mnie najważniejsze są wieloklatkowe jakościowe postacie z widokiem z boku. Dowolna liczba kolorów i klatek. Dzięki pomocy stworzę engine znacznie szybciej. Bardzo dziękuję za odzew.

Oto przykład żołnierza:

Śliczny, prawda? Polecam stworzyć np. bazookerów, grenadierów, komandosów itp. Niech kolor spodni oznacza przynależność jednostki (tutaj: czerwoni).

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