Вопрос Мультиплеер в игре

Пользователь
Статус
Оффлайн
Регистрация
10 Ноя 2019
Сообщения
839
Реакции[?]
135
Поинты[?]
0
Решил написать простенькую 2d игру с мультиплеером на c#, где появляются на карте 2 игрока и могут бегать по этой карте, как можно реализовать мультиплеер?
 
Начинающий
Статус
Оффлайн
Регистрация
9 Мар 2022
Сообщения
7
Реакции[?]
3
Поинты[?]
0
Как вариант - для реализации мультиплеера можно использовать технологию WebSocket. Для этого Вам нужно арендовать VPS и поднять на хостинге вебсокет сервер, который бы принимал пакеты и рассылал их остальным клиентам (игрокам). Рекомендую попробовать сначала реализовать простой счётчик при помощи сокетов. На сервере есть число, которое клиенты могут увеличивать на 1, после этого можно реализовывать мультиплеер для игры.
 
Пользователь
Статус
Оффлайн
Регистрация
10 Ноя 2019
Сообщения
839
Реакции[?]
135
Поинты[?]
0
Как вариант - для реализации мультиплеера можно использовать технологию WebSocket. Для этого Вам нужно арендовать VPS и поднять на хостинге вебсокет сервер, который бы принимал пакеты и рассылал их остальным клиентам (игрокам). Рекомендую попробовать сначала реализовать простой счётчик при помощи сокетов. На сервере есть число, которое клиенты могут увеличивать на 1, после этого можно реализовывать мультиплеер для игры.
Информация полезна thx.
А если мультиплеер, допустим локальный что можешь ещё посоветовать?
 
Начинающий
Статус
Оффлайн
Регистрация
9 Мар 2022
Сообщения
7
Реакции[?]
3
Поинты[?]
0
Информация полезна thx.
А если мультиплеер, допустим локальный что можешь ещё посоветовать?
Разницы никакой, если Вы с вторым игроком в одной сети, то всё будет работать. Просто запускаете сервер на своём ПК и подключаетесь, если же хотите схему без центрального сервера, то это нужно реализовывать P2P сеть по UDP протоколу, но это сложно.
 
Пользователь
Статус
Оффлайн
Регистрация
17 Июл 2021
Сообщения
463
Реакции[?]
118
Поинты[?]
10K
Это ведь тоже самое, разве нет?
Дедик - dedicated server, т.е физический сервер
VDS / VPS - virtual dedicated / private server, т.е виртуальный сервер
Да и так-то можно и без них обойтись. P2P никто не отменял, а NAT только в помощь)
 
Начинающий
Статус
Оффлайн
Регистрация
9 Мар 2022
Сообщения
7
Реакции[?]
3
Поинты[?]
0
Дедик - dedicated server, т.е физический сервер
VDS / VPS - virtual dedicated / private server, т.е виртуальный сервер
Да и так-то можно и без них обойтись. P2P никто не отменял, а NAT только в помощь)
Ну в целом я так и подумал, но все же решил написать. А на счёт P2P, пытался я написать на golang P2P чат, в целом это можно сделать, но куда легче взять, да снять VPS и не париться.
 
Пользователь
Статус
Оффлайн
Регистрация
10 Ноя 2019
Сообщения
839
Реакции[?]
135
Поинты[?]
0
Ну в целом я так и подумал, но все же решил написать. А на счёт P2P, пытался я написать на golang P2P чат, в целом это можно сделать, но куда легче взять, да снять VPS и не париться.
А я правильно понимаю что это для браузерных игр web socket?
 
Забаненный
Статус
Оффлайн
Регистрация
9 Мар 2022
Сообщения
15
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Через WinSock можешь впринципе реализовать, делается не сложно, на гитхабе и ютубе полно всего про это.
 
Эксперт
Статус
Оффлайн
Регистрация
16 Ноя 2017
Сообщения
1,570
Реакции[?]
1,266
Поинты[?]
4K
Да как угодно можно реализовать.
Если тебе важна скорость передачи - UDP
Если менее важна скорость, но тебе нужно гарантировано передавать и получать пакеты - TCP

Можно ещё использовать и WebSocket, как говорил человек выше, бонусом скажу что вебсокеты можно проксировать через Cloudflare, причём даже за бесплатно!! (там есть ток ограничения, можешь нагуглить, но тебе в самый раз пойдёт)
 
Пользователь
Статус
Оффлайн
Регистрация
10 Ноя 2019
Сообщения
839
Реакции[?]
135
Поинты[?]
0
Как вариант - для реализации мультиплеера можно использовать технологию WebSocket. Для этого Вам нужно арендовать VPS и поднять на хостинге вебсокет сервер, который бы принимал пакеты и рассылал их остальным клиентам (игрокам). Рекомендую попробовать сначала реализовать простой счётчик при помощи сокетов. На сервере есть число, которое клиенты могут увеличивать на 1, после этого можно реализовывать мультиплеер для игры.
А как реализовать общение между 2мя людьми по глобальной сети,по локалке это я понял,не сложно,а вот с глобальной сетью как,можно по подробнее?Типо надо какие-то порты или что-то такое открывать или искать
 
Пользователь
Статус
Оффлайн
Регистрация
10 Ноя 2019
Сообщения
839
Реакции[?]
135
Поинты[?]
0
Да как угодно можно реализовать.
Если тебе важна скорость передачи - UDP
Если менее важна скорость, но тебе нужно гарантировано передавать и получать пакеты - TCP

Можно ещё использовать и WebSocket, как говорил человек выше, бонусом скажу что вебсокеты можно проксировать через Cloudflare, причём даже за бесплатно!! (там есть ток ограничения, можешь нагуглить, но тебе в самый раз пойдёт)
Хотел бы узнать как реализовать общение между 2мя людьми в глобальной сети с помощью udp?
 
Эксперт
Статус
Оффлайн
Регистрация
16 Ноя 2017
Сообщения
1,570
Реакции[?]
1,266
Поинты[?]
4K
Хотел бы узнать как реализовать общение между 2мя людьми в глобальной сети с помощью udp?
Да как и обычно с TCP - открыть порт.
Если прям есть желание - набросал простой UDP клиент-сервер с гиста.
1654029117549.png

Можешь поздороваться с моим UDP сервером:

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.

 
Пользователь
Статус
Оффлайн
Регистрация
10 Ноя 2019
Сообщения
839
Реакции[?]
135
Поинты[?]
0
Да как и обычно с TCP - открыть порт.
Если прям есть желание - набросал простой UDP клиент-сервер с гиста.
Посмотреть вложение 205820

Можешь поздороваться с моим UDP сервером: Скрытое содержимое
Если я не ошибаюсь то порт открывается через настройку роутера?
И вроде как вышло подключение к твоему серверу, если правильно понял
 
Эксперт
Статус
Оффлайн
Регистрация
16 Ноя 2017
Сообщения
1,570
Реакции[?]
1,266
Поинты[?]
4K
Если я не ошибаюсь то порт открывается через настройку роутера?
И да и нет: Если у тебя нет статического ("белого") IP адреса - то скорее всего ты находишься за NAT-ом своего провайдера - а это значит что ты не откроешь просто так порт.
Попробуй открыть порт на роутере - если не откроется - звони провайдеру и спрашивай как открыть порт. (Если будут доёбываться зачем - скажи что хочешь камеры поставить, чтоб меньше вопросов задавали)

И вроде как вышло подключение к твоему серверу, если правильно понял
Ага, по логам вижу:

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.

 
Пользователь
Статус
Оффлайн
Регистрация
10 Ноя 2019
Сообщения
839
Реакции[?]
135
Поинты[?]
0
Да как и обычно с TCP - открыть порт.
Если прям есть желание - набросал простой UDP клиент-сервер с гиста.
Посмотреть вложение 205820

Можешь поздороваться с моим UDP сервером: Скрытое содержимое
И да и нет: Если у тебя нет статического ("белого") IP адреса - то скорее всего ты находишься за NAT-ом своего провайдера - а это значит что ты не откроешь просто так порт.
Попробуй открыть порт на роутере - если не откроется - звони провайдеру и спрашивай как открыть порт. (Если будут доёбываться зачем - скажи что хочешь камеры поставить, чтоб меньше вопросов задавали)


Ага, по логам вижу:
Скрытое содержимое
Спасибо, да я подключил статический айпи и открыл порт, как я понимаю когда айпи не статический намного сложнее открыть порт?
 
Сверху Снизу