TCP — как лучше передавать данные?
Говоря про TCP больше подразумевают socket, где просто бинарным пакетом передаешь данные, сам придумываешь формат, упаковщик и парсер, при этом размер пакета может быть очень гораздо меньше, чем JSON или другой текст.

JSON обычно используется в текстовых протоколах, таких как http

Но можно и просто текст передавать.
Лучше всего простой текстовый протокол. 

json при данной постановке - вторичен. Когда будет написана основная игровая логика то перейти на json будет не сложно.