Margonem od strony technicznej obecnie przedstawia się tak, że pod apache podpięty jest lib w postaci dll (taa, mają windowsy na serwerach), który obsługuje poszczególne połączenia do silnika, napisanego w C++ właśnie. Obecny klient pochodzi z roku 2008/9 i jest napisany w javascript a wszelkie akcje gry rozgrywają się na poszczególnych elementach DOM, przy użyciu jQuery. Obecnie klient jest już od roku przepisywany na canvas (który swoją drogą staje się coraz bardziej trendi), ale coś ciężko im to wychodzi… :D Dokładniej działa to tak, że klient odpytuje 2/3 razy na sekundę serwer, przesyłając mu token ostatniego odebranego pakietu, gdy nastąpi w grze jakaś akcja serwer po prostu wypluwa dane o niej, które już są zarządzane przez klienta.
Jeśli chodzi o silnik, to uwierz mi, że muszą się po jego stronie odbywać często bardzo złożone i skomplikowane operacje, wszystko musi być sprawdzane (no bo hakjerzy są wszędzie, nie? ( ͡° ʖ̯ ͡°)) i zaprojektowane tak, żeby działało szybko i sprawnie. Pomijając fakt samych algorytmów warto też wspomnieć o big data, bo na pewno o to zahaczysz, jeśli chcesz budować grę pokroju margonem. Osobiście nie mam pojęcia jaki byłby wynik konfrontacji między serwerem postawionym na node + socket.io, a takim na c++, ale mogę z pewnością stwierdzić, że serwer w node napiszesz 3, a nawet może i 4 razy szybciej, niż zrobiłbyś to w c++. ;)