Dora SSR 是一个用于多种设备上快速开发游戏的游戏引擎。它内置易用的 Web IDE 开发工具链,支持在手机、开源掌机等设备上直接进行游戏开发。
类别 | 徽章 |
---|---|
提供游戏开发工具 | |
支持编程语言 | |
支持运行平台 |
功能 | 描述 |
---|---|
跨平台支持 | 支持原生运行的架构: Android (x86_64, armv7, arm64) Windows (x86) Linux (x86_64, arm64) iOS (arm64) macOS (x86_64, arm64) |
树形节点 | 基于树形节点结构管理游戏场景。 |
ECS | 易用的 ECS 模块,便于游戏实体管理。 |
异步处理 | 异步处理的文件读写、资源加载等操作。 |
Lua | 升级的 Lua 绑定,支持继承和扩展底层 C++ 对象。 |
YueScript | 支持 YueScript 语言,强表达力且简洁的 Lua 方言。 |
Teal | 支持 Teal 语言,编译到 Lua 的静态类型语言。 |
TypeScript | 支持 TypeScript 语言,一门静态类型的 JavaScript 语言的超集,添加了强大的类型检查功能。(通过 TSTL) |
TSX | 支持 TSX,允许在脚本中嵌入类似 XML/HTML 的文本,与 TypeScript 一起使用。 |
Wa | 支持 Wa 语言,一门简单可靠、静态类型的语言,运行在内置的 WASM 运行时和 Wa 绑定 上。 |
Rust | 支持 Rust 语言,运行在内置的 WASM 运行时和 Rust 绑定上。 |
Blockly | 支持使用类似 Scratch 的可视化编程语言进行编码,非常适合初学者学习编程。![]() |
2D 骨骼动画 | 支持 2D 骨骼动画,包括:Spine2D、DragonBones 以及内置系统。 |
2D 物理引擎 | 支持 2D 物理引擎,使用 PlayRho。 |
Web IDE | 内置开箱即用的 Web IDE,提供文件管理,代码检查、补全、高亮和定义跳转。 ![]() |
数据库 | 支持异步操作 SQLite,进行大量游戏配置数据的实时查询和写入。 |
Excel | 支持 Excel 表格数据读取,支持同步到 SQLite 库表。 |
CSS 布局 | 提供游戏场景通过 CSS 进行自适应的 Flex 布局的功能(通过 Yoga)。 |
特效系统 | 支持 Effekseer 特效系统的功能。 |
瓦片地图 | 支持 Tiled Map Editor 制作的 TMX 地图文件的解析和渲染。 |
Yarn Spinner | 支持 Yarn Spinner 语言,便于编写复杂的游戏故事系统。 |
机器学习 | 内置用于创新游戏玩法的机器学习算法框架。 |
矢量图形 | 提供矢量图形渲染 API,可直接渲染无 CSS 的 SVG 格式文件(通过 NanoVG)。 |
ImGui | 内置 ImGui,便于创建调试工具和 UI 界面。 |
音频 | 支持 FLAC、OGG、MP3 和 WAV 多格式音频播放。 |
True Type | 支持 True Type 字体的渲染和基础排版。 |
2D 平台游戏 | 支持 2D 平台游戏 的基本功能,包括游戏逻辑和 AI 开发框架。 |
L·S·D | 提供可用于制作自己游戏的开放美术素材和游戏 IP —— 《灵数奇缘》。![]() |
brew install --cask ippclub/tap/dora-ssr
sudo add-apt-repository ppa:ippclub/dora-ssr
sudo apt update
sudo apt install dora-ssr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 9C7705BF
sudo add-apt-repository -S "deb https://ppa.launchpadcontent.net/ippclub/dora-ssr/ubuntu jammy main"
sudo apt update
sudo apt install dora-ssr
第一步:创建一个新项目
工作空间
的右键菜单。新建
,选择新建文件夹。第二步:编写游戏代码
init
。Lua
local _ENV = Dora
local sprite = Sprite("Image/logo.png")
sprite:once(function()
for i = 3, 1, -1 do
print(i)
sleep(1)
end
print("Hello World")
sprite:perform(Sequence(
Scale(0.1, 1, 0.5),
Scale(0.5, 0.5, 1, Ease.OutBack)
))
end)
local sleep <const> = require("sleep")
local Ease <const> = require("Ease")
local Scale <const> = require("Scale")
local Sequence <const> = require("Sequence")
local Sprite <const> = require("Sprite")
local sprite = Sprite("Image/logo.png")
if not sprite is nil then
sprite:once(function()
for i = 3, 1, -1 do
print(i)
sleep(1)
end
print("Hello World")
sprite:perform(Sequence(
Scale(0.1, 1, 0.5),
Scale(0.5, 0.5, 1, Ease.OutBack)
))
end)
end
有关 Dora SSR 所支持的 YueScript 这门小众语言的故事在这里。
_ENV = Dora
with Sprite "Image/logo.png"
\once ->
for i = 3, 1, -1
print i
sleep 1
print "Hello World!"
\perform Sequence(
Scale 0.1, 1, 0.5
Scale 0.5, 0.5, 1, Ease.OutBack
)
import { Sprite, Ease, Scale, Sequence, sleep } from 'Dora';
const sprite = Sprite("Image/logo.png");
if (sprite) {
sprite.once(() => {
for (let i of $range(3, 1, -1)) {
print(i);
sleep(1);
}
print("Hello World");
sprite.perform(Sequence(
Scale(0.1, 1, 0.5),
Scale(0.5, 0.5, 1, Ease.OutBack)
))
});
}
使用 TSX 语言来创建 Dora SSR 的游戏场景是一个比较容易上手的选择。新手教程可以参见这里。
import { React, toNode } from 'DoraX';
import { Ease } from 'Dora';
toNode(
<sprite file='Image/logo.png'>
<sequence>
<event name="Count" param="3"/>
<delay time={1}/>
<event name="Count" param="2"/>
<delay time={1}/>
<event name="Count" param="1"/>
<delay time={1}/>
<scale time={0.1} start={1} stop={0.5}/>
<scale time={0.5} start={0.5} stop={1} easing={Ease.OutBack}/>
</sequence>
</sprite>
)?.slot("Count", (_, param) => print(param));
Dora SSR 也支持使用 Rust 语言来编写游戏代码,编译为 WASM 文件,命名为 init.wasm
再上传到引擎中加载运行。详情见这里。
use dora_ssr::*;
fn main () {
let mut sprite = match Sprite::with_file("Image/logo.png") {
Some(sprite) => sprite,
None => return,
};
let mut sprite_clone = sprite.clone();
sprite.schedule(once(move |mut co| async move {
for i in (1..=3).rev() {
p!("{}", i);
sleep!(co, 1.0);
}
p!("Hello World");
sprite_clone.perform_def(ActionDef::sequence(&vec![
ActionDef::scale(0.1, 1.0, 0.5, EaseType::Linear),
ActionDef::scale(0.5, 0.5, 1.0, EaseType::OutBack),
]));
}));
}
点击编辑器右下角 🎮
图标,然后点击菜单项 运行
。或者按下组合键 Ctrl + r
。
下载
选项。更详细的教程,请查看官方文档。
欢迎参与 Dora SSR 的开发和维护。请查看贡献指南了解如何提交 Issue 和 Pull Request。
我们很高兴地宣布,Dora SSR 项目现已成为开放原子开源基金会的捐赠和孵化期项目。这一新的发展阶段标志着我们致力于建设一个更开放、更协作的游戏开发环境的坚定承诺。
开放原子开源基金会(Open Atom Foundation)是一个非盈利组织,旨在支持和推广开源技术的发展。在该基金会的大家庭中,Dora SSR 会利用更广泛的资源和社区支持,以推动项目的发展和创新。更多信息请查看基金会官网。
Dora SSR 使用 MIT 许可证。
[!NOTE] 请注意,Dora SSR 集成了 Spine 运行时库,这是一个商业软件。在你的项目中使用 Spine 运行时需要获取 Esoteric Software 提供有效的商业许可证。有关获取许可证的更多详细信息,请访问 Spine 官方网站。
请确保遵守所有许可要求,再在项目中使用 Spine 运行时。或者可以使用同样集成的开源的 DragonBones 系统作为动画系统的替代方案。如果你只需要创建比较简单的动画,也可以使用 Dora SSR 提供的 Model 动画模块看是否能满足需要。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型