Monday, June 5, 2017

Catching up

There is so much going on this year that I don’t have too much time to write posts. For this who don’t follow my other blog this is some summary of most important changes:
  • In February I started working for Unity Technologies.
  • Engine slowly transit to Physics Base Rendering (PBR).
  • I released new video with game progress.
  • Been at Unity HackWeek XII (I’m even on one of photos at blog, find me if you can :P)
  • Dropping kinematic character physics in game.

Now that I think about it each of this points could be separate post. But well there is no point in thinking about past and let’s focus on present and topics I work on in the same time:
  1. PBR transition.
  2. Physics changes.
  3. Game not working smooth.

PBR transition

This slow down a little bit because I try to read in free time recommended by friend moving frostbite to pbr. I start to see how much knowledge I missing to do it properly. There is all this sections about lights parameters that I never thought about, lenses configuration and so on.

Maybe you have some other good articles/presentations which explain this in details ? I personally missing some information how to put all this together :( there is so much sources explaining each step of pipeline but non really explain how to put all this together. If you have something like that I would love to hear about this :D

Summarizing: till I figure out all of this and finally define all masks I cannot really start work on game assets. So for now I don’t focusing on new content too much and adding mostly placeholder geometry

Physics changes

Changes in physics are always hard for me because I’m not feeling fully comfortable with whole code base. With each iteration I try to understand how things work internally but this is rather slow process. Problem is that most of stuff I do right now require this knowledge.

Currently my task is to switch from kinematic character physics to just RigidBody + Constraints. This is mostly because I noticed that I paying big price for supporting kinematic body (I spend a lot of time on it and also performance of it wasn’t good). So now I have already some work in progress of new system and slowly progress with more improvements.

Game not working smoothly

This is task I focusing the most and I found out already few different reasons behind it.
  • Wrong organized update loop.
  • Small issue with calculating elapsed time.
  • Issue with physics update.
All of them worked but there were this small issues which combining together gave this weird impression that game not running smoothly. Now I think everything look a lot better but I’m still investigating everything to achieve the best results.

So as you see I doing everything and nothing :/ This is frustrating because I would like to focus on game more but well slowly I will get there.  

Saturday, February 18, 2017

Good programmer ...

I don't know about you but after all this years that I'm into programming (18 year already) I'm still hesitate to call myself good programmer. I have some knowledge and experience but am I really good ? 

This question really often return when you look around in net. You founding another awesome looking project that somebody done. In my case is even worse because most of the time it's also done a lot quicker ( I'm 7 years stuck in the same project). Always then I feel a little bit down because there coming other questions like: what you done in all this time, what you achieved and are you really good.

I still don't have clear answer how to deal with this mood and thoughts. Do you have any ? If you have I'm really open to listen them.

So far I start to thinking that we are in time when a lot of people want to show of their skills and show how better they are than others. I'm sometimes have pity for them when they doing that.

Recently I was asked if one of my friend is better programmer than me and my answer was yes. And the more I think about it's great. By simple fact that I know that there are better people I know I have a lot of new possibilities in front of me. I still can be better than I'm right now.

So in the end who cares if I'm called good programmer. I'm just trying my best in programming and I think this is great because there is so much new interesting things to be discovered.


Wednesday, February 15, 2017

Editor disaster ... update

So I was digging a little bit more into my issue of TCP/IP on Linux and I found out about socket option:

One of description in given link is:
2. For this to be used effectively, applications must avoid doing small, logically related buffer writes. Because TCP_NODELAY is enabled, these small writes will make TCP send these multiple buffers as individual packets, which can result in poor overall performance. ...
In my case default behavior created delay because I was basing (probably stupidly) my whole system on fact that each message will be delivered as soon as possible.

This option switched everything to expected from me behavior. Of course I don't saying this is solution to all problems and probably introduce me some issues somewhere else.

I'm still feel like novice in serious network programming :/ But well as far as project go I'm really happy with all this improvements and knowledge that I gain in meantime of doing them.

But well time to return tracing bugs in my changes so I could push my code to repository before going sleep.


Monday, January 30, 2017

Editor disaster ...

So I'm still waiting for starting of my new job in Unity Technologies so I have some spare time. I use it to see Copenhagen, drink coffee, meet new people and of course as always: coding. 

This time in my coding journey I try to figure out reason behind my slow reaction time of editor. My windows machine handed everything perfectly fine but my a lot slower laptop with Linux gave terrible results :/ How bad? I tried to rotate scene and there was few second delay between action and reaction So really bad. There was no choice but to fix it. 

Wednesday, January 25, 2017

Resource building

As you may notice I like to push my tech to it's limit. Because of that I recently decided to switch to a lot better way of building resources. I took my app that were containing everything and split it on 3 different one.
They run as separate processes which connect with each other using TCP/IP. Comparing to previous setup this solution have a lot of advantages and this is some of them:
  • If one node crash I can just restart it and run whole setup further.
  • Whole node setup is scalable so I can have 100 of nodes.
  • I can run nodes on different machines. 
  • I can dispatch new version of building nodes to different machines automatically.
  • I can build specialized Python nodes for some of work.
  • Application don't need to have all this shitty code of resource compilation.
  • Whole concept became a lot easier to control.
So as you can see there is a lot of improvement :) comparing to previous one.