#node #tree-node #game-engine #gamedev #lua-bindings #wasm32-wasi #ssr

dora-ssr

构建多拉-SSR 游戏的库,运行在多平台多拉-SSR 引擎上,支持 wasm32-wasi

23 个不稳定版本 (3 个破坏性更新)

0.4.2 2024年8月21日
0.3.4 2024年8月2日
0.3.3 2024年7月26日
0.1.6 2024年2月29日
0.1.4 2023年12月26日

#58游戏开发

Download history 165/week @ 2024-05-02 215/week @ 2024-05-09 131/week @ 2024-05-16 29/week @ 2024-05-23 2/week @ 2024-06-06 356/week @ 2024-06-13 37/week @ 2024-06-20 3/week @ 2024-06-27 28/week @ 2024-07-04 107/week @ 2024-07-11 122/week @ 2024-07-25 120/week @ 2024-08-01 112/week @ 2024-08-08 251/week @ 2024-08-15

606 每月下载量

MIT 许可

630KB
9K SLoC

多拉-SSR

  多拉-SSR 是一个适用于多种设备的 2D 游戏快速开发的游戏引擎。它内置了易于使用的开发工具链,支持在手机、开源掌机和其他设备上直接进行游戏开发。

关键特性

  • 基于树节点结构管理游戏场景。

  • 基本的 2D 平台游戏功能,包括游戏逻辑和 AI 开发框架。

  • 易于使用的 ECS 模块用于游戏实体管理。

  • 异步处理文件读写、资源加载等操作。

  • 升级后的 Lua 绑定,支持继承和扩展低级 C++ 对象。

  • 支持 YueScript 语言,是一种强大的 Lua 方言。

  • 支持 Teal 语言,是 Lua 的静态类型方言。

  • 支持 TypeScript,是一种在 JavaScript 上增加强大类型检查的静态类型超集。

  • 支持 TSX,允许在脚本中嵌入类似 XML/HTML 的文本,与 TypeScript 一起使用。

  • 支持 Rust 语言,在内置 WASM 运行时上运行,具有 Rust 绑定。

  • 支持 2D 骨骼动画和物理引擎。

  • 内置开箱即用的 Web IDE,提供文件管理、代码检查、补全、高亮和定义跳转。

  • 支持异步 SQLite 操作,用于实时查询和管理大型游戏配置数据。

  • 支持读取 Excel 工作表数据并将其同步到 SQLite 表。

  • 支持 Yarn Spinner 语言,使编写复杂游戏故事系统变得容易。

  • 内置机器学习算法框架,用于创新游戏玩法。

  • 提供矢量图形渲染 API,可以直接渲染 SVG 格式文件,无需 CSS。

  • 内置 ImGui,易于创建调试工具和 UI 接口。

  • 支持 FLAC、OGG、MP3 和 WAV 多格式音频播放。

  • 支持 True Type 字体渲染和基本排版。

  • 提供开源艺术资源和游戏 IP,可用于创建自己的游戏 - "Luv Sense Digital"


安装

  • 快速入门

    • Android

        1. 在游戏开发运行终端上下载并安装 APK 包。
        1. 运行软件,并通过局域网中PC(平板或其他开发设备)的浏览器访问软件显示的服务器地址。
        1. 开始游戏开发。
    • Windows,macOS

        1. 下载并运行软件
          • 使用Homebrew在macOS上获取软件:
          brew tap ippclub/dora-ssr
          brew install --cask dora-ssr
          
        1. 运行软件并通过浏览器访问软件显示的服务器地址。
        1. 开始游戏开发。
    • Linux

        1. 安装。
        • Ubuntu Jammy

          sudo add-apt-repository ppa:ippclub/dora-ssr
          sudo apt update
          sudo apt install dora-ssr
          
        • Debian Bookworm

          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
          
        1. 运行软件并通过浏览器访问软件显示的服务器地址。
        1. 开始游戏开发。
  • 引擎项目开发

    有关Dora SSR项目开发的安装和配置,请参阅官方文档以获取详细信息。


快速入门

  1. 步骤 1:创建新项目

    • 在浏览器中,打开Dora Dora编辑器左侧游戏资源树的右键菜单。

    • 单击菜单项 New 并选择创建一个名为 Hello 的新文件夹。

  2. 步骤 2:编写游戏代码

    • 在命令行中创建新项目。

      rustup target add wasm32-wasi
      cargo new hello-dora --name init
      cd hello-dora
      cargo add dora_ssr
      
    • src/main.rs 中编写代码。

      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),
          ]));
        }));
      }
      
    • 将其构建为WASM文件。

      cargo build --release --target wasm32-wasi
      
    • 上传到引擎运行。从Dora SSR Web IDE,打开创建的文件夹 Hello 的游戏资源树的右键菜单。单击菜单项 Upload 并选择名为 init.wasm 的编译好的WASM文件以上传。

    • 或者使用辅助脚本 upload.py,在Rust项目文件夹内部使用命令 python3 upload.py "192.168.3.1" "Hello" 上传WASM文件。IP地址是Dora SSR Web IDE地址。

  3. 步骤 3:运行游戏

    点击编辑器右下角的 🎮 图标,然后单击菜单项 Run。或者按组合键 Ctrl + r

  4. 步骤 4:发布游戏

    • 通过编辑器左侧游戏资源树打开刚创建的项目文件夹的右键菜单,并点击 Download 选项。

    • 等待浏览器弹出下载提示,以下载打包的项目文件。

有关更详细的教程,请参阅官方文档


社区


许可

Dora SSR使用MIT许可。

依赖

~0.3–0.8MB
~18K SLoC