![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 30.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie,
piszę do Was gdyż często odwiedzam to forum. Znajdują się tu ludzie znający rzemiosło. Zainteresowałem się czymś czego od kilku dni nie mogę rozgryźć. Chcę zaplanować projekt gry działającej w czasie rzeczywistym - gracz kontra gracz. Fora, portale, a nawet gry turowe są o niebo łatwiejsze. Będzie przy tym sporo pracy, ale nie tego boje się najbardziej. Chciałbym zaprojektować zgrabny silnik gry. Z uwagi na to, ze jeden z kanałów w którym będzie możliwa rozgrywka to via www, więc postanowiłem od tego zacząć. Podstawa to logika rozgrywki, którj nie potrafię rozwiązać. Jak mniej więcej zaprojektować relacje, akcje, schemat walki itd. Założenia: - gracze mogą zadać cios w każdej chwili - można się obronić - różne rodzaje broni - różne rodzaje ataku - to wszystko w czasie rzeczywistym - modyfikatory, zbroje, jakieś punkty itd. itd. Dodatkowo jakie do tego środowisko webowe wybrać? PHP mogłoby być trochę męczące, może jakiś serwlet? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Nie mam teraz za dużo czasu na wymyślanie rozwiązań, więc jedyne co teraz jestem w stanie wymyślić to
phyton/node.js + flash/websockets Próbować, możesz z php ale szczerze odradzam, nawet napisanie głupiego chata w php to mordownia (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Innymi słowy ma to być najzwyklejsza gra sieciowa, jednak odpalona z poziomu przeglądarki? Sporo nauki przed Tobą w takim razie. Technologie: PHP kompletnie się tutaj nie nadaje. Java/C#, ewentualnie C++ to standardowe narzędzia z jakich będziesz mógł skorzystać. Od strony klienta nie pozostaje Ci nic poza JavaScriptem. Komunikacja? WebSockets, żaden AJAX.
IIRC Google udostępniło kiedyś platformę, która pozwalała na w miarę łatwe pisanie kodu (Java), który mógł być później uruchamiany jako aplikacja desktopowa, mobilna oraz w przeglądarce. Google 4P, czy Play4 - coś takiego. Jest to o tyle istotne, że zarówno klient jak i serwer (na którym podejmowane są wszelkie decyzje dot. rozgrywki) bardzo często muszą dublować swoją pracę. Inną alternatywą dla wszystkiego powyżej jest Flash i FlashMediaServer. Ten post edytował Crozin 30.05.2013, 14:34:42 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 30.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Plany obejmują większą różnorodność platform niż tylko z gra poziomu przeglądarki, a że programuje trochę w PHP jest to najbliższe memu doświadczeniu platforma na start. Chcę by dostęp do gry był możliwie jak największy, przez co w planach jest też stworzenie własnego klienta gry, mobile, no i via www.
Pomijając przez drobny moment sprawę zaprojektowania klas, zastanawiam się czy w takim razie nie udałoby się - mówiąc ogólnie - stworzyć czegoś na zasadzie: Core gry i jego fundamentalna obsługa napisana w Java/C#/C++ odpalona na serwerze i obsługująca graczy z każdej platformy za pomocą "interfejsów" i przekładania informacji na potrzeby rozgrywki via przeglądarka, mobile czy tez klient własny? Dobrze rozumuje? Nie wiem jak rozwiązuje się tego typu gry "sieciowe", ale myślę by każda rozgrywka była rozgrywana za pośrednictwem serwera głównego, tak by można było kontrolować i ewentualnie reagować na jakiś typ oszustwa. Wydaje mi się jednak, że właśnie w ten sposób projektuje się tego typu gry. Założenie jest takie, że gracze logują się do systemu, powiedzmy kolejkują się do walki, lub po prostu wybierają osobę, z którą chcą walczyć. Po tym wszystkim ładuję się sama walka i stają gracze naprzeciw siebie mając do dyspozycji elementy z założeń napisanych w pierwszym poście. Jak z grubsza zaprojektować obiekty, relacje, zależności? Klasa gracz, a w niej obsługa przychodzącego ataku, obliczanie mocy ciosu, redukcji (armor) itd. po czym odjęcie hp... czy dać tu jakiś obiekt pośredniczący? Podpowiecie jak to nie spieprzyć na samym początku? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
a zwykłe aplety javy to już nie dadzą rady ? (IMG:style_emoticons/default/tongue.gif)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Dodatkowo jakie do tego środowisko webowe wybrać? PHP mogłoby być trochę męczące, może jakiś serwlet? poniższy tekst dotyczy się tematu o ile 1 osoba pisze cały projekt... rozwinę temat inaczej i chyba nie potrzebnie choć powinieneś z tego skorzystać... jesteś programistą z pasji (no i jak szeroką masz wiedzę ogólną skoro pytasz się o porady - w sumie kto pyta nie błądzi, może ktoś coś sensownego podpowie nawet jak się wie co i jak i jak prawie jest się zdecydowanym)(IMG:style_emoticons/default/questionmark.gif) bo jeśli tak to nie ma problemu kombinować z różnymi językami programowania... jeśli po prostu język jest dla Ciebie narzędziem (musiałbyś mieć szeroką wiedzę i wcześniej pisać coś w różnych językach) pomijając biblioteki to też nie robi różnicy co będzie po stronie klienta a co serwera... jednak jeśli język jest bardziej sposobem myślenia to dobrze by było ograniczyć się do jednego... do 1 to do wyboru dla web masz java (po stronie klienta mogą być aplety), oraz JavaScript (współczesne przeglądarki dosyć szybko wykonują kod) gdzie po stronie serwera co prawda w JS masz tylko 1 wątek ale dzięki silnikowi V8 np. node.js skrypt jest skompilowany, w sumie chodzi o obsługę połączenia optymalnie, a zawsze możesz uruchomić następny proces... z node.js prawie się nie bawiłem ale patrząc pod kontem jednego języka można by wspomnieć o bibliotece do komunikacji client side i serwer side Socket.IO jeśli stosujesz co najmniej 2 języki to masz szeroki wachlarz ale i musisz posiadać większą wiedzę... co do PHP i obsługi socketów optymalnie a co za tym idzie pisaniem serwera to musiałbyś na prawdę być pasjonatem (fakt są inne opcje ale przy grze czasu rzeczywistego jeśli projekt się powiedzie szybko zostanie zajechany serwer lub będą niezłe koszty)... można i w PHP socket w 1 wątku też optymalnie obsłużyć ale jak pisałem raczej to dla pasjonatów... Guru - Multiplexing - przedsmak do optymalizacji ;] ,ale i tak to raczej sztuka dla sztuki i w sumie pasuje mieć podobne podejście jak przy programowaniu C++ C++ - by łatwiej było to albo biblioteka Qt albo Asio lub Boost::Asio... no fakt jeśli zwracasz HTML to jeszcze coś w stylu POCO... w sumie dalej i tak chyba nie ma sensu się rozpisywać ;] - wątpię bym pomógł ;] |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Mierz siły na zamiary... patrząc po Twoich pytaniach, widać, że nie masz jeszcze obeznania z tematem. Zacznij pomału, od jak najprostszej gry, z jednym klientem w formie aplikacji desktopowej. Klient w przeglądarce jest bardziej kłopotliwy w budowie.
Na http://gafferongames.com/ znajdziesz rewelacyjną serię artykułów/tutoriali n/t gier sieciowych. Dopiero po przeczytaniu tego będziesz miał wstępny podgląd na całą rzeszę problemów z jakimi przyjdzie Ci się zmierzyć, a o których istnieniu zapewne nie zdajesz sobie jeszcze sprawy. Gwarantuję Ci, że po tej lekturze wrócisz na forum z nieco innymi pytaniami. (IMG:style_emoticons/default/wink.gif) Następnie zapoznaj się z PlayN. Jest to framework, który umożliwia w miarę ludzkie pisanie gry (u Ciebie klienta gry) na wiele kompletnie odmiennych platform równocześnie. Tu przy okazji miałbyś rozwiązany problem "w czym pisać" - Java. Ten post edytował Crozin 1.06.2013, 12:34:09 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 13:06 |