diff --git a/README.md b/README.md index 8623e8c..047f2a4 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,49 @@ a free and open source games framework > > UPDATE: It is slowly getting where I want it to be (at least for 2D) -## Features +## Recommended setup + +The project structure should look like this: + +``` +project +│ Cargo.toml +│ src +│ └── main.rs +│ resources +│ └── shaders +│ └── textures +``` + +```rust +// main.rs + +// This will be cleaned up in the future +// but for now I don't have a prelude. +use comet::{ + app::{ + App, + ApplicationType::* + }, + renderer::renderer2d::Renderer2D, +}; + +// This function will be called once before the event loop starts +fn setup(app: &mut App, renderer: &mut Renderer2D) {} +// This function will be called every tick +fn update(app: &mut App, renderer: &mut Renderer2D) {} + +fn main() { + App::new(App2D) // Generate a basic 2D app + .with_title("Comet App") // Sets the window title + .with_icon(r"resources/textures/comet_icon.png") // Sets the window icon + .with_size(1920, 1080) // Sets the window size + .with_game_state(GameState::new()) // Adds a custom game state struct + .run::(setup, update) // Starts app +} +``` + +## Todo (not ordered by importance) - [x] Fixed update steps (60 updates per second right now) @@ -19,12 +61,16 @@ a free and open source games framework - [ ] Meshes - [ ] Normal maps - [x] Texture Atlas - - [ ] Shaders + - [x] Shaders - [ ] Materials - [ ] Text - [ ] Particles - [ ] Animations - [ ] Lighting + - [ ] UI + - [ ] Buttons + - [ ] Input + - [ ] Multiple render passes - [ ] Sound - [ ] Input - [ ] Universal input manager @@ -39,11 +85,9 @@ a free and open source games framework - [ ] Scene - [ ] loading - [ ] saving -- [ ] UI - - [ ] Buttons - - [ ] Text - - [ ] Input - [ ] Physics - [ ] 2D - [ ] 3D -- [ ] Plugin System \ No newline at end of file +- [x] Plugin System (at least right now) + - [x] Adding custom game state struct + - [x] Adding custom renderer \ No newline at end of file