从 0 开始学游戏开发
蔡能
原网易游戏引擎架构师,资深游戏底层技术专家
37243 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
从 0 开始学游戏开发
15
15
1.0x
00:00/00:00
登录|注册

第21讲 | 如何使用脚本语言编写周边工具?

命令行生成
替代符号处理
Lua函数注册到C++内部
挑战问题:在C语言中生成Lua中的table表
结合脚本语言和C/C++编写易于修改和使用的工具
Lua作为胶水语言
数据传输给Lua进行逻辑运算
C/C++封装和算法提取
Lua源代码作为Makefile文件
Lua脚本实现Make命令操作
Makefile的作用
Makefile工具选择
总结
C/C++与Lua交互
Lua脚本编写游戏周边工具Makefile
如何使用脚本语言编写周边工具

该思维导图由 AI 生成,仅供参考

上一节,我们讲了脚本语言在游戏开发中的应用,我列举了很多 C 语言代码,这些代码做了这样一些事情:
使用 C 语言和 Lua 语言进行沟通;
在 C 语言代码里,使用了宏和结构,方便批量注册和导入 C 语言函数;
Lua 代码如何传输内容给 C 语言;
Lua 虚拟机堆栈的使用。
这一节,我们要用 Lua 脚本来编写一个游戏周边工具 Makefile。游戏周边工具有很多种,并没有一个统一的说法,比如在线更新工具、补丁打包工具、人物模型编辑工具、游戏环境设置工具等等。
你或许就会问了,那我为什么选择 Makefile 工具来编写,而不选择别的周边工具来编写呢?
因为这个工具简单、小巧,我们可以将 Lua 脚本语句直接拿来用作 Makefile 语句,而在这个过程中,我们同时还可以通过 Lua 语句来了解 Lua 的工作机理。 而且这个编写过程我们一篇文章差不多就可以说清楚。
而别的周边工具编写起来可能会比较复杂,比如如果要编写类似 Awk 的工具的话,就要编写文本解析和文件查找功能;如果编写游戏更新工具的话,就必须涉及网络基础以及压缩解压缩的功能。
简单直白地说,Makefile 是一种编译器的配置脚本文件。这个文件被 GNU Make 命令读取,并且解析其中的意义,调用 C/C++(绝大部分时候)或者别的编译器(小部分)来将源代码编译成为执行文件或者动态、静态链接库。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文详细介绍了如何使用Lua脚本语言编写游戏周边工具Makefile,以及C/C++和Lua之间的交互方式。作者解释了选择Makefile的原因,并展示了在C/C++中封装函数、注册到Lua内部的方法,以及在Lua脚本中实现Make命令操作的技巧。此外,文章还强调了Lua作为一种动态语言和配置文件的优势,以及其作为胶水语言的优越性。通过具体示例和代码解释,读者能够深入了解如何利用Lua编写Makefile工具,以及C/C++和Lua之间的交互方式和技术特点。总之,本文为读者提供了一种简洁而强大的工具编写方法,同时展示了Lua作为胶水语言的优越性。文章内容涵盖了技术实践和原理解析,对于想要深入了解Lua脚本语言和C/C++交互的读者来说,是一篇值得阅读的文章。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学游戏开发》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • OCEAN
    table表对应c中数据,Lua中给出访问接口,并构造这个table表
    2018-07-30
    1
  • 放羊大王
    第一次见这样的make file 感觉更像makeList.txt ,听的懂,但实践太难了。😅
    2018-08-08
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部