This is very relative and will depend on the flow of users and the tables involved.
If there is no way to modify the game script to save the data as the user advances, then I only see cronjob as a solution.
You have to analyze the following:
- What is the optimal time to run cronjob, that is, with less stream of users?
- If the flow is large at all times, does your server handle all processing?
- Does your script update the database, it consumes a lot of memory?
With the answer in hand, you will know:
- If your architecture is the best choice. Maybe it's an exaggeration, but it would not be better to move to a distributed database;
- If your server needs an upgrade and if that solution is enough;
- If your script (which updates the database) needs to be optimized;
- Whether the database needs to be optimized.
As you can see, if you do not want to affect the performance of the application, you have to be careful and not just to do a cron job, but only you who know the system can respond.