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.


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)