As Rusty commented, a tick is a short, but abstract period of time. For turn-based games, you need not worry much about it. For example, as soon as the player has made his or her choices and ends his/her turn, the AI will make its moves as quickly as possible(except maybe some real-time animations) and then hand control back to the player for the next turn. An RTS game in contrast (like your Tycoon game), will rely on real-time passage for continuous moves to happen at a constant rate. It’s important to keep a real-time clock for 2 reasons:
1. Not all CPUs/OS run at the same speed, and
2. As more units come into play, it will take longer to perform the needed functions for all the entities.
It’s easy enough to use delta to do this. Here is a simple example using a 2 second timer. That is probably longer than you would choose in practice, but it will demonstrate better.
extends Node2D
var my_timer = 2 # set to 2 seconds
func _process(delta):
my_timer -= delta # take the time passed and subtract from our timer
if my_timer <= 0: # 2 seconds have gone by... do stuff
print ("Tick") # just to see that it prints every 2 seconds
my_timer = 2 # reset timer for next time
func _ready():
set_process(true)