--- /dev/null
+use core::level::Level;
+use core::render::Renderer;
+use sprites::SpriteManager;
+use time::Duration;
+
+pub mod boll;
+pub mod character;
+
+pub type Objects = Vec<Box<dyn Object>>;
+
+////////// OBJECT //////////////////////////////////////////////////////////////
+
+pub trait Object {
+ fn update(&mut self, objects: &mut Objects, lvl: &Level, dt: Duration) -> ObjectState;
+ fn render(&self, _renderer: &mut Renderer, _sprites: &SpriteManager) {}
+}
+
+#[derive(PartialEq)]
+pub enum ObjectState { Alive, Dead }
+
+pub trait Physical {}
+pub trait Drawable {}