Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Основы клиент - серверных приложений
#11
Temptation Написал:Всем привет. Строю клиент серверную игру на уе4. Хотелось бы чтоб понакидали ссылки на нормальные статьи о разработке таких приложений, ссылки на видео и прочее который вы находили и я бы смог их прочитать)

Потомучто то что гугл мне выдает весьма мало инфы хотя может быть я плохо ищу.

Также если можете скажите правильно ли я все понимаю по этапно :

на примере просто для начала

Сделать лаунчер с возможностью реги / и авторизации, который будет посылать(??? хз как можете подсказать какие примерно функции) GET(?) запрос серверу авторизации, тот будет биндится к определенному IP и порту, и если пароль и логин верен и есть в базе както подключится к этому айпи и порту перенаправляет данные на игровой сервер который читает логин и пароль, выбираем сервер из списка. смотрит если ли персонажи и если есть покзывает какой если нет то можно создать нового далее регистрируем персонажа, вводим имя и заходим в игру.

Все весьма просто так кажется но честно говоря я понятие не имею с чего начать все это писать, есть какие нибудь стратегии или концепты как все это пишется изначально, с чего начинается и прочее.

Спасибо:Olen':

Другими словами куда копать какие функции искать?

Temptation Написал:блин я запутался малясь.

Значит для лучшей производительности лучше всетаки асинхрон нон блокинг?

Если БД запрещены, то как производить к ней запросы.

Т.е есть коннект к серверу, сервер дает запрос в бд? это уже отдельным тридом?

Если я пишу сервер логина и т.д на с++ не глупо использовать библиотеку Boost:asio http://www.boost.org/ ??

Добавлено через 31 минуту
Ладно я углублюсь в изучение если что еще отпишу сюда))




Наши кодеры брали за основу вот такую вещь (для фирмы, чтобы сэкономить время):
https://forums.unrealengine.com/showthre...tarter-Kit

в UE4 уже есть несколько заготовок Networking модулей (Steam , ipv4, udp), все что надо - правильно с ними работать. Документация неплохая.

Для сети классически делают отдельный поток main-net-thread - слушатель принимающий сообщения из сети, складывает в очередь для обработки. Пул net-worker-thread-oв таскают оттуда сообщения (с маппингом 1 канал на поток, т.е одного и того-же клиента обрабатывает один и тот-же worker. меньше головной боли с синхронизацией).

Если blocking IO то отдельный поток приема данных обязателен (иначе будет вечно висеть в ожидании данных, когда есть более важные дела). NBIO такого минуса не имеет, но будет тратиться время на poll сообщений в main loop.

Лаунчер лучше всего все-таки сделать в виде webview на awesomium, на худой конец IE. Легче править дизайн, нет лишних затрат на кодинг морды лаунчера на плюсах, легче изменять его (просто html/css). Интеграция с нативным кодом через activex/js либо подобные системы.
На другой стороне - просто веб-сервер. Без разницы какой.
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Ответ
#12
Цитата:Наши кодеры брали за основу вот такую вещь (для фирмы, чтобы сэкономить время):
https://forums.unrealengine.com/show...MO-Starter-Kit

Я это не хочу брать а для себя сделать с нуля хочу чтото годное) сам)

Цитата:в UE4 уже есть несколько заготовок Networking модулей (Steam , ipv4, udp), все что надо - правильно с ними работать. Документация неплохая.

Видел, частично буду юзать)


Цитата:Для сети классически делают отдельный поток main-net-thread - слушатель принимающий сообщения из сети, складывает в очередь для обработки. Пул net-worker-thread-oв таскают оттуда сообщения (с маппингом 1 канал на поток, т.е одного и того-же клиента обрабатывает один и тот-же worker. меньше головной боли с синхронизацией).

Если blocking IO то отдельный поток приема данных обязателен (иначе будет вечно висеть в ожидании данных, когда есть более важные дела). NBIO такого минуса не имеет, но будет тратиться время на poll сообщений в main loop.

Спасибо)) я уже примерно чето начинаю понимать хотя не знаю сколько недель займет мне реализация хотябы логин сервера и лобби сервера(


Цитата:Лаунчер лучше всего все-таки сделать в виде webview на awesomium, на худой конец IE. Легче править дизайн, нет лишних затрат на кодинг морды лаунчера на плюсах, легче изменять его (просто html/css). Интеграция с нативным кодом через activex/js либо подобные системы.
На другой стороне - просто веб-сервер. Без разницы какой.

Уже начал на electron тот что делает десктоп приложения из html5/css3/js/angularjs ну и все что надо) компилит в экзешник и норм)

Спасибо всем за советы, прошу еще если найдете видео или вы видели видео с более подробным описанием всех вещей было бы круто) не хочу тупо плагиатить код, а уметь чтото самому делать)))
Ответ
#13
Temptation Написал:блин я запутался малясь.

Значит для лучшей производительности лучше всетаки асинхрон нон блокинг?

Если БД запрещены, то как производить к ней запросы.

Т.е есть коннект к серверу, сервер дает запрос в бд? это уже отдельным тридом?

Если я пишу сервер логина и т.д на с++ не глупо использовать библиотеку Boost:asio http://www.boost.org/ ??

Добавлено через 31 минуту
Ладно я углублюсь в изучение если что еще отпишу сюда))
посмотрите в сторону qt. http://doc.qt.io/qt-5/qtnetwork-programming.html
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Загрузка armor.grp в веб клиент пару вопросов OneThunder 8 2,190 07-30-2016, 11:00 PM
Последний пост: OneThunder
  c# клиент-сервер kpNemo 1 2,209 03-22-2016, 10:38 AM
Последний пост: PROGRAMMATOR
  С# клиент-сервер kpNemo 8 4,116 06-21-2015, 01:35 PM
Последний пост: kpNemo

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)