Questions tagged [entity-component-system]
Used when referring to the Entity-Component-System (ECS) architecture.
120
questions
0
votes
1
answer
79
views
ECS - Components that access other components
This question is about how to design my ECS system.
I have the following components:
Position
Gravity
Gravity needs to access Position.
Is there a better design that does not introduce this ...
0
votes
1
answer
65
views
How to implement movement with move speed in a multiplayer game?
I'm developing a MMO RPG using Rust and bevy both in the client and the server, which means that I'm using ECS on both sides. My game is tile based, so each tile is a point in my map in the server, ...
2
votes
1
answer
225
views
In C#, is there any performance reason to implement ECS?
The formal ECS specification was developed to address gaming in a JavaScript environment.
In any C# translation, this implies all of the classes' members must be public.
My concern is that too many ...
1
vote
0
answers
254
views
In Bevy ECS, what is a good way to have entities reference each other?
I am wondering if there is a better way than storing the entity ID. For the sake of example, let's assume I have a world with many entities who implement the component Name. Every x amount of time I ...
0
votes
0
answers
28
views
Ways to "record" entity operations for an ECS?
What are typical ways to record entity operations for an ECS to play them back later ?
There several ECS implementations which actually do have such a mechanism, like unitys ecs. You can "buffer&...
0
votes
0
answers
73
views
Events and Entity Component Systems?
What are common ways to implement Events in an entity component system ?
Most games typically have following events :
Damage Events
Collision Events
Area of interest Events
Entity Died/Respawn events
...
0
votes
1
answer
103
views
Branchless archetype ECS?
I lately read an article about branchless programming and how it can effect performance. Since im developing a little archetype based ECS for learning purposes, i wanted to know if theres a way to ...
0
votes
1
answer
78
views
How to modify single-scene ECS setup to support multiple local players in different scenes?
I'm currently developing a game in Monogame / C#. I have the underlying game engine set up in the following way:
Entity/Component/System architecture
A Scene includes a map, cameras, and a list of ...
0
votes
1
answer
113
views
Setters and Getters in ECS?
So I'm currently working on a Game Engine for my University and I came to the point of integrating an ECS.
Thing is, I'm currently a bit unsure if it's okay to have setters and getters for specific ...
1
vote
1
answer
118
views
How do I write unit tests in ECS when behaviors cause creation of deletion of entities?
I am writing a game using a custom ECS architecture. I recently had a chain of nasty bugs where fixing one bug caused regressions elsewhere. Being a software engineer by trade, I suppose that unit ...
3
votes
1
answer
308
views
In ECS, how to decrease health?
I spent a good amount of time trying to get my head around ECS but the "S" is still obscure to me - the farthest I went is that I know a System is where the magic happens; it's where ...
0
votes
1
answer
91
views
ECS : Can systems have sub-systems?
I am searching about "sub-systems" in ECS but I don't find any article speaking on that.
Considers this simple example:
...
2
votes
0
answers
143
views
Is an ECS system without a traditional ECS memory layout a bad idea?
I've got a background in C++ but completely new to game dev, Unreal, and ECS.
Recently, I learned about ECS and fell in love with the resulting project structure and theoretical reduction of spaghetti ...
0
votes
0
answers
145
views
In ECS, how are the different types of components typically stored?
Consider an RPG for example, where one might have PoisonComponent, BerserkComponent, and ...
2
votes
2
answers
1k
views
I don't get why ECS is considered more performant than OOP
Let's say I have an ECS with physics and I want to kill the player when a arrow hit him. So I have a callback when there is a collision. Now there is of course different behaviors with different ...
1
vote
0
answers
154
views
In an Entity-Component-System architecture how should my map be represented?
I'm migrating a 2D game I've been making using only SpriteKit to an ECS architecture using GameplayKit, and I'm still a bit clueless on how to achieve this. I think I got the gist of ECS, but yet, I'...
0
votes
1
answer
254
views
How to animate game object using entities?
I am having issues with some of the DOTS stack in unity (mostly the rendering and animation) and was hoping I could use gameobjects for those parts. Not sure how to use entities inside a regular ...
2
votes
1
answer
107
views
How are map/room/world-related game assets usually organised and implemented?
I'm trying to build a simple 2D Shoot 'Em Up type of game in C++ using SDL2 and an Entity Component System, which I've already implemented. The idea is to have different maps/rooms where you have to ...
1
vote
1
answer
152
views
How to include cross cutting concerns like sound/graphics effects in an ECS?
It does not seem like a good idea to include this functionality in the game logic like that even if the concrete implementation of the sound or graphics effect is abstracted away. Ideally, the game ...
0
votes
1
answer
600
views
Unity DOTS/ECS: Spawning entity programmatically at specific location
I'm interested in learning how to spawn entities from prefabs (from a monobehaviour) at random locations in a scene on a key press. Similar to this video, I'd like to instantiate these objects ...
2
votes
2
answers
141
views
Ways to synchronize lists over the network?
Im working on a little plain c# gameserver using an ecs. It follows the principles of the client/server model architecture.
However im often running into the following problem, the server has one or ...
1
vote
1
answer
216
views
Entity iteration order in ECS system
While learning ECS architecture, I found out that some ECS libraries gives me unsorted entity ids when iterating over filtered entities in system. (Seems like deletion algorithm in sparse set is the ...
0
votes
1
answer
232
views
How do you use configuration files to describe the contents of an entity in an ECS-system?
One of the advantages that's often brought up when talking about ECS-systems is that they allow a higher degree of flexibility in regards to Data vs Code. Without the limitation of hard-coded types, ...
0
votes
1
answer
152
views
Is a platform an entity in 2D Platform in ECS pattern?
I've been coding a small 2D platformer applying ECS pattern. However, I'm struggling with a issue. When building each platform from tilemap and such platforms need to be collided by other entities, ...
0
votes
1
answer
695
views
SQL Database structure for ECS
I am making turn-based browser game (mostly server-sided), and every turn all game-state is saved into database (SQLite). Using ECS pattern. Never done this before (I am webdev).
There will be a lot ...
3
votes
2
answers
538
views
How do different compositions/types of entities interact in an ECS-system?
I have a working ECS-system set up, largely inspired by this brilliant article (not at all required reading to be able to answer my question) on https://indiegamedev.net/ showcasing an ECS-system with ...
1
vote
1
answer
98
views
Entity Component Systems - component cross-lookup vs denormalization
This is my first project using ECS design and I come from a RDMS background for reference.
I'm building a ecology simulation that spans multiple planets, with the following ECS structure:
Entities &...
1
vote
1
answer
355
views
Extensible 2D Rendering with ECS Architecture
I am currently creating a 2D game/game engine using an ECS architecture. Currently I have a renderer_2d system which is a function that takes all ...
0
votes
0
answers
110
views
ECS, How to query an entity with specific value?
I have a background in ECS by using C# Entitas. The library itself has a very nice feature which lets me able to query the entity with a specific value in the component.
For example, query an entity ...
2
votes
1
answer
480
views
What should be an entity/component, and what shouldn't?
I've recently been reading the book Game Programming Patterns by Bob Nystrom, and one chapter I've found a bit hard to grip is the chapter about the Component pattern.
In the example he uses (which ...
3
votes
1
answer
119
views
Storing stateful function-based actions in a JSON
System: My game uses an "ECS + event queue" architecture where every tick, various events change
the state of JSON-able data. Plain JS objects.
Problem: I want to be able to save the game-...
2
votes
1
answer
2k
views
How to do State-Based Animation with ECS
I'm making a simple platformer game and was suggested to use ECS from a friend. It looked pretty interested and at least worth a try, so I did. I got ECS working and started work on the rendering ...
3
votes
1
answer
415
views
Entity Component System - How to detect what entity to update
everyone. I'm kinda new to game dev, I saw the idea of the ESC system and I'm inlove with it. I wanted to integrate something like that in my game, so I started rewriting my code. . I have a ...
0
votes
0
answers
634
views
Entity Component System in Python
Me and a team of junior developers are making a role playing game. We would like to make something similar to https://bunk.town/ I have only made a Tetris clone which doesn't require much knowledge ...
0
votes
0
answers
141
views
In the ECS on my server, how should I organize components along with systems?
A quick note about my server is that it executes game logic in 250ms intervals.
I am trying to wrap my head around how to do this. The main issue I have is currently that I have the map of entityIds ...
0
votes
2
answers
477
views
Designing persistence in an ECS world subdivided into chunks
I'm designing a kind of simple open world with ECS. The whole world is too large to be loaded at once, so I load and unload chunks according to player's position. Nothing fancy, pretty much standard ...
1
vote
1
answer
139
views
Should state and behavior be combined for Buffs? Cannot decide between data-driven and OOP approach
I'm writing a 2D roguelike that uses an Entity Component System and I'm having trouble deciding between the traditional OOP approach versus a data-driven approach to implementing buffs and debuffs. ...
2
votes
1
answer
238
views
Is it better design to store event effects within an Entity itself, or within a system?
I'm developing a 2D roguelike with an Entity Component System (ECS) and I've been struggling with this question a lot the past week. For example, let's say you have various effects that occur when an ...
0
votes
0
answers
482
views
How to handle various collision effects within an Entity Component System?
Let's say we have three enemies, a bear trap, a fire trap, and a minotaur. When you walk over the bear trap, the game spawns an invisible entity that, upon the player colliding with it, slows the ...
1
vote
1
answer
305
views
Instantiated entities don't collide with each other
I've started to learn DOTS some day ago, and decided to create a simple project. When I added some simple physics to the game I faced the problem. I added one object on the scene and another ...
0
votes
1
answer
793
views
ecs network synchronization
I'm working on implementing combat into my isometric RPG game which uses an ECS architecture. When synchronizing the actions of the different clients, is it preferable to serialize and synchronize raw ...
0
votes
2
answers
1k
views
What data structure do I use to store Archetypes in ECS?
I am implementing an ECS with "archetypes" similar to how they are defined in Unity:
A unique combination of component types is called an Archetype. For example, a 3D object might have a ...
1
vote
1
answer
295
views
Unity ECS: How do I stop an entity from spawning twice?
I am implementing a flight dynamics model using Unity's built-in ECS package, Entities, and I keep running into one particular issue where the aircraft I'm trying to spawn gets converted into an ...
1
vote
1
answer
392
views
Unity ECS: Is it bad to use variable data within SystemBase?
I'm currently trying to port a flight dynamics model that I've implemented in Rust to Unity. The original FDM utilized the Hecs ECS, and I plan on implementing this same model in Unity using the ECS ...
0
votes
2
answers
532
views
Is there a good way ECS for creating variants of a behaviour like in Java interfaces?
In Java, there are interfaces - I'm not clear on the details (I don't use Java) but from what I've learned, they seem to be "classes for classes": a way to effectively make individual ...
2
votes
2
answers
612
views
Is it a good idea to use a hash table in an ECS?
I've had an idea for optimising my ECS engine. Instead of storing components in an array, store components in a hash table as <id> => <component>.
...
4
votes
3
answers
2k
views
Is an ECS viable in garbage collected languages?
I've done some research on Entity Component System architectures. Right now I have a convoluted OOP implementation which I'm planning on rewriting, so I was considering switching to a different ...
3
votes
2
answers
777
views
Implementing Runescape-style stat-based conditional buffs within an ECS
Prologue
I'm quite new to data oriented programming and my goal is to implement a Runescape-style stats & damage mechanic in a data oriented styme.
This is quite a complex topic (Runescape-Mechanics) ...
0
votes
1
answer
369
views
Combining a pure ECS with a FSM scheduling system
Currently I am evaluating how to refactor my core game logic since I tried to design most of it in pure ECS but isn't really completely feasible the way I intended it.
My game at its core is a turn-...
0
votes
2
answers
325
views
ECS multiple materials per mesh (sub-mesh)
In my toy engine I currently have a MeshComponent and a MaterialComponent.
psuedo:
...