Войти
Unreal EngineФорумОбщее

Dedicated Server: Зачем? (2 стр)

Страницы: 1 2 3 4 Следующая »
#15
(Правка: 22:40) 22:31, 14 янв. 2022

Max Dark
> Интересует когда и зачем нужен Dedicated Server?
Может глупость скажу, но ИМХО игроков надо как-то свести, чтобы каждый мог найти себе игроков для боя. Для обмена данными нужно знать адреса тех, с кем ты бёшься. А как ими обменяться?  Так вот надо же ж где-то иметь "блатхату" для их встречь. Один постоянный адрес, который вбит в игру. Игрочишка включает игру, давит кнопку "война!" и вуаля! - его клиент соединяется с IP твоего сервера, а серверный софт рассказывает клиенту с кем тебе предстоит биться и выдаёт ему их IP.
Далее твой сервер им уже и не нужен, ибо обмен данными можно наладить напрямую в обход сервера. Но при поиске игроков без него не обойтись. Впрочем СтимAPI даёт свои средства разработчикам. Там процесс связи игроков называется свадьбой - marriage. При этом тебе свой сервер не понадобится. Сервер valve работает с этим API так, как-будто он и есть твой сервер. Но надо зарегистрироваться как разраб, заплатить 100 бакинских рублей и кликнуть галку о неразглашении их "секретов". Вот почему ты нигде не найдёшь описания как этим API пользоваться, но ты сможешь задавать вопросы на их форуме и смотреть примеры на их сайте.


#16
(Правка: 22:50) 22:48, 14 янв. 2022

ivashko
> Вот почему ты нигде не найдёшь описания как этим API пользоваться

Ерунда. Стим апи прекрасно документированы, с вагоном примеров. Портировал большой мультиплеерный шутер пропитанный стимом на ЕГС.почему со стороны Стима никаких проблем не было.
Хотя вру, был баг с коллбэками, но и все на этом.

#17
(Правка: 14:46) 14:43, 15 янв. 2022

@!!ex
> Ерунда. Стим апи прекрасно документированы, с вагоном примеров. Портировал
> большой мультиплеерный шутер пропитанный стимом на ЕГС.почему со стороны Стима
> никаких проблем не было.
> Хотя вру, был баг с коллбэками, но и все на этом.

Документацию я видел только на их сайте. Довольно лаконично. ( По состоянию на 2017й год) И больше расчёт на то, что разраб сам будет ковыряться в готовой игре Starwar которая и служит примером. Но для доступа тебе нужен аккаунт разработчика и желание ковыряться в чужой игре не понимая где тут API, а где сама игра.
А где ты видел "прекрасно документирован, с вагоном примеров"? Дай ссылку плз если это не сайт Стим.

#18
(Правка: 15:14) 14:56, 15 янв. 2022

Хотя.... раз уж у тебя иммунитет на Стим, может ты выложишь основные фишки? Можно сделать отдельную тему "SteamAPI" и кинуть сюда ссылку на него. А в тему скинуть примеры организации сетевой игры, ачивок, защиты. Я там немного разобрался с защитой, но чутьё подсказывает, что возможности этого API  гораздо ширше... не, не так - ширеее. Во.

#19
15:09, 15 янв. 2022

ivashko
> которая и служит примером
Это и есть вагон примеров. Целая игра использующая API по максимуму.

ivashko
> Но для доступа тебе нужен аккаунт разработчика и желание ковыряться в чужой
> игре не понимая где тут API, а где сама игра.
Да... А как должно быть?

ivashko
> может ты выложишь основные фишки
Какие основные фишки? В документации всё есть.
Есть вопросы конкретные - задавай. А так - разговор ни о чем.

#20
(Правка: 16:03) 15:26, 15 янв. 2022

@!!ex
> Есть вопросы конкретные - задавай. А так - разговор ни о чем.
Ну да, я видел, что ещё в конце 17го они дополняли документацию и даже чё-то пытались перевести на руссиш. Но мне тада уже была поздно. Нада была в начале 17га.
Но раз уж у тебя есть ответы, я так и быть подберу под них вопросы. Скоро может и мне пригодится.
Вопросы.
1 Организация сетевой игры.
Пример кода:
-соединение клиента с сервером Стим, запрос списка игроков, и установка соединения с ними, (передача данных между ними  если она идёт через стим API, а если идёт напрямую, то где там их IP адреса?)
2) Достижения игроков.
Пример кода:
- в определённом месте программы  вставляекм код, который пошлёт указание серверу присвоить игроку "орден" за достигнутые в игре успехи и этот значёк появляется у него на аккаунте.
-чтобы не спамить орденами, в следующий раз проверяем, есть ли у него такой орден и если есть, то считаем количество достижений и присваиваем другой в случае если программа зашла сюда в 10й раз.
-есть ли возможность подсчёта количества раз через SteamAPI или надо хранить эти данные в файлах на компьютере клиента?
3) Защита игры.
Пример кода:
-клиент игры проверяет есть ли у данного игрока клиент стим и право играть в эту игру. В онлайн и в оффлайн ржиме.

#21
(Правка: 15:54) 15:54, 15 янв. 2022

предварительно:
Зашёл в стим и увидел кучу документации на русском. Сделали всё-таки. Но ты всё-равно примеры работающие скинь. Мало ли что...

#22
16:04, 15 янв. 2022

ivashko
Дай работающий код? Так иди в пример из документации там всё есть.
Я готов отвечать на вопросы по существу, а не заниматься поиском готовых кусков кода для тебя.

#23
16:11, 15 янв. 2022

ivashko

уж что что а подрубить steam API к ue4 вообще плевое дело! Даже я справился за 2 дня по статейкам :)
p.s на маркете полно шаблонов к тому же, бери не хочу:)

#24
16:15, 15 янв. 2022

@!!ex

Я готов отвечать на вопросы по существу, а не заниматься поиском готовых кусков кода для тебя.

Я думаю он применительно к UE4 спрашивает.

Ну например вот вопрос:
Покажи каким образом обновлять счетчик на текущее число игроков в открытой сессии, игрок зашел стало 3/8, где 3 текущее число игроков, 8 - макс. число игроков. Игрок вышел, должно стать 2/8.

#25
(Правка: 16:21) 16:21, 15 янв. 2022

i4ugui
может для вас с ивашкой еще и гайды написать отдельно?: ) он и так каждый чих тут спрашивает уже, хотите сделать из раздела по Ue4 -WiKi ?:)
Хитрожопики :) ааай

#26
16:26, 15 янв. 2022

sun2sun
Ты в любой бочке затычка да? Обращаюсь не к тебе, понятное дело у тебя такие знания появятся чуть ранее чем никогда.

#27
16:29, 15 янв. 2022

i4ugui
> Покажи каким образом обновлять счетчик на текущее число игроков в открытой
> сессии
Ты когда сервер регаешь в стиме - указываешь максимальное количество игроков через SetMaxPlayerCount.
Подсчет игроков ведется автоматически, когда к серверу подключается игрок - счетчик увеличивается, когда отключается - уменьшается.
Естественно так могут считаться только стимовские игроки. Если кроссплей или боты - есть отдельная функция по установке количества ботов, а также анонимный логин, который позволяет добавляться к серверу игроку, который не является стим пользователем.
В целом смотри ISteamGameServer

#28
16:31, 15 янв. 2022

@!!ex

Ты когда сервер регаешь в стиме - указываешь максимальное количество игроков через SetMaxPlayerCount.
Подсчет игроков ведется автоматически, когда к серверу подключается игрок - счетчик увеличивается, когда отключается - уменьшается.
Естественно так могут считаться только стимовские игроки. Если кроссплей или боты - есть отдельная функция по установке количества ботов, а также анонимный логин, который позволяет добавляться к серверу игроку, который не является стим пользователем.
В целом смотри ISteamGameServer

Я возможно был не точен в вопросе, я применительно к listen серверву спрашивал, когда steam как посредник тонелит игроков к тому, на чьей тачке хостится.

#29
(Правка: 16:49) 16:33, 15 янв. 2022

i4ugui
Ну и какая разница?
Кто у тебя сервер, тот ISteamGameServer и менеджит.
Указываешь дедик он или нет через ISteamGameServer.SetDedicatedServer

UPD:
ISteamGameServer  - это не сервер. Это интерфейс через который твой сервер общается со стимом. Сообщает стиму параметры твоего сервера(IP,PORT, правила игры), сообщает о коннекте и дисконнекте игроков к твоему серверу плюс ты через него можешь проверять что игроки реальные и подключены только один раз. Стиму совершенно фиолетово дедик это или листенер, насколько я знаю он никак своё поведение от типа сервера не меняет и функция нужна только чтобы пользователю сообщать что это дедик.

UPD2:
i4ugui
> steam как посредник тонелит игроков
Боюсь соврать, но вроде бы нет такого функционала. Стим только отдает список серверов с адресами и портами, тунелированием и обходом NAT не занимается.
Для обхода ната можно использовать Steamworks.SteamNetworking.SendP2PPacket, но тут я не подскажу.

Страницы: 1 2 3 4 Следующая »
Unreal EngineФорумОбщее