Где бы почитать мировой опыт дизайна логики игровых серверов многопользовательских риалтайм-игр?
Немного удивляет наличие читеров в многопользовательских риалтайм-играх, типа GTA San Andreas. Как модификацией клиента делается возможным изменение скорости машин? Почему нельзя было сделать передачу на сервер только событий начала и конца различных вызываемых пользователем событий? Сел в тачку ID = 123, нажал педаль газа, на сервер улетел «газ», сервер взял параметры тачки 123 и она едет в памяти у сервера. Как её при этом отрисовывает клиент - пофигу. Факт в том, что другие не могут увидеть её едущей быстрее, чем она едет внутри сервера, а там она едет так, как предписывают главные серверные физические модели. На других клиентов идут координаты этой машины только из серверной копии виртуального мира... События столкновений и т.п. обсчитываются так же на сервере и рассылаются всем только оттуда, в том числе самому ездоку. Откуда возможность читерства?
Вот есть у меня такая игрушка, сделанная за 2 дня на коленке на JavaScript. http://dagoneev.no-ip.biz/game/ Зафигачить бы туда онлайн. Как я себе это представляю? На сервере крутится поток и 30 раз в секунду делает очередной шаг времени, вычисляя новое состояние мира с учётом имеющееся на данный момент состояние всех объектов «танк едет, снаряд летит, этот тут, тот здесь» и т.п. Если новости касаются твоего поля зрения, тебе отправляются данные.
В чём ущербность такого подхода?