Wednesday, April 30, 2014

Component system

This time some more technical post about components system that I work on. So lets start from begin :)

Making decision about switching to components took me almost year. Seem like pretty long time to rethink everything. But not necessarily when you need to change big part of your code base. So I focused on finding all pros and cons behind new system. In meantime I had a lot of talks with programmers friends in Poland and here in Canada. Thanks to them I was able to create my own opinion and vision what I want to achieve with this new code.


Sunday, April 20, 2014

Few words about remake

Time is something funny we don't notice when but it pass by so quickly. Few months ago I announced release of this pre-alpha build. Then it was so far away right now only a little bit more then month left. You probably wondering what changed in this time. So below you will find some summary of biggest changes (from my point of view):

Component base architecture 

Decision on big changes in engine architecture aren't easy. I think that transition from class base approach which looked like that :
class CGameObject
class CModelObject : public CGameObject
class CPuppetObject : public CModelObject
class CChcaracterObject: public CPuppetObject 
to component base ( like in Unity 3D ) was one of the biggest and most problematic changes that I done in White Rabbit Engine in last years. I needed to change a lot of code, don't break the game that I have and in the same time change my approach to resolving problems. 

Level Editor : New components system.
Right now transition going nicely and I'm happy with achieved results but if somebody ask me: if I would decide to do it again. I would need to think twice before answering.

New game GUI system

Old GUI system shown in previous presentation was only some base prototype. It was hard to use, hard to extend and didn't allow on creating anything very efficient. But it worked so at that point it was enough. 

But at some point the change was needed and it happened. Following ideology that GUI should be something that is easy to use and have quick iteration speed new system was created. This time with dedicated editor. 

GUI Editor : Opened L.B.A. in game menu.
For me system itself is some kind of experiment. It's base on a little bit weird approach that when you thinking about GUI but we will see how it will end. From my experience with it (till now): I like it. But how it will end in long term I don't know. We will see.

Development speed

White Rabbit Engine is gathering all my experience and ideas about how quick and efficient development of game should look. It's possible because I works on tools that I develop which is sometimes surprising/terrifying experience. 

Level Editor: Prison level
So because of that I developed one rule to deal with it. If something irritate me: it need to be changed. I follow this rule in code and tools. Sometimes this changes take one day, sometimes week but I see that in long term all of them allow me to increase speed of development. Which is good.

Summary

So a lot happened in last few months but this is only beginning. I work really hard on game and technology behind it. It's not easy. Project growing and right now contain : 
  • 605 header files (*.h)
  • 484 source file (*.cpp)
We need to add to this all other things : plugins, scripts, models, textures, icons and few other things I don't complain that I don't have anything to do. But still I try really hard to finish public pre-alpha build on time.

So to next post.