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

相关推荐
UWA2 天前
Unreal开发痛点破解!GOT Online新功能:Lua全监控 + LLM内存可视化!
开发语言·lua·unreal
1nullptr2 天前
Lua迭代器与泛型for
lua
半夏知半秋2 天前
skynet debug_console控制台中debug指令使用
服务器·开发语言·学习·lua
h7997102 天前
redis lua脚本(go)调用教程以及debug调试
redis·golang·lua
玩转C语言和数据结构5 天前
Lua下载和安装教程(附安装包)
lua·lua下载·lua安装教程·lua下载和安装教程·lua安装包
Arva .6 天前
HTTP Client
网络协议·http·lua
爱吃小胖橘6 天前
Lua语法(2)
开发语言·unity·lua
ellis19707 天前
LuaC API知识点汇总
unity·lua
爱吃小胖橘10 天前
Lua语法
开发语言·unity·lua
东方芷兰10 天前
JavaWeb 课堂笔记 —— 20 SpringBootWeb案例 配置文件
java·开发语言·笔记·算法·log4j·intellij-idea·lua