Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Zapowiedź] PlayPoke.pl - Pokemon MMORPG 2D w przeglądarce


Rekomendowane odpowiedzi

Opublikowano

A nie lepszym rozwiązaniem jest wykonanie sztucznego ruchu ,który może być lepszy lub prawie dobry jak normalni ludzie? Niemniej masz rację co do synchronizacji choć w NodeJS prawie nie ma potrzeby się o nią martwić gdyż w NodeJS można użyć funkcji Asynchronicznej (standardowo) lub jej Synchronicznej wersji ;).

Co do reklamy gry to mogę ci polecić ten link: http://www.siteimpulse.com/blog/12-sposobow-na-przyciagniecie-uzytkownikow-do-strony-internetowej/

Jeszcze mogę ci wysłać jeden ,świetny wykład twórcy gry "Soldat" w którym porusza kwestię tworzenia i utrzymywania się z pisania gier. Ale to na PW mi napisz jeśli chcesz (gdzieś to z 1.5H trwa).

Co do pomiarów wydajności to ja polecałbym tobie sprawdzić ping gdy jesteś "sam" na serwerze i również gdy ma coś przy okazji serwer do robienia lub tak jak mówię - sztuczny ruch.

 

Jeszcze nie wiadomo czemu chciałem poruszyć kwestię kiedy serwer już działa. Otóż Amedos (Sodema) wymyślił coś ciekawego ,a mianowicie:

 

Obydwaj korzystamy z NodeJS lecz z różnych baz danych. Amedos (Sodema) korzysta z MySQL ,a z kolei ja korzystam z własnej bazy danych (Bo jak stwierdziłem "Te jebane debile się kurwa nie znają na tworzeniu modułów ,a udostępniają. Walę ,pisze swoje"). Jak już mówiłem ,że NodeJS jest Asynchroniczny tak i ten moduł ,który ma Amedos działa asynchronicznie. Wymyślił więc on sobie zmienną == false ,która zmieniała wartość na true po pobraniu wszystkich tablic z MySQL. Jeśli zmienna == false to użytkownik mimo połączenia do serwera ,nie mógł nic do tego serwera wysłać. Znaczy nie nie mógł ,mógł ale te dane nie były obsługiwane przez serwer.

  • Odpowiedzi 97
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Ping nie ma nic wspólnego z wydajnością kodu. Sztuczny ruch jest sztuczny, takie testy są dobre na początek, tu chodzi tez o to, żeby gracze wykonywali akcje, których nie przewidzisz w sytuacjach o których nigdy byś nie pomyślał.

 

Wykład możesz podesłać, na pewno znajdę kiedyś trochę czasu, aczkolwiek utrzymuje się z czegoś zupełnie innego, wymagającego dużo mniej pracy niż pisanie gier ;)

 

Opisany przez ciebie przykład ma niewiele wspólnego z normalnymi zagadnieniami synchronizacji wątków. Powiem więcej, ten sposób postępowania z 'załadowaniem danych gracza' (bo chyba o to chodzi) jest strasznie niewygodny. Wszelkie dane/requesty przychodzące od klienta powinny być kolejkowane (fifo). Request zalogowania gracza powoduje utworzenie jego obiektu w pamięci oraz załadowanie wszystkich danych z bazy i ewentualne odesłanie do klienta jakiegoś 'statusu'. W tym czasie jeśli przyjdą kolejne requesty od tego gracza będą one zwyczajnie skolejkowane, po wykonaniu 'zalogowania' gracza zostaną przetworzone.

Cały trik polega na tym, żeby każdy gracz miał swoją własną kolejkę, było n wątków wykonujących requesty przychodzące, jednak gdy jakiś wątek zacznie wykonywać requesty od danego gracza to, dopóki on nie skończy, inny wątek NIE MOŻE wykonywać requestów od tego gracza. Mamy więc pracę jednowątkową per gracz i wielowątkowość na puli graczy.

I teraz na tej wielowątkowości, kiedy dwóch graczy chce się dostać do jednego, globalnego zasobu (instancja itemka leżącego na ziemi, drzwi itp) dostep taki MUSI być synchronizowany. jeśli dwóch graczy W TEJ SAMEJ SEKUNDZIE kliknie na podniesienie przedmiotu to NIE MOŻNA rozpocząć podnoszenia dla obydwu graczy naraz. Funkcja podnoszenia musi być synchronizowana, najpierw wchodzi w nią jeden wątek (tego, który ma mniejsze lagi albo kliknął milisekundy wcześniej), wykonuje podnoszenie, przedmiot znika z mapy, po zakończeniu wykonania funkcji w ta sama funkcje wchodzi drugi wątek, ale przedmiotu już nie ma.

Właśnie o takie synchronizacje mi chodzi. Po tym opisie wydaje się to być proste (i jest proste), ale jak ktoś samemu zacznie pisać synchronizacje bez planu i projektu to deadlock gotowy.

pasek_4oo_6o.jpg

Aktualny poziom zła: 75 punktów ostrzeżeń.
Achievements:
  • 22 zajebiste posty oznaczone czerwonym kółeczkiem
  • 1 urażony modek - dwa razy! (Istny Diabeł)
  • 4365 userów forum, którym powiedziałem smutną prawdę
Opublikowano

sszkoda bo gierka zapowiada sie naprawde ciekawie...

tez zaczalem pracowac nad gierka przegladarkowa pokemon i rowniez mam ladny system walki itp :(

jakbys szukal kogos do pomocy to pisz xD

 

http://screenshu.com/static/uploads/temporary/bz/ac/2o/twqxi7.jpg

 

SCREEN z mojej walki :(((

Ile mój steam jest warty... :( ---> LINK <---


P.s. Jeb** mnie ile mam postów, chcecie dać warna za "nabijanie postów" ? Lepiej mi zmieniajcie ilosc postow na '0'.

Opublikowano

Wreszcie ukończyłem pracę nad bardziej grywalną i wyglądającą wersją BETA. Większość elementów została dostosowana do wyglądu (ogromną ilość czasu zajęło dostosowanie kompozycji do wszystkich elementów gry).
Uprościłem również nawigację w całej grze. Pojawił się również podział wiadomości na logi, raporty etc. Do otwartej wersji już blisko. :-)

ZPRb2g7.jpg

QQSsXGM.jpg

0F3tUeh.jpg
Przygotowałem prostszą odsłonę walki w wersji mobilnej:

2otsvb7.jpg

Ciekawostka, liczba zarejestrowanych przekroczyła drugi tysiąc co jak na wynik bez reklamy i przed włączeniem gry jest jak dla mnie bardzo dobrym wynikiem. Dzięki! :)

Opublikowano

Wygląda extra i nie mogę się doczekać momentu ,aż będzie można sobie pohackować...to znaczy pograć ;). Choć jeśli ten 2 obrazek to wersja mobilna to nie lepiej zrobić paski zamiast takich spoilerów? No chyba ,że to do czegoś innego to spoko ;).

 

 

PS: pisze strrev('bbmnb');

Opublikowano

Nie wiem czy mam rację ale czy w tle 2 i 3 obrazka nie jest travian?:D

 

Tak pozatym to czekam na open ;)

nieregulaminowa sygnatura

Opublikowano

 

flasha

Sorry, to gra przeglądarkowa nie zasobożerny kombajn.

 

Paski zamiast selectów to błąd. Select przy mobilnej przeglądarce potrafi się dać efekt onfocus na całym ekranie pozwalając spokojnie wybrać przyciski w porównaniu do pojedynczych tapnięć na ekranie.

  • 1 miesiąc temu...
Opublikowano

Witajcie,

zgodnie z informacją na forum:

w związku z ostatnimi zmianami w zespole PlayPoke.pl wersja BETA została przesunięta na koniec tego roku.

Pozdrawiamy

Opublikowano

Ohm, jako że lubię pokemony, zagram w to ^^. Czekam na Betę :D

Ciekawy pomysł :]

iz857a.png
Jak odpowiadasz mi na posta użyj proszę @tsdek - szybciej ogarnę.

Moje poradniki(ANDROID):

 

 

Moje poradniki(Programowanie stron):

 

 


 

 

Opublikowano

Dodajcie jakąś fajną fabułę oraz jakieś dodatkowe questy za których wykonanie można dostać np jakiś bardzo wartościowy item z IS to zachęci graczy.

Opublikowano

Wasza grafika ?

 

Tak, grafiki włącznie z mapami, ich elementami jak i obrazkami Pokemonów są autorskie.

3.png

Dodajcie jakąś fajną fabułę oraz jakieś dodatkowe questy za których wykonanie można dostać np jakiś bardzo wartościowy item z IS to zachęci graczy.

W grze nie ma - i nie będzie item shop jako takiego znanego z gier klient, gdzie za pieniądze możemy kupić dobre Pokemony, postacie czy podobne.

Każdy z bonusów można prędzej czy później zdobyć klikając, walcząc i ulepszając swoją postać.

  • 4 tygodnie później...
Opublikowano

Tak w ramach podbicia odświeżę. ;)
Aktualnie uruchomiliśmy taka mini betę w trybie read-only zgodnie z prośbami graczy na forum. Kilka rzeczy działa - kilka nie ale można powiedzieć, że swoją rolę spełnia. :]

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...