2个版本
0.0.2 | 2020年7月20日 |
---|---|
0.0.1 | 2020年7月18日 |
#1692 in 游戏开发
88KB
2.5K SLoC
kit
** 警告:非常早期的WIP **
Kit是一个非常原始的3D游戏引擎。我制作它是为了学习游戏引擎编码,并且希望将来它能成为游戏比赛项目的合理基础。
Kit将支持2D和3D,但如果您在寻找专注于2D的引擎,我建议您查看ggez,因为它看起来非常稳定,并且在开发上已经取得了很大的进步。
待办事项
缺少的功能很多。请自行承担风险(我甚至不会说它现在可用)。我目前正在计划添加的功能
- 游戏手柄支持
- 完整的键盘输入支持
- 鼠标输入支持
- 音频
- 可能需要文档 /s
- 合理的(或可扩展的?可配置的?)绘制命令限制(它们目前非常任意)
- 完整的矢量数学库(也许我会在以后切换到glam?我手动编写的版本现在有很多漏洞和不一致性)
- 调查使用wgpu-rs而不是sokol(wgpu-rs可能是更面向Rust的方法)
- 3D模型加载
- 照明(可能)
- 在绘制命令中,线、圆和点原语总是被绘制在模型之上和精灵之下 - 应该修复深度处理
- 游戏热重载以进行快速迭代
- 示例项目
- 多个渲染层(例如,用于覆盖GUI)
- 资源卸载(用于区域转换等)
- 从某些易于编辑的通用格式加载精灵图集
入门
use kit::*;
const TITLE: &str = "My Amazing Game";
struct App {
// game state can go here
}
impl KApp for App {
fn new() -> Self {
Self {}
}
fn init(&mut self, ctx: &mut Ctx) {
// initialization logic goes here
}
fn frame(&mut self, ctx: &mut Ctx) {
let state = &mut self.state;
// update logic goes here
}
}
fn main() {
run::<App>(KAppDesc {
window_title: TITLE.to_string(),
..Default::default()
});
}
依赖项
~14MB
~73K SLoC