update README

This commit is contained in:
lisk77 2025-02-25 00:57:59 +01:00
parent 80a62ab2b3
commit 328e1075b8

117
README.md
View file

@ -4,9 +4,9 @@ a free and open source games framework
> [!WARNING] > [!WARNING]
> This project is in early development and is not yet ready for use. > This project is in early development and is not yet ready for use.
> >
> It could be potentially used to make something very basic in a very hacky way but it is not a good experience > It could be potentially used to make something very basic in a very hacky way, but it is not a good experience
> >
> Installation is manual as of right now but if it reaches an exaptable state I will publish the crate > Installation is manual as of right now but if it reaches an acceptable state I will publish the crate
## Recommended setup ## Recommended setup
@ -26,10 +26,10 @@ project
``` ```
```toml ```toml
# Cargo.toml # Cargo.toml
# ... # ...
[dependencies] [dependencies]
comet = { path = "crates/comet" } comet = { path = "path/of/the/comet/crate" }
# ... # ...
``` ```
@ -40,9 +40,9 @@ use comet::prelude::*;
struct GameState {} struct GameState {}
impl GameState { impl GameState {
pub fn new() -> Self { pub fn new() -> Self {
Self {} Self {}
} }
} }
// This function will be called once before the event loop starts // This function will be called once before the event loop starts
@ -50,14 +50,14 @@ fn setup(app: &mut App, renderer: &mut Renderer2D) {}
// This function will be called every tick // This function will be called every tick
fn update(app: &mut App, renderer: &mut Renderer2D, dt: f32) {} fn update(app: &mut App, renderer: &mut Renderer2D, dt: f32) {}
fn main() { fn main() {
App::new() // Generate a basic 2D app App::new() // Generate a basic 2D app
.with_preset(App2D) // Pre-registers the `Transform2D` component in the world .with_preset(App2D) // Pre-registers the `Transform2D` component in the world
.with_title("Comet App") // Sets the window title .with_title("Comet App") // Sets the window title
.with_icon(r"resources/textures/comet_icon.png") // Sets the window icon .with_icon(r"resources/textures/comet_icon.png") // Sets the window icon
.with_size(1920, 1080) // Sets the window size .with_size(1920, 1080) // Sets the window size
.with_game_state(GameState::new()) // Adds a custom game state struct .with_game_state(GameState::new()) // Adds a custom game state struct
.run::<Renderer2D>(setup, update) // Starts app .run::<Renderer2D>(setup, update) // Starts app with the given
} }
``` ```
@ -70,65 +70,32 @@ use fs_extra::dir::CopyOptions;
use std::env; use std::env;
fn main() -> Result<()> { fn main() -> Result<()> {
println!("cargo:rerun-if-changed=resources/textures/*"); println!("cargo:rerun-if-changed=resources/textures/*");
println!("cargo:rerun-if-changed=resources/shaders/*"); println!("cargo:rerun-if-changed=resources/shaders/*");
let out_dir = env::var("OUT_DIR")?; let out_dir = env::var("OUT_DIR")?;
let mut copy_options = CopyOptions::new(); let mut copy_options = CopyOptions::new();
copy_options.overwrite = true; copy_options.overwrite = true;
let mut paths_to_copy = Vec::new(); let mut paths_to_copy = Vec::new();
paths_to_copy.push("resources/textures/"); paths_to_copy.push("resources/textures/");
paths_to_copy.push("resources/shaders/"); paths_to_copy.push("resources/shaders/");
copy_items(&paths_to_copy, out_dir, &copy_options)?; copy_items(&paths_to_copy, out_dir, &copy_options)?;
Ok(()) Ok(())
} }
``` ```
## Todo ## Todo
(not ordered by importance) (not ordered by importance)
- [x] Fixed update steps (60 updates per second right now) - [ ] (out of the box) Rendering
- [ ] Rendering
- [x] 2D
- [x] Textures
- [ ] 3D
- [ ] Meshes
- [ ] Normal maps
- [x] Texture Atlas
- [x] Shaders
- [ ] Materials
- [ ] Text
- [ ] Particles
- [ ] Animations
- [ ] Lighting
- [ ] UI
- [ ] Buttons
- [ ] Input
- [ ] Post-processing
- [ ] Multiple render passes
- [ ] Individual effects
- [ ] Sound
- [ ] Input
- [ ] Universal input manager
- [x] Keyboard
- [x] Mouse
- [ ] Gamepad
- [x] ECS
- [x] Components
- [x] Entities
- [x] Archetypes
- [x] World
- [ ] Scene
- [ ] loading
- [ ] saving
- [ ] Physics
- [ ] 2D - [ ] 2D
- [x] texture rendering
- [x] world rendering
- [ ] 3D - [ ] 3D
- [x] Plugin System (at least right now) - [ ] Particles
- [x] Adding custom game state struct - [ ] Post-processing
- [x] Adding custom renderer
- [ ] Math - [ ] Math
- [x] Vectors - [x] Vectors
- [x] Matrices - [x] Matrices
@ -137,14 +104,18 @@ fn main() -> Result<()> {
- [ ] Bezier curves - [ ] Bezier curves
- [x] Easing functions - [x] Easing functions
- [ ] Noise - [ ] Noise
- [ ] White
- [ ] Perlin
- [ ] Simplex
- [ ] Worley
- [ ] Fractal
- [ ] Cellular
- [ ] Gradient
- [ ] Value
- [ ] Cubic
- [ ] Ray-casting - [ ] Ray-casting
- [ ] Pathfinding - [ ] Pathfinding
- [ ] ECS
- [x] Components
- [x] Entities
- [x] Archetypes
- [ ] World
- [x] general management
- [ ] saving
- [ ] loading
- [ ] Input
- [ ] Sound
- [ ] Physics
- [x] Basic Plugin System
- [x] Custom Renderer