Встраивание Lua в игровой движок C ++ Client / Server, где линия безопасности? - PullRequest
0 голосов
/ 18 февраля 2020

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

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

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

Например, если бы в Lua были определены логи главного меню c, у вас была бы возможность присоединиться к серверу, псевдо-1024 * код ниже: (Что я не знаю, это хороший способ сделать что-то? )

local onJoinButtonPress()
   GAME_ENGINE.control.join_server("ip address goes here?")
   GAME_ENGINE.control.start_client_game()
   GAME_ENGINE.control.change_gui("in_game_hud_gui")
   --load other GUIs etc, not sure what else
end

local button = button.new()
button:onClick = onJoinButtonPress


Но если принять во внимание, что это код Lua и интерпретируется во время выполнения, то, что мешает кому-то сделать простые изменения в сценарии:

while true do
   GAME_ENGINE.join_server("ip address here")
end

Что потенциально может спам серв из-за перегрузки и т. д. c.

Поэтому мне просто интересно, где именно находится линия, которую имеет игрок / клиент, когда дело доходит до управления игровым движком клиента с помощью кода Lua, что из "встроенной игры" или модов?

...