Because it's mysql, you can simply do this to pull the whole row with the highest score per game:
select * from (
select *
from cdu_user_progress
order by score desc) x
group by game_id
This works because of mysql non-standard group by functionality, whereby it returns the first row encountered for each group when not all the non-aggregate columns are named in the group by clause.