Когда вы создаете игру, каковы некоторые архитектурные концепции desgin, которые я могу использовать, чтобы иметь возможность переносить мою игру с одного на многопользовательский?

Я разработчик программного обеспечения, но я в основном разрабатываю игры в Unity. У меня есть опыт создания однопользовательских игр, а также многопользовательских игр. Я на распутье, где я нахожусь в середине разработки доказательства концепции или маленькой демонстрации, и внезапно меня попросят превратить его в многопользовательскую игру, не зная об этом, я обернулся и сказал, что добавит 50 % к времени разработки, потому что я в основном должен начинать с нуля, потому что я не обязательно принимал во внимание, что позже по дороге они могут захотеть изменить опыт от одиночного к многопользовательскому.

Итак, со всем этим в стороне, существуют ли какие-то разные методологии, которые облегчат разработчику переносить игру от одиночного игрока к мультиплееру?

Я подумал о возможном способе сделать это, просто установив игру как одиночный игрок, тем не менее, создав свои функции там, где они легко могут их обернуть, используя команды и RPC. Но я считаю, что это может или не может помочь мне и зависит только от требований.

Мой самый большой убийца времени, когда дело доходит до портирования этих PoC, обычно является пользовательским интерфейсом. В большинстве случаев мои требования таковы, что пользовательский интерфейс будет одним и тем же общим интерфейсом для всех клиентов и должен обновлять его для каждого выполняемого на нем действия и для обработки ClientAuthority. (Любые советы по работе с этим были бы очень благодарны) Подумайте об этом как о чем-то вроде создания чего-то с Legos в многопользовательском режиме и обменивающихся инструкциями на основе шага, в котором пользователь находится.

Резюме

Какими разными способами я могу разработать небольшую демонстрацию /концепцию, в которой я могу легко перенести ее в мультиплеер или сделать свою игру там, где она «многопользовательская»? Или я должен стараться держаться подальше от этого типа мышления в целом и просто разрабатывать однопользовательский аспект и просто разрабатывать многопользовательский аспект, искать аргументы за и против этой концепции.

4 голоса | спросил Dtb49 12 FebruaryEurope/MoscowbMon, 12 Feb 2018 23:37:59 +0300000000pmMon, 12 Feb 2018 23:37:59 +030018 2018, 23:37:59

1 ответ


1

Зависит от размера проекта.

Для небольших проектов, подобных описанным в вопросе, это не стоит усилий. Постоянное беспокойство по поводу больших, но возможно несуществующих проблем может значительно замедлить скорость разработки, поэтому для многодневного или даже многонедельного проекта лучше всего использовать связь . Расскажите Клиенту /Работодателю /Сотруднику, прежде чем начинать то, что вы оцениваете по времени /цене, уточните, хотят ли они одиночного или многопользовательского режима, и сообщите им, что, пока они готовы платить дополнительно, вы с удовольствием включите его, если они потом изменятся их разум - но это будет дороже, чем просто выбрать правильную вещь с самого начала.

Для больших проектов, которые занимают несколько месяцев, я рекомендую заняться полдня, чтобы выяснить, как вы запустили многопользовательский режим, записав его. Затем основывайте дизайн программного обеспечения на этом многопользовательском проекте, но реализуйте только те части, которые вам нужны для одиночного игрока.

В недавно удаленном комментарии была упомянута конкретная проблема, касающаяся того, кто отправлять то, что с сервера, и когда использовать локальную позицию или удаленную позицию. В другом комментарии упоминался P2P. Для обоих из них, Drafts и PoC могут быть значительно упрощены, всегда проходя через авторитетный гипотетический сервер с нулевой задержкой - во время демонстрации все игроки находятся в одной локальной сети, чтобы избежать латентности, и вы всегда используете позицию сервера для всех. Если вы используете только отдельные части, вам даже не нужно проходить через сокеты и сообщения - вы просто вызываете вызовы методов, которые напрямую вызывают ваш интерфейс сервера и обрабатывают асинхронный ответ. Для черновиков в настройках P2P по-прежнему используйте сервер, если только вы не хотите доказать, что это не игровой процесс, а базовая технология P2P.

ответил Peter 13 FebruaryEurope/MoscowbTue, 13 Feb 2018 03:32:19 +0300000000amTue, 13 Feb 2018 03:32:19 +030018 2018, 03:32:19

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132