The Use of Design Patterns In Game Development

摘自:http://gamedev.stackexchange.com/questions/4157/what-are-some-programming-design-patterns-that-are-useful-in-game-development


  • Builder: set up component-based entity one component at a time, based on data
  • Factory Method: create NPCs or GUI widgets based on a string read from a file
  • Prototype: store one generic 'Elf' character with initial properties and create Elf instances by cloning it.
  • Singleton: this space deliberately left blank.
  • Adapter: incorporate an optional 3rd party library by wrapping it in a layer that looks like your existing code. Very useful with DLLs.
  • Composite: make a scene graph of renderable objects, or make a GUI out of a tree of Widgets
  • Facade: simplify complex 3rd party libraries by providing a simpler interface to make your life easier later.
  • Flyweight: store the shared aspects of an NPC (eg. models, textures, animations) separately from the individual aspects (eg. position, health) in a mostly transparent way
  • Proxy: Create small classes on a client that represent larger, more complex classes on a server, and forward requests via the network.
  • Chain of responsibility: handle input as a chain of handlers, eg. global keys (eg. for screen shots), then the GUI (eg. in case a text box is focused or a menu is up), then the game (eg. for moving a character)
  • Command: encapsulate game functionality as commands which can be typed into a console, stored and replayed, or even scripted to help test the game
  • Mediator: implement game entities as a small mediator class that operates on different components (eg. reading from the health component in order to pass the data to the AI component)
  • Observer: have the renderable representation of a character listen to events from the logical representation, in order to change the visual presentation when necessary without the game logic needing to know anything about rendering code
  • State: store NPC AI as one of several states, eg. Attacking, Wandering, Fleeing. Each can have its own update() method and whatever other data it needs (eg. storing which character it is attacking or fleeing from, the area in which it is wandering, etc.)
  • Strategy: switch between different heuristics for your A* search, depending on what sort of terrain you're in, or perhaps even to use the same A* framework to do both pathfinding and more generic planning
  • Template method: set up a generic 'combat' routine, with various hook functions to handle each step, eg. decrement ammo, calculate hit chance, resolve hit or miss, calculate damage, and each type of attack skill will implement the methods in their own specific way

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Here are 23 popular design patterns in C programming language: 1. Singleton pattern: restricts a class to have only one instance, while providing a global access point to this instance. 2. Factory pattern: creates objects without specifying the exact class of object that will be created. 3. Abstract Factory pattern: provides an interface for creating families of related or dependent objects without specifying their concrete classes. 4. Builder pattern: separates the construction of a complex object from its representation, allowing the same construction process to create various representations. 5. Prototype pattern: creates new objects by cloning an existing object. 6. Adapter pattern: converts the interface of a class into another interface that clients expect. 7. Bridge pattern: decouples an abstraction from its implementation so that the two can vary independently. 8. Filter pattern: provides a way to filter objects using different criteria. 9. Composite pattern: composes objects into tree structures to represent part-whole hierarchies. 10. Decorator pattern: adds behavior to objects dynamically by wrapping them in an object of a decorator class. 11. Facade pattern: provides a simplified interface to a large body of code. 12. Flyweight pattern: conserves memory by sharing data that can be shared among multiple objects. 13. Proxy pattern: provides a placeholder object that controls access to the original object. 14. Chain of Responsibility pattern: passes a request sequentially along a dynamic chain of receivers until one of them handles it. 15. Command pattern: creates objects that encapsulate actions and parameters. 16. Interpreter pattern: provides a way to evaluate language grammar or expression. 17. Iterator pattern: accesses the elements of an object sequentially without exposing its underlying representation. 18. Mediator pattern: allows loose coupling between classes by being the only class that has detailed knowledge of their methods. 19. Memento pattern: captures and externalizes an object's internal state so that the object can be restored to this state later. 20. Observer pattern: establishes a one-to-many relationship between objects, where one object is the subject and the others are observers. 21. State pattern: allows an object to alter its behavior when its internal state changes. 22. Strategy pattern: defines a family of algorithms, encapsulates each one, and makes them interchangeable. 23. Template Method pattern: defines the skeleton of an algorithm in a method, deferring some steps to subclasses. These patterns can help you write maintainable, reusable, and scalable code in C. However, they are just guidelines, and it's up to the programmer to decide when and how to apply them in specific situations.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值