Войти на сайт

Авторизация, ждите ...
×
  • Страница:
  • 1
  • 2

ТЕМА: Кооператив в MV

Кооператив в MV 6 года 10 мес. назад #101765

  • KageDesu
  • KageDesu аватар
  • Вне сайта
  • Мастер
  • Сообщений: 101
  • Спасибо получено: 346
Что думаете по поводу возможности кооперативной игры в RPG Maker MV играх?
Надо ли, не надо ли? Использовали бы? Есть ли смысл?

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Сразу поясню чем отличается кооператив от онлайна.
Онлайн - это игровой мир, к которому подключается N-количество игроков, игра живёт сама по себе.
Кооператив - это когда игрок создаёт игру и к нему подключаются ограниченное количество лиц. Игра не живёт сама по себе.

Полтора года назад, поймав эту мысль я сделал за пару часов плагин и сервер. В основном это был эксперемент синхронизации событий. Т.е. как быть с игровыми событиями, если игроков несколько.
Вот что у меня получилось (видео):
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, AnnTenna, Avatosius, ZX_Lost_Soul, Seibur, DK, poca, Yros, yuryol, Guren_san и еще 8 пользователей

Кооператив в MV 6 года 10 мес. назад #101768

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 574
  • Спасибо получено: 1448
  • 2 место Даритель СтимкеяОраторУчительОрганизатор конкурсовПрограммист JavaScript
Сууууууууууууууууупер! Просто потрясающая штука!!!! :ohmy:
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, Guren_san, KageDesu, akito66

Кооператив в MV 6 года 10 мес. назад #101769

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1142
  • Спасибо получено: 2478
  • 2 место УчительДаритель СтимкеяОраторПрограммист RubyПаладинЗа 2 место на конкурсе маппингаВетеранПроект месяца 3 местоРазработчик
По-моему это очень интересная и полезная вещь! Видео действительно выглядит очень внушительно.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: KageDesu, Mur, Doctor_Bug, akito66

Кооператив в MV 6 года 10 мес. назад #101770

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1704
  • Спасибо получено: 2731
  • Организатор конкурсовПобедитель конкурса3 место ГотвУчительОратор2 место 1 место в ГотвКомпозитор
никогда не люил онлайн-игры, но кооператив -это лучшее что может быть! Для меня всегда были одиночные игры простым задротством, а вот кооперативные - отличным времяпрепровождением.

Конечно, кооператив за одним компом для меня приоритетнее, и больше интересует как сделать раздельный инвентарь и два экрана на одном мониторе, но учитывая переезд, отсутствие времени и лучшего друга рядом, всем руками "за" :whistle:
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Doctor_Bug, akito66

Кооператив в MV 6 года 10 мес. назад #101771

  • AnnTenna
  • AnnTenna аватар
  • Вне сайта
  • Администратор
  • ловлю волны настроения
  • Сообщений: 4605
  • Спасибо получено: 4769
  • 2 место ГотвОрганизатор конкурсовПобедитель Сбитой кодировкиДаритель СтимкеяПроект месяца 2 место3 местоПобедитель конкурсаКоммерсантРазработчикПроект года 2 место
Ого, да это просто фантастика какая-то! :whistle: Я тоже обеими руками ЗА такой плагин - это же очень круто!
Я даже просила одного знакомого программиста порыться на тему кооператива для моей игры, но он так и не справился с этим, к сожалению. С тех пор я как-то и перестала надеяться на то, что это возможно. А тут вдруг бац и эта тема!

Только вот расстраивает то, что
Выбором в общем событии может управлять только лидер группы (это игрок, который первый подключился)
Для кооперативных игр, основанных на выборе, это является существенным недостатком и большой проблемой :silly:

Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: akito66

Кооператив в MV 6 года 10 мес. назад #101773

  • akito66
  • akito66 аватар
  • Вне сайта
  • Светлый дракон
  • В Иркутске пески холодные, но когда ты рядом, мне становится теплее.
  • Сообщений: 850
  • Спасибо получено: 1511
  • Организатор конкурсовОраторУчительДаритель СтимкеяРазработчикПроект месяца 1 местоПроект месяца 3 местоПроект месяца 2 местоПаладинВетеран
Если это возможно, то я бы точно это использовал в своем проекте, не свойственно для меня но я бы даже перешел на MV
: )
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Кооператив в MV 6 года 10 мес. назад #101774

  • ZX_Lost_Soul
  • ZX_Lost_Soul аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 546
  • Спасибо получено: 945
  • Победитель конкурсаЗа 3 место на конкурсе маппингаПобедитель Сбитой кодировкиПроект месяца 3 местоОраторПроект месяца 2 местоУчительРазработчикДаритель СтимкеяВетеран
Рад что кто-то взялся за написание сетевого кооператива для мукера. Считаю что вещь это очень нужная, т.к. возможность делать кооп игры здорово оживила и разнообразила бы мейкерский игрострой, ведь, как известно, при коллективной игре все автоматически становится веселее в n раз.

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

Главной сложностью при создании сетевых (а особенно кооперативных) игр на любом движке в настоящее время является проблема нехватки ip адресов. Создатели протокола ipv4 в своё время не учли неравномерность распределения ip-адресов по миру (а может и вовсе об этом не думали, не силен в истории) и сделали недостаточно большой длину адреса. В итоге у многих провайдеров просто не хватает адресов для своих абонентов и они садят множество человек на один и тот же, что по-простому называется "серым ip". Поскольку у таких людей нет персональных ip, подключиться извне к ним невозможно, как результат они не могут хостить сетевые игры. Для решения проблемы был создан протокол ipv6, однако ж на дворе 2018 год, а поддерживает его довольно малое количество провайдеров.

В двух словах, не имея белого ip, играть в кооп игры с классическим прямым подключением вы не сможете.

Какие же есть решения?

1. Кооператив через общий сервер. При такой реализации все игроки соединяются через один сервер с белым ip и обмениваются данными тоже. Такое решение могут себе позволить Blizzard в игре Diablo 3, однако оно требует постоянного финансирования и для маленьких/бесплатных игр не годится.

2. Использование hole-punching, чтобы пробиться сквозь nat. Решение частичное, поскольку в некоторых сетях и провайдерах нереализуемо, т.е. позволит хостить не всем, но многим. Для соединения игроков опять же используется сервер с белым ip, однако все дальнейшие данные будут идти напрямую. Главным минусом способа является его сложность, далеко не каждый программист знает как его реализовать.

Очень существенный шаг для решения проблемы сделал Steam, за что Valve нужно сказать большое спасибо. При использовании steam_api разработчикам доступны стим-лобби, своеобразная комбинация способов 1 и 2 (стим сначала пытается пробить нат, а если не выходит - использует прокси). Это позволило родиться многим инди кооп играм. Однако это все актуально, только если вы делаете игру для стима.

Ну и третьим способом является различный изврат, такой как заставлять игроков ставить эмуляторы локальной сети вроде Хамачи, Тангл и т.д.
Решение рабочее, однако по голове за него игроки не погладят.

Хотелось бы услышать мнение топикстартера по этому вопросу :) Что планируется реализовать в плагине?
Последнее редактирование: 6 года 10 мес. назад от ZX_Lost_Soul.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, Avatosius, DK, poca, Cabbit, Mur, Paranoid

Кооператив в MV 6 года 10 мес. назад #101776

  • Paranoid
  • Paranoid аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 683
  • Спасибо получено: 350
Кооп для мукера это чуть более чем нужная вещь!

ZX_Lost_Soul, так вот почему я не могу хостить игры.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Кооператив в MV 6 года 10 мес. назад #101787

  • Guren_san
  • Guren_san аватар
  • Вне сайта
  • Оседлый
  • Сообщений: 40
  • Спасибо получено: 10
Очень хорошая идея! Если бы у меня было больше двух рук, я бы все их поднял. Как уже было оговорено выше, кооперативчик для jrpg игр - более, чем нужно. Я буду следить за этой темой ^^ :blink:
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Кооператив в MV 6 года 10 мес. назад #101791

  • KageDesu
  • KageDesu аватар
  • Вне сайта
  • Мастер
  • Сообщений: 101
  • Спасибо получено: 346
AnnTenna пишет:
Для кооперативных игр, основанных на выборе, это является существенным недостатком и большой проблемой :silly:

Это не ограничение, можно изменить. Просто написал как сделал изначально.

ZX_Lost_Soul, делать игру и делать плагин - это разные вещи. Если бы я делал игру с кооперативом, то я бы задумался как моя игра будет обеспечивать сетевой режим. Если я планирую свою игру выпускать в Steam, то прикручу Steam API, если другой способ распространения, возможно запущу свой сервер для игроков и т.д. Я же делаю плагин - т.е. некий фрамеворк, представляющий готовый сервер и клиент и их интеграцию с MV, чтобы разработчик игры мог использовать сетевые функции в игре. А как будет обеспечивать доступ к севреру разработчик игры, используя плагин, это по большей части его заботы. Я ведь не всемогущий :)
Сам же сервер планирую чтобы запускался внутри игры, чтобы не нужно было запускать никакие сторонние программы вместе с игрой. Ну и выделенный тоже можно отдельно сделать.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: poca, Guren_san, Mur

Кооператив в MV 6 года 10 мес. назад #101792

  • Paranoid
  • Paranoid аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 683
  • Спасибо получено: 350
Хотелось бы тогда еще и плагин для сплит-скрин игры.
Администратор запретил публиковать записи гостям.

Кооператив в MV 6 года 10 мес. назад #101793

  • ZX_Lost_Soul
  • ZX_Lost_Soul аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 546
  • Спасибо получено: 945
  • Победитель конкурсаЗа 3 место на конкурсе маппингаПобедитель Сбитой кодировкиПроект месяца 3 местоОраторПроект месяца 2 местоУчительРазработчикДаритель СтимкеяВетеран
KageDesu, но реализация того же hole-punching на nodejs потребует почти целиком переписать часть, отвечающую за соединение. Если хочешь возложить решение проблемы с NAT на разработчиков игр - обязательно отдели эту часть от другого кода, чтобы её легко было модифицировать, не изучая весь плагин :)
Последнее редактирование: 6 года 10 мес. назад от ZX_Lost_Soul.
Администратор запретил публиковать записи гостям.

Кооператив в MV 6 года 10 мес. назад #101794

  • KageDesu
  • KageDesu аватар
  • Вне сайта
  • Мастер
  • Сообщений: 101
  • Спасибо получено: 346
Paranoid пишет:
Хотелось бы тогда еще и плагин для сплит-скрин игры.
А как быть с управлением? Два устройства (клавиатура и геймпад) или разные клавиши?

ZX_Lost_Soul, я ещё подумаю.

Хочу пояснить для людей, которые в этом не разбираются как устроенно сейчас. Допустим вы хотите поиграть с товарищем в игру вместе. Вы оба запускаете одинаковую игру на своих компьютерах, только один из вас в игре выбирает опцию <создать игру> (одну кнопку нажать или комнаду плагина вызвать), а второй опцию <подключится к игре>, где ему просто нужно ввести ip адресс первого игрока. Всё. Проблема уже встаёт немного извне я считаю, а именно как далеко виден ip адресс игрока, который создал игру (сервер). Если оба товарища в одной сети (локальная, Wi-fi) - проблем нет. Если сервер имеет "белый" адресс и к нему можно подключится из интернета - проблем нет. Если сервер умён, то может пошаманить с настройками роутера (port forward) и сделать также свой "чёрный" ip доступным из вне (тут я не уверен, но вроде как можно). Ну а если очень хочется поиграть, но ничего из выше указанного нет желания делать, то 5 минут установка бесплатного Hamachi (или алтернативы) и вы оба в виртуальной локальной сети - проблем нет. Итого: решение проблемы подключения, я считаю, это немного выходит за рамки ответственности плагина.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: poca

Кооператив в MV 6 года 10 мес. назад #101799

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 913
  • Спасибо получено: 566
  • Даритель СтимкеяВетеранПрограммист JavaScript ОраторПрограммист Ruby
Ага. Что вы об этом... Тут более крупная проблема - как соединить его с кучей других левых плагинов, на которых делается 99% проектов.
Когда-то эта мысль оттолкнула от подобной идеи. :)

Вобщем, кажется, большинству подойдёт лишь та его часть, что ивенты запускает и переданные параметры в них закидывает.
Последнее редактирование: 6 года 10 мес. назад от Lekste.
Администратор запретил публиковать записи гостям.

Кооператив в MV 6 года 10 мес. назад #101805

  • Paranoid
  • Paranoid аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 683
  • Спасибо получено: 350
Наверное лучше подойдет клавиатура/геймпад или геймпад/геймпад
Администратор запретил публиковать записи гостям.

Кооператив в MV 6 года 10 мес. назад #101813

  • KageDesu
  • KageDesu аватар
  • Вне сайта
  • Мастер
  • Сообщений: 101
  • Спасибо получено: 346
Lekste, надо пробовать, так ничего не скажешь. Учитывая архитектуру сервера у меня есть надежды, что большинство плагинов будет работать.

Провёл очередной эксперемент, объеденив проблему, о которой писал ZX_Lost_Soul и идею с Split Screen.

Видео

Получился некий гибрид. Это всё ещё сервер - клиент (на одной машине) и это не совсем Split Screen, окна то 2 :)
Последнее редактирование: 6 года 10 мес. назад от KageDesu.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: poca, Mur, Doctor_Bug, Paranoid, akito66

Кооператив в MV 6 года 9 мес. назад #102245

  • KageDesu
  • KageDesu аватар
  • Вне сайта
  • Мастер
  • Сообщений: 101
  • Спасибо получено: 346
В свободное время немного работаю по этому направлению, вот что есть на данный момент:


2018-02-03_1-58-11.png



YouTube Видео

P.S. Используются сторонние плагины, всё работает без проблем

Сложности есть с боевой системой. Заставить работать стандартную боёвку по сети - это значит практически написать новую боевую систему. Вот и думаю, стоит тратить время на написание сетевой стандартной боёвки или написать новую, которая изначально расчитана на сеть + PvP. Новую можно на основе моей RTBS (её правда надо с колен поднять). Это даст возможность каждому игроку действовать когда настанет его время хода, а не ждать пока сходят другие и враги.

Alpha ABS передлывать под сеть пока не рассматриваю - её саму надо сперва до ума довести, код уж очень плохой...
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, Seibur, DK, poca, Cabbit, Mur, Doctor_Bug, Paranoid

Кооператив в MV 6 года 9 мес. назад #102246

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • УчительПроект месяца 1 место2 место Программист RubyРазработчикДаритель СтимкеяОраторПрограммист JavaScript Проект месяца 2 местоПроект месяца 3 место
почему ты перестал поддерживать свою бс ? и зачем писать новую бс, если можно подстроить свою под нужды мультиплеера ?

P.S. Alpha ABS шикарна. Ну потрать время, перепиши, как считаешь нужным, зато будешь купаться в славе за счет мультиплеера и своей бс...
Последнее редактирование: 6 года 9 мес. назад от DK.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, KageDesu, Doctor_Bug

Кооператив в MV 6 года 9 мес. назад #102247

  • Doctor_Bug
  • Doctor_Bug аватар
  • Вне сайта
  • Светлый дракон
  • Из горизонта события! ▪_■
  • Сообщений: 573
  • Спасибо получено: 896
  • 3 местоВетеранПроект месяца 3 местоПрограммист Ruby3 место в КодировкеПроект месяца 1 место
Ребят извините что не в тему. А где можно об этом узнать? Я про ip, подключение, Нат и т.п. Хотелось бы поподробнее об этом узнать. Мож статьи или книги есть.
Баг изучает Godot Engine. А слушает эту музыку ~~> Мое сердце
Администратор запретил публиковать записи гостям.

Кооператив в MV 6 года 9 мес. назад #102248

  • KageDesu
  • KageDesu аватар
  • Вне сайта
  • Мастер
  • Сообщений: 101
  • Спасибо получено: 346
DK пишет:
почему ты перестал поддерживать свою бс ?
Я перестал поддерживать все свои плагины, так как уходил служить в армию. Теперь, спустя год, довольно сложно всё восстановить, надо время. Я сейчас этим и занимаюсь, у Alpha ABS будет обновление, которое вернёт её в правильное русло.
DK пишет:
зачем писать новую бс, если можно подстроить свою под нужды мультиплеера ?
Не всем может подойти, появятся зависимости ненужные, надо что-то оптимальное. Но стандартную под сеть всё равно не охото переделывать.
DK пишет:
P.S. Alpha ABS шикарна. Ну потрать время, перепиши, как считаешь нужным, зато будешь купаться в славе за счет мультиплеера и своей бс...
Спасибо.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, DK, poca, Cabbit, Mur, Doctor_Bug, Paranoid
  • Страница:
  • 1
  • 2
Модераторы: NeKotZima
Время создания страницы: 0.294 секунд