Autor Wątek: Gra 2D a'la Settlers  (Przeczytany 2562 razy)

Offline Morte

  • Użytkownik

# Czerwiec 13, 2010, 01:36:13
Witam.
Szukam informacji potrzebnych do stworzenia gry 2D w stylu settlers (RTS oparty na surowcach, gdzie kwitesencją jej filozofii jest produkcja kilku żoiłnierzy którzy zabiją innych żołnierzy).
Chodzi mi tutaj o :
- silnik graficzny
- biblioteki
- język programowania
- narzędzia potrzebne do napisania kodu
- itd itp

Raczej podstawowe informacje nt. napisania takowej gry. Jakieś dostępne otwarte binarki podobnych małych gierek mile widziane.

Zaznaczam że znam tylko podstawy C++, zaawansowana grafika i edycja dźwięku, HTML i PHP też dobrze, natomiast słabo znam język C jako taki.
proszę o informacje. jeżeli są chętni na rozwój projektu, zapraszam na PW po szczegóły.
pozdrowienia.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Pomar1

  • Użytkownik

# Czerwiec 13, 2010, 02:08:03
- silnik graficzny
- biblioteki
- język programowania
- narzędzia potrzebne do napisania kodu
- itd itp
a) Napisz własny :) A z 2D to... Xenon Core?
b) Zależnie od zawartych w silniku opcji. A jak piszesz własny to już dobierz co Ci tylko potrzebne  :) (SDL'e, SOIL'e, czy inne zabawki...)
c) To pytanie powinno być chyba pierwsze... Ale jak chcesz 2D to albo JAVA (chociaż Java słabiej od C++ sobie radzi z okienkami) albo C++. Jeżeli nie ma to być zbyt skomplikowane to Flash też sobie poradzi, a zrobisz dużo szybciej.
d) C++ - MS Visual C++ Express Edition
Java - Netbeans albo Eclipse
Flash - Flash Lite albo Adobe CS

I taka rada - nie proś o to żeby ktoś Ci coś napisał (wiem że jeszcze tego nie zrobiłeś, ale rada na przyszłość), bo już ostatnio jeden taki skubaniec nam się na forum znalazł :)

Pozdrawiam.

Offline Morte

  • Użytkownik

# Czerwiec 13, 2010, 02:22:58
dobra, postaram się więc zrobić do w c++
zastanawia mnie w jakim języku programowano gry takie jak np Settlers I i II
W tamtych czasach, czy był to DirectX czy OpenGL itd.

Zależałoby mi aby projekt był jak najbardziej stabilny i miał więcej możliwości reedycji, czyli wypadałoby zrobić to w C++...

Ja tam nikogo prosił o napisanie gry nie będę ;) bo wiem że się nikt nie zgłosi a mi też byłoby głupio zabierać komuś czas bezpodstawnie na projekt, który go średnio interesuje. Robię to z sentymentu do pewnych gier i z nadmiaru czasu, i jeżeli ktoś będzie chciał się przyłączyć to nie ma sprawy, byleby tylko podszedł do sprawy w miarę poważnie.
Stworzyłem już większosc grafik, dźwięków i mam linie melodyczna, tak wiec zostaje kwestia ułożenia dobrego stabilnego kodu, rozszerzenie go o "opcje, menu" gre sieciową (chociażby zwykłe TCP/IP) itd.
A co proponujecie do pisania algorytmów ? Bo pewno na jakimś algorytmie trzeba będzie to oprzeć i od tego zacząć.

Offline Nsuidara

  • Użytkownik
    • Site

# Czerwiec 13, 2010, 02:27:59
Wystarczyło by wpisać Engine 2D rozpiska silników :
http://www.google.pl/search?q=Engine+2D
A oto wyniki :
http://gpwiki.org/index.php/Game_Engines
http://hge.relishgames.com/
http://www.2dengine.com/
Sądzę jak na 2D wystarczająco by było...

Algorytmy ?
- realizacja mapy
- realizacja danych w plikach
- AI (SI)
etc...

nie używaj słowa "wypadało zrobić to w C++" takie prostolinijne (brak wiedzy o językach...)

tzn ja nie krytykuję jakby co :P
w moim przypadku to ja popadam w de-motywację bo zagłębiam się w szczegóły, jak najlepsza optymalizacji etc.. i się mi odechciewa :P no cóż ale obecnie coś realizuję (pomału)

Offline Morte

  • Użytkownik

# Czerwiec 13, 2010, 02:51:40
ja sie nie pytam o liste programow , silnikow itd bo to mozna bez problemu znalezc.
Ja sie pytam jakie były by optymalne dla stworzenia gry 2D a'la Settlers, w sposób jak najbardziej rzeczowy i prosty.
Co do algorytmów, chodzi mi o program przedstawiający algorytmy rozpisane w postaci drzewa
wszystkich podstawowych aspektów gry, od samego funcjonowania menu, reakcji, przypisania petli do danych obiektow i zmiennych zaczynajac, na AI konczac, typu planner czy project.
po prostu co polecacie do tego typu gry bo pojecia NIE MAM.

Offline Nsuidara

  • Użytkownik
    • Site

# Czerwiec 13, 2010, 03:05:28
Kodu całej gry raczej nikt Ci nie da :D - bo można rzec trochę że tego oczekujesz, zaprzeczysz wiem, ale chcesz w szczegółach pewne rzeczy.
A tu dużo zależy od gustów.
Coś jest szybsze ale więcej pamięci je. Coś wolniejsze ale mniej pamięci je.
Coś jest elastyczne ale nie wydajne. etc...

Zasada równej wymiany mniej więcej istnieje.
Nie ma takiego czegoś jak małe wymagania i bardzo szybkie (zawsze jest jakieś ale) :P

Jak obudzę się to pomyślę może w jakimś aspekcie pomogę Tobie ^^ kto wie ... tera dobranoc :P

Offline Oti

  • Użytkownik

# Czerwiec 13, 2010, 03:30:09
"Ok, to powiedzcie mi jakie algorytmy mam zastosować, pomożcie je zaimplementować w kodzie i dajcie gotowy schemat działania mojej gry, a ja ją napiszę"
Chłopie, trochę samodzielności. Chcesz robić grę, to ją rób. Btw. jeśli to twoja pierwsza gra(a z tego co widzę to tak), to nie łudź się, że uda ci się ją skończyć. Zacznij od tetrisa/ponga/snake'a.

Offline ramqa

  • Użytkownik

# Czerwiec 13, 2010, 05:10:12
Moim zdaniem powinieneś zainteresować się programami typu GameMaker, Costructor, Multi Media Fusion. Nie potrzebujesz chyba zbędnych wodotrysków, a zaoszczędzi ci to wiele godzin pracy, niepotrzebnego ( chyba, że wchodzi tu w grę tylko chęć nauki ) dłubania w kodzie. Te programiki mają większe możliwości niż się ludziom wydaje - osobiście widziałem całkiem zaskakujące efekty stworzone na nich. Oczywiście najlepiej żebyś sam zorientował się który z nich najbardziej będzie Ci odpowiadał - każdy z nich ma trochę inne cechy etc. etc. Nie ma co się łudzić. Szybkość sprzętu pozwala na to żeby stworzone w ten sposób programy były wystarczająco wydajne, a Twój czas zaoszczędzony - to zdaje się pieniądz. Swoją drogą zdaje się, że da się mixować chodźby taki Xenon z w. wym. programami - jeśli już bardzo będzie Ci zależało na jakiejś funkcji.

Przypuszczam, że w tamtych czasach, kiedy tworzono Settlersów... To raczej nie OpenGl ani DX... Zastanawiam się czy to w ogóle C było czy może raczej Asm...

Offline Moriturius

  • Użytkownik

# Czerwiec 13, 2010, 07:51:31
Zależałoby mi aby projekt był jak najbardziej stabilny i miał więcej możliwości reedycji, czyli wypadałoby zrobić to w C++...

Wiesz, żeby stworzyć kod tak aby był ładny i składny to trzeba mieć ładnych kilka lat doświadczenia - i to doświadczenia nastawionego na tworzenie takiego kodu. W końcu samo pisanie to jeszcze nic ;)

Pisząc w Javie unikniesz wielu problemów związanych ze wskaźnikami i zarządzaniem pamięcią i uzyskasz wieloplatformowość (którą osobiście bardzo pochwalam ;))
Pisząc w C++ unikniesz problemów związanych z wydajnością (choć sam piszę aktualnie grę w Javie z użyciem biblioteki Slick 2D i w tej chwili mam 200FPS więc nie jest źle :))

I nie wierz w cuda odnośnie możliwości stworzenia wieloplatformowych gier w C++ - tworzyłem kiedyś mały silniczek 2D z takim założeniem i wiem, że to nie najprostsze...

Odnośnie samego programowania to polecam zaznajomić się z komponentowym modelem zarządzania encjami w grze. Poznałem go jakiś czas temu i odkryłem jego piękno :)

Offline raver

  • Użytkownik
    • Moja strona domowa.

# Czerwiec 13, 2010, 10:49:39
Cytuj
Odnośnie samego programowania to polecam zaznajomić się z komponentowym modelem zarządzania encjami w grze. Poznałem go jakiś czas temu i odkryłem jego piękno

A nie wiesz może, w jakiej grze open-source coś takiego zastosowano? Bo idea wydaje się dosyć prosta, ale z implementacją nie jest tak kolorowo (kod zamiast się upraszczać jeszcze bardziej się komplikuje).

#EDIT: nieaktualne, na Twoim blogu znalazłem dość przyjaznego linka :P
« Ostatnia zmiana: Czerwiec 13, 2010, 11:11:50 wysłana przez raver »

Offline bartekm

  • Użytkownik
    • Wordpress Blog

# Czerwiec 13, 2010, 10:51:48
zastanawia mnie w jakim języku programowano gry takie jak np Settlers I i II
W tamtych czasach, czy był to DirectX czy OpenGL itd.

Z tego co pamiętam Settlers 3 i wyższe był robiony pod DirectX, więc na początek najlepiej byłoby sobie przerobić jakiś tutorial DirectX np. tutek Charibo na stronie GameDev. Niestety nikt nie poda ci przepisu - algorytmu jak napisać taką grę, co najwyżej możesz znaleźć odpowiedzi na konkretne zagadnienie. Tak jak wspomniał Oti, lepiej będzie zacząć od czegoś prostszego. Nie da się napisać takiej gry znając jedynie podstawy programowania.

Offline Moriturius

  • Użytkownik

# Czerwiec 13, 2010, 11:12:43
Cytuj
Odnośnie samego programowania to polecam zaznajomić się z komponentowym modelem zarządzania encjami w grze. Poznałem go jakiś czas temu i odkryłem jego piękno

A nie wiesz może, w jakiej grze open-source coś takiego zastosowano? Bo idea wydaje się dosyć prosta, ale z implementacją nie jest tak kolorowo (kod zamiast się upraszczać jeszcze bardziej się komplikuje).

Hmm... O grach open-source nie wiem. Wiem, że takie podejście wykorzystali w Tony Hawks Pro Skater 4 chyba ("chyba" jest odnośnie numeru ;)).

Jeśli chodzi o skomplikowanie kodu to występuje ono tylko na początku kiedy to człowiek dopiero zaczyna pisać te wszystkie systemy komponentowe. Później, jak się już oswoi z tym niecodziennym podejściem to okazuje się, że wprowadzanie zmian w kodzie jest o wiele przyjemniejsze niż w podejściu z dziedziczeniem.

Piszę grę z wykorzystaniem komponentów zaledwie kilka tygodni, a już widzę jak bardzo ułatwia mi to pracę. Szkoda, że nie ma  (nie widziałem) jakiegoś dobrego polskiego artykułu o tym... To by bardzo pomogło nam wszystkim :)

Offline vashpan

  • Użytkownik
    • Strona

# Czerwiec 13, 2010, 13:21:30
Jezyk C ma prawie ~40 lat, a od lat 80/85-tych wiekszosc oprogramowania na 'wieksze' komputery ( nie 8-bit ) powstawala juz w C, z niektorymi fragmentami pisanymi w ASM (  np. w tamtych czasach powstaly lub maja swoje korzenie wszystkie dzisiejsze systemy operacyjne*: Windows NT(XP,Vista,7), Mac OS X (BSD Unix/NextStep), Linux   ). Pierwsze Settlersy 1 i 2 prawie na pewno byly napisane w C, choc tego na 100% trudno sie raczej dowiedziec ;) Poza tym nie znaczy to, ze masz tworzyc swoja gre akurat tak jak to robiono w tych dawnych, oldskoolowych czasach ;) Dzisiaj sa juz lepsze technologie, i jak chcesz mozesz przeciez korzystac z DirectX czy OpenGL ;) ( swoja droga DirectX powstal jako czesc Win95, a OpenGL jest jeszcze starszy, byl uzywany w powaznych komputerach uzywanych do tworzenia grafiki, potem sie 'rozpowszechnil' )

Istnieje gra OpenSource ala Settlers:
http://wl.widelands.org/


* oprocz Linuksa ktory powstal na poczatku lat 90-tych, chociaz jest inspirowany duzo starszym Uniksem
« Ostatnia zmiana: Czerwiec 13, 2010, 13:25:21 wysłana przez vashpan »

Offline Moriturius

  • Użytkownik

# Czerwiec 13, 2010, 14:43:56
Istnieje gra OpenSource ala Settlers:
http://wl.widelands.org/

[OT]
Ja odnośnie widelands to powiem jeszcze, że tam jak się podmieni obrazki na obrazki z S2 to często ma się wrażenie, że się gra w S2 ;)
[/OT]