Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p><strong>Update 2013-01-07</strong>: <em>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 <a href="http://v-play.net" rel="noreferrer">V-Play engine</a>. It very well integrates QTs <a href="http://v-play.net/doc/index.html#qml-introduction" rel="noreferrer">QML property binding</a> functionality.</em></p> <p>We did some research on CBSE in games at our university and I collected some material over the years:</p> <p>CBSE in games literature:</p> <ul> <li>Game Engine Architecture</li> <li>Game Programming Gems 4: A System for Managin Game Entities Game</li> <li>Game Programming Gems 5: Component Based Object Management</li> <li>Game Programming Gems 5: A Generic Component Library</li> <li>Game Programming Gems 6: Game Object Component System</li> <li>Object-Oriented Game Development</li> <li>Architektur des Kerns einer Game-Engine und Implementierung mit Java (german)</li> </ul> <p>A very good and clean example of a component-based game-engine in C# is the <a href="http://www.codeplex.com/elephant" rel="noreferrer">Elephant game framework</a>.</p> <p>If you really want to know what components are read: Component-based Software Engineering! They define a component as:</p> <blockquote> <p>A <em>software component</em> is a software element that conforms to a component model and can be independently deployed and composed without modification according to a composition standard.</p> <p>A <em>component model</em> <strong>defines specific interaction</strong> and composition standards. A <em>component model implementation</em> is the dedicated set of executable software elements required to support the execution of components that conform to the model.</p> <p>A <em>software component infrastructure</em> 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.</p> </blockquote> <p><strong>My opinions after 2 years of experience</strong> 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 <a href="https://stackoverflow.com/questions/1028250/what-is-functional-reactive-programming">functional-reactive programming</a> instead. Also take a look at my fresh blog post (which lead me to this question while writing it :)) about <strong><a href="http://lambdor.net/?p=171" rel="noreferrer">Why I switched from component-based game engine architecture to FRP</a></strong>.</p> <p>CBSE in games papers:</p> <ul> <li><a href="http://books.google.at/books?id=G1jQpyZI2JgC&amp;lpg=PP1&amp;pg=PA66#v=onepage&amp;q=&amp;f=false" rel="noreferrer">Component Based Game Development – A Solution to Escalating Costs and Expanding Deadlines?</a> </li> <li><s><a href="http://www.acims.arizona.edu/PUBLICATIONS/PDF/JeffPlummerMSthesis_wo_Appendix.pdf" rel="noreferrer">A Flexible And Expandable Architecture For Computer Games</a></s> (404)</li> <li><a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.89.2884&amp;rep=rep1&amp;type=pdf" rel="noreferrer">A Software Architecture for Games</a></li> <li><a href="http://web.archive.org/web/20130628084044/http://mi-lab.org/wp-content/blogs.dir/1/files/publications/Haller%20et%20al%20-%20ACM%20SIGGRAPH%20Campfire%202002%20-%20A%20generic%20framework%20for%20game%20development.pdf" rel="noreferrer">A Generic Framework For Game Development</a> (WebArchive)</li> <li><a href="http://portal.acm.org/ft_gateway.cfm?id=1658872&amp;type=pdf&amp;coll=portal&amp;dl=ACM&amp;CFID=575755565&amp;CFTOKEN=575755565" rel="noreferrer">Smart Composition Of Game Objects Using Dependency Injection</a></li> </ul> <p>CBSE in games web-links (sorted by relevancy):</p> <ul> <li><s><a href="http://www.oddrosemedia.com/wiki/index.php" rel="noreferrer">Component based objects Wiki</a></s> (Empty wiki)</li> <li><a href="http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy" rel="noreferrer">Evolve Your Hierachy</a></li> <li><a href="http://www.gamearchitect.net/Articles/GameObjects1.html" rel="noreferrer">Game Object Structure: Inheritance vs. Aggregation</a></li> <li><a href="http://scottbilas.com/files/2002/gdc_san_jose/game_objects_paper.pdf" rel="noreferrer" title="PDF">A Data-Driven Game Object System (PDF)</a></li> <li><a href="http://scottbilas.com/files/2002/gdc_san_jose/game_objects_slides.ppt" rel="noreferrer">A Data-Driven Game Object System (PPT)</a></li> <li><a href="http://blog.scrambled-egg.net" rel="noreferrer">Component-based prototyping tool for flash</a></li> <li><s><a href="http://cmpmedia.vo.llnwd.net/o1/vault/gdccanada09/slides/marcinchadyGDCCanada.ppt" rel="noreferrer">Theory and Practice of Game Object Component Architecture</a></s> (404)</li> <li><a href="http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1" rel="noreferrer">Entity Systems are the Future of MMOs</a></li> <li><a href="http://www.ogre3d.org/forums/viewtopic.php?f=1&amp;t=36015" rel="noreferrer">ogre3d.org forum: Component Based Objects</a></li> <li><a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=463508" rel="noreferrer">gamedev.net: Outboard component-based entity system architecture</a></li> <li><a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=489703" rel="noreferrer">gamedev.net: Entity System question</a></li> <li><a href="http://web.archive.org/web/20100730072945/http://www.brainfold.org/blog/tag/entity-system" rel="noreferrer">Brainfold entity-system blog</a> (WebArchive)</li> </ul>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload