Я собираюсь разработать небольшую игру для Android с многопользовательской функцией. Я создал серверную платформу на C ++, используя библиотеку eNet, и я хотел бы использовать эту инфраструктуру для создания сервера.
Итак, есть ли сетевая библиотека, например, eNet, совместимая с Java и C ++? Я знаю, что существуют jEnet (но очень устарела Java-enet-wrapper (https://github.com/csm/java-enet-wrapper), это незрелый.
Вы можете попробовать UDT: http://udt.sourceforge.net/
Я использовал его раньше с хорошим успехом для связи между процессами Java и C ++.
Проверять, выписываться https://github.com/julienr/libenet-android.
ENet гораздо более целесообразен, чем UDT в вашем случае, так как UDT может потреблять много ресурсов процессора, а игровая служба, по крайней мере, надеется на множество соединений. Отличие состоит в реализации контроля перегрузки UDT, который имеет относительно высокую нагрузку на процессор. UDT великолепен, но больше предназначен для больших передач с высокой пропускной способностью на большие расстояния, а не для небольших транзакций с высокой задержкой, которые желательны в играх.
Также обратите внимание, что алгоритмы управления перегрузкой основного потока не очень хорошо работают с небольшими транзакциями. Они работают, отслеживая RTT каждого пакета в транзакции и / или отслеживая частоту потери пакетов в транзакции, что является спорным, когда каждый переход составляет только 1-2 пакета в среднем. Дополнительные требования протокола контроля перегруженности будут влиять на задержку, даже если сам контроль перегруженности вряд ли когда-либо будет задействован, если передачи будут небольшими.