Существует множество алгоритмов для этого, как пример
http://habrahabr.ru/post/178135/
А по поводу где считать: если у тебя мультиплеер, то на сервере, а если синглплей, то на клиенте.
Если забить на защиту от читов, то мультиплеер можно также считать на клиенте используя WebRTC для организации peer-to-peer взаимодействия.