====== Technical Design Patterns for Games ====== In many cases a design pattern documented in another field can apply to game design. For instance, see the [[proxy]] and [[observer]] patterns. In such cases we try to touch on how the patterns are relevant and applied to game design. Of course, there are also domain specific patterns such as the [[finite state machine]] and [[grid]] patterns. In these cases more work is necessary to focus and document the pattern. In all case these patterns are useful when putting together the game engine or framework for your game. Oftentimes the problems you need to solve are problems your neighbor has already solved or at least thought about. Let's bring together that common knowledge in one place in order to further our craft. ===== List of Design Patterns ===== * [[Animatable]] * [[Abstract Entity]] * [[Entity]] * [[EntityGroup]] * [[Finite State Machine]] * [[MVC]] * [[Object Pool]] * [[Observer]] * [[Proxy]] * [[Ray Casting]] ===== List of Commonly Used Algorithms ===== * [[algorithms:a_algorithm|A* Algorithm]] - used for path finding * [[algorithms:grid|Grid]] - used to represent where things are on screen * [[algorithms:dijkstra_s_algorithm|Dijkstra's Algorithm]] - another path finding algorithm