Monday 5 February 2018

Few words of explanation ....

So here we are month delay on Tech Demo 3 and not too much news ...  but for me this was rather long January where a lot happening in project and outside of it. I need to say that I'm a little bit overwhelmed by all of this but in the same time getting more and more excited about stuff that coming. 

Project size

Whole project grown over the years and this days there is a lot to handle for single person. At this point of time code that I maintaining have:
Language filesblankcommentcode
C/C++16205956697300278973
Python 8320055879177
sum:17036157197887288150

From what I talk with other people hardly ever you deal with this size project the way I do: alone. Sadly even for me maintaining this code is almost impossible:/ I started to experience a lot of bugs and regressions in features. All of that was slowing down my progress. But then I joined Unity ...

Unity Technologies is really unique place to work in and I personally love it. First great thing it is that I'm openly doing my own project and company is OK with this. Second thing is that people are open on new ideas and challenges. This approach resulting in great tools for game development. Third one is that even if Unity is this creative place we never forgot that we are developing software. This mean that all standards of software development apply to it: We have continuous integration, code review process and requirement of creating tests.  
This approach not coming from nowhere. Discussing with people that are here for long time source of it is the same as my problem: even when there was 50 of them there were to many stability issues and regressions to handle. They spend then more time patching stuff than creating new things testing changed a lot in this matter.

... I followed my work experience and started creating more tests. At the beginning it was tough to follow this routine in home but with time it became more natural and at this point I kind of have hard time to not do tests. So at this point I have:
TypeCount
Low level811
Tool58
sum:869
After adding all this test code I can catch a lot of regression early in development and always try to expand my library of test. 

Simplicity of complex system

This may not be visible but under the hood this project is pretty complex. This is just loading of world inside editor:

And this is running game:



As you may notice I run a lot of stuff parallel on multiple threads. I really like this way of design because it is challenging to write code that do complicated stuff but in the same time it is easy to maintain.

And here starting stairs :/ As I mentioned before I work alone and if I have idea that I want to do I doing (even if this is bad idea) and there is no person that can save me from doing it. I often implement it and then figuring out that it is not exactly what I was looking for. So I rewriting whole thing once again with different approach. 

This days I got really tired of it ... so often before starting something bigger I first discuss my ideas with some friends programmer. Then I wait for it for some time then ask another friend programmer and then decide to do big change. One of such a changes were current world changes: I waited three months processing if I really want to do it and I finally decided to start it in December.

We are now 2 months later and some things are still broken because of whole transition :) There are some systems that are still not prepare for new way of handling levels and there are a lot of old code that waiting to being removed or cleaned up. But if you asked me if I regretting I will say without hesitation: NO. 


Whole change brought a lot of interesting stuff and if everything will go how I want I should be able to make stuff like seamless traveling between islands - so no loading when you play. Nice vision right ? The best thing is that I think it is not so faraway from us :)


For now as you can see in above image I can load multiple levels into world and change they orientation freely. This result in some pretty cool effects sometimes. 

Developer tools

If we talking about features we cannot skip topic of tools. They are integral part of complicated systems that I creating. I try to make them simple, intuitive to use but also verbose when something is wrong. 



Recently I also added point have automated tests. When I create new stuff all this requirements not making my life easier but for sure helping with development stuff one top of them later.  Generally thanks to this push to have better tools this days I have nice graph editor:


GUI resources editor:

Profiling tool ( Generate *.json files that you can open in chrome://tracing )


Debugging tools inside game (it partially also works in tools):



And a lot more of them here and there. Whole point is that the better tools I have the more I can do and if not them I would probably never got so far. Now thanks to test I believe they will also lasting longer and create less issues in long run.

Where is game ?

Probably curious where in that all is game you all waiting for ... and in my opinion everywhere.


As you noticed probably my ambitions were always very high. Vision changed already so many time: 

Each time because my tech could do more and I know that this may sounds like excuses but I really want to make this game awesome.
My dream is not to just recreate game. I want old and new player to experience completely new unknown world. I want whole story to be more complex, want them to feel oppressed by FunFrock regime, I want them to feel danger when they are followed by enemies.
But in the same time I want them to find world of wonders and full of life. I want them to want explore offered Islands and always find something interesting there to do. There should be always something more to see and explore.
In the end it would be great if some people after finishing game would thought: this is the way how LBA should look it it was done this days.
I think that White Rabbit Engine slowly maturing and soon will achieve level where I will be able to do all the stuff I want. Then I will start adding more content and whole thing will become awesome game which will be nice add on to whole Little Big Adventure Universe.

Tech Demo 3 

If you found yourself so far in this post you are probably curious what about promised TD3 and it is hard not to mention in. I need here to apologies because it became delay and I'm still didn't finished all the stuff that were on list.

I work on it and I'm having already prototype of:

  • Conversations, 
  • Story progress,
  • Quests.
Sadly they still don't feel quiet right where I want them to be :/ so work still in progress over them.

  • Save/Loading
Is still not touched at all.

From other stuff I experimenting with user interface for conversation and quests. There are some nice results like you could see above in one of screens shoots but there are also some issues. I don't have right now clean vision how I want to visualize quests. There are also missing notifications which are crucial so you know that there is new mission or new item was added to your inventory.

Last words

Whole delay in conversion to new world system and Christmas break resulted in delay that we have. In theory I could release some Tech Demo but I wouldn't be satisfy with it so I don't want to do it :/ 

I want to believe that you will forgive me all that and still follow progress of project.
Greg   

No comments:

Post a Comment