 |

28.05.2025, 21:25
|
|
Познающий
Регистрация: 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
|
|
|

28.05.2025, 22:13
|
|
Постоянный
Регистрация: 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, но его надо уметь готовить. А так, обычно не так много и требуется, можно и свой написать или какой легковестный мультиплексирующий системные вызовы в гитхабе найти
|
|
|

29.05.2025, 00:46
|
|
Участник форума
Регистрация: 29.04.2018
Сообщений: 197
С нами:
4233258
Репутация:
503
|
|
Только Asio. Достаточной быстрый и простой асинхронный фреймворк для тех, кто не хочет заморачиваться и писать свои обертки над epoll/kqueue/winsock. Практически ничего лишнего, никаких HTTP, криптографии, работы с форматами и прочего хлама.
Компилятор от C++11. Если требование C++03 это вкусовщина а не доступный компилятор, то можно написать достаточно простые обертки.
|
|
|

29.05.2025, 02:38
|
|
Познающий
Регистрация: 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#) ?
|
|
|

29.05.2025, 16:58
|
|
Постоянный
Регистрация: 02.05.2018
Сообщений: 772
С нами:
4227583
Репутация:
1717
|
|
Сообщение от darcaster
Насколько ASIO будет быстрее (из-за обилия smart pointers и т.д. будет профитнее, скажем стандартной сетки от .net core и C#) ?
Умные указатели дают минимальный оверхед, болезненный только если счётчик ссылок в shared_ptr. unique_ptr не стоит ничего( ну мож оптимизации компилятор какие пропустит). буфер асио позволяет с минимумом копирований с данными работать, но для 10к онлайна пофиг. asio будет быстрым настолько насколько возможно для обертки
|
|
|

06.09.2025, 21:19
|
|
Новичок
Регистрация: 01.09.2025
Сообщений: 2
С нами:
369795
Репутация:
0
|
|
Однозначно ASIO. POCO это прям java-style + там нет тех возможностей, которые даст asio, а есть те, которые ну прям не особо нужны такой штуке как сервер ММО. Про ACE буквально только что узнал, но что-то он 11 лет кажется не развивается уже никуда.
|
|
|

06.09.2025, 22:21
|
|
Познающий
Регистрация: 19.08.2019
Сообщений: 70
С нами:
3545136
Репутация:
1
|
|
Почти весь WOW держится или на boost.asio, или на ACE
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|