Dexelio, любите же вы вопросы 2 в 1 (которые, к слову, запрещены правилами), а потом еще в комментах развернуть пространные рассуждения на отвлеченные темы без четкой проблемы.
Отвечая на вопрос, я надеюсь закрыть его, а не породить десять новых вопросов. Если такое происходит, то это плохой ответ.
В любом случае, вопросы типа "Что лучше UE или Unity?" запрещены не просто так. На то есть веские причины. На такие вопросы нельзя однозначно ответить. И в результате обсуждать эту тему в отрыве от реальности можно бесконечно. Их невозможно решить. И даже если оформить как опрос на каком-то другом ресурсе, то это мало что даст, потому что каждый из этих инструментов имеет свои плюсы и минусы, и выбор зависит от конкретных условий.
Для участия в холи варе можно использовать гугл запросы типа: slant ue unity
или slant godot vs unity
Dexelio, да, шарящий разработчик избежит многих проблем. Но не всех, конечно же. Если игра кроссплатформенная (а Unity в этом плане продвинулся очень далеко), то её нужно будет тестировать на всех платформах и большом разнообразии устройств. Это задача для тестирования.
Оптимизация - вообще дело тонкое. Она не сводится к выбору движка, и в существенной степени зависит от мозгов разработчика. Но повторюсь, что в целях экономии времени и сил (то есть денег) на оптимизацию могут осознанно положить болт или отложить в долгий ящик. Главное, чтобы это не сильно влияло на продажи игры.
Владимир, если у вас есть список того, что может не работать, то вы же сами можете и заняться проверкой строго по списку. Или вы предлагаете этим заняться случайному человеку с этого ресурса? Это как бы работа. А значит, вам нужен фрилансер. Или друг, который всё сделает за бесплатно.
Кстати, отладка - это тоже работа. Порой очень большая, чуть ли ни основная.
Здесь вопросы задают, которые содержат проблему из разряда "всё перепробовал, не могу победить". А вы предлагаете 1) прочитать статью и ваш код приличных размеров 2) понять и проанализировать его 3) вникнуть в предметную область и что вы вообще хотите 4) создать у себя условия, чтобы иметь возможность запустить его 5) заняться отладкой и поиском ошибок. Каждый из перечисленных пунктов является приличной работой. Но самое главное, что ни в одном из этих пунктов нет проблемы. То есть это просто то, что нужно сделать, что занимает время и отнимает силы.
Dexelio, сервера вы выбираете, какие использовать и где расположены, а не платформа, хотя платформа и может предоставлять какие-то фичи для матчинга игроков.
Dexelio, профитнее (то есть выгоднее) будет Unity. Потому что на Python/JS/Construct/GameMaker вы выигрываете лишь в отсутствии необходимости изучения Unity, который даже школьники осваивают без проблем, и проигрываете во всём остальном.
Dexelio, да, C# сейчас практически монополист в этом плане. Достойную конкуренцию Unity может составить лишь Unreal Engine. Ну и собственные движки, которые для инди - не вариант.
Construct и GameMaker - просто игрушки. Хотя простую игру можно сделать и на GameMaker, какой-нибудь квест с 2D графикой, где просто спрайты и не сложная логика. Но ограничений там слишком много, в том числе по производительности.
Python и Javascript плохо подходят для создания игр. Мы уже обсуждали это в предыдущих ваших вопросах. Зачем снова говорить об этом?
Ну а так вам никто не мешает сделать игру даже в блокноте на канвасе (canvas) с использованием исключительно JavaScript. Или можно сделать на движке Phaser. Аналогично и с Python - есть, например, pygame. Есть много вариантов. И вы можете свой собственный движок сделать. Но зачем? У вас какие-то особые запросы? Универсального движка на все случаи жизни всё равно вы не найдёте, хотя таковым в 2020 можно считать Unity, но его тоже в некоторых случаях нужно допиливать под свои нужды.
Название игры - секрет? А то вопрос попадает под вердикт "невозможно дать однозначный ответ".
В общем случае без навыков программирования и дизассемблирования "вскрыть" не получится. Хоть Lua и придуман как открытый язык, но если разработчик приложил дополнительные усилия для шифрования файлов, то это по сути DRM и, скорее всего, даже будучи экспертом, времени на взлом понадобится не меньше, чем на создание такой защиты.
Dexelio, в правилах сайта красиво рассказано, как задавать вопросы. Например, "добрый день" не нужно писать и т.д. Так что если вопрос четко оформить, то палками не закидают. :)
Многие MMO с большим количеством игроков рассчитаны на то, что игроки разбросаны по миру. То есть в клиенте игрока подгружается информация только о тех, кто рядом. Такая оптимизация подходит не всем играм. Плюс если игры подразумевает большие скопления игроков (например, осады замков), то вопрос оптимизации стоит более остро. Чем жертвовать или вводить ли лимиты - каждый сам решает в своем проекте.
Про старенькую игрушку вообще не понял. Но вскрытие игр - это явно тема для отдельного вопроса.
Dexelio, не знаю про Rust, но в целом вы можете взять Unity и на его основе сделать полностью свою сетевую часть. Как вы её оптимизируете, такой и будет лимит игроков.
Dexelio, смотрите,
owerwatch - свой движок, задачка не для инди,
paladins - Unreal Engine.
По mmorpg могу сказать, что всё зависит от количества игроков.
В итоге, если игроков мало, скажем до 10, то Unity подойдет больше. И я исхожу из того, что вы в принципе задаете вопрос про выбор языка, то есть главное - проще и дешевле начать и закончить проект. Ведь бюджет игры это сотни тысяч долларов минимум(!), а здесь вы хоть немного сэкономите (по времени и по стоимости программистов).
Но если игроков много, то Unity не подходит. Для большого количества игроков используют либо свой самописный движок, оптимизированный именно под вашу игру, либо Unreal Engine. Еще можно рассмотреть CryEngine, там много вкусных оптимизаций, однако он очень криво написан, и переделать под что-то свое будет болью. В то время как Unreal Engine очень красиво внутри устроен, поэтому в некотором смысле даже лучше Unity, но придется учить С++. И еще из него сложно что-то выкинуть, так что всю мощь и красоту придется тянуть в игру, даже если она вам там нужна не полностью. Но переделать Unreal под свой проект гораздо проще. Таким образом, для серьезной mmorpg Unreal чуть ли ни единственный вариант на 2019, если не считать своих собственных движков. Просто свой мощный движок - это еще дороже, и его разработку могут позволить себе, как по деньгам, так и по времени, только крупные ААА игры.
Dexelio, для игр Java практически не используется в 2019. Если вы про PZ из примера, то это проект, которому больше 10 лет) Им уже просто нет смысла пересаживаться на пол пути.
Опять же, зависит от игры. Покажите вижн, можно будет сказать точнее про выбор языка. Хотя бы жанр, целевые платформы. Или у вас еще нет документации, а лишь только идея? Но в подавляющем большинстве случаев Unity подходит.
Dexelio, связка. Ядро игры на C# (всё скучное - физика, графика, звуки, анимации). А вся логика, то есть геймплей - на Lua. Ведь Lua позиционируется изначально как встраиваемый язык, а куда его приведет бум популярности в связи с простотой, пока не ясно.
Из примеров посмотрите:
Don't Starve или Don't Starve Together - игры полностью на Lua, кроме ядра (С++).
Tabletop Simulator - необычный пример, потому что это банально симулятор стола. Но философия та же, Unity(C#) + Lua для игроков, которые могут делать свои настольные игры с широким спектром вспомогательных скпритов.
И многие другие игры используют Lua в качестве второго языка, особенно десктопные, потому что оправданно с расчетом на то, что игроки будут изучать игру и писать модификации, причем такие, о которых вы и помыслить не могли. И это увеличивает популярность и реиграбельность. И всё, что им нужно - это легкий доступ к игровой логике, без сложностей. Ну и проработка самой игры на Lua тоже, конечно же, комфортная для разработчика.
Dexelio, C++ сложный. C# легче.
Lua изучать и пользоваться примерно в разы легче, чем JS или Python, имхо.
Движки есть. Например, Corona. Пробовал даже Love2D, но он как-то не впечатлил (есть странности). Так что я склоняюсь к C# + Lua для десктопных игр, и просто C# для мобильных. Но всё зависит от игры. Если у вас, например, крутой новомодный ИИ с уникальным алгоритмом, который вы изобрели, то и C++ (Unreal Engine) может быть более правильным выбором. А если вместо ИИ обычное дерево решений, то даже Lua справится.
Dexelio, Lua - один из самых простых языков (если не самый простой). Перейти на него с другого языка программирования занимает 15-30 минут. Из-за этого писать на нем легко и приятно, не спотыкаясь о синтаксис, а концентрируясь на главном - создании самой игры, геймплея. Его используют много где, как встроенный язык, и в целом даже не-программисты могут его освоить легко и пользоваться им. При этом, сам язык является полноценным и мощным. По возможностям сравним с JavaScript.
Из минусов - довольно медленный. Условно в 100 раз медленнее C++, если не использовать Jit. Но это худший вариант, и эта цифра может быть меньше, в зависимости от реализации. Например, MoonSharp тесно интегрирован с C# и пользуется его компилятором, это накладывает некоторые ограничения на отладку и ускоряет выполнение. Плюс надо учитывать, что Lua пропитан хеш-таблицами, которые, если они нужны, в быстром языке нужно будет явно указывать, а здесь они доступны из коробки и используются по умолчанию, поэтому разница в сложных алгоритмах уже нивелируется. В любом случае, для игровой логики обычно много не требуется. А "узкие" места, если они вообще есть (например, поиск пути для npc), переносятся в "ядро" игры, написанное на более быстром языке.
Таким образом, плюсы:
Крайне легкий в освоении
Описывать игровую логику можно, почти не отвлекаясь на программирование (если можно так выразиться)
Высокая гибкость - при желании можно писать в любом стиле, даже ООП
И раз уж пошёл разговор, то чем 0xD34F выделяется из всех остальных?
Уже не помню. Какая-то причина была, но я не запоминаю ход мыслей по каждой мелочи. Возможно, он дает точные и короткие ответы, что и является причиной высокого % решений. А в чем проблема?
Отвечая на вопрос, я надеюсь закрыть его, а не породить десять новых вопросов. Если такое происходит, то это плохой ответ.
В любом случае, вопросы типа "Что лучше UE или Unity?" запрещены не просто так. На то есть веские причины. На такие вопросы нельзя однозначно ответить. И в результате обсуждать эту тему в отрыве от реальности можно бесконечно. Их невозможно решить. И даже если оформить как опрос на каком-то другом ресурсе, то это мало что даст, потому что каждый из этих инструментов имеет свои плюсы и минусы, и выбор зависит от конкретных условий.
Для участия в холи варе можно использовать гугл запросы типа:
slant ue unity
или
slant godot vs unity