This is a great start! I made few adjustments and (hopefully) clarifications. I'm assuming we use some kind of Singleton class, but I haven't yet figured out a clean way to do this with C#.
class Application : Singleton
Purpose: | Holds everything for the program |
---|
Contents: | Main program entry point
Game object
Menus collection
Form object
Render Device |
---|
class Game : Singleton
Purpose: | For everything in the actual game (as in part of the gameplay), and nothing else. |
---|
Contents: | Level object
Player collection |
---|
class Level : Singleton
Purpose: | For everything in a single level. |
---|
Contents: | Tileset collection
Layer collection
Object collection |
---|
class Player : IControllableObject
Purpose: | Everything related to the player in the game |
---|
class Layer
Purpose: | Contains the arrangement of tiles that make up the level. |
---|
Contents | Tile collection |
---|
class Tile
Purpose: | Represents a single tile on a single layer |
---|
Contents: | Tileset index
Tile index |
---|
class Tileset
Purpose: | Contains a full tileset. |
---|
Contents: | Tile collection |
---|
interface IGameObject
Purpose: | Abstract base class for all dynamic objects in the game. |
---|
interface IRenderableObject
Purpose: | An object that can be rendered |
---|
Contents: | Reference to a Graphic Resource through the Resource Manager |
---|
class ResourceManager : Singleton
Purpose: | Stores, loads, and otherwise manages all resources. |
---|
interface IResource
Purpose: | Abstract base class for all resources (such as graphics, sounds, etc.). |
---|
class GraphicResource : IResource
Purpose: | Contains a graphical resource |
---|
class Menus
Purpose: | For a system of menus. |
---|
Contents: | Menu collection |
---|
class Menu
Purpose: | The stuff for a single menu screen. |
---|
class GameForm : Windows.Form
Purpose: | Just the standard empty form there to be used for drawing. Doesn't really contain anything. May be able to just use System.Form directly. |
---|
class RenderDevice
Purpose: | Interfaces with the graphics library for all the rendering. |
---|
Contents: | All stuff needed for the graphics library
Reference to the form to draw to |
---|
|