1. An engine should be independent of the project and capable of working with other video game projects and non-game multimedia software projects without the need to modify the engine's dode. In other words: The engine's code must not include any game-related code, and it has to be reusable.
2. The God's responsibilities:
a. Offer the player the best you can achieve on current hardware.
b. Try your best to ensure that the game is always seen as just that: a game.
3. You need to set up a document along with your project in which you write down the dates when you achieve what you think is at lease a medium-sized goal of your project. Also write down how many working hours you spent from the last major point to get ot the current one. Tracking your hobby project will increase your knowledge of what you can do in a given amount of time.
4. Requirements for the engine:
a. Naming the engine;
b. Is the game code autonomous;
c. Render primitives efficiently, query input form the keyboard, the mouse, and the joystick, play sound effects, provide network connections.
5. An interface is, after all, nothing more than a template for an object with a list of functions a real object must implement. (p34)
6. You would also call a base class an inter face or an adapter if it implements its functions only by delegating them to another class's instance, which it holds as a member variable. (p34)