基于组件的游戏引擎设计 [英] Component based game engine design

查看:148
本文介绍了基于组件的游戏引擎设计的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在看游戏引擎设计(特别关注于2D游戏引擎,也适用于3D游戏),并且有兴趣了解一些有关如何处理的信息。我听说很多引擎现在正在转向基于组件的设计,而不是传统的深层对象层次结构。

I have been looking at game engine design (specifically focused on 2d game engines, but also applicable to 3d games), and am interested in some information on how to go about it. I have heard that many engines are moving to a component based design nowadays rather than the traditional deep-object hierarchy.

你知道有关这些各种设计往往得到实施?我看到发展你的层次结构,但我找不到更多的详细信息(大多数只是似乎说使用组件而不是层次结构,但我发现需要一些努力来改变我的想法在两个模型之间)。

Do you know of any good links with information on how these sorts of designs are often implemented? I have seen evolve your hierarchy, but I can't really find many more with detailed information (most of them just seem to say "use components rather than a hierarchy" but I have found that it takes a bit of effort to switch my thinking between the two models).

任何良好的链接或信息将不胜感激,甚至书籍,虽然这里的链接和详细的答案将是首选。

Any good links or information on this would be appreciated, and even books, although links and detailed answers here would be preferred.

推荐答案

更新2013-01-07 如果你想看到一个很好的组合基于组件的游戏引擎(在我看来)反应式编程的优越方法可以看看 V-Play引擎。它很好地集成了QTs QML属性绑定功能。

Update 2013-01-07: If you want to see a good mix of component-based game engine with the (in my opinion) superior approach of reactive programming take a look at the V-Play engine. It very well integrates QTs QML property binding functionality.

我们在我们大学的游戏中对CBSE进行了一些研究,多年来我收集了一些资料:

We did some research on CBSE in games at our university and I collected some material over the years:

CBSE在游戏文学中:

CBSE in games literature:


  • 游戏引擎架构

  • 游戏编程宝石4:Managin游戏系统实体游戏

  • 游戏编程宝石5:基于组件的对象管理

  • 游戏编程宝石5:通用组件库

  • 游戏编程宝石6:游戏对象组件系统

  • 面向对象的游戏开发

  • Architektur des Kerns einer游戏引擎和实现(德语)

  • Game Engine Architecture
  • Game Programming Gems 4: A System for Managin Game Entities Game
  • Game Programming Gems 5: Component Based Object Management
  • Game Programming Gems 5: A Generic Component Library
  • Game Programming Gems 6: Game Object Component System
  • Object-Oriented Game Development
  • Architektur des Kerns einer Game-Engine und Implementierung mit Java (german)

C#中基于组件的游戏引擎的一个非常好的干净例子是大象游戏框架

A very good and clean example of a component-based game-engine in C# is the Elephant game framework.

如果您真的想知道读取哪些组件:基于组件的软件工程!
他们将组件定义为:

If you really want to know what components are read: Component-based Software Engineering! They define a component as:


软件组件是符合组件模型,并且可以根据组合标准独立地部署和组合而不进行修改。

A software component is a software element that conforms to a component model and can be independently deployed and composed without modification according to a composition standard.

组件模型 定义特定的交互<强>和组成标准。组件模型实现是支持执行符合模型的组件所需的专用可执行软件元素集。

A component model defines specific interaction and composition standards. A component model implementation is the dedicated set of executable software elements required to support the execution of components that conform to the model.

A 软件组件基础设施是一组交互式软件组件,旨在确保使用这些组件和接口构建的软件系统或子系统将满足明确的性能规范。

A software component infrastructure is a set of interacting software components designed to ensure that a software system or subsystem constructed using those components and interfaces will satisfy clearly defined performance specifications.

我在CBSE游戏中经历2年经验的观点认为面向对象的编程只是一个死胡同。记住我的警告,当你看到你的组件变得越来越小,更像是功能包装在组件中有很多无用的开销。请改用功能反应式编程。关于 我的新博客文章(导致我写这个问题:))为什么我从基于组件的游戏引擎架构转为FRP

My opinions after 2 years of experience with CBSE in games thought are that object-oriented programming is simply a dead-end. Remember my warning as you watch your components become smaller and smaller, and more like functions packed in components with a lot of useless overhead. Use functional-reactive programming instead. Also take a look at my fresh blog post (which lead me to this question while writing it :)) about Why I switched from component-based game engine architecture to FRP.

CBSE在游戏论文中:

CBSE in games papers:

  • Component Based Game Development – A Solution to Escalating Costs and Expanding Deadlines?
  • A Flexible And Expandable Architecture For Computer Games (404)
  • A Software Architecture for Games
  • A Generic Framework For Game Development (WebArchive)
  • Smart Composition Of Game Objects Using Dependency Injection

CBSE在游戏网页链接(按相关性排序):

CBSE in games web-links (sorted by relevancy):

  • Component based objects Wiki (Empty wiki)
  • Evolve Your Hierachy
  • Game Object Structure: Inheritance vs. Aggregation
  • A Data-Driven Game Object System (PDF)
  • A Data-Driven Game Object System (PPT)
  • Component-based prototyping tool for flash
  • Theory and Practice of Game Object Component Architecture (404)
  • Entity Systems are the Future of MMOs
  • ogre3d.org forum: Component Based Objects
  • gamedev.net: Outboard component-based entity system architecture
  • gamedev.net: Entity System question
  • Brainfold entity-system blog (WebArchive)

这篇关于基于组件的游戏引擎设计的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆