HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 28.05.2025, 21:25
darcaster
Познающий
Регистрация: 19.08.2019
Сообщений: 70
С нами: 3545136

Репутация: 1
По умолчанию

Всем привет, комрады! Вопрос назрел: Какой из сетевых фреймворков выбрать для эмуля сервера MMO ? Нужно:

1. Кроссплатформенность (Windows, Linux, NetBSD)

2. Способность держать большой онлайн, и решение проблемы 10 000.

3. Желательно по стилю ближе C++ 03, это raw pointers и никаких auto в коде.

Из того, что имеем: это POCO, ACE, Asio.

Asio совсем мимо пункта 3, но если есть огромные преимущества, то можно проглотить.

ACE использует Мангос и ТуртлВов; на Asio живёт TrinityCore. Собственно вопросы,

- может ли кто-то что-то рассказать про POCO именно в ключе вопроса ММО фришардов;

- есть ли пример сервера с живым онлайном в 5к на базе Asio;

- примеры проблем с этими фреймворка и, если у кого-то были, или причины и опыт миграции с одного на другой.

- возможно, есть ещё достойные и проверенные решения, которые я не упомянул

//Start
 
Ответить с цитированием

  #2  
Старый 28.05.2025, 22:13
Projack
Постоянный
Регистрация: 02.05.2018
Сообщений: 772
С нами: 4227583

Репутация: 1717


По умолчанию

Цитата:
Сообщение от darcaster  

Всем привет, комрады! Вопрос назрел: Какой из сетевых фреймворков выбрать для эмуля сервера MMO ? Нужно:
1. Кроссплатформенность (Windows, Linux, NetBSD)
2. Способность держать большой онлайн, и решение проблемы 10 000.
3. Желательно по стилю ближе C++ 03, это raw pointers и никаких auto в коде.
Из того, что имеем: это POCO, ACE, Asio.

Asio совсем мимо пункта 3, но если есть огромные преимущества, то можно проглотить.

ACE использует Мангос и ТуртлВов; на Asio живёт TrinityCore. Собственно вопросы,
- может ли кто-то что-то рассказать про POCO именно в ключе вопроса ММО фришардов;
- есть ли пример сервера с живым онлайном в 5к на базе Asio;
- примеры проблем с этими фреймворка и, если у кого-то были, или причины и опыт миграции с одного на другой.
- возможно, есть ещё достойные и проверенные решения, которые я не упомянул
//Start
Когда я последний раз смотрел POCO оно не умело в epoll, а тебе он по хорошему нужен, чтобы хендлить большое количество коннектов. Если они допилили, то можно посмотреть. Но кажется если ACE используется в 2-х проектах, а буст не подходит, то стоит в его сторону смотреть как минимум из-за того, что есть рабочий пример, а сетевой стек всегда можно заменить

Тут кажется мало тех кто имплементил/юзал разные сетевые стеки в c/cpp. Если бы не ограничение по версии языка - я бы брал asio, но его надо уметь готовить. А так, обычно не так много и требуется, можно и свой написать или какой легковестный мультиплексирующий системные вызовы в гитхабе найти
 
Ответить с цитированием

  #3  
Старый 29.05.2025, 00:46
verbrannt
Участник форума
Регистрация: 29.04.2018
Сообщений: 197
С нами: 4233258

Репутация: 503
По умолчанию

Только Asio. Достаточной быстрый и простой асинхронный фреймворк для тех, кто не хочет заморачиваться и писать свои обертки над epoll/kqueue/winsock. Практически ничего лишнего, никаких HTTP, криптографии, работы с форматами и прочего хлама.

Компилятор от C++11. Если требование C++03 это вкусовщина а не доступный компилятор, то можно написать достаточно простые обертки.
 
Ответить с цитированием

  #4  
Старый 29.05.2025, 02:38
darcaster
Познающий
Регистрация: 19.08.2019
Сообщений: 70
С нами: 3545136

Репутация: 1
По умолчанию

Цитата:
Сообщение от verbrannt  

Только Asio. Достаточной быстрый и простой асинхронный фреймворк для тех, кто не хочет заморачиваться и писать свои обертки над epoll/kqueue/winsock. Практически ничего лишнего, никаких HTTP, криптографии, работы с форматами и прочего хлама.
Компилятор от C++11. Если требование C++03 это вкусовщина а не доступный компилятор, то можно написать достаточно простые обертки.
Ну вот тут есть пара моментов:

1. Не всегда криптография и http это мусор (хотя их всегда можно докинуть, и да, POCO в этом плане выглядит как too much)

2. Есть ли примеры живого использования того же TrinityCore на проде ?

3. Насколько ASIO будет быстрее (из-за обилия smart pointers и т.д. будет профитнее, скажем стандартной сетки от .net core и C#) ?
 
Ответить с цитированием

  #5  
Старый 29.05.2025, 16:58
Projack
Постоянный
Регистрация: 02.05.2018
Сообщений: 772
С нами: 4227583

Репутация: 1717


По умолчанию

Цитата:
Сообщение от darcaster  

Насколько ASIO будет быстрее (из-за обилия smart pointers и т.д. будет профитнее, скажем стандартной сетки от .net core и C#) ?
Умные указатели дают минимальный оверхед, болезненный только если счётчик ссылок в shared_ptr. unique_ptr не стоит ничего( ну мож оптимизации компилятор какие пропустит). буфер асио позволяет с минимумом копирований с данными работать, но для 10к онлайна пофиг. asio будет быстрым настолько насколько возможно для обертки
 
Ответить с цитированием

  #6  
Старый 06.09.2025, 21:19
serhio
Новичок
Регистрация: 01.09.2025
Сообщений: 2
С нами: 369795

Репутация: 0
По умолчанию

Однозначно ASIO. POCO это прям java-style + там нет тех возможностей, которые даст asio, а есть те, которые ну прям не особо нужны такой штуке как сервер ММО. Про ACE буквально только что узнал, но что-то он 11 лет кажется не развивается уже никуда.
 
Ответить с цитированием

  #7  
Старый 06.09.2025, 22:21
darcaster
Познающий
Регистрация: 19.08.2019
Сообщений: 70
С нами: 3545136

Репутация: 1
По умолчанию

Почти весь WOW держится или на boost.asio, или на ACE
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.