Implemented server tick, keep alive and watchdog, player object, basic text chat object, dynamic chunk loading and unloading.
Server tick timer thread for accurate tick timing and no missing ticks, server worker thread for actual game tick. Players update sequentially after game tick event.
A std::deque
was used for packet data communication between update thread and handler thread. std::mutex
was used to protect the queue, however, it is unable to remove a packet from the queue and still fails sometime under heavy communication load.