Properties of objects: Could be solid (as in, you can stand on it) Could be something that moves Could be dangerous Could come from a file A note we should deal with: Move that one object might share a shader (common) Or an .obj file (probably less common) Could also share a texture gameobject (base class for anything in the game) tile_floor loaded_object (loaded from a file AND can be collided with and stood on) elevator projectile target lightbox weirdbox Projectile, from obj file, moves but you can't stand on it Wall block, not from obj file, doesn't move, and you can stand on it House, from obj file, doesn't move, and you can't stand on it Options: Multiple Inheritance Helper functions New way for wall block from a file: gameobject loaded_object block_object wallblock gameobject loaded_object projectile What file should these be in? main.cpp: Holds the main function and thread main functions game.h: Globals, base class definitions, helper function prototypes baseobject.cpp: Implementations of gameobject, loaded_object, and block_object Other objects: Probably in their own files unless they're simple? We'll need a makefile