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   

Tuesday, 23 January 2018

Where is TD3 ...

I know that it is already past the original date of Tech Demo 3 release but please wait for me a little bit longer. I had busy time and not everything went the way I wanted... but this is not necessarily bad thing. I can say with confidence that the content finally taking form but more about this in next post that should be longer have more details and contain TD3 link ;)  Till then have faith in me and if everything will go right it should be pretty cool release.

Sunday, 24 December 2017

December 2017

December marking beginning of yet another development year for remake of the Little Big Adventure. This is for me personally pretty depressing moment but in the same time really impressive one. How the hell I survived so long working on this project ? I asking the same question for already eight years but I start to think that the answer really don't matter so much. Here and now I'm glad to announce that:

Little Big Adventure : The Remake
is already 8th year in production

There won't be to much celebration here just some summary and vision for upcoming year. Right now I taking Christmas break to recharge batteries. But generally whole big changed that I do right now put whole project in some kind of quantum state where its working and not working at the same time.

So lets start with things that don't work. And this would be a lot of things: Undo in level editor. Something broke in player controls and now Twinsen moving funny, there is no shadows and grass sampling colour from terrain not work the way it should. If this wouldn't be enough we have missing brush for terrain edition, missing control over world properties,  disabled picking of items in game, some issues with releasing memory when application closing and finally few asserts hitting here and there. I'm sure that I missed something (probably a lot of them) but I really don't want to bother checking what are this stuff.

But hey there are also some positive things: Game loading and I can run around. New way of generating terrain gives nice results and I already recovered part of its edition. There is also once again visible vegetation (grass) and I know that it may not look perfect but this is good start. The most important thing I left for end:

I still didn't gave up.

I know that we have end of the year and schedule for TD3 is really tight but I want to believe that we will make it. This may sound like dream of small kid but hey isn't this is what all this is about ? No matter how old we are there is always something from child in us so we should cherish this part and never give up on our dreams because one day they may finally come true. That is why:

CoffeMonsters wish you for this Christmas and for New Year that no matter how old you are, you will find inside yourself this childish side that will make you follow your dreams and have fun from doing that. I believe that one day this dreams may come true.

We will be back next year with more development news.

Greg Wojciechowski

Sunday, 12 November 2017

CoffeMonster day 5

TD2 Release Date + 3 Weeks... Where to start ? 

Like always I'm not sure how to start. Writing posts or any kind of longer texts was never my strongest skill. But hey I try my best ...

This week I spend some time playing Horizon New Dawn : The Frozen Wilds and I need to say I'm still charmed by whole series. The more I play it the more I'm asking myself if remake I working on will have similar effects on the other people. It would be great if after finishing it they would like more. Well we will see there is still long road to finishing up ...

When I thinking about finishing game I always have this sad feeling and memory of 8 years that I work on this game. It is never easy to think about something that is so far and so close in the same time. 

Last three weeks were spend mostly on lets call it breaking stuff. Tech Demo 2 content no longer works, game is broken and tools are still in pieces after my recent changes. On top of that I had flu half of week which didn't helped with progress and assured me that I will need to aiming with TD3 somewhere around half of January. But I'm not even sure anymore if I will be possible to make all changes for this date.

I don't like to delays things I announced but this time even half of January won't be easy deadline. Remember how I mentioned in previous posts that I plan to do more unit tests? Now I have 380 of low level code tests and 14 of tools test (added this weekend). Sadly this covering really small part of code base and each time I touching some part of that don't have tests I just adding them. This slowing down stuff but in the same time allow to find so many issues that were missed when code was originally written.



In the end there is no point to think about all this doubts and negative things. This won't help me make better game but stuff I working on will and I'm getting really excited just thinking about all this opening new possibilities.

The older I get and more time I spend on whole project I should probably get more and more skeptic but it is other way around. I'm now in this sweet spot where I finally have strong base of code and can play around with all this awesome toys I have. This make me excited.

The best example of this are the changes that I doing right now. They are not easiest one. They are sometimes boring like hell (I need to redo some tools). But in the end I don't regret even for moment that I decided to do them because I already see with my imagination what cool stuff I will be able to achieve with it.

In the end to show that I didn't forgot about game: Preview of female spheros sculpture (Still early version).

Greg

Sunday, 29 October 2017

TD2 - postmortem

We are week from Tech Demo 2 release and I need to say that receive of it was great. Project page on indieDB had 5.8 thousand views and 68 downloads of TD2 (where previous one have 106 so far). Youtube around 694 views and 19 comments (I don't counting my replies). Facebook Release post was seen by around 650 people. 

Sadly I know that a lot of this people are just visitors that will only check what whole release is about. They won't stick around and I don't mind that because in between them there are people that care about project and for me this are people that I care about. This familiar faces I see often when I posting new stuff they are for me biggest reason I still didn't give up on development.  

Now after resting and resuming work it is time to calmly look into whole TD2 release process and form some conclusions so next release was even better. This time sadly there is no problem with pointing out what was the biggest issue:

Physics

Working alone on the project have issue that you never can do all the stuff in the same time. So far physics in my engine was mostly meaning collisions. Then I switched to RigidBody controlled characters and stuff get a little bit complicated but well there was still just mostly running and jumping. 

TD2 brought new changes climbing, physical objects and kind of real life test of whole system. Sadly its failed this tests. I knew form begin that this release will suffer from some kind of physics issues. In the end turned out to be worse than I thought.

Just memory of how much issues I had with whole physics setup make me feel down. Tools that I designed to work with physics turned out to be useless piece of sh.. and any attempt to slightly improve it for release proved me this more and more. Another problem were my skills with each issue I knew more and more how little I know about bullet (physics library).
Reason behind this whole situation is my lack of knowledge about physics algorithms and missing physics debugging tools. This will be one of few big topics that I would like to improve.

Like is light word I would say I MUST improve. But I think I know how so this is good. My plan include creating system of physics material which specify properties of objects, better visualization of physics and adding more tools to troubleshoot issues.   

Tools

Tool chain proved to be really useful tool to quickly achieve nice results. Sadly in some areas they were let call it nicely: "untested". Stability problems were accompany me whole the time but I wasn't surprised too much.

When I work on new features I very often don't testing all features of editor just to save time. This behavior is kind of ok for development but then you need to use tools to do some real stuff and it backstabbing you all the time then. Features don't working, crashing editor, behave unpredictable because some parameters changed.

I thought about solution to this issue and I want to do some tools run-time tests to check if tools still working. Sadly I still don't have idea how to do it so I wouldn't need to spends a lot of time to manage it.

Resource pipeline

Resource system with exception of few glitches worked out fine. Sadly untested on stand alone system made me small surprise right before release and refused to work. 

Mix between old and new resources turned out to be pretty toxic. I think that I have it now under control but I'm not full satisfied with fix.

Rendering system

Render system is another topics that I'm not fully satisfied with. This time problem is in my knowledge about PBR (Physics Base Rendering) algorithms. I struggle to achieve what I wanted and even if it looks not bad it have glitches which make me furious.

Summary

TD2 release leaving me with mixed feelings. I'm really proud that I managed to release whole build on time with all this features and pretty good stability. In the same time I regret that there is so much physics issues, some missing pieces that I would love to have and problems that I could probably avoid. 

What left now is use this whole experience that I gain from it, tackle issues that I wrote about and prepare to ship TD3 :D Work on it already started.

Greg

Saturday, 21 October 2017

Tech Demo 2 (With download link)

When I starting write this post it is 22 October 2017 5.30 AM in morning I'm tired but excited in the same time. After this long waiting I can finally present you "Tech demo 2" and I need to say that its bigger and more complicated than I thought it will be. Because of that and few other things this build is really special for me and would love if it would became the same for you.

That is why this time there will be no long presentation what is done, there won't be long video or even my voice there. I'm simple giving in your hands piece of software on which I spends hundreds of hours and small teaser. This time with original music from Phil Vochey (I want to believe that I won't have problems because of that :D ). And here my job ending now you can have fun with it, record your own videos, share it with others and like always comments. I'm really curious what do you think about this another step to create real remake.




I'm sadly aware of some problems that can be seen in build. But standing in decision of postponing release or share build in current state I decided it will be wiser to release it in this form and deal with issues in next release. This way I won't be tempted to move build and you will see how project changed.

From technical point of view I sadly cannot say that this was smoothest release ever. Because of big amount of new stuff that I pushed into this build I had tons of problem. But this was expected and gave me a lot of knowledge of weaknesses of tools and technology. On other hands some other parts worked extremely well and speed up whole publishing process.

Now I stand in front of hardest challenge. I need to write postmortem and decide how to fix all this issues. But this will be done somewhere in next 2 weeks... I need some rest.
Greg

Tuesday, 17 October 2017

CoffeMonster day 4

Another day, another evening, with each next tick of clock, less and less time left for work on Tech Demo 2 and there is so much to do...  Last weekend  - fighting with some physics bugs and adding additional unit tests which resulted in another bunch of code fixes... Yesterday evening -  improvement to editor controls ... Today ...

Improved axis selection visual feedback.
Grab with alignment
Improved rotation gizmo.
At this moment I feel a little bit disappointed that I won't be able to push everything into TD2. Well as one person team I cannot help too much with this... I taking another slip of mead ... it is so good.

... hmm this is good question what I will be working Today. Input system ? Gui ? Maybe both. There are three closely related problems I would need to tackle:
  1. Blocking of input propagation outside current state.
    Test case: You are in inventory and when pressing escape to quit it you end in game menu.
    Expected behaviour: You should press escape button twice so this happen
     
  2. Detecting which device is currently use.
    Expected behaviour:
    When you use Gamepad it is active but then when you start using mouse&keyboard it switch as active.
  3. Action buttons display in GUI
    Test case: Use mouse or keyboard - icons should display different icon.
    Expected behaviour: Icons should change depending on currently active device.
Not the most exciting tasks but I know they are needed so time to start working on it ... TD2 coming this weekend - there is no time to waste.

This time really short and I probably should apologies for that but I won't :D  With TD2 coming I'm really busy and limited with time but still wanted to give you some update. You hanging around project even when it is not always easiest thing to do so you deserved it.

Greg
Straight from TD2 battlefield.