语言与渲染
使用 C++ 编程,渲染基于 OpenGL(ES) 2.0,并支持自定义着色器。
MagicTaleScript · seak123/MagicTaleScript
MagicTaleScript 是一个用 TypeScript 手写引擎框架开发的微信小游戏项目,仓库标签涵盖游戏开发、游戏引擎与微信小游戏。README 摘录主要介绍 Oxygine 这一 C++ 2D 移动游戏引擎的构建方式、平台支持与示例代码,与项目本身的玩法、功能...
Oxygine 是一个用 C++ 编写的 2D 游戏引擎与框架,面向 iOS、Android、Windows、Linux、macOS 以及通过 Emscripten 构建的网页平台。README 将其定位为“围绕 OpenGL/D3D API 的又一层外壳”?不,它更准确地说是一组用于按需构建游戏的类与工具集合。引擎以场景图(scene graph)为基础,设计思路类似 Flash,但作者称其更舒适、速度更快。项目最初为移动平台(iOS、Android)开发,也可用于 PC 游戏。源码以 MIT 许可证开放,可免费用于任何场景。
SDK 包含源码与库、必要的工具与文档、示例,以及用于测试和演示基础功能的 Demo。各平台的构建与运行说明位于仓库的 oxygine-framework/readme/ 文件夹,更多资料可查阅 GitHub Wiki。
使用 C++ 编程,渲染基于 OpenGL(ES) 2.0,并支持自定义着色器。
支持压缩纹理;资源描述存放在 XML 文件中,可配置多种参数,例如自定义资源类型、纹理(图集)在内存中的存储格式、动画的行列数等,任意资源还可携带用户数据属性。
场景图在继承模型上类似 Flash,基于智能指针(类似 boost::intrusive_ptr)构建,减少手动内存控制与内存泄漏的负担。
采用基于组件的系统,提供简单可预测的 OOP API,支持继承类并重载行为;引擎各组件之间链接较弱,可组合使用、单独使用或完全不用。没有全局“大管理器”强制规定代码编写方式。
所有引擎对象通过内存池实现快速创建与删除。
提供 Tree Inspector(场景图的“可视化分析器”,可在游戏中查看图与不同分支以分析和排查错误)与 Textures Inspector(显示当前加载到内存中的纹理)。
支持 render to texture。
提供用于逐帧动画、颜色、位置、旋转等的 Tween,也可轻松创建自定义 Tween。
内置游戏中常用的基础 UI 组件,如 Button、Sprite、ProgressBar 等。
README 未展开各平台的具体构建命令,仅指向 oxygine-framework/readme/ 文件夹,其中包含在不同平台上构建和运行 Oxygine 的说明。更多资料可查阅 GitHub Wiki。
README 给出了一段简短示例,展示创建精灵、添加到舞台、运行动画与位置 Tween,以及处理点击事件:
//create sprite and display it
spSprite sprite = new Sprite();
sprite->attachTo(getStage());
//run animation tween
sprite->addTween(Sprite::TweenAnim(gameResources.getResAnim("anim2")), duration, loops);
//run position tween
sprite->addTween(Sprite::TweenPosition(x, y), duration, loops);
//handle click event
sprite->addEventListener(TouchEvent::CLICK, [sprite](Event*){
log::messageln("clicked to sprite!");
//change sprite color
sprite->setColor(Color::Gray);
});
README 列出的支持平台包括:Android、iOS、Windows、MacOSX、Emscripten(web)。构建与运行的具体步骤请参考 oxygine-framework/readme/ 文件夹中的说明。
readme 文件夹中的平台构建说明,确保开发环境就绪。
Farbrausch 2001—2011 年 demo 工具源码合集,使用 C++,涉及 demoscene 与 D...
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...