Als «entity-system» getaggte Fragen

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.

4
Wie kann ich Entity-IDs in einem Netzwerkspiel zuverlässig zuweisen?
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, …

2
Spielstatus und Eingabehandhabung in komponentenbasierten Entitätssystemen
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 …

3
Warum ist es eine schlechte Idee, Methoden in Entities und Components zu speichern? (Zusammen mit einigen anderen Entity System-Fragen.)
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 …

1
Wie profitiert man vom CPU-Cache in einer Spiel-Engine mit Entity-Komponenten-Systemen?
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 …

3
Kompositionslastiger OOP vs. reine Entitätskomponentensysteme? [geschlossen]
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 …

3
Organisieren Sie ein Entitätssystem mit externen Komponentenmanagern?
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 …


2
Kollisionserkennung und -reaktion in einem Entitätssystem
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 …

2
Tilemaps in einem Entity System Framework?
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 …

3
Eingabehandhabung im komponentenbasierten Design
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 …

1
Entity Component System - Wie implementiere ich die Transformation eines Objekts?
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. …

3
Effizientes Trennen von Lese- / Rechen- / Schreibschritten für die gleichzeitige Verarbeitung von Entitäten in Entitäts- / Komponentensystemen
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; …

2
Umgang mit skriptbasierten und "nativen" Komponenten in einem komponentenbasierten Entitätssystem
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 …

5
Warum sollte die Entitätskonfiguration außerhalb von Skripten platziert werden?
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 …


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.