30 releases
0.4.11 | Oct 29, 2024 |
---|---|
0.4.7 | Sep 23, 2024 |
0.3.3 | Jul 26, 2024 |
0.1.6 | Feb 29, 2024 |
0.1.4 | Dec 26, 2023 |
#50 in Game dev
389 downloads per month
665KB
9K
SLoC
Dora SSR
Dora SSR is a game engine for rapid development of 2D games on various devices. It has a built-in easy-to-use development tool chain that supports direct game development on mobile phones, open source handhelds and other devices.
Key Features
-
Manages game scenes based on tree node structure.
-
Basic 2D platform game functions, including game logic and AI development framework.
-
Easy-to-use ECS module for game entity management.
-
Asynchronous processing of file read and write, resource loading and other operations.
-
Upgraded Lua binding with support for inheriting and extending low-level C++ objects.
-
Supports Yuescript language, strong expressive and concise Lua dialect.
-
Supports for the Teal language, a statically typed dialect for Lua.
-
Supports TypeScript, a statically typed superset of JavaScript that adds powerful type checking.
-
Supports TSX, allows embedding XML/HTML-like text within scripts, used with TypeScript.
-
Supports the Rust language, running on the built-in WASM runtime with Rust bindings.
-
2D skeletal animation and physics engine support.
-
Built-in out-of-the-box Web IDE, providing file management, code inspection, completion, highlighting and definition jump.
-
Supports asynchronous operation of SQLite for real-time query and managing large game configuration data.
-
Supports reading Excel spreadsheet data and synchronizing it to SQLite tables.
-
Supports the Yarn Spinner language, making it easy to write complex game story systems.
-
Built-in machine learning algorithm framework for innovative gameplay.
-
Provides vector graphics rendering API, which can directly render SVG format files without CSS.
-
Built-in ImGui, easy to create debugging tools and UI interface.
-
Supports FLAC, OGG, MP3 and WAV multi-format audio playback.
-
Supports True Type font rendering and basic typesetting.
-
Provides open art resources and game IPs that can be used to create your own games - "Luv Sense Digital".
Installation
-
Quick start
-
Android
-
- Download and install the APK package on the running terminal for game dev.
-
- Run the software, and access the server address displayed by the software through the browser of a PC (tablet or other development device) on the LAN.
-
- Start game development.
-
-
Windows, macOS
-
- Download and run the software.
- Get software on macOS with Homebrew using
brew tap ippclub/dora-ssr brew install --cask dora-ssr
- Download and run the software.
-
- Run the software and access the server address displayed by the software through a browser.
-
- Start game development.
-
-
Linux
-
- Installation.
-
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
-
- Run the software and access the server address displayed by the software through a browser.
-
- Start game development.
-
-
-
Engine project development
For the installation and configuration of Dora SSR project development, see Official Documents for details.
Quick Start
-
Step 1: Create a new project
-
In the browser, open the right-click menu of the game resource tree on the left side of the Dora Dora editor.
-
Click on the menu item
New
and choose to create a new folder namedHello
.
-
-
Step 2: Write game code
-
Create a new project in command line.
rustup target add wasm32-wasi cargo new hello-dora --name init cd hello-dora cargo add dora_ssr
-
Write code in
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), ])); })); }
-
Build it into WASM file.
cargo build --release --target wasm32-wasi
-
Upload it to engine to run. From Dora SSR Web IDE, Open the right-click menu of the game resource tree on the created folder
Hello
. Click on the menu itemUpload
and choose the compiled WASM file namedinit.wasm
to upload. -
Or use a helper script upload.py with commad
python3 upload.py "192.168.3.1" "Hello"
inside your Rust project folder to upload WASM file. The IP address is the Dora SSR Web IDE address.
-
-
Step 3: Run the game
Click the
🎮
icon in the lower right corner of the editor, then click the menu itemRun
. Or press the key combinationCtrl + r
. -
Step 4: Publish the game
-
Open the right-click menu of the project folder just created through the game resource tree on the left side of the editor and click the
Download
option. -
Wait for the browser to pop up a download prompt for the packaged project file.
-
For more detailed tutorials, please check official documents.
Community
License
Dora SSR uses the MIT License.
Dependencies
~295–760KB
~17K SLoC