framework do www, który oszczędza łącze

0

Witajcie,

Szukam odpowiedniego frameworku do gier sieciowych. W google znalazłem wiele opisów technologii, które można połączyć z Javą, jest oczywiście Swing, Flex, JavaFX, Ajax i wiele innych... no i w efekcie nie wiem co wybrać.
Po stronie serwera zamierzam wykorzytać Javę.
Co najlepiej użyć po stronie klienta by ładnie wyglądało i nie zamulało łącza (oszczędność łącza jest dla mnie sprawą priorytetową).
JavaFX i Flex wyglądają ładnie, ale wydaje mi się, że są pod tym względem mało oszczędne.

Moglibyście mi coś poradzić?
Pozdrawiam
Tomek

0

Zależy co rozumiesz przez oszczędność łącza. Jeżeli piszesz coś w rodzaju OGame gdzie nie ma konieczności wykorzystania dużej ilości animacji, nie ma rozgrywki w stylu FPP/TPP to możesz spokojnie wykorzystać GWT/Vaadin/jQuery. Jakieś obciążenie łącza i tak będziesz miał, bo musi iść komunikacja, ale ograniczysz ilość danych przesyłanych do generowania GUI.
Jeżeli zależy ci na produkcie "tibiopodobnym" to Flex/JavaFX w zależności co ci lepiej pasuje. Od ściągania klienta nie uciekniesz.

Na twoim miejscu zaczął bym od oszacowania ile danych musi zostać przesłane by działała logika gry i jak ma się to do narzuconych limitów. Może trzeba będzie wykombinować jakiś własny protokół komunikacji oparty o czyste dane binarne a nie XML/JSON.

0

Przez oszczędność łącza rozumiem to, by przesyłało się przez nie możliwie mało danych, tak by przy niewielkim łączu można było obsłużyć jak najwięcej graczy.
Będzie sporo grafiki, mało animacji... chciałbym jednak technologię przyszłościową, tak, żebym później, w innej grze, mógł zrobić np. walczące ludziki .

Myślałem o AsWing, czy to dobry wybór?

0

Hm... jeżeli chcesz by przesyłane było maksymalnie mało danych to przede wszystkim skup się na protokole komunikacyjnym. Tu można dość dużo zaoszczędzić. Klienta i tak musisz dostarczyć w jakiejś formie, ale on trafi do cache'u przeglądarki i będzie po problemie. Względnie trzeb będzie na początku rozgrywki pociągnąć grafikę. Rzeczywistym pożeraczem łącza jest już sama komunikacja klient-serwer. Framework po stronie klienta to na tym etapie rzecz drugorzędna.

0

Zgadzam się, że protokół komunikacyjny jest bardzo istotny(pewnie najbardziej), ale teraz muszę wybrać jakąś technologie do robienia aplikacji klienta, i chciałbym, by był to wybór, którego nie będę szybko zmieniał. Rozumiem, że w zależności od tego co wybiorę aplikacja klienta może bardzo różnić się wielkością, szybkością ładowania oraz szybkością przekazywania plansz.
Teraz planuję zrobić grę w której gracze poruszali by się po planszy, tak jak na normalnej kartonowej grze planszowej, a komunikacja z serwerem polegałaby na przekazaniu informacji o ruchach (losowanie po stronie serwera), wyborach gracza, przekazaniu odpowiedniego tekstu z serwera, oraz co jakiś czas przekazywaniu rysunków, czy plansz.

Chciałbym jednak uźyć jakiejś technologii, która umożliwiałaby mi później, gdy zdobędę odpowiednie umiejętności, zrobienie również np. strzelanki między graczami w czasie rzeczywistym, oraz, żeby ta technologia była możliwie oszczędna pod względem konieczności inwestowania w łącze.

Czy mógłbyś mi coś konkretnego doradzić do nauki? Myślałem o AsWing, choć bardzo ciężko znaleźć jakąś literaturę o tym. Czy to dobry wybór?

0

Jak lubisz wyzwania to JavaFX. Jak chcesz coś na szybko to jakikolwiek flashowy framework powinien być git.

0

pod wpływem Twoich odpowiedzi tracę przekonanie czy wybór frameworka to naprawdę taka isotna sprawa... Widzę, że Ty tak nie uważasz i zaczynam podejrzewać, że możesz mieć rację... pomyślę o tym jeszcze.

Dziękuję za Twoje odpowiedzi i pozdrawiam,
Tomek

0

No nie wiem czy tak nie ma. Np Apache Wicket (HTMLowy framework) przy dodaniu jednej pozycji do listy przesyła całą listę ponownie. Musisz wybrać taki framework, który jak największą część sesji (stanu) trzyma na komputerze użytkownika i jak najwięcej pracy jest na nim właśnie wykonywane.

Możliwe że http://hessian.caucho.com/ mógłby nadawać się jako protokół.

0

Dzięki donkey7, poczytam o tym protokole

0

Zapoznalbym sie z BlazeDS (z rodziny Adobe Flex). Na poczatek proponuje blog James'a Ward (m.in. census: http://www.jamesward.com/census/)

0

BlazeDS też interesujące... na razie jednak postanowiłem popróbować z javąFX. Z Javy już coś umiem, więc powinno być dużo prościej.

0
donkey7 napisał(a)

Musisz wybrać taki framework, który jak największą część sesji (stanu) trzyma na komputerze użytkownika i jak najwięcej pracy jest na nim właśnie wykonywane.

W grach dla wielu graczy przenoszenie całej logiki do klienta nie ma sensu. Serwer musi kontrolować rozrywkę i nie może ufać klientom.
np. jeżeli klient wyśle komunikat "ruszyłem pionka na B4", to serwer musi sprawdzić, czy gracz miał do tego prawo (czy jest to kolejka tego gracza i czy jest to legalny ruch).

Jeżeli tego nie zrobisz, a gra zyska popularność, to szybko pojawią się "hakerzy".

1 użytkowników online, w tym zalogowanych: 0, gości: 1