Реалтайм через HTTP не делается - будет слишком большой оверхед от Reliable протокола, и плюс ещё оверхед от HTTP. Можно делать на голом TCP(который так же Reliable) - но в таком случае на серверной стороне нужно писать батчинг пакетов и сжимать по максимуму данные(например углы в твоей игре можно упаковать в 4 бита, в остальных 4х битах хранить например состояние атакует ли игрок, защищается ли и.т.п). Лучшим решением будет взять RUDP - подмножество UDP. Реализует в себе несколько типов пакетов - Reliable, т.е гарантированно доставленные и Unrealible - не такие важные пакеты, которые доставлять не обязательно. Например заморачиваться о доставке пакета обновления позиции игрока не нужно, если этот пакет отправляется каждый кадр на сервере.
Основное отличие в том, что TCP считает все пакеты Reliable, а значит гарантирует то, что пакеты придут в том порядке, в каком отправлены. Из за этого возникает некоторый оверхед. С батчингом пакетов(когда несколько пакетов объеденяются в один TCP пакет) становится чуть быстрее, но всё ещё не так эффективно как UDP.
Есть обратная сторона у такого подхода - нужна поддержка WebSockets, которой нет в старых андроидовских WebView.
На HTTP твой сервер просто напросто умрёт на паре десятков игроков.
На клиентсайде же лучше всего взять голый канвас, и рисовать на нём.
________ посл. ред. 07.01.2019 в 18:47; всего 2 раз(а); by monobogdan