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

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

问题描述

我一直在研究游戏引擎设计(特别关注 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.

推荐答案

Update 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:

  • 游戏引擎架构
  • Game Programming Gems 4:管理游戏实体游戏的系统
  • Game Programming Gems 5:基于组件的对象管理
  • Game Programming Gems 5:通用组件库
  • Game Programming Gems 6:游戏对象组件系统
  • 面向对象的游戏开发
  • Architektur des Kerns einer Game-Engine und Implementationierung mit Java(德语)

Elephant 游戏框架.

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

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 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天全站免登陆