Right now it's a property, but we'll want it to be a component.
This will create dependency between components but entity should be free of properties that aren't part of it's definition.
createEntity() will not add transform.
createGameObject() will.
Notes on the decision:
While a lot of engines might force you to keep the transform component, I suggest entity to be an abstract thing, that can exist without any definite location.
Since the core principal of the engine to begin with was extendibility - custom types and scripts can be made only if the entity is abstract as to allow to override update & render, but still provides hirarchy.
When the javascript inheritence concesus will arrive (issue #8 ) we might have actual Game Object that inherits from the abstract entity.
Right now it's a property, but we'll want it to be a component.
This will create dependency between components but entity should be free of properties that aren't part of it's definition.
createEntity() will not add transform.
createGameObject() will.
Notes on the decision:
While a lot of engines might force you to keep the transform component, I suggest entity to be an abstract thing, that can exist without any definite location.
Since the core principal of the engine to begin with was extendibility - custom types and scripts can be made only if the entity is abstract as to allow to override update & render, but still provides hirarchy.
When the javascript inheritence concesus will arrive (issue #8 ) we might have actual Game Object that inherits from the abstract entity.