nartannt/rust_engine
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Right now the main goal is cleaning up the code, creating the modules, finishing some basic interface and getting a minimal project working.
Development will then consist in developing an example game (a kingdom rush clone?) and adding features as needed developping both in parallel.
Once a reasonable set of features are implemented work on a "real" game and refine the engine as the game demands it.
TODO (general) :
- Reorganise all files
- Make modules out of the relevant parts
- Get minimal project working
- Add support for textures
- Lighting
- make a demo repo for trying things out
TODO (precise steps) :
- use mouse to rotate camera
- Figure out a way for scene to be able to load all its unloaded game objects at once
- make game draw the scenes in self.scenes
File organisation:
- component.rs, logic and traits related to components
- camera.rs, camera struct and basic functions
- game_object.rs
- game.rs, game struct
-- Game::run() is the main loop of the game
- graphic_component.rs
-- object model struct
-- graphic compoenent struct
-- load model and shader functions
- fps_camera_controller.rs, allows for an fps camera controller
-- TODO should not be in base project, but is useful for testing
- input.rs, handles input
-- keeps track of the keyboard state
-- TODO mouse state
- main.rs, main
- scene.rs
-- draws its objects
-- TODO current assumption that each go has at most one gc
- transform.rs, transform struct and rotation related functions
Interface:
Creating a go, scene and showing them on screen:
- create new game
- create new scene
- create graphic component
-- requires shaders (vertex and fragment)
-- requires model
- add model and shader to gc
- create go
- add graphic component to go in scene
- add go to scene
- add scene to game
- run