Я пишу игровой сервер и клиентов.Сервер генерирует мир и обслуживает его до различных клиентов игроков.Это не массовый многопользовательский режим.
Клиент (по крайней мере, на данный момент) запускает довольно требовательный программный рендер, а также выполняет стандартное моделирование на стороне клиента (которое затем подлежит утверждению авторитетным сервером), поэтомулюбая масштабируемость обработки, доступная на этом конце, была бы хороша.
Сервер также будет интенсивно использовать процессор, и, учитывая характер проекта, он, скорее всего, станет больше по мере продвижения проекта.Мир процедурный, и кое-что из этого происходит во время игры;Опции мира устанавливаются до начала игры, основываясь на возможностях системы в то время (в идеале, при минимальном количестве запущенных внешних процессов).Поэтому масштабируемость количества аппаратных потоков является абсолютной необходимостью для сервера.
Опять же, поскольку это , а не MMO , все игроки будут иметь доступ как к клиенту, так и к серверу, так чтоони могут настроить свои собственные серверы.У многих игроков будет только один компьютер, на котором можно разместить сервер и запустить клиент, чтобы иметь возможность играть со своими друзьями.Исходя из этого факта, что бы мне лучше служило?
- Объединенный клиент-серверный процесс
- Разделение клиентского и серверного процессов
... Ипочему?
PS.Даже если некоторые из вышеперечисленных сложностей будут реализованы позже, мне нужно как можно раньше понять архитектуру (в этом отношении).