перетянуть эту часть на C++ и уже строить отдельный мост для интеграции двух приложений между собой (нода + часть на C++)
Чтобы не делать N итераций используют индекс, чтобы получить нужные документы без переборов (а переборы задействуют "диск").
Откуда у вас тут Log? Чтобы получить "все комментарии имеющие 200 просмотров.", коллекцию пользователей трогать вообще не обязательно.
А какая разница, приложение работает внутри браузера или является целевым десктопным ? Ведь браузер не решает никаких проблем, связанных, например, с потерей пакетов или предсказаниях об игровом мире
Ну для этого и реализован лист снапшотов состояний и бинарный протокол :)
Просто мне кажется, что легче сделать свою простую ( в плане ассортимента функционала, а не простоте алгоритмов ) физику с некоторой кастомизацией для клиент-серверной архитектуры, чем попытаться навесить её на какой-то готовый на физ. движок
Ну а движки с удобными редакторами вроде Unity использовать только для создания игровых локаций, создавать ( по локации созданной в Unity мир ) xml / json файл и потом скармливать его серверу при старте для инициализации мира