Zabrałem się za napisanie prostej gry 2d, standardowo core sprowadził się do tzw. GameLoopa, a w nim
while(running) {
update();
render();
}
Dzięki czemu 60 razy na sekundę odświeżam poszczególne komponenty gry i je renderuje na ekranie. Wszystkie dane o świecie po jakim się poruszam znajdują się lokalnie u mnie, jednak chciałbym pójść o krok dalej - czyli pobierać dane z innej aplikacji, serwera. O ile nic mi nie umknęło, pozwoliłoby to na połączenie wielu klientów do jednego serwera / świata gry i stworzenie namiastki gry MMO. W teorii brzmi prosto, tyle że jak zrealizować takie połączenie client - server? Dotychczas korzystałem z Socketów, tyle że były to aplikacje typu chat, blackjack, itp. Dane wysyłane były tylko gdy była taka potrzeba. Tutaj aplikacja klienta przed wywołaniem update() musiałaby zsynchronizować dane z serwerem, tj. wysłać aktualne dane o postaci gracza, serwer aktualizowałby dane świata i wysyłał je z powrotem do klienta. 60 razy na sekundę. Zastanawiam się więc czy moje podejście jest ok oraz jak to jest rozwiązane w prawdziwych grach MMO? Domyślam się, że pewnie większość z nich nie jest pisana w Javie, no ale mniejsza z tym ;)