Sunday, June 8, 2014

A little delay

Like topic of post say there will be small delay with releasing of build. I initially planned to do it this weekend but well I didn't make it (in this moment I expect month to finish everything what I want ).

This post will be my summary what went wrong (-) and what went good (+) so it should be funny to read.

Thursday, May 15, 2014

Far Cry 4

Like some of you noticed in my professional portfolio page for last 8 months I work for Ubisoft Montreal as Engine Programmer. Till now the project on which I work wasn't officially announced so I couldn't write about it. But with this day it changed :] Here I presents you :

P.S. I used also this occasion to do small update of my professional portfolio page.

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.


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.

Saturday, February 22, 2014

True remake

And once again I will use one of your comments as topic for post (I will try to keep it short because I'm in meantime of work on project).
LBA is arguably the best game created. A true remake of this game, therefore, would not be easy. Keep up the great work!
I really agree that LBA have some unique charm which you can love all your live. Because of that I'm almost sure that I will fail in recreating it for you. Probably you wonder why I said it that way ?

Answer is easy, each of as like different aspect of the game. I know what I liked about it and few other people that described their thoughts in comments. But I don't know what you liked the most. That's why what I will serve you will be only my interpretation how this remake should look. Some of you will probably like it other will hate it. I'm prepare on that, such a life.

But I want to believe that after I will release tech demo there will be really allot of people that will share their thoughts about it. They will tell me what they like and what don't. Allowing me to change it the way it will be the real remake of game that they like so much.

Sunday, December 29, 2013

New year coming ..

.. and so some news related to L.B.A. Remake and I think it's something good. This last few months were I would said pretty tough. A lot thing changed in this time I changed my job and with it place where I currently live but there are things that never change. One of them is my family other are friends and the last one is that I never stopped doing L. B. A. remake :] 

So once again : project is still alive. But this time I have some proof for that :] 

This may look not too much at first sight but truth is that behind a lot of things changed and changed on better. But better solutions came with price: doing them consumed more than two months of work. This is a lot of time at last for me.

But this time is behind me and from now one there should be only better. In the fact effects of the changes that I mention before are still visible and not everything work the way it should but each day stabilize everything and even make some things work a lot better.

So you are probably wondering what will happen next :] and here small announcement : I plan in next few months prepare playable version of game (You can call it like you want: prealpha or techdemo). It will contain only prison map and it purpose will be collecting support from people about game play, mechanics, stability and performance. Everybody will be able to help in future development of project because there will be open access to this version. 

For me it will be first really big test because I need to finish a lot of things and create some others that still don't exist. In the same time I know that the version of game will be far from finished but this release should help me in making it the way every L.B.A. fan want it to go.

So till next post.

Wednesday, December 11, 2013

Small surprise

Today when I was looking on my blog control panel I find out something surprising. On Frédérick Raynal website: 
in Little Big Adventure section I found out link to my blog. For some people this probably not mean to much but for me it's really something (I wasn't expecting this). Things like that really help a lot in tough moments of development.

I will also add in this place that project is still alive :] I only don't have any proof for it right now. But as history of blog shows this is not first and probably not last situation like that. In most cases this long time of silence is due to my programmer nature. I try to focus on game development itself rather than trying showing each week stuffs that not necessary are made because of need. Good thing about this is that after break I try to return with new stuffs that should show that this time of waiting was worth it.

So till next post folks.

Sunday, November 3, 2013

Tech talks: placement new

So another post under sign of programming. This time: placement new. So lets's look on this part of code :

if (techData.texturesCount[idx] > 0)

    tech->m_textures = new(memoryPtr) STextureSlot[tech->m_texturesCapacity];
    memoryPtr += sizeof(STextureSlot) * tech->m_texturesCapacity;
    tech->m_textures = NULL;


It's a part of White Rabbit Engine materials creator. It's purpose is simple : allocate memory for material + techniques + textures slots. And use placement new to create objects. Everything so all materials data was put in continuous memory. Of course it's nice but there is one problem : this part of code is wrong.

Everything look nice but placement new for arrays add additional data about array before objects. So

  new(memoryPtr) STextureSlot[tech->m_texturesCapacity]

use more memory than :

  sizeof(STextureSlot) * tech->m_texturesCapacity;

For me this mistake ended long looking for place where I override memory and knowledge about two things:
  • placement new for arrays add this additional data. 
  • it's really nice to have memory guards. But it's even nicer when you check on deleting if it wasn't override :]

Till next post.

Saturday, October 26, 2013

Multithreaded rendering (Part 3)

After "little" break lets return to topic. Last time we ended on system that was already split on two threads. This week we will focus how to change it so it work the way we wanted:

So let's start from analyzing a little more situation on which we ended  in last part :
This model look already pretty good and would be enough in some situation. We can use it in this way :

Place marked as "Sync" mean time in which "Gather Data" wait till rendering finish using rApi render list (buffer contain all information's need to render frame). As we see game can update in meantime of rendering. So everything should work faster than in one thread.

Wednesday, October 9, 2013

Tough times ...

Really tough times came to project. To be precisely it's developed on really powerful netbook acer Aspire One 522. Right now I don't have access to my normal computer and this is only hardware that I have. But don't worry project didn't stop but only going a little slower. To show how much: on my PC project fully recompile in around 3 minutes on netbook the same thing take more than 20 minutes. The same problem is with loading of game which time also extended few times.

So it's not easy but I use this time to speed up everything so I could normal work. It's going really nicely:

  • Right now loading time decreased.
  • In the same time performance increased.
  • Everything mixed with stability changes which are done every time when there is occasion.
Only problem right now is that game is in a little stagnation but I believe that in few nearest weeks this state should change. 

I think that in next post I will return to multithreaded rendering topic. Right now system in engine is really stable and only things that left to do are some polishing of code. So I can finish this article as somebody who wrote fully working system.

So till next post.