Войти на сайт

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

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

Кооператив в MV 11 мес. 2 дн. назад #101765

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

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


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

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

Кооператив в MV 11 мес. 2 дн. назад #101768

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

Кооператив в MV 11 мес. 2 дн. назад #101769

  • Dmy
  • Dmy аватар
  • Сейчас на сайте
  • Бог Светлого
  • Сообщений: 584
  • Спасибо получено: 1133
  • УчительПоддержка ФондаДаритель СтимкеяРазработчикПроект месяца 3 место2 место ОраторВетеран
По-моему это очень интересная и полезная вещь! Видео действительно выглядит очень внушительно.
Полезные ссылки:
Не задавайте мне вопросы по мейкеру лично, пожалуйста! Меня это огорчает. Задавайте их всем: тогда у меня будет свобода выбора «ответить или не отвечать». Мне нужна эта свобода.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: KageDesu, Mur, Doctor_Bug, akito66

Кооператив в MV 11 мес. 2 дн. назад #101770

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

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

Кооператив в MV 11 мес. 2 дн. назад #101771

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

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

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

Кооператив в MV 11 мес. 2 дн. назад #101773

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

Кооператив в MV 11 мес. 2 дн. назад #101774

  • ZX_Lost_Soul
  • ZX_Lost_Soul аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 380
  • Спасибо получено: 582
  • РазработчикПобедитель Сбитой кодировкиПроект месяца 1 местоПроект месяца 3 местоПроект года 3 местоПобедитель конкурсаВетеранЗа 3 место на конкурсе маппингаДаритель СтимкеяУчитель
Рад что кто-то взялся за написание сетевого кооператива для мукера. Считаю что вещь это очень нужная, т.к. возможность делать кооп игры здорово оживила и разнообразила бы мейкерский игрострой, ведь, как известно, при коллективной игре все автоматически становится веселее в 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 (стим сначала пытается пробить нат, а если не выходит - использует прокси). Это позволило родиться многим инди кооп играм. Однако это все актуально, только если вы делаете игру для стима.

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

Хотелось бы услышать мнение топикстартера по этому вопросу :) Что планируется реализовать в плагине?
Мои игры: Dolly's Afterlife (платформер) | Crossed Destinies (jRPG)
Старое: Dolly's Funeral (платформер)
Последнее редактирование: 11 мес. 2 дн. назад от ZX_Lost_Soul.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, Avatosius, DK, poca, Cabbit, Mur, Paranoid

Кооператив в MV 11 мес. 2 дн. назад #101776

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

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

Кооператив в MV 11 мес. 1 день назад #101787

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

Кооператив в MV 11 мес. 1 день назад #101791

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

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

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

Кооператив в MV 11 мес. 1 день назад #101792

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

Кооператив в MV 11 мес. 1 день назад #101793

  • ZX_Lost_Soul
  • ZX_Lost_Soul аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 380
  • Спасибо получено: 582
  • РазработчикПобедитель Сбитой кодировкиПроект месяца 1 местоПроект месяца 3 местоПроект года 3 местоПобедитель конкурсаВетеранЗа 3 место на конкурсе маппингаДаритель СтимкеяУчитель
KageDesu, но реализация того же hole-punching на nodejs потребует почти целиком переписать часть, отвечающую за соединение. Если хочешь возложить решение проблемы с NAT на разработчиков игр - обязательно отдели эту часть от другого кода, чтобы её легко было модифицировать, не изучая весь плагин :)
Мои игры: Dolly's Afterlife (платформер) | Crossed Destinies (jRPG)
Старое: Dolly's Funeral (платформер)
Последнее редактирование: 11 мес. 1 день назад от ZX_Lost_Soul.
Администратор запретил публиковать записи гостям.

Кооператив в MV 11 мес. 1 день назад #101794

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

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

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

Кооператив в MV 11 мес. 1 день назад #101799

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

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

Кооператив в MV 11 мес. 1 день назад #101805

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

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

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

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

Видео

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

Кооператив в MV 10 мес. 1 нед. назад #102245

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


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



YouTube Видео

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

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

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

Кооператив в MV 10 мес. 1 нед. назад #102246

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

P.S. Alpha ABS шикарна. Ну потрать время, перепиши, как считаешь нужным, зато будешь купаться в славе за счет мультиплеера и своей бс...

Напиши свой отзыв: dk-plugins.ru/feedback
Группа ВК: vk.com/dkplugins
Последнее редактирование: 10 мес. 1 нед. назад от DK.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, KageDesu, Doctor_Bug

Кооператив в MV 10 мес. 1 нед. назад #102247

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

Кооператив в MV 10 мес. 1 нед. назад #102248

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