在游戏中使用的虚拟机

时间:2012-07-18 08:21:03

标签: c# python scripting interpreter vm-implementation

我正在寻找可以嵌入游戏的虚拟机。

我的想法是创造一个游戏世界和两个化身。在头像中,我嵌入了一个虚拟机,可以使用api与游戏世界中的头像进行交互,例如:

move_forward()
turn_left()
turn_right()
sense()
etc.

在每个tick中,我将允许每个VM更新每个进度的X刻度。然后将两个不同的程序上传到每个VM并独立执行。整个设置应该能够抵御VM内的程序崩溃。

我更喜欢在Python中工作,我的环境是C#,但我愿意接受建议。

这个想法深受GunTactyx游戏的启发,但我发现那里使用的语言太狭隘了,因为我的目标是成为一个进一步深入编程的学习平台。

你知道任何允许我这样做的虚拟机吗?

亲切的问候

的Jesper

1 个答案:

答案 0 :(得分:1)

我会使用Lua,根据我的经验,它在游戏中的使用比python更多。

您可以使用调试挂钩或协同程序来限制一次执行的指令数。这是关于某人做类似于你的事情的帖子:http://lua-users.org/lists/lua-l/2009-03/msg00008.html

在防范崩溃方面的稳健性: “因为Lua是一种扩展语言,经常嵌入在应用程序中,它不会简单地在发生错误时崩溃或退出。相反,每当发生错误时,Lua就会结束当前的块并返回应用程序。” http://www.lua.org/pil/8.3.html

如果你想用C#包裹Lua,试试

http://luaforge.net/projects/luainterface/

https://github.com/NLua/NLua

另请查看此帖子以了解有关Lua Vs Python的讨论:

https://stackoverflow.com/questions/356160/which-game-scripting-language-is-better-to-use-lua-or-python