Scala uses an ExecutionContext for some asynchronous things (Futures, Promises). An ExecutionContext can be thought of as a thread pool in which Runnables can be sent to run on one of the threads. (This is not necessarily always a thread pool, but it tends to be).
The way you use ExecutionContext is usually passed as an argument to the implicit function that will use it. You often see method signatures as follows:
def doAsyncThings(args: Args)(implicit exc: ExecutionContext): Future[Result]
The doAsyncThings method will use an implicit exc , which will be passed to put the work in a separate thread.
To answer your question, the Implicits import from the two examples is the implicit ExecutionContext instances that are needed to call the future and scheduleOnce methods. For research purposes, it does not matter which one you use. global one of the scala library contains (iirc) a pool of threads with 8 threads. I would suggest that the game is similar. If you are not overly careful about which threads do any work, the choice should not affect you.
Dylan source share