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.

Sunday, 8 October 2017

CoffeMonster day 3 -TD2 release date

There was plenty of time I thought, no worries but here I standing in front of dilemma: announce release date for TD2 in week or two. This sounds like not a lot but I gaining extra weekend to do stuff... I will play safe. Next post will announce 

TD2 will be release at 22 October 2017.

Even knowing that this is right thing to do I regret somewhere inside that I didn't wrap everything for 15 October. But now it's to late to think about this.


Now only thing that left is to polish what I have. First on my list is slightly annoying problem with small glitch when stepping on obstacles. I right away jumping into investigating what happening there. Issue look simple: disabling some collision when do step up animation not working exactly how I want time to experiment with different approaches. At first nothing come to my mind by then maybe I should try to scale character capsule? Hmm ..Worth trying.. 2 min later I have hacked my way in code to achieve this. Time to see how it will work .

Game starting on my screen... moment later I'm already testing stuff. Running around and trying to reproduce issue but something is still wrong. I need to check physics debug view.


Pressing button to open console and f... I forgot. Console no longer works :/ I broke it long time ago when I remove Lua from core of engine :/ then I broke it even more when I introduced new input system. I could hack debug view in code this would be really simple but console is really useful in testing different features. Second dilemma this day: hack my way or do it properly ? Ehh .. lets do it properly how long it could take to fix it?

Now that I look in past I knew answer from start and I'm not even surprised with answer.

Few hours later after:
  • adding code that parse commands, 
  • unify it between different parsers, 
  • writing around 50 unit tests, 
  • fixing few bugs that shown in unit tests,
  • going for dinner and shopping,
  • cleaning up some of code,
  • writing more unit tests,
  • fixing few more bugs,  
and it finally works.

It's past midnight... I'm little bit tired but still happy with results. In the end I think it was worth it to put all this effort into this feature.



In the end I never got to fix game play issue but I also know that tomorrow is also day and all this stuff that I done today will help me make more progress then. I turned off my computer went to bed.

See you next time.
Greg

Tuesday, 26 September 2017

CoffeMonster day 2

Another week... another day... sadly even with shadow of Tech Demo 2 (TD2) release I cannot stop myself from another deep dive into technology changes. Sometimes I think that I'm addicted to this feeling when you finish changes and you know that you will never want to go back to old ways.  But hey who cares .... TD2 is secured... kind of.

***

Little bit tired of work and my Danish lessons I finally sit down in front of my monitors trying to figure out where I left stuff yesterday:
  • main loop - finished, 
  • multi-threaded upload of textures to GPU - looks that it working
  • improve asset browser widget - finished.
  • define content workflow - ....
Yeah .... there is this and terrain improvements... I'm tired.

This one thought an sight on my screen was enough to convince me that I need nap. I quickly grab phone laying close by and set alarm for 20 min later. I fall tired on my bed and next thing I remember is sound of alarm that I just set.

Compute shaders... I don't know why but this two words coming to my mind when I think about doing anything terrain related. Now all stuff are done on CPU and GPU computation would be great for terrain texture generation. Maybe it's time to finally implement this feature. 

Once again sitting in fronts of my monitors. This time checking OpenGL documentation related to Compute Shaders. API is not really complicated, core 4.3 so I won't need to increase hardware requirements. Whole thing is simple: add support to it and use for generation of terrain data.

Only part that is not easy is to decide if I will be able to finish this changes before TD2. Terrain is big part of technology I creating and if I will start digging into it I will change few things that right now are not right. Amount of work will start grow with each change. 


There is also this started task "define content workflow" which require from me replacing all textures masks (they defining visual properties of materials). When I will deal with this I will be finally able to start do some proper content and rendering improvement. 

This forever existing feeling of hesitation and powerlessness toward amount of work... So much to do and so little time... I'm tired.

This time I didn't gave up and started doing some preparation for compute shaders in engine. I will worry about all other stuff when we will be closer to TD2 release. For now I will focus on having some fun.

Greg

Sunday, 17 September 2017

CoffeMonster day

Around month left to release of TD2 (Tech Demo 2) ... sound of typing and laud sigh spread around the room. Once again I siting in front of the open new blogger post and thinking what to write to all this people who wait for news about project. This task almost never coming lightly but well it's was long time from last post so this is best time to do it.

Compilation on second screen just finished with error this interrupting my thoughts. Quickly found small mistake in my recent changes. Pressing F7 on keyboard to compile project and once again returning to writing post. 


Where I stop ... ah yeah what to write. This week was rather intense but mostly because I done another jump into dark depths of engine and iterated over main loop. The way how I do stuff now is a lot cleaner than before but from outside game look almost the same.

On other screen I see "Build: 4 succeeded, 0 failed, 18 up-to-date, 0 skipped" this mean project finally compiled. Once again my thoughts  drift to coding. Pressing F5 to start editor. This simple action result in anticipation for results and then disappointment when application crashed...  I ... didn't expected that. Well time to dive into debugger to see what I doing wrong. 

Turned out part of my code was optimized by compiler and I needed to enforce that it stay in build. Whole editor functionality depends on this behavior so I need to fix it. I could of course reverse some of my actual changes but then I will need to deal with manual register events to communicate between editor GUI and editor back-end. There is no way I will return to this. There need to be way to fix it... 

Before I notice passed few hours. Everything now works how it should.  Yeah I was writing post ... Yes I should really finish it.

"Maybe I should focus more on game and it's cool features?" this simple thought flash in my head but quickly was replaced by another one "If only I done some cool features recently". 

This reminded me that my recent work is mostly playing around with changes I wanted to do for some time. Now was occasion to do it because I have some spare time before TD2 which is almost ready. I really believe in long run whole this improvement will pay back and allow me to do great game it also opened me road to some cool improvement of rendering and whole game structure. 

I thinking too much about future and to little about writing post. But what I can do I'm just geeky programmer who is really excited about stuff he working on. Time to dig into rendering code. Post with announcement of cool stuff will need to wait a little bit longer.

(another day of my programmer life)
Greg