Lua游戏开发 游戏开发是一个激动人心的过程,创造出让玩家花费数小时并乐在其中的游戏,给人带来的成就感是任何事情都无法比拟的。然而,这个创造的过程正在变得越来越难。那种奋战几个晚上或者几周就能单枪匹马设计出热门游戏的日子已经一去不复返,现在的游戏往往需要数十人的开发团队工作很多个月甚至几年才能完成。就算是那些可以从网上下载的最简单的“休闲游戏”也通常是由专业开发者组成的团队开发数月的成果。
尽管游戏开发的规模不断增大,但始终有一个不变的追求——测试、更新、调整,以及快速验证游戏性的能力,通常这个部分是设计和开发过程的核心。采用一种像Lua这样的脚本语言以及内核级别的语言(如C++)可以帮助用户开发专业的游戏,并且还能让开发者和设计师快速实现设计想法、测试游戏功能。 适用读者 本书适合三类读者: 游戏程序员。程序员在开发团队中负责实现Lua和C++之间的接口,并且通常还要编写部分或者全部的游戏脚本。本书将告诉程序员如何将Lua和LuaGlue的功能集成到游戏开发项目中。对于程序员来说,最重要的是,使用Lua可以在游戏开发的过程中节省很多时间和精力,因为许多游戏的功能可以由设计师和脚本程序员来实现。 游戏设计师。通常,游戏设计师会采用像Lua这样的脚本语言在运行环境中来实现部分设计。本书可以作为Lua语言的初级读本,为设计师打下坚实的技能基础,从而去构建真实的游戏世界。同时,本书还可以激发设计师的灵感,使用Lua开发可以帮助他们使用工具快速开发原型,快速实现并且进行创意的验证。 业余游戏开发者。学习如何开发你自己的游戏是富有成就感和具有挑战性的。游戏行业鼓舞了许多这样的业余爱好者,通过自己的项目来学习更多关于游戏和开发的知识,这样的付出很值得。本书展示了经验丰富的业余游戏开发者如何在他们的项目中使用Lua,还提供一个已有的框架以便入门并深入学习Lua,进而快速开发没有任何C++代码的游戏(提供完整的控制台和游戏测试环境)。第1章游戏开发入门1 1越来越复杂的开发过程1 2更好的开发方式1 3为什么使用Lua1 4本章小结第2章 脚本语言2 1脚本语言简介2 2Lua简介2 3本章小结第3章 游戏开发世界的Lua语言3 1脚本语言和游戏3 2游戏项目中的Lua3 3本章小结第4章Lua入门4 1使用Lua控制台4 2Lua基础4 3变量4 3 1nil4 3 2Boolean4 3 3string4 3 4Number4 3 5table4 3 6局部变量和全局变量4 4运算符4 4 1算术运算符4 4 2关系运算符4 4 3逻辑运算符4 5控制结构4 5 1if4 5 2while和repeat4 5 3for4 5 4break4 6本章小结第5章深入学习Lua5 1函数5 1 1单一参数5 1 2多个参数5 1 3返回值5 2标准库5 2 1assert(myValue)()5 2 2dofile(filename)5 2 3math floor()5 2 4math random()5 2 5math min()5 3字符处理5 3 1类型转换5 3 2string char(n1,n2, )5 3 3string len(myString)5 3 4string sub(myString,start,end)5 3 5string format()5 3 6string find(sourceString,findString)5 3 7字符和格式5 4table数据结构5 4 1table getn(myTable)5 4 2table insert(myTable,position,value)5 4 3table remove(myTable,position)5 4 4table引用5 4 5多维table5 4 6pairs()5 5I/O基础5 6本章小结第6章Lua与C/C++程序的整合6 1初期设计要点6 1 1Lua环境6 1 2LuaGlue函数6 2基本实现方式6 2 1创建Lua运行环境6 2 2添加LuaGlue函数6 2 3命令处理6 2 4退出程序6 2 5cLua对象和LuaLib6 2 6使用cLua的例子6 2 7LuaGlue函数的优点6 2 8LuaGlue函数:参数和返回值6 3本章小结第7章Lua与C++的交互7 1重新审视LuaGlue函数7 2C++代码和Lua的交互7 3事件驱动的编程7 3 1示例事件7 3 2事件的参数7 4错误处理7 5本章小结第8章开发准备8 1Visual C++ 6 0工作区8 2DirectX基础8 3LuaGUI简介8 3 1启动GUI8 3 2界面8 3 3界面控件8 3 4事件8 3 5与GUI系统相关的LuaGlue函数8 3 6Shell程序的扩展8 4调试窗口8 5Windows注册表8 6本章小结第9章设计Lua版本的实现9 1游戏设计原则9 1 1什么是游戏9 1 2了解玩家的想法9 2基础库设定9 3设计文档9 4Lua编程规范9 5本章小结第10章使用Lua处理游戏数据10 1简单的游戏数据10 1 1太空飞船的例子10 1 2《Take Away》的玩家飞船10 1 3敌舰数据10 1 4补给箱数据10 2大数据集10 2 1表单型数据10 2 2Lua格式的数据文件10 3使用Lua保存游戏数据10 3 1案例1——《Frontrunner》10 3 2案例2——健身大亨10 4本章小结第11章Lua驱动的GUI11 1GUI系统概要11 2GUI的C++类11 2 1GUI控件:Sprite11 2 2GUI控件:TextField11 2 3GUI控件:Button11 2 4界面11 2 5GUI管理器11 3GUI LuaGlue函数11 4进一步的说明11 5Lua游戏界面11 5 1界面设计原则11 5 2快速创建界面11 5 3载入界面11 5 4主菜单界面11 5 5Controls界面11 5 6InGame界面11 6本章小结第12章Lua游戏编程12 1游戏主循环12 2井字棋12 2 1游戏的初始化12 2 2游戏回合处理12 2 3模拟游戏回合12 3《Take Away》游戏的实现原理12 3 1InGame12 3 2使用计时器12 3 3玩家操作12 3 4子弹运动12 3 5飞船移动12 3 6绘制活动的物体12 4本章小结第13章使用Lua定义和控制AI13 1智能的体现13 221点游戏13 3井字棋13 4《Take Away》游戏的实现13 4 1掠夺舰13 4 2攻击舰13 4 3冲击舰13 4 4混合舰13 4 5控制飞行方向13 4 6碰撞检测13 5其他AI的例子13 5 1静态追踪13 5 2近距离追踪13 5 3动态追踪13 5 4预判型追踪13 5 5炮塔攻击13 5 6躲避攻击13 5 7防御性射击13 5 8攻击伤害13 6有限状态机13 7路径寻找13 7 1算法概要13 7 2路径寻找示例13 7 3Lua实现13 8本章小结第14章Lua和图像14 1运行绘图示例14 1 1指纹示例14 1 2爆炸示例14 2线性移动14 2 1GetCollisions函数14 2 2HitTest函数14 2 3进一步的说明14 3碰撞检测14 3 1LuaGlue函数SetTexture14 3 2坦克示例14 42D粒子系统14 5本章小结第15章最后说明15 1添加音效和音乐15 1 1LuaGlue函数PlaySound15 1 2音乐15 2使用编辑器15 3调试Lua脚本15 3 1通用原则15 3 2调用DoFile函数15 3 3Lua 错误消息15 3 4使用实时调试窗口15 3 5使用文本框15 3 6使用文件输出15 4资源管理15 4 1资源的组织15 4 2运行时的文件夹15 5发布Lua代码15 6许可证15 7进一步的说明15 8本章小结
相关资源:Lua游戏开发实践指南(完整中文版,高清15章)