Use the business-key to correlate between an unique ID and a process-instance. When starting the process, you can pass that in. Afterwards, you can query for the process-instance OR child-executions using executionQuery.processInstanceBusinessKey(…).
A process-instance is indeed an "execution", it's the ROOT execution for a running process. When a process splits into 2 parallel paths or needs a sub-scope (e.g.. subprocess), one or more child-executions are created. These executions reference the process-instance. On a ProcessInstance object, you can get the "process definition id", on an execution, you can't do this directly (can be done using the process-instance-id however). The business-key is a globally UNIQUE identifier YOU can give to a certain process. This key is not used by activiti, this uses the internal ID's. The business-key allows you to lookup a process-instance based on some key your business uses (hence the term).
In case of call-activities, you'll have a process-instance for your main process (game loop) and one for your call-activity. Potentially, there are more executions in between them, depending in the type of process.
Hopes this helps.