《Lua游戏开发实践指南》一1.3为什么使用Lua

简介: 本节书摘来华章计算机《Lua游戏开发实践指南》一书中的第1章 ,第1.3节,(美)Paul SchuytemaMark Manyen著 田剑译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.3为什么使用Lua

对于游戏开发而言,Lua是较好的选择,其设计的核心目标是可扩展性,因此在最初设计时就考虑到要能够集成在大型应用中。因为有了这样的设计目标,所以非常容易在应用程序中加入Lua脚本。Lua的易集成的特性还使得Lua可以很方便地与父程序通信。游戏程序员都希望脚本语言能够简单地实现游戏设计,在这方面,Lua也能够胜任。
Lua免费、小巧、快速且易移植。所有的游戏开发者和游戏公司都喜欢“免费”的工具。通常讲,一分钱一分货,但是对于Lua来说,它完全超出你的预期。Lua采用了非常灵活的发布协议,它有极少的源代码,运行轨迹十分紧凑,在编译时间和运行时内存占用上都有很好的性能表现。
要说Lua最让人惊喜的地方,应该是它的执行速度。对于任何脚本语言的技术方案,游戏开发者的第一反应就是:“脚本语言太慢了,帧率一定不会很理想。”但这个说法对Lua是不成立的,事实上,我们还没有看到任何一个项目因为Lua的使用而造成瓶颈。最后,游戏开发界正在迎接一次新的硬件周期,我们将要学习如何使用一组新的平台。因为Lua的易移植性,当我们的技术储备转移到新的平台时,至少有一部分是不会过时的。
Lua是非常容易学习的语言。不需要了解很高级的编程概念(如对象和继承),大部分具有计算机学习背景的人都可以在短期内掌握它的基础知识并且马上投入正式的工作。如果团队成员熟悉其他的语言,那么Lua可以轻松上手,很适合那些非程序员背景的团队成员,它们也能对游戏功能和美术部分进行修改或创建。
在我们公司,最近刚刚发布了第13款使用Lua开发的游戏。我们的团队虽然很小,但是也有程序员、美术师和设计师的标准构成。当我们开始一个新的项目时,首先要确定项目的技术需求(什么是我们还没有而需要去实现的?)和设计需要的功能。程序员可以负责技术设计部分,专注于那些他们擅长的技术难题。同时,设计师和美术师可以马上开始着手界面流程和核心游戏功能的设计工作。通常,美术师(包括2D和3D)还会花一部分时间确定游戏的视觉需求。与此同时,3位熟悉Lua的设计师开始构建游戏基础、游戏数据及核心游戏系统。他们甚至都不需要等着程序员,如果需要什么功能一般就直接先用Lua代替。这样我们就可以进行非常高效率的游戏开发,因为团队的每个人都能从一开始就“热火朝天”干起来。
有一个项目要特别提起,在我们为2004年美国总统大选开发选举游戏模拟器的时候,我们已经可以用Lua开发出完整的游戏原型来验证AI和游戏流程,然后再回过头来重新用C++实现那些核心的部分。快速的原型开发可以让一个开发者就能够完成设计和开发环节最有价值的部分,这也是业界少有的高效率。

相关文章
|
程序员 C++ 开发者
《Lua游戏开发实践指南》一导读
游戏开发是一个激动人心的过程,创造出让玩家花费数小时并乐在其中的游戏,给人带来的成就感是任何事情都无法比拟的。然而,这个创造的过程正在变得越来越难。那种奋战几个晚上或者几周就能单枪匹马设计出热门游戏的日子已经一去不复返,现在的游戏往往需要数十人的开发团队工作很多个月甚至几年才能完成。
2595 0
|
存储 人工智能 程序员
《Lua游戏开发实践指南》一3.2游戏项目中的Lua
本节书摘来华章计算机《Lua游戏开发实践指南》一书中的第3章 ,第3.2节,(美)Paul SchuytemaMark Manyen著 田剑译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3761 0
|
程序员 C++
《Lua游戏开发实践指南》一3.1脚本语言和游戏
本节书摘来华章计算机《Lua游戏开发实践指南》一书中的第3章 ,第3.1节,(美)Paul SchuytemaMark Manyen著 田剑译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1805 0
|
测试技术
《Lua游戏开发实践指南》一第3章 游戏开发世界的Lua语言
本节书摘来华章计算机《Lua游戏开发实践指南》一书中的第3章 ,第3.1节,(美)Paul SchuytemaMark Manyen著 田剑译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1402 0
《Lua游戏开发实践指南》一2.3本章小结
本节书摘来华章计算机《Lua游戏开发实践指南》一书中的第2章 ,第2.3节,(美)Paul SchuytemaMark Manyen著 田剑译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1294 0
|
Linux Android开发 C++
Lua游戏开发参考资料收集
table {border-collapse:collapse;} List of game engines that use lua: 2D Agen (Lua; Windows) Blitwizard (Lua; Windows, Linux, Mac) ...
1147 0
|
7月前
|
缓存 NoSQL 搜索推荐
【📕分布式锁通关指南 03】通过Lua脚本保证redis操作的原子性
本文介绍了如何通过Lua脚本在Redis中实现分布式锁的原子性操作,避免并发问题。首先讲解了Lua脚本的基本概念及其在Redis中的使用方法,包括通过`eval`指令执行Lua脚本和通过`script load`指令缓存脚本。接着详细展示了如何用Lua脚本实现加锁、解锁及可重入锁的功能,确保同一线程可以多次获取锁而不发生死锁。最后,通过代码示例演示了如何在实际业务中调用这些Lua脚本,确保锁操作的原子性和安全性。
376 6
【📕分布式锁通关指南 03】通过Lua脚本保证redis操作的原子性
|
7月前
|
NoSQL Redis 数据库
Redis 功能扩展 Lua 脚本 对Redis扩展 eval redis.call redis.pcall
通过本文的介绍,我们详细讲解了 Lua 脚本在 Redis 中的作用、`eval` 命令的使用方法以及 `redis.call` 和 `redis.pcall` 的区别和用法。通过合理使用 Lua 脚本,可以实现复杂的业务逻辑,确保操作的原子性,并减少网络开销,从而提高系统的性能和可靠性。
249 13