Если не брут, а направленная атака, то браузер, операционка и геопозиция легко подделываются. Не то чтобы они совсем не осложняли задачу злоумышленнику, но особо рассчитывать на них не стоит.
PHPjedi: если вам достаточно делать запросы к сайту - да, достаточно. Если в самой игре должны выполняться какие-то скрипты, то придется использовать браузер или эмулятор (phantom.js, например).
EverOne: Именно потому, что оно второй год как начинается, я и написал "почти везде". Разница между HTTP/1.1 и HTTP/2 не такая уж драматическая. Да он бинарный, умеет параллельность из коробки, серверсайд пуш и некоторые другие плюшки. Но семантика остается та-же, и если вы знаете как работает HTTP 1.1 доучить новинки не так уж сложно.
Но это всё теория, в идеале нужно гонять тесты именно на вашем железе и вашем коде, искать "бутылочные горлышки" и устранять их. И "по фотографии" такое не делается.
lemonlimelike: Только делаете вы это каким-то странноватым способом. Почему бы не завести в таблице поля ip и count и не писать в них ip и сколько раз он появлялся, например. Без всякого дополнительного запроса с проверкой. при помощи ON DUPLICATE KEY UPDATE.