5个版本
0.0.4 | 2021年10月20日 |
---|---|
0.0.3 | 2020年8月21日 |
0.0.2 | 2020年8月7日 |
0.0.1 | 2020年3月6日 |
0.0.0 | 2019年2月1日 |
#1312 in 游戏开发
190KB
5K SLoC
TakWolf的游戏引擎(tge)
使用纯Rust编写,基于OpenGL 3.3+的轻量级跨平台2D游戏框架。
灵感来源于 LÖVE。
tge目前处于非常早期的开发阶段。API可能会更改。直到版本 0.1.0
。
功能
- 仅2D,使用像素单位。
- 基于OpenGL的硬件加速渲染。
- 自动处理渲染批处理。
- 支持动态字体渲染和文本布局。
- 支持高DPI。
- 处理键盘、鼠标、触摸、触摸板和游戏手柄输入。
- 音频播放。(待完成)
非目标
- 3D。
- 视觉编辑器。
以下不包含,但可以轻松与其他crate协同工作
- 实体组件系统(ECS)。
- 物理引擎和碰撞检测。
- 网络。
使用方法
将依赖项行添加到您的 Cargo.toml
文件中
[dependencies]
tge = "0.0.4"
为了提高性能,请添加以下配置
[profile.dev]
opt-level = 3
然后创建一个基本模板。以下是最小示例,它将创建一个窗口
use tge::prelude::*;
struct App {}
impl App {
fn new(_: &mut Engine) -> GameResult<Self> {
// load assets
Ok(Self {})
}
}
impl Game for App {
fn update(&mut self, _: &mut Engine) -> GameResult {
// handle logic
Ok(())
}
fn render(&mut self, engine: &mut Engine) -> GameResult {
engine.graphics().clear(Color::BLUE);
// draw sprites
Ok(())
}
}
fn main() -> GameResult {
let mut engine = EngineBuilder::new()
.window_config(WindowConfig::new()
.title("My Game")
.inner_size((1024.0, 600.0)))
.build()?;
let mut app = App::new(&mut engine)?;
engine.run(&mut app)
}
就这样!
您还可以查看 examples/
目录以了解其他示例。
性能
请参阅示例 bunny_mark
和 hare_mark
。
待完成
以下正在开发中
- 混合
- 程序统一
- 截图
- 虚拟资产路径
- 异步加载资产
- 音频
- 文档
许可证
依赖项
~18MB
~358K SLoC