XenEngine制作心得

XenEngine

XenEngine是我的本科毕业设计,是一个基于OpenGL的游戏引擎,仓库在这里
这次就来说一说我制作这个引擎的心得

利用Lua做游戏脚本

关于脚本

对于游戏脚本有两种解释,一般的解释是“外挂”,也就是自动刷怪等等的那种挂。一种是让脚本和游戏主体沟通,将逻辑单独拎出来的编程技术。我们这里说的不是外挂,说的是如何使用Lua语言做脚本,并且辅助我们自己的游戏主体的编程手段。

预备知识

这个例子使用C++和SDL2制作游戏的主体,Lua作为游戏的脚本。另外需要知道Lua和C/C++互相通信的方法,见这篇博客

使用纯SDL2库给OpenGL纹理

Learning-OpenGL的教程中,作者是使用stbi_image这个单头文件库来加载纹理的。当时我就在想:SDL2这么强大,自己应该也可以加载纹理数据的吧。所以就做了一些尝试。

SDL2第三方库:SDL2_image库

SDL2除了自己本身的SDL2库,官方和其他开发者为了补充相应的内容,给出了很多有用的库。这里就来看一下适用范围最广的SDL2_image库。

所有的官方拓展库可以在这里找到。

C++和Lua的交互

Lua这个语言常常作为游戏引擎的游戏脚本,用于控制人物逻辑。一般Lua在游戏引擎中需要和其他语言进行沟通,而由于Lua是使用纯C写的语言,所以Lua当然也可以和C/C++沟通。