Нет лучшей архитектуры, если вы не знаете больше о ваших требованиях, например. вид взаимодействий между персонажами, объем данных будет постоянным и т. д.
Если вы можете справиться с задержкой в 1 секунду, вы, вероятно, сможете без проблем разместить 1000 игроков на одном сервере - но это на самом деле противоречит идее FPS, поскольку они обычно требуют гораздо меньшую задержку, например. менее 100 мс Но система, которая может иметь дело с высокой задержкой, может позволить себе делать все через передачу сообщений, что делает последовательность довольно тривиальной. Предоставить свою логику довольно просто, то есть - сложная логика становится еще хуже, когда вы превращаете ее в систему, основанную на сообщениях, а не в систему с заблокированными объектами, - но все это зависит от потребностей вашего приложения.
Точно так же, если вы не сохраняете много данных, вам вообще не нужен компьютер базы данных, но, не зная этого, трудно сказать. Если вы сохраняете небольшие объемы данных и, возможно, делаете это только в конце турнира или еще чего-то, опять же вам не нужна отдельная база данных, конечно же, не их кластер. С другой стороны, если вы не много сохраняете, но много читаете, вот где вам могут помочь реплицированные базы данных, но это также указывает на то, что реляционная база данных может не совсем соответствовать вашей проблеме. Часто кэш в памяти является лучшим решением. Точно так же, если между персонажами нет взаимодействий в стиле транзакций, согласованность становится менее важной. (И если таких транзакций всего несколько, вы можете сделать их особым случаем.)
На самом деле, с осторожностью относитесь к внедрению СУБД только потому, что это делается в больших системах. Хотя я лично одобряю их использование в онлайн-играх, лучше взглянуть на ваши требования и выяснить вашу стратегию сохранения, а не брать предпочитаемую базу данных, а затем пытаться настроить ее с помощью кешей и репликации, чтобы она соответствовала вашим требованиям. приложение. Вы можете обнаружить, что все, что вам нужно, - это возможность создания отчетов в автономном режиме, и в этом случае, вероятно, лучше всего иметь фоновый процесс, регистрирующий ваш механизм сохранения игры в удаленной RDBMS где-то еще.