Einfach mal nach dem Thema googlen und Du wirst einiges finden zum Thema "Death to scenegraph". Bei gamedev.net zum Beispiel. std::list ist übrigens nur ein bedingt besserer Ansatz.
Hier mal ein Link zu dem Thema
https://docs.google.com/present/view?id=…G5yM3pjZA&hl=en
Viele vergessen halt, ihre Objekte effektiv im Speicher abzulegen. Ein Scenegraph ist hier ein perfektes Beispiel. Es ist nicht nur extremst uneffektiv, sich durch diesen Baum durchzuarbeiten. Aber vom speichertechnischen gesehen, ist es ein Albtraum. Wenn dann noch jedes Objekt in diesem Baum mit vielen Attributen versehen ist, dann wird es ernst. Da hilft dann auch std::list nicht viel. Ob ich fette Objekte (siehe die Nodes in Ogre oder irrlicht) in einen Baum verschachtele oder sie als Liste ablege, macht es nur unwesentlich besser. Generell schlimm sind diese überfrachteten Klassen, die dann auch noch die Basisklassen für eigene Objekte darstellen.
Hier geht sehr viel Performance verloren und viele glauben, das sie an dem Rendering Prozeß schrauben können und dann wird alles gut. Aber die grundlegende Architektur ist bereits völlig falsch.
Hier mal ein zweiter Link zu einem hervorragendem Artikel:
http://www.gamasutra.com/view/feature/41…ame_engine_.php
Übrigens auch ein excellentes Buch.
Wer sich das mal durchliest (den Artikel meine ich) und sich dann mal die beiden Engines anschaut, der erkennt doch direkt einen großen Unterschied.
Beide Links sind mal ein Einstieg in das Thema.
Nun schaut dann mal die beiden Engines an und seht die große Lücke.