Является ли Lua лучшим / самым быстрым выбором для игрового сервера? - PullRequest
3 голосов
/ 21 октября 2009

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

Открытый исходный код может быть хорошим выбором, но не потому, что я хочу держать несколько внутренних классов закрытыми.

Два других варианта, о которых я подумал, - это плагины в качестве внешних библиотек и Lua сценарии.

Проблема с библиотеками (DLL) заключается в том, что кросс-платформенная совместимость обязательна, потому что это своего рода игровой сервер, и он в основном предназначен для использования на выделенных серверах (часто Linux), но многие люди также будут использовать это на их локальной машине (в основном Windows).

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

Мои сомнения разумны, или Луа будет хорошим решением? Также можете ли вы придумать какой-нибудь лучший / другой вариант для моего беспокойства?

Подводя итог важным аспектам:

  • кроссплатформенная совместимость
  • хорошая производительность (-> онлайн игра)
  • плагины / скрипты, которые каждый может создать, если он / она знает язык, может быть это Lua, C или что-то еще
  • опция для плагинов / скриптов с закрытым исходным кодом (не так важно, но было бы неплохо:)

Ответы [ 3 ]

5 голосов
/ 23 октября 2009

Боюсь, единственный, кто может ответить, если Луа будет достаточно быстр для тебя, это ... ты. Мы понятия не имеем, что именно вы делаете и как вы это делаете. Мое предложение состоит в том, чтобы создать прототип и измерить. Напишите небольшую, но актуальную часть вашей системы как на Lua, так и на C / C ++, измерьте производительность обоих и решите, достаточно ли быстр Lua. Имея WoW в качестве примера, Lua кажется достаточно быстрым для клиентской / пользовательской части игры, но я ничего не могу сказать о сервере. Но в любом случае, я сомневаюсь, что есть язык, который быстрее и легче встраивается по сравнению с Lua ( заявление об отказе: я сам не измерял производительность Lua, особенно в сравнении с другими подобными языками, так что примите это с большой долей соли )

Вы упоминаете что-то о том, что библиотеки DLL не являются кроссплатформенными, так что просто обратите внимание: если вы хотите использовать библиотеки DLL для плагинов и загружать их динамически, такая же функциональность существует в Linux. «DLL» называются «разделяемыми библиотеками» или «общими объектами» и обычно имеют расширение .so . И вместо окон LoadLibrary , GetProcAddress и FreeLibrary , есть dlopen , dlsym и dlclose .

2 голосов
/ 21 октября 2009

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

1 голос
/ 07 декабря 2009

Вы когда-нибудь думали об AngelScript? Я тоже мало что знаю об этом, но, похоже, он имеет синтаксис, подобный C ++, и довольно гибкий и чрезвычайно кроссплатформенный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...