Главная Юзердоски Каталог Трекер NSFW Настройки

Gamedev

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 26 6 8
Сложность создания мультиплеерных игор Аноним 05/03/23 Вск 00:06:21 868613 1
image.png 331Кб, 480x270
480x270
Анонсы, среди вас есть те кто делал мультиплеерные игры? Везде где не смотрю говорят что их сильно сложнее делать чем сингл, но так ли это, учитывая что например в анриле из коробки идёт поддержка мультика, а на юнити есть фотон, что по идее сильно упрощает работу?

Ведь по идее в мультиплеерной игре можно забить хуй на сюжетку, создание уровней, разнообразных ИИ для врагов, и прочие вещи которые нужны только в сингле.
05/03/23 Вск 01:08:33 868633 2
>Везде где не смотрю говорят что их сильно сложнее делать чем сингл, но так ли это
Конечно не так, это они пиздят чтоб конкурент новый не появился. Беги качай юнити с фотоном и завтра твоя ммо будет готова.
Аноним 05/03/23 Вск 12:08:04 868684 3
>>868633
Так и знал! Вот же мрази.
Аноним 05/03/23 Вск 17:51:19 868733 4
>>868613 (OP)
>Анонсы, среди вас есть те кто делал мультиплеерные игры?
Среди олдфагов точно есть:
https://2ch.hk/faq/faq_gd.html
У "BRAIN / OUT" аж 15307 отзывов, бешенный успех.

>Везде где не смотрю говорят что их сильно сложнее делать чем сингл
Конечно, сложнее. Требований больше, технические сложности, необходимость длительной поддержки.

>в анриле из коробки идёт поддержка мультика, а на юнити есть фотон, что по идее сильно упрощает работу?
Даже в Godot есть встроенные инструменты для быстрого создания мультиплеера, и есть отдельная сборка движка для headless сервера, который можно запустить на каком-нибудь VPS с линуксом. Беда в том, что это всегда было наименьшей проблемой в мультиплеерных играх, т.к. фреймворки для сетевых игр существовали, наверное, ещё в девяностых (их лого часто можно было увидеть на загрузочном экране, рядом с лого других инструментов). Ну, с нулевых проблемы в базовом сетевом взаимодействии точно нет.

>в мультиплеерной игре можно забить на...
>сюжетку
Голый дезматч мало кого привлекает. Вот есть игра А, в которую играет 9000 игроков, и есть твоя игра Б, в которую играет 9 твоих друзей (которых у тебя нет, поэтому ты здесь). Обе игры не имеют "сюжетки", в обоих играх одинаково минимальный набор контента (дадим тебе фору, в реальности у тебя будет намного меньше контента, чем у конкурентов). Куда пойдёт новый игрок? Естественно, в игру А, потому что там он сможет в любой момент зайти в замес из десятков игроков, без ожидания несколько часов, пока появится хотя бы один другой игрок для начала матча. "Сюжетка", т.е. либо совсем одиночные задания, либо кооперативный PvE режим, способна привлечь критическую массу начальных игроков, без которых мультиплеер не взлетит. В идеале твоя игра должна привлекать даже без мультиплеера, чтобы привлечь наибольшее внимание - и, как следствие, улучшить мультиплеер, который тем лучше, чем больше аудитория. Алсо не забывай о том, что в любой мультиплеер должен быть постоянный приток ньюфагов, которые будут играть с такими же ньюфагами - если в мультиплеере останутся только олдфаги, мультиплеер быстро деградирует, ньюфаги боятся "нагибаторов" и утекают в более дружелюбные игры.

>создание уровней
А играть-то где игроки будут? В мультиплеере тоже есть уровни, их тоже нужно создавать - при этом, в отличие от одиночной игры, ты должен создавать хорошо сбалансированные уровни, не дающие нечестного преимущества одним игрокам против других. А чтобы игра поддерживала популярность и привлекала новых игроков, ты будешь вынужден делать новые уровни, иначе игрокам надоест бегать по одним и тем же картам тысячи часов подряд и они уйдут в новые игры, а твоя сдохнет.

>разнообразных ИИ для врагов
Как я уже говорил, ИИ тебе потребуется для PvE или хотя бы ботов-заглушек для полупустых дезматчей, если ты не хочешь, чтобы у тебя 3.5 игрока аутировало на огромном уровне в ожидании заполнения матча. Кроме того, не думай, что с игроками сильно проще, чем с ИИ - если ИИ ты полностью контролируешь и можешь подгонять его сложность под любого игрока (и даже группы игроков), то игроки - непредсказуемы и могут поднасрать твоей игре тысячами способов, случайно или специально.

Для начала, ты должен убедиться, что игроки играют честно - то есть следуют одним общим правилам, не получая незапланированных тобой преимуществ перед другими игроками. Как минимум реализовать защиту от "читов", то есть вмешательства игрока в данные игрового клиента и игрового сервера, дающие ему преимущества. Некоторые такие "читы" нереально отследить технически, кроме как внимательно следить за поведением игрока. Далее, ты должен вовремя фиксить баги, недостатки карт, проблемы с балансом персонажей/оружия/предметов и тому подобного. Если в твоей игре есть система повышения уровней, ты должен следить, чтобы никто себе не накрутил 100500 уровней нечестным путём, иначе остальные игроки обидятся... на тебя, разработчика, а не только на того, кто накрутил себе уровни. Наконец, наверное, самое неоднозначное - балансирование самих матчей, или столкновений между игроками. Мало кто любит сталкиваться лоб в лоб с киберкотлетой, тогда как сам плохо играет по тем или иным причинам. Большинство игроков - казуалы, и не будут надолго задерживаться в игре, где их насилуют киберкотлеты. Следовательно, тебе нужен матчмейкер или другой способ распределения игроков, чтобы слабые играли против слабых, а сильные - против сильных. А ещё тебе придётся бороться с целым классом игроков, которые будут использовать любую уязвимость твоей системы, чтобы попасть в твой огороженный загончик для казуалов, инвалидов и новичков и перебить их всех, не давая возможности дать отпор. И всё это - в постоянном движении, то есть ты не можешь решить проблему с игроками раз и навсегда, если хочешь поддерживать свой мультиплеер долгие годы. Так что ИИ для одиночной игры намного проще сделать.

Ну и не забывай, что кроме технических нюансов, кроме поддержания и оплаты бесперебойной работы сервера, кроме постоянной потребности в новом контенте - как PvP, так и PvE, кроме борьбы за баланс и честную игру для всех и каждого, кроме необходимости в постоянном маркетинге, пока игра не наберёт достаточное количество игроков, чтобы оставаться на плаву, тебе ещё потребуется постоянно работать с имеющимся сообществом игроков - отвечать на их просьбы и проблемы, регулировать конфликты между ними, развлекать особыми событиями тех, кому недостаточно стандартного геймплея. Ты не сможешь одновременно в соло производить контент, отлаживать технические проблемы, настраивать баланс, заниматься маркетингом и работой с коммьюнити. Т.е. с момента релиза тебе нужны помощники, которые, вероятнее всего, потребуют зряплату, ведь прибыль с этой игры ты извлекаешь и они тебе эту прибыль повышают. Ты уже не сможешь расслаблено попиливать свою инди-игрушку в свободные вечера, теперь ты - раб системы, которую сам же и создал, и если ты попытаешься из неё выйти, она быстро сдохнет и перестанет приносить тебе доход.

Поэтому так много фейлов мультиплеерных игр даже от крупных студий, что уж говорить об инди.

Есть, конечно, исключения. Но их мало и нужно рассматривать индивидуально, почему они оказались жизнеспособны. Ты же даже жанр не указал.
Аноним 05/03/23 Вск 18:07:30 868735 5
>>868733
Ухбля, анон, спасибо за развёрнутый ответ. Ты в целом кучу годных пунктов поднял, но давай возьмём в пример Амогус: НПЦ там нет, игра простенькая, норот хавает, сделана на фотончике. Когда я говорил что можно забить хуй на создание уровней я имел ввиду что не совсем, а то что по сравнению с синглом тебе их нужно сильно меньше - игроки в доту вон всего 1 уровень гоняют сколько лет.

Голый тим дезматч игроки в контру гоняют много лет.

>Ты же даже жанр не указал.
Да у меня куча идей в голове, но так как я новый новичок то думаю с чего начать и выбираю что попроще для первого релиза в стиме. И если я сперва хотел делать мультиплеерную экшон дрочильно на мечах, то начитавшись статей и насмотревшись видосов на тему словил дизмораль и сейчас думаю деградировать первую идею для игры до синглплеера.
Аноним 05/03/23 Вск 18:08:05 868736 6
>>868613 (OP)
В мультиплеере трудность не только в коде (хотя неткод писать конечно сложнее), а еще и в дизайне.
Все те проблемы, которые в сингле были бинарными, могут превратиться в целые таблицы отношений.
Ну вот например, в сингле игрок подходит к двери. Если у него нет ключа, он не может пройти. Если он прошел, дверь за ним захлопывается.
Что тут будет в мультиплеере? Должна ли дверь открыться, если ключ только у одного игрока, или у всех должен быть? Что будет, если один игрок зашел, дверь захлопнулась, а второй еще нет? Можно ли передать ключ? Что будет, если один игрок пройдет и скинет ключ другому? Что будет, если игрок специально забросит ключ в недостижимое для других место? И такие вопросы начинают появляться просто в экспоненциальном количестве.
Аноним 05/03/23 Вск 18:11:13 868737 7
>>868733
>проблемы в базовом сетевом взаимодействии точно нет
Забыл ещё дописать, что, хотя в базовой работе с сетью проблем и правда нет, в контексте игр всплывает множество подводных камней, которые не решаются готовыми инструментами.

Во-первых, пинг. Возможно, ты замечал эффекты, связанные с высоким пингом - то есть временем передачи пакетов от клиента к серверу и обратно. Если у тебя плохо реализована работа с сетью, то игроки будут замечать рывки, телепортации объектов, могут получать пулю в лоб из ниоткуда и жаловаться на "читеров", которых в конкретном матче вообще не было. В худшем случае игрок вынужден стрелять не во врага, а в то место, куда враг телепортируется через пару сотен миллисекунд. Готовые инструменты эти проблемы не решают, ты сам должен сглаживать движение персонажей и делать так, чтобы на глаза игрока как можно реже попадались ситуации вроде "я попал, а он не упал" или "он бежал в другую сторону, а я вдруг умер" и т.п. Если ты забьёшь на это, то игроки будут испытывать массу неприятных эмоций и уходить из игры, если только она не привлекает их чем-то ещё (PvE, история, коллекционирование каких-то предметов, кастомные матчи с кучей модификаций и т.д.).

Во-вторых, одно дело поединок двух игроков, совсем другое - матч на сотню игроков или одновременное нахождение тысяч игроков в одном бесшовном мире. Готовые инструменты могут помочь пришить к одиночной игре кооператив на 2-4 игрока, но вряд ли помогут с созданием очередного пабга или ММОРПГ. В ММО играх замешано много сложных технических решений, о которых лишь поверхностно говорят, чтобы конкуренты не спёрли технологию. Если не сможешь наладить этот момент - твоя массовая мультиплеерная игра будет массовой только в теории, а на практике превращаться в лагодром в случае столкновения больше десятка игроков. И не забывай, что чем более массовая у тебя игра, тем больше затрат на работу физических серверов, которые тебе нужно обслуживать на постоянной основе, но ты не можешь решить все архитектурные проблемы простым докидыванием процессоров в сервер, т.к. каналы передачи информации имеют физический предел.

Ну... ещё есть куча моментов, касающихся отдельных жанров. Скажем, если у тебя в игре реалистичная физика, то тебе, скорее всего, придётся крутить эту физику на сервере, чтобы избежать читерства, но также это многократно повысит нагрузку на сервер и каналы связи. Если у тебя в игре можно двигаться на очень высоких скоростях (с этим и в одиночной-то игре большие проблемы), это добавляет проблем в синхронизацию между клиентами, т.к. игрок должен без глюков увидеть движение другого игрока.

Проблем много, их общая черта - они зарыты глубоко, и ты можешь обнаружить их где-то в середине разработки, а решением будет переделка игры практически с нуля. Поэтому столько провалов, они просто изначально берут ошибочный курс и потом не хватает бюджета на изменение этого курса.
Аноним 05/03/23 Вск 18:16:01 868738 8
Аноним 05/03/23 Вск 18:18:00 868739 9
>>868735
На мечах вообще плохо. Читал что ближний бой в мультиплеере вообще трудно сделать.
Аноним 05/03/23 Вск 18:19:00 868740 10
Аноним 05/03/23 Вск 18:23:09 868743 11
>>868740
Потому что когда стрельба, можно легко манипулировать подгоняя время вперед назад, а тут слишком видно.
Аноним 05/03/23 Вск 18:35:58 868746 12
>>868743
Не понял, что там тебе манипулировать надо?
Аноним 05/03/23 Вск 18:44:49 868748 13
1649175900487.gif 295Кб, 842x565
842x565
>>868746
То, о чем тебе анон выше писал. Про высовывания из за углов. Когда летит пуля, у тебя есть время на подкрутку. А тут вы уже в клинче и надо сразу показывать удар и попадание.
Аноним 05/03/23 Вск 18:50:58 868749 14
>>868748
А типа предикшн система, такие вроде уже из коробки идут.
Аноним 05/03/23 Вск 18:56:13 868752 15
>>868749
Я и говорю, предикшн работает когда у тебя есть расстояние и время на нее, а в ближнем контакте уже поздно. Враг может быть за спиной и ты пригоришь потому что тебе нарисовали что ты его бил, а он тебе уже проткнул почку.
Аноним 05/03/23 Вск 18:59:48 868755 16
>>868735
>Амогус
Что-то мне подсказывает, что их популярность не на пустом месте появилась. Не знаю подробностей, но вряд ли они просто выложили игру и вдруг проснулись знаменитыми. В любом случае, похожие проекты и до них были, но не достигли такой популярности. Мутная какая-то тема...

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

>контру
У CS очень долгая история, начиная с выпуска первого халф-лайф, который получил свою аудиторию от предыдущих похожих шутеров той эпохи, когда игр вообще мало было и каждая новая выделялась. Все игры серии CS сохраняли общие черты неспроста, это дань традициям. Даже клоны пытаются быть визуально похожими на CS, настолько сильно влияет история оригинала, без этого это просто тупая стрелялка "пыщ-пыщ убил". Ну а сейчас там всё те же шкурки + киберспорт, привлекает школоту потенциальным заработком. Т.е. успех CS не благодаря маленькому набору карт и отсутствую сюжетки, а вопреки этому.

В общем, у тебя нет шанса конкурировать, даже профессионально выполненные клоны Dota и CS сидят в тени оригиналов (вроде, оно там всё сейчас бесплатное благодаря этому киберспорту и перепродаже бесконечно добавляемых шкурок на персонажей и оружие, но новому проекту, чтобы выйти на окупаемость, будет нужен большой бюджет).

>Да у меня куча идей в голове, но так как я новый новичок то думаю с чего начать и выбираю что попроще для первого релиза в стиме.
О релизе в стиме пока не думай, ты вообще ничего ещё не умеешь делать, верно? Попробуй накидать прототипы некоторых своих идей, а там посмотришь, что может оказаться стоящим. В голове все идеи выглядят намного лучше, чем на самом деле, и поэтому нужно не гадать, а делать прототипы и выбирать из них что-то действительно интересное. Для первой игры лучше всего ограничиться какой-то одной механикой. Алсо, лучше не тратиться на Стим, а выкладывать свои первые игры на форумы, итч.ио и другие похожие места, так ты получишь ценные отзывы и опыт, не потратив лишних денег. Всё равно первые игры новичков как правило провальны и никому не интересны.

>И если я сперва хотел делать мультиплеерную экшон дрочильно на мечах, то начитавшись статей и насмотревшись видосов на тему словил дизмораль и сейчас думаю деградировать первую идею для игры до синглплеера.
Всё верно делаешь, онлайн экшн с ближним боем был бы непосильной задачей для новичка и ты бы очень быстро разочаровался в своих силах. Помни о том, что твои задачи должны соответствовать твоим способностям, иначе разочаруешься в себе и игру доделывать будет намного тяжелее чисто психологически. Попробуй поделать простые проекты, вроде клонов старых игр, и выкладывать их на форумы, на этом наберёшься опыта и знаний, необходимых для выпуска серьёзного проекта в Стим. Также можешь рассмотреть различные геймджемы/конкурсы игр, там бывает всякое от "игры за один день" до многомесячных соревнований, суть - набраться опыта и получить отзывы сразу от множества разных игроков, бесплатно. Многие интересные инди-игры изначально были созданы на какой-нибудь геймджем за пару дней, а потом, получив признание и некоторую известность, месяцами допиливались для релиза в стиме.

Алсо, сейчас для успешного релиза важна не столько сама игра, а её заметность/известность в соцсетях, но для старта мультиплеерной игры заметность должна быть намного выше (чтобы было достаточно игроков онлайн), так что сингл распиарить должно быть попроще. Стим в своё время заполонили некачественные игры на полчаса геймплея, поэтому они подкрутили алгоритмы в сторону более продолжительных и богатых контентом игр, которые сообщают о разработке задолго до выхода (была тут где-то статья, потерял ссылку). Но ещё раз, тренироваться лучше на простых и коротких играх (и прототипах игр), просто нет необходимости выкладывать их на крупные площадки.
Аноним 05/03/23 Вск 19:03:25 868756 17
>>868755
>Не знаю подробностей, но вряд ли они просто выложили игру и вдруг проснулись знаменитыми
Там еще веселее, они выложили и не проснулись знаменитыми, а потом через год или два занесли стримерам, и вдруг стали популярными.
Аноним 05/03/23 Вск 19:20:45 868760 18
0eb1e9bf52b2eff[...].jpg 46Кб, 500x417
500x417
>>868756
>занесли стримерам
Ха-ха, клඞсус.
Аноним 05/03/23 Вск 19:26:56 868761 19
1494602177001.jpg 60Кб, 1000x800
1000x800
>>868755
Спасибо, анонче. Наверное так и сделаю. Наебеню прототип сингла, закину куда-нибудь чтобы отзывы посмотреть. Потом сделаю вертикальный срез и начну пиарить и доделывать до полноценного релиза на итче.

Но я возможно дайвану в мультик ненадолго чтобы сделать прототип и посмотреть насколько это реально сложно. Ну жопа просто чешется, хочу онлайн дрочильни делать. С другой стороны ты сам сказал что многие игры начинали с сингла и приделывали к ним мультик потом. Может повторю их судьбу.
Аноним 05/03/23 Вск 21:01:04 868789 20
>>868760
Это практически дефолт уже во всех сетевых играх - они все заносят стримерам на старте.
Аноним 05/03/23 Вск 21:08:06 868790 21
>>868789
А как заносить стримерам? Как с ними связываются вообще?
Аноним 05/03/23 Вск 21:19:15 868792 22
>>868790
Обычно у них всех бизнес-мыло указано где-то. Так и связываешься.
Аноним 05/03/23 Вск 23:35:44 868800 23
>>868735
> словил дизмораль
Посмотри Photon. На нём много игр создали, потому что он простой. А уж их новый движок "quantum" вообще некст левел, потому что там вообще не нужно писать сетевой код.
https://www.photonengine.com/
Аноним 05/03/23 Вск 23:59:00 868802 24
изображение.png 230Кб, 359x325
359x325
изображение.png 3880Кб, 2000x2000
2000x2000
>>868613 (OP)
Я делал для курсовой, потому что сам интересовался для своей игры. ОЧЕНЬ ПОТНО. Сначала доведи обычное владение движком до автоматизма.

Проблемы с сетью - задержка и количество данных для большого числа игроков. Проблема с игроками читеры и матчмейкинг. Если ботов крутых хочешь то потеешь с ботами.

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

Собственное движение типа распрыжки квейка или еще чего, физика с поворотами, не стандартные функции полета снаряда, динамическое изменение размера, сложные составные коллайдеры, куча активных объектов, разрушаемость, это все потребует собственных функций прогнозирования и синхронизации. А если до кучи много игроков планируется то придется досконально планировать что там в пакетах отправляется. Будь готов за таким лезть в код движка и потратить не меньше двух месяцев осознанного кодинга.
На юнити с этим как, все еще продают код движка? В анриле придется лезть в их потные плюсы. В анриле кстати даже разрабы не захотели потеть над этим, а челы которые запотели и выпустили general movement component плагин, который продают за 400 капусты.

Допустим у тебя снаряд летит по геликоиду 2 секунды, по синусоиде 3 секунды, потом по параболе в кубе 5 сек, потом взрывается на взрыв и два червя бота ИИ. Стандартных функций для этого нет, нужно самому будет описывать.

Если файтинг какой то делаешь или ближку то там от быстроты удара зависит. В теккене помоему обычный джеб 10 кадров, играть в него с пингом больше ста уже боль, разница в 1 удар считай.
Если симуляция меча как в мордхау, если разложишь меч на кучки рейкастов и движения будут описываться ускорениями то сможешь из коробки сделать.

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

Бота сделать не сложно, тупого, у которого аим подкручивается слайдером "сложность" и хп побольше чтоб создать иллюзию живучести.
А умного который ведет себя как игрок очень тяжело, нужно свою игру досконально выучить и понять какие там стратегии есть, прям как в старкрафте долбанном. Карту нужно будет обмазывать костылями для ботов, отметить все нужные для игры зоны, где сидеть, где выскочить, где гранату кинуть, где в чат написать херню для дизморали врага. Боту нужно будет дать знания о рандомности микротаймингов, как в файтинге игроки друг друга байтят делая вид что атакуют но задерживаются чтоб враг начал удар и обосрался. Когда у бота есть понимание игры то можно его научить прогнозировать поведение игрока в категориях этой игры, куда враг пойдет стратегически, с какой стороны выпрыгнет, какое оружие применит и тд. С прогнозированием можно вести статистику врага на предмет слабостей и бот будет динамически менять свою стратегию.
Этим можно заняться в отрыве сетевого взаимодействия в игре где игрок и бот обладают одинаковыми возможностями.
Аноним 06/03/23 Пнд 20:18:41 868953 25
>>868802
>Простую хрень типа амогуса, автомата-рейкаста, обычной ходьбы без проблем сделаешь из коробки.
>Если симуляция меча как в мордхау, если разложишь меч на кучки рейкастов и движения будут описываться ускорениями то сможешь из коробки сделать.
Я теперь чёт еще больше хочу поиграться с созданием прототипа мультиплеерного
Аноним 24/03/24 Вск 02:31:51 942673 26
>>868802
>Везде где не париться, а потом, получив признание и движения будут замечать рывки, телепортации объектов, разрушаемость, это многократно повысит нагрузку на тему словил дизмораль и никому не думай, ты можешь решить проблему с нулевых проблемы не думай, что по сравнению с игроками раз и есть вмешательства игрока записывать, можно продавать за спиной и в экспоненциальном количестве.
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов