Unity для MMORPG

Копия нашего ответа пользователю Unity, спрашивающему об использовании Unity для MMO

Многие пользователи хотят создавать MMORPG с Unity / Mirror. Хотя Unity - не лучший выбор для игровых серверов, он дает большие преимущества. Этот пост был нашим ответом пользователю на форумах Unity, который спрашивал о MMOs & Unity. Не забудьте также ознакомиться с нашим очень старым гайдом "How to make an MMORPG", что, по сути, и привело к появлению Mirror в первую очередь. [...]

Имейте в виду, что Unity - не самый лучший выбор для игровых серверов, если вы заботитесь о надежности, стабильности, масштабе. Автономные проекты на C# (за пределами Unity) могут запускаться на netcore, что значительно быстрее и стабильнее. За пределами Unity у вас также есть больше возможностей выбора языков программирования, которые могут лучше подходить для крупномасштабных / высокопроизводительных серверов.\

  • Go стоит того, чтобы ему научиться. Конкурентоспособный язык, разработанный Google для масштабируемых систем. Гораздо проще выполнять многопоточность, чем с C#, благодаря go-процедурам. Также собирается мусор, как например C#.\

  • Rust тоже хорош. Простая производительность как у C / C++, но с сохранением памяти. В многопоточности тоже хорошо себя показывает, потому что Rust защищает вас от скачков данных (в отличие от Go и C#). Не собирается мусор, так что не будет пауз GC, о которых стоило бы беспокоиться.

  • C# по-прежнему остается отличным выбором. Однако некоторые из настроек сети низкого уровня по умолчанию не очень хороши. Например, здесь продолжается дискуссия о распределении сокетов C# UDP. Для выделения ресурсов требуется сборка мусора, что приводит к паузам GC, что приводит к проблемам с производительностью на крупномасштабных серверах.

Стоит отметить, что Unity находится в процессе перехода на netcore. Это было бы здорово для игровых серверов! TL;DR: Unity - самое медленное и нестабильное решение для игровых серверов. Но это также и самое продуктивное решение. Выбери что-нибудь одно 👍

Last updated