Является ли нормой вести историю изменения всех свойств сущности приложения в mysql таблицу?
Тебе виднее зачем она нужна. По мне так разве что для всяческих разборок с читерами, накрутчиками и при проблемах с оплатами.
Но в именно таком виде не хранил бы. Хранил бы историю отдельно, а последнее значение отдельно, чтобы выборку для текущего значения можно было бы делать без указания "последнего datetime". Поскольку для повседневной работы история не нужна, то и незачем нагружать сервер ненужной работой. Потом, по мере роста сложности игры и количества игроков у тебя будут проблемы с производительностью, если сделаешь как ты написал.
И было бы из-за чего. Не из-за чего - просмотр истории не самая частая и не самая нужная операция.
Если на любой чих мучать серверную БД она ляжет очень быстро от количества пользователей, как и написали в верхнем посте. 
Я бы предложил хранить историю (и всё, что не важно для процесса) на клиенте,
а время от времени всё разом синхронизировать/заливать в основную БД.
Точнее да же не в основную, а в отдельную.