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.

4 comments:

  1. Wow, that looks so cool! Love the GUI editor :) Tell me do you have predefined numer of components that can be attached to GO or is it in some fashion dynamic? I really would like to know more about your approach to component model. Where resides particular component logic, is it in the component itself or is outside the component in some kind of system object? Eventually how do you handle inter component communication?

    ReplyDelete