Нетворк
| |
malis1 | Дата: Четверг, 28 Декабря 2017, 17:05 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Привет всем, тема такая
Существует PUN — Photon Unity Network На бесплатной версии ограничение 20 игроков на платной 100 игроков Так вот это ограничение на комнату или на весь онлайн ,т.е можно сколько угодно создать комнат ,но в них максимум могут находиться 20 игроков, или же во всей игре максимум 20 играющих игроков ?
Купить не смогу (школота все дела )
Есть вариант написать "мультиплеер" самому(по типу фотона физика обрабатывается на пк хоста(создателя комнаты) ресурсов много не займет по задумке в комнате должно быть всего 2игрока с учетом хоста) ,самый обычный, лобби в нем или создаешь комнату или же подключаешься к комнате,список комнат ....Дайте ссылку если не трудно
Сообщение отредактировал malis1 - Четверг, 28 Декабря 2017, 17:11 |
|
| |
martuk | Дата: Четверг, 28 Декабря 2017, 17:22 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| 20 игроков всего. Если хочешь делать систему комнат, пиши отдельный сервер. Самый простой вариант - питон. Можно купить сервер за 90 руб/мес на слишком известном VDS хостинге, чтобы я его называл. Но физику там не обработаешь, только если коллизии с мапой на основе карты высот. В твоем случае, проще будет делать все на юнити. Как раз там и проще реализовать клиент-сервер.
|
|
| |
drcrack | Дата: Четверг, 28 Декабря 2017, 18:08 | Сообщение # 3 |
старожил
Сейчас нет на сайте
| Цитата Самый простой вариант - питон. Это как раз-таки не самый простой вариант Смешивание таких разных языков (C# клиент и Python сервер) это тот еще гемор Проще всего — Unity на сервере Либо просто C# сервер (причем есть выбор — .Net Framework/.Net Core/Mono)
Цитата Но физику там не обработаешь, только если коллизии с мапой на основе карты высот. Все возможно, у меня на сервере BulletSharp, я туда экспортирую геометрию (и навмеш для SharpNav) из Unity одной кнопкой
Но проще конечно запускать Unity в headless режиме на сервере, тогда все будет работать из коробки
Сообщение отредактировал drcrack - Четверг, 28 Декабря 2017, 18:09 |
|
| |
martuk | Дата: Четверг, 28 Декабря 2017, 20:54 | Сообщение # 4 |
заслуженный участник
Сейчас нет на сайте
| drcrack, Говоря про физику, я имел в виду сервер на питоне. И чем они разные то, один фиг питон как два пальца простой, как раз для прототипирования серверной части. Это быстро и низкий порок вхождения. К тому же, уроков полно про сокеты. Правда тут я намешал свою точку зрения, я просто любитель запустить файлик 50кб и пусть оно себе работает спокойно. Но проще, конечно же - Unity, но это считается тяжелой артиллерией, и может быть задействована как основная только в очень простых проектах.
|
|
| |
drcrack | Дата: Четверг, 28 Декабря 2017, 21:35 | Сообщение # 5 |
старожил
Сейчас нет на сайте
| Цитата drcrack, Говоря про физику, я имел в виду сервер на питоне. Для питона тоже есть Bullet, но это не повод на нем сервер писать
Цитата И чем они разные то, один фиг питон как два пальца простой, как раз для прототипирования серверной части. Это быстро и низкий порок вхождения Они разные тем, что они разные Придется один и тот же код писать несколько раз на разных языках, не глупо ли это, когда ты работаешь один? Использование C# на клиенте и на сервере позволяет часть кода (иногда очень большую, зависит от игры) сделать общей
Цитата Правда тут я намешал свою точку зрения, я просто любитель запустить файлик 50кб и пусть оно себе работает спокойно Время программиста намного дороже оперативной памяти
Цитата Но проще, конечно же - Unity, но это считается тяжелой артиллерией, и может быть задействована как основная только в очень простых проектах. Можно с него начать, а потом при необходимости переписать Нет смысла сразу пытаться сделать идеально
|
|
| |
martuk | Дата: Четверг, 28 Декабря 2017, 22:13 | Сообщение # 6 |
заслуженный участник
Сейчас нет на сайте
| Ну ладно, это все очень субъективно.
Цитата drcrack ( ) Придется один и тот же код писать несколько раз на разных языках, не глупо ли это, когда ты работаешь один? Не придется. Не глупо.
Цитата drcrack ( ) Использование C# на клиенте и на сервере позволяет часть кода (иногда очень большую, зависит от игры) сделать общей Разумно в том случае, если боимся запутаться.
Цитата drcrack ( ) Время программиста намного дороже оперативной памяти В точку. Кстати о производительности, питон довольно хорошо справляется с нагрузками, и скрипт может работать годами при грамотной организации разумеется (Может, но слишком много зависимостей). Тут еще нужно уметь подобрать библиотеку работы с потоками. Решений куча.
Цитата drcrack ( ) Нет смысла сразу пытаться сделать идеально Идеально - попросить сделать знающего человека. Сам ты всегда будет допиливать до бесконечности Не бывает ничего идеального, каждое решение имеет место быть.
Вот я думаю, опу обязательно физику держать на сервере? Обязательно ли авторитарный сервер выстраивать? Это же нагрузка. Разумно ли сделать его полу-авторитарным? Математику считать на клиентах, а на сервере лишь ограничиться рядом нехитрых проверок?
Сообщение отредактировал martuk - Четверг, 28 Декабря 2017, 22:23 |
|
| |
drcrack | Дата: Четверг, 28 Декабря 2017, 22:48 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| Как нет если да
Взять хотя бы собственно работу с сетью Вместо одной реализации сокетов, отправки, сериализации и остального придется делать две на разных языках
Каждую сущность, который будет передаваться по сети, придется описывать 2 раза И еще проверять, чтобы сериализация работала одинаково Хорошо если тебе подходит JSON, но что если нужно экономить трафик и хочется бинарный протокол?..
Каждую проверку, которая делается сначала на клиенте, а потом на сервере, придется писать 2 раза
Пример: Представь есть абилка которую можно нажать если есть 50 энергии и противник не дальше 100 метров Это нужно проверять на клиенте каждый кадр, чтобы в интерфейсе показывать ее как активную или нет А когда человек нажмет ее на клиенте, нужно будет проверить то же самое на сервере (вдруг он читер?)
В итоге у тебя будет очень много дублирующегося кода на разных языках, который делает одно и то же
Цитата Вот я думаю, опу обязательно физику держать на сервере? Обязательно ли авторитарный сервер выстраивать? Это же нагрузка. Разумно ли сделать его полу-авторитарным? Математику считать на клиентах, а на сервере лишь ограничиться рядом нехитрых проверок? Зависит от игры, но обычно если подразумевается хоть какая-то физика (даже просто статичная геометрия + пули), то сервер должен быть авторитарным
Лучше нагрузка чем отрицательные отзывы в стиме из-за читеров
Сообщение отредактировал drcrack - Четверг, 28 Декабря 2017, 22:53 |
|
| |
martuk | Дата: Пятница, 29 Декабря 2017, 13:54 | Сообщение # 8 |
заслуженный участник
Сейчас нет на сайте
| Цитата drcrack ( ) Лучше нагрузка чем отрицательные отзывы в стиме из-за читеров Лучше разработать систему отлова читеров чем оплачивать счета) Это тоже целая наука. Я бы еще поспорил на какую тему статей больше
Сообщение отредактировал martuk - Пятница, 29 Декабря 2017, 13:55 |
|
| |
drcrack | Дата: Пятница, 29 Декабря 2017, 15:11 | Сообщение # 9 |
старожил
Сейчас нет на сайте
| Цитата Лучше разработать систему отлова читеров чем оплачивать счета) Это тоже целая наука. Я бы еще поспорил на какую тему статей больше Есть пример современных экшн игр с такой системой? Чтобы не было авторитарного сервера, и при этом не было проблем с читерами?
PS Кстати, если игра предполагает ботов, кто будет ими управлять, если на сервере нет физики? Как они будут знать, когда можно стрелять, а когда цель за углом?
|
|
| |
martuk | Дата: Пятница, 29 Декабря 2017, 18:20 | Сообщение # 10 |
заслуженный участник
Сейчас нет на сайте
| Цитата drcrack ( ) Есть пример современных экшн игр с такой системой? Чтобы не было авторитарного сервера, и при этом не было проблем с читерами? Не могу я тебе примеров привести, потому что нет таких. Никто и не делает полностью не авторитарным, это глупо. А читеры есть везде, без этого не обойтись. Нужно соблюдать баланс. Сервер не обязан тянуть на себе каждый аспект игрового мира. Ключевое слово 'Не обязан', но может конечно. Если у нас встает вопрос именно про читеров, то таким способом с ними не борются.
Цитата drcrack ( ) PS Кстати, если игра предполагает ботов, кто будет ими управлять, если на сервере нет физики? Как они будут знать, когда можно стрелять, а когда цель за углом? Это математика, не вижу проблемы. Но и твой вариант подходящий, правда только для таких игр аля CS 1.6.
Сообщение отредактировал martuk - Пятница, 29 Декабря 2017, 18:23 |
|
| |
drcrack | Дата: Пятница, 29 Декабря 2017, 20:02 | Сообщение # 11 |
старожил
Сейчас нет на сайте
| Цитата Это математика, не вижу проблемы. Но и твой вариант подходящий, правда только для таких игр аля CS 1.6. Ну т.е. тебе на сервере нужна вся статичная геометрия и как минимум рейкасты, чтобы знать, видит бот цель или нет Зачем кодить это самому, если можно использовать готовые движки, тот же Bullet?
Цитата Не могу я тебе примеров привести, потому что нет таких. Ну да, это типо намек был что такой системы еще не придумали И раз за все время существования сетевых игр ее так и не появилось, можно предположить что ее разработка будет очень дорогим удовольствием, как и поддержка. И даже железо для нее нужно будет не слабее чем для физики
Цитата Сервер не обязан тянуть на себе каждый аспект игрового мира. Важные аспекты — обязан Если у тебя есть выстрелы и пули, попадания должен рассчитывать сервер Если есть разный дамаг в разные части тела, нужно также синхронизировать анимацию, и сервер тоже должен уметь с ней работать Если всего этого нет, читеры сожрут игру заживо Исключения очень редки
|
|
| |
|