Как правильнее реализовать подсчёт ресурсов?
Реализовать это дело на таймере. Ведь вы точно знаете, через сколько времени от текущего момента надо увеличить количество ресурсов. Заведите таймер, который будет райзить соответствующее событие. С т.з. перфоманса - прирост может быть в зависимости от реализации таймера. Ну а код точно станет красивее.
более правильно: websocket