• By Vaclav Samec
  • Posted May 10, 2020

Deterministic lockstep

Deterministic lockstep is a networking protocol for communication and synchronization. The key aspect to achieve deterministic behaviour is to allow sending only input across the network. All parties of communication can reproduce the state in a deterministic way by using the same input.


  • By Vaclav Samec
  • Posted August 24, 2019

Benchmarking cassandra with go

Golang is my new favourite programming language. In fact I would never imagine anything to top C++ in my personal ranking of programming languages. After recent years of suffering with slow C# and JavaScript there is a language that brings back joy of programming. It's minimalistic, clean, fast and built for concurrency.


  • By Vaclav Samec
  • Posted July 27, 2019

Cassandra consistency

Distributed databases became increasingly popular for applications that needs scale. In game development this is one of the requirements, if an online game hits global market you need a database that can handle a big load of users from around the globe.


  • By Vaclav Samec
  • Posted November 15, 2016

Fastest image processor

Recently I wanted to resize over 1000 pictures in high resolution from my camera with more than 4.000 pixels in width. Usually I use ACDSee software for the job. It has a lots of settings and the results are pretty good. However it's a commercial software and runs only on Windows....


  • By Vaclav Samec
  • Posted June 3, 2016

Hashing 3D space

One of the challenges when dealing with 3D objects is a spatial partitioning. A common problem is to find an object in a specified area or a nearest object. Typically we divide the space into cells and reduce the problem to searching for a cell containing a point or an object....


  • By Vaclav Samec
  • Posted January 17, 2016

Cash drawer

Programming an accounting software is a dull job, so hard to find any kind of challenge. There was however one interesting problem. The software was recording transactions from customers and printing bills, very simple. The printer was a small cashier style printer connected to cash drawer with RJ11 connector....


  • By Vaclav Samec
  • Posted July 2, 2015

Smoother camera

Recently I came across an interesting problem where I had to follow a moving game object with the camera. The object was physical based with rigid body and the camera movement had to be delayed with a spring effect. I am using Unity Engine. The implementation was pretty straightforward, the camera position is continuously interpolated to the object position....


  • By Vaclav Samec
  • Posted March 12, 2015

C++ lambda

With the new version of C++ we got a chance to start using lambda functions. It's a great way to simplify the code. Imagine this traditional sorting scenario...


  • By Vaclav Samec
  • Posted January 20, 2015

Multithreaded JNI

JNI stands for Java Native Interface. It is a framework for communication between Java and Native code. Basically a program in Java can call a native program written in C++ and the other way around. I would say it's not very common in general software development but it becomes important when dealing with performance critical applications like games....