peace and love to you
Been going through the code.
thanks for your time, seriously
- No components? Promoting inheritance hierarchy? I'm a bit surprised. This might quickly devolve into a inheritance nightmare soup (as it seems to have already done with those StaticActor, TopDownActor, PhysicsEntity, etc.).
MarteEngine is not a component based system. It start from opposite idea: give to developer some feature without force him to use something big and difficult to understand (at start). So yes, we promote inheritance even if is not the best approach. Why ? Because in many video games you don't need to optimize or go in deep of good programming and.. hey, it's free
it's up to you use it or not.
For soup-Entity you see experimental entity, not final ones
For example with just Entity (that is abstract), you can extend it and have all you need to move around something on-screen
It's a starting point
- Little separation of concern. You have tons of stuff inside the Entity class, it's nearly 1000 lines! You have rendering data inside it, and logic data such as speed, animation, etc. It doesn't make sense to me, what if you wish to make an Entity that doesn't make use of any of that data?
You start from a component-based approach: all optimized, all done in few lines, but with many classes. in MarteEngine we have one big generic classes (I agree that is big, we need to write it better and optmize it!) that you can use for everything. I believe that for many developer this approach can help to make things on screen moving, that is the key point: don't waste time in programming.. so create games. I know that many developer will not agree with me, but is only a point of view
- I can't imaging the Entity class being memory efficient, as it allocates memory for stuff you won't need in many cases, such as color, hashtables, hashset and other primitives. What if you need to continuously spawn new Entities of the type Bullet? Have you tried to see how fast it creates 1000 bullets per second?
No, I will
This is a good test, thanks!
Overall, I think it promotes bad design and is inefficient with regards of performance and memory usage. Although, it might be fine for very simple games.
IMHO, bad design is a point of view (don't misunderstand me, my english is terrible and I don't want to offend anyone!), sometimes you need to make choices and MarteEngine try to follow this choices.
I wouldn't take this criticism very seriously, as I've not tested this properly, just glimpsed through the code. And I'm not attempting to bad mouth this in an attempt to favor my own system, because my own system has many flaws as well which I am trying to iron out in subsequent games. Ok, peace and love
If I can challenge you, can you try MarteEngine and try to make a game? Like a top-down shooter or platformer or something simple like that? So can provide feedback to us !
@tommy: we need to do some stress test and see how to optimize the core classes, for MarteEngine 0.3 I will make a todo on github