Вторник, 26 Ноября 2024, 00:40

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Нетворк
malis1Дата: Четверг, 28 Декабря 2017, 17:05 | Сообщение # 1
был не раз
Сейчас нет на сайте
Привет всем, тема такая

Существует PUN — Photon Unity Network
На бесплатной версии ограничение 20 игроков на платной 100 игроков
Так вот это ограничение на комнату или на весь онлайн ,т.е можно сколько угодно создать комнат ,но в них максимум могут находиться 20 игроков,
или же во всей игре максимум 20 играющих игроков ?

Купить не смогу (школота все дела )
lovegcup
Есть вариант написать "мультиплеер" самому(по типу фотона физика обрабатывается на пк хоста(создателя комнаты) ресурсов много не займет по задумке в комнате должно быть всего 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кб и пусть оно себе работает спокойно

Время программиста намного дороже оперативной памяти B)

Цитата
Но проще, конечно же - 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 ()
Лучше нагрузка чем отрицательные отзывы в стиме из-за читеров

Лучше разработать систему отлова читеров чем оплачивать счета) Это тоже целая наука. Я бы еще поспорил на какую тему статей больше crazy


Сообщение отредактировал 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?

Цитата
Не могу я тебе примеров привести, потому что нет таких.

Ну да, это типо намек был что такой системы еще не придумали :D
И раз за все время существования сетевых игр ее так и не появилось, можно предположить что ее разработка будет очень дорогим удовольствием, как и поддержка. И даже железо для нее нужно будет не слабее чем для физики

Цитата
Сервер не обязан тянуть на себе каждый аспект игрового мира.

Важные аспекты — обязан
Если у тебя есть выстрелы и пули, попадания должен рассчитывать сервер
Если есть разный дамаг в разные части тела, нужно также синхронизировать анимацию, и сервер тоже должен уметь с ней работать
Если всего этого нет, читеры сожрут игру заживо
Исключения очень редки
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг