Также обратите внимание на Browser Quest, может очень помочь, если код разберёте... Тут и сокеты, и базовая организация, и, думаю, по целям очень близко к Вашим)
Websockets - лучший вариант в таком случае. Передавайте айди игрока и новые координаты, а на клиенте считайте дельту по расстоянию и времени - будет плавная анимация. Или даже ускорение по осям и сразу время, для более актуальных данных. А условия передвижения можно так же в тайлах описывать)
Подозреваю, что Вы имели ввиду структуры Post в []Post, а не поля, тогда достаточно сделать запрос к полю User.Posts и работать с ним как с любым другим запросом - фильры, лимиты, ...
Меня смущает такое большое количество полей... Однако в Mongo можно делать запросы ко вложенным документам, а необходимые поля можно легко фильтровать. Больше информации здесь: https://docs.mongodb.org/manual/tutorial/query-doc...
states заданы заранее, каждый имеет свою продолжительность в steps. steps изменяются вызовом update(), а переключение state происходит после достижения определённого step
Ещё лучше будет, если на все запросы отдавать index.html через Nginx, например, ну и статику через него, а для Go оставить один роут типо /api и через него уже работать с базой и с чем ещё захочется. Будет быстрее раза в 2 примерно
Не эксперт конкретно в Angular, но если роутер стоит в index.html, то /auth и /registation будут прекрасно работать. Все запросы будут приходить в один роутер, а он уже решит, какой компонент показывать.