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

相关推荐
okok__TXF15 小时前
Nginx + Lua脚本打配合
nginx·lua
miss writer15 小时前
Redis分布式锁释放锁是否必须用lua脚本?
redis·分布式·lua
努力--坚持1 天前
电商项目-网站首页高可用(一)
nginx·lua·openresty
黄名富1 天前
Redis 附加功能(二)— 自动过期、流水线与事务及Lua脚本
java·数据库·redis·lua
染指11101 天前
50.第二阶段x86游戏实战2-lua获取本地寻路,跨地图寻路和获取当前地图id
c++·windows·lua·游戏安全·反游戏外挂·游戏逆向·luastudio
spencer_tseng2 天前
WeakAuras NES Script(lua)
lua·wow·nes·weakauras
红黑色的圣西罗2 天前
xlua中自定义lua文件加载的一种方式
lua
法外狂徒张三!2 天前
Roblox踩坑1——动画无法完整播放
lua·roblox
冒泡P3 天前
【Lua热更新】上篇
开发语言·数据结构·unity·c#·游戏引擎·lua
两水先木示4 天前
【LuaFramework】LuaFramework_UGUI_V2框架学习
学习·unity·lua·luaframework·tolua