Implementing a system clock is the way to go, wall clock can be easy abused because it uses the user time, which he can easy change to get some kind of advantage.
I had a simple clock on my game implement with 3 variable, 1 for seconds, 1 for minutes and 1 for hours, every 1 second when the game should be running I increment the second variable by 1, when it gets to 60 I reset it to 0, and add 1 to minutes, when minutes get to 60 I reset it to 0 and add 1 to hours. You can make a simple clock like that, and If you want to continue where it stoped after the game is closed, you can keep the variable values in a json file and load that on game start.