Ein Programmierparadigma, bei dem Spielobjekte (Entitäten) aus Komponenten bestehen und von Systemen bearbeitet werden. Jede Entität ist eine ID, die auf bestimmte Komponenten verweist.
Ich arbeite an einem Entitätssystem für ein vernetztes Spiel und ordne jeder Entität eine eindeutige 32-Bit-Ganzzahl-ID zu, mit der ich Verweise auf Entitäten und die Entitäten selbst serialisieren kann. Derzeit erhöhe ich nur einen Zähler jedes Mal, wenn eine Entität erstellt wird. Ich schätze, die IDs werden irgendwann aufgebraucht sein, …
Meine Frage ist: Wie kann ich mit Spielzuständen in meinem Entitätssystem umgehen, ohne einen Stapel von Spielzustandsobjekten zu behalten? Wenn sich eine Entität beispielsweise für Eingabeereignisse registrieren muss, ruft die Eingabekomponente das Eingabesystem auf und sagt "Diese Entität für diese Eingabe registrieren". Dies ist alles in Ordnung, aber wenn Sie …
Dies ist eine Fortsetzung dieser Frage, die ich beantwortet habe, die sich jedoch mit einem viel spezifischeren Thema befasst. Diese Antwort hat mir geholfen, Entity Systems noch besser zu verstehen als den Artikel. Ich habe den (ja, den) Artikel über Entity Systems gelesen und darin Folgendes erfahren: Entitäten sind nur …
Ich habe oft in den ECS-Game-Engine-Dokumentationen gelesen, dass eine gute Architektur ist, um den CPU-Cache mit Bedacht einzusetzen. Ich kann mir jedoch nicht vorstellen, wie wir vom CPU-Cache profitieren können. Wenn Komponenten in einem Array (oder einem Pool) im zusammenhängenden Speicher gespeichert werden, ist dies eine gute Möglichkeit, den CPU-Cache …
Aus heutiger Sicht passt diese Frage nicht zu unserem Q & A-Format. Wir erwarten, dass die Antworten durch Fakten, Referenzen oder Fachwissen gestützt werden, aber diese Frage wird wahrscheinlich Debatten, Argumente, Abstimmungen oder erweiterte Diskussionen hervorrufen. Wenn Sie der Meinung sind, dass diese Frage verbessert und möglicherweise erneut geöffnet werden …
Ich entwerfe eine Game-Engine für ein Top-Down-2D-Shooter-Multiplayer-Spiel, das ich für andere Top-Down-Shooter-Spiele wiederverwenden möchte. Im Moment denke ich darüber nach, wie so etwas wie ein Entitätssystem in ihm gestaltet werden sollte. Zuerst habe ich darüber nachgedacht: Ich habe eine Klasse namens EntityManager. Es sollte eine Methode namens Update und eine …
Meine E / C-Implementierung ist die grundlegende, bei der Entitäten nur IDs sind, Komponenten Daten sind und Systeme auf die Daten einwirken. Im Moment habe ich Probleme mit Objektmaterialien und Rendering im Allgemeinen. Für einfache Objekte habe ich a ModelComponent, gebunden an a RenderSystem, ModelComponentdie Vertex-Buffer-IDs, die das Rendering-System verwendet. …
Mehr Spaß mit einem ES ... Derzeit habe ich ein paar Systeme: Renderer (Attribut "Renderbar", Attribut "Transformieren") Bewegung (Attribut "Verschiebbar", Attribut "Transformieren", Attribut "Renderbar" [für Begrenzungsrahmen usw.]) Eingabe (InputReceiver-Attribut) etc. Ich füge die Kollisionserkennung hinzu. Mein erster Gedanke war, ein neues System hinzuzufügen, das Kollisionen ausführt. Es macht Sinn für …
Ich habe über Entity System Frameworks speziell Artemis gelesen. Ich versuche zu entscheiden, ob es für mich richtig ist. Ich arbeite streng an auf Kacheln basierenden 2D-Pixelkunstspielen, und ich glaube nicht, dass sie jemals so ressourcenintensiv sein werden. Ich habe in der Vergangenheit immer Standard-OOP mit viel Vererbung verwendet. Mein …
Ich weiß, dass diese Frage mehrmals gestellt wurde, bin mir aber immer noch nicht sicher, wie die Eingabebehandlung in einer komponentenbasierten Engine implementiert werden soll. Das komponentenbasierte Design, das ich verwendet habe, basierte auf der Blogserie von T = Machine und auf Artemis, in denen Entities nur IDs sind. Bei …
Beim Entwerfen eines Entity-Component-Systems für meine Engine bin ich auf einen kleinen Haken beim Speichern und Abrufen eines bestimmten Komponententyps gestoßen. Lassen Sie mich zunächst einige Begriffe festlegen, die ich in dieser Frage verwenden werde: Ich nenne " Komponente " eine Datenstruktur, die relevante Daten für ein bestimmtes System speichert. …
Installieren Ich habe eine Entitätskomponentenarchitektur, in der Entitäten eine Reihe von Attributen haben können (die reine Daten ohne Verhalten sind), und es gibt Systeme, die die Entitätslogik ausführen, die auf diese Daten einwirken. Im Wesentlichen in etwas Pseudocode: Entity { id; map<id_type, Attribute> attributes; } System { update(); vector<Entity> entities; …
Ich versuche derzeit, ein komponentenbasiertes Entitätssystem zu implementieren, bei dem eine Entität im Grunde nur eine ID und einige Hilfsmethoden sind, die eine Reihe von Komponenten zu einem Spielobjekt zusammenbinden. Einige Ziele davon sind: Komponenten enthalten nur Status (z. B. Position, Gesundheit, Munitionszahl) => Logik geht in "Systeme", die diese …
Ich habe viele Spiele gesehen, die die Entitätskomponenten in Skriptdateien definieren, aber wenn sie jede Entität konfigurieren und angeben, welche Komponenten sie enthält, verwenden sie ein anderes Dateiformat (wie XML). Warum machen sie das? Ich frage hauptsächlich, was die Gründe anderer dafür waren. Ich auch so konfigurieren , meine Einheiten …
Diese Frage passt derzeit nicht zu unserem Q & A-Format. Wir erwarten, dass die Antworten durch Fakten, Referenzen oder Fachwissen gestützt werden, aber diese Frage wird wahrscheinlich zu Debatten, Argumenten, Umfragen oder erweiterten Diskussionen führen. Wenn Sie der Meinung sind, dass diese Frage verbessert und möglicherweise erneut geöffnet werden kann, …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.