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

相关推荐
unix2linux17 小时前
YOLO v5 Series - Image & Video Storage ( Openresty + Lua)
yolo·lua·openresty
最后一个bug18 小时前
如何理解Lua 使用虚拟堆栈
linux·c语言·开发语言·嵌入式硬件·lua
半夏知半秋2 天前
lua-lru缓存算法解析
笔记·学习·算法·缓存·lua
最后一个bug3 天前
C语言执行Lua进行错误处理
linux·服务器·c语言·开发语言·嵌入式硬件·lua
袁庭新3 天前
Lua如何连接MySQL数据库?
redis·mysql·lua·lua5.4·袁庭新
红黑色的圣西罗3 天前
Lua 实现继承的一种方式
开发语言·lua
weixin_428498494 天前
Lua资料
开发语言·lua
Clown954 天前
go-zero(四) 错误处理(统一响应信息)
开发语言·golang·lua
半夏知半秋5 天前
lua实现雪花算法
开发语言·笔记·算法·lua
最后一个bug5 天前
lua调用C语言函数,在函数中进行类型检查
linux·c语言·开发语言·lua