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

相关推荐
GDAL3 小时前
lua入门教程:随机数
lua
红黑色的圣西罗1 天前
Lua 怎么解决闭包内存泄漏问题
开发语言·lua
诗这样的2 天前
【需求变更】使用 Redis 和 Lua 脚本实现变更后方案编号的生成
java·redis·缓存·微服务·lua·需求分析
gopher95112 天前
lua 运算符和控制语句
开发语言·lua
不喝水的鱼儿2 天前
【LuatOS】修改LuatOS源码为PC模拟器添加高精度时间戳库timeplus
lua·时间戳·luatos
菠萝地亚狂想曲5 天前
优雅的LUA数据记录方法-serpent序列化+LUA Table
开发语言·junit·lua
我是汉堡请多指教5 天前
lua学习笔记---面向对象
笔记·学习·lua
不喝水的鱼儿5 天前
【LuatOS】Lua与LuatOS中的Math.randomseed
lua·luatos·随机数
Flame_Cyclone5 天前
动态库实现lua网络请求GET, POST, 下载文件
lua·lua动态库
硬汉嵌入式6 天前
H7-TOOL的LUA小程序教程第17期:扩展驱动AD7606, ADS1256,MCP3421, 8路继电器和5路DS18B20(2024-11-01)
junit·小程序·lua