Lua进阶教程(六)游戏编程

Lua进阶教程(六)游戏编程

hudson 译 原文

Lua由于其简单的语言结构和语法,被广泛应用于许多游戏引擎中。垃圾回收功能在消耗大量内存的游戏中尤其有用,因为这些游戏通常使用丰富的图形。一些使用Lua的游戏引擎包括:

  • Corona SDK
  • Gideros Mobile
  • ShiVa3D
  • Moai SDK
  • LOVE
  • CryEngine

每个游戏引擎都基于Lua,并且在每个引擎中都有丰富的API可用。我们将简要介绍每个引擎的功能。

Corona SDK

Corona SDK是一个跨平台移动游戏引擎,支持iPhone、iPad和Android平台。有一个免费版本的Corona SDK,可用于具有有限功能的小型游戏。可以根据需要升级到其他版本。

Corona SDK提供了许多功能,包括以下内容:

  • 物理和碰撞处理API
  • Web和网络API
  • 游戏网络API
  • 广告API
  • 分析API
  • 数据库和文件系统API
  • 加密和数学API
  • 音频和媒体APIs

和单独使用iOS和Android的原生API相比, Corona SDK非常容易上手,快速地开发游戏应用程。

Gideros 移动框架

Gideros提供跨平台的SDK,用于为iOS和Android创建游戏。可以免费使用,带有Gideros标志。Gideoros的一些显着优点包括:

  • 开发IDE:提供自己的IDE,使开发Gideros应用程序更容易。
  • 即时测试:在开发游戏时,可以通过Wifi在1秒钟内在真实设备上进行测试。无需浪费时间进行导出或部署。
  • 插件:可以轻松通过插件扩展核心。导入现有的(C、C++、Java或Obj-C)代码,绑定到Lua并直接解释它们。已经开发了数十个开源插件,并且可以立即使用。
  • 干净的面向对象编程方法:Gideros提供自己的类系统,具有所有基本的面向对象编程标准,能够为将来的任何游戏编写清晰且可重用的代码。
  • 本地速度:基于C/C++和OpenGL开发,游戏以本机速度运行,并充分利用了CPU和GPU的能力。

ShiVa3D

ShiVa3D是一个3D游戏引擎之一,提供了一个图形编辑器,用于创建Web、控制台和移动设备的应用程序和视频游戏。它支持多个平台,包括Windows、Mac、Linux、iOS、Android、BlackBerry、Palm OS、Wii和WebOS。

一些主要功能包括:

  • 标准插件
  • 网格修改API
  • IDE
  • 内置的地形、海洋和动画编辑器
  • ODE物理引擎支持
  • 完整的光照控制
  • 材料、粒子、路径和HUD的实时预览
  • Collada交换格式支持

Shiva3d的Web版是完全免费的,其他版本需要订阅。

Moai SDK

Moai SDK是一个跨平台的移动游戏引擎,支持iPhone、iPad和Android平台。Moai平台最初由Moai SDK(开源游戏引擎)和Moai Cloud(游戏服务托管和部署的云平台)组成。现在Moai Cloud已关闭,只剩下游戏引擎。

Moai SDK在iOS、Android、Chrome、Windows、Mac和Linux等多个平台上运行。

LOVE

LOVE是一个可以用来制作2D游戏的框架。它是免费且开源的。支持Windows、Mac OS X和Linux平台。

它提供的功能包括:

  • 音频API
  • 文件系统API
  • 键盘和游戏手柄API
  • 数学API
  • 窗口和鼠标API
  • 物理API
  • 系统和计时器API

CryEngine

CryEngine是由德国游戏开发商Crytek开发的游戏引擎。它从第1代演变到第4代,是一种先进的开发解决方案。支持PC、Xbox 360、PlayStation 3和WiiU游戏。

它的特性包括:

  • 自然光照和动态软阴影、实时动态全局光照、光传播体积、粒子着色、细分等视觉效果。
  • 角色动画系统和角色个性化系统。
  • 参数化骨骼动画和独特的专用面部动画编辑器。
  • AI系统,如多层导航网格和战术点系统。还提供友好的AI编辑系统。
  • 游戏中的混音和分析、数据驱动的声音系统、动态声音和交互式音乐等。
  • 物理特性,如过程变形和高级绳物理。

结束语

这些游戏SDK/框架都各有优势和劣势。正确选择它们可以使开发工作变得更容易。使用前,首先需要了解游戏的需求,然后进行分析权衡, 选择合适框架。

相关推荐
程序员陆通2 天前
如何使用ChatGPT API及Bito插件
开发语言·chatgpt·lua
谷隐凡二2 天前
windows环境下luarocks下载包的使用
开发语言·lua
程序那点事儿3 天前
open-resty 服务安装kafka插件
linux·分布式·nginx·kafka·lua·运维开发·openresty
半夏知半秋8 天前
支持分页的环形队列
java·开发语言·算法·lua·database
执键行天涯9 天前
【JAVA高级】如何使用Redis加锁和解锁(一)、Lua脚本执行原理及流程
java·redis·lua
倘若猫爱上鱼10 天前
Lua中..和...的使用区别
开发语言·lua
丁总学Java14 天前
分布式锁优化之 使用lua脚本改造分布式锁保证判断和删除的原子性(优化之LUA脚本保证删除的原子性)
分布式·lua
Lill_bin17 天前
Lua编程语言简介与应用
开发语言·数据库·缓存·设计模式·性能优化·lua
两水先木示17 天前
【Lua坑】Lua协程coroutine无法正常完整执行问题
开发语言·lua·协程·对象池
合宙Luat20 天前
从边缘到云端,合宙DTU&RTU打造无缝物联网解决方案
嵌入式硬件·物联网·硬件工程·lua