Основы клиент - серверных приложений - Страница 2 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming

Программирование / Programming
Ищете помощи в написании программы, есть сложность в выполнении задания (в институте и т.д.), пожалуйста, спросите у нас в данном форуме и мы обязательно вам поможем.

Ответ
Опции темы
Непрочитано 04.10.2015, 15:27   #11
Пользователь

По умолчанию Re: Основы клиент - серверных приложений

Цитата:
Сообщение от Temptation Посмотреть сообщение
Всем привет. Строю клиент серверную игру на уе4. Хотелось бы чтоб понакидали ссылки на нормальные статьи о разработке таких приложений, ссылки на видео и прочее который вы находили и я бы смог их прочитать)

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

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

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

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

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

Спасибо

Другими словами куда копать какие функции искать?
Цитата:
Сообщение от Temptation Посмотреть сообщение
блин я запутался малясь.

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

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

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

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

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



Наши кодеры брали за основу вот такую вещь (для фирмы, чтобы сэкономить время):
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 либо подобные системы.
На другой стороне - просто веб-сервер. Без разницы какой.
__________________
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Aquanox вне форума Ответить с цитированием
Непрочитано 04.10.2015, 15:34   #12
Супергерой

Автор темы (Топик Стартер) Re: Основы клиент - серверных приложений

Цитата:
Наши кодеры брали за основу вот такую вещь (для фирмы, чтобы сэкономить время):
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 ну и все что надо) компилит в экзешник и норм)

Спасибо всем за советы, прошу еще если найдете видео или вы видели видео с более подробным описанием всех вещей было бы круто) не хочу тупо плагиатить код, а уметь чтото самому делать)))
OneThunder вне форума Ответить с цитированием
Непрочитано 20.01.2016, 19:18   #13
Заинтересовавшийся

По умолчанию Re: Основы клиент - серверных приложений

Цитата:
Сообщение от Temptation Посмотреть сообщение
блин я запутался малясь.

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

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

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

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

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


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клиент World of tanks DuMoH4uK Курилка / Yak floor 3 09.06.2014 20:58
Клиент Lineage2 на Linux "Ubuntu" Tonchi Курилка / Yak floor 19 05.03.2011 15:42
1.9 клиент + 2408 ревизия Aizen-Sama Серверная часть 6 28.06.2010 18:40
Клиент не запускается, ошибок не выдает ellseworth Lineage II 3 20.01.2010 11:49
Не запускатся клиент zSnakez Lineage II 5 20.09.2008 17:55


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 12:11. Часовой пояс GMT +3.

Вверх