package Ġx lite kt . game čĊč Ċ import Ġio . ktor . server . application . Application Environment č Ċ import Ġorg . k oin . dsl . module č Ċ import Ġorg . r sm od . path finder . Zone Flags č Ċ import Ġx lite kt . game . event . EventBus č Ċ import Ġx lite kt . game . fs . Player Json Encoder Service č Ċ import Ġx lite kt . game . tick . Parallel Actor Synchron izer č Ċ import Ġx lite kt . game . tick . Sequential Actor Synchron izer č Ċ import Ġx lite kt . game . tick . World Login Synchron izer č Ċ import Ġx lite kt . game . tick . World Logout Synchron izer č Ċ import Ġx lite kt . game . tick . benchmark . Benchmark Parallel Actor Synchron izer č Ċ import Ġx lite kt . game . world . World č Ċ import Ġx lite kt . shared . lazy č Ċ import Ġjava . util . concurrent . Executors čĊč Ċ /** čĊ Ġ* Ġ@ author ĠJ ordan ĠA br ah am čĊ Ġ*/ č Ċ val Ġgame Module Ġ= Ġmodule ( createdAt Start Ġ= Ġtrue ) Ġ{ čĊĠĠĠ Ġsingle Ġ{ ĠEvent Bus () Ġ} čĊĠĠĠ Ġsingle Ġ{ ĠWorld () Ġ} čĊĠĠĠ Ġsingle Ġ{ ĠZone Flags () Ġ} čĊĠĠĠ Ġsingle Ġ{ ĠGame () Ġ} čĊĠĠĠ Ġsingle Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġbenchmark ing Ġ= Ġlazy < Application Environment >(). config . property (" game . benchmark ing "). getString (). to Boolean () čĊĠĠĠĠĠĠĠ Ġval Ġthreads Ġ= ĠRuntime . get Runtime (). available Processors () čĊčĊĠĠĠĠĠĠĠ Ġval Ġmain Synchron izer Ġ= Ġwhen Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbenchmark ing Ġ-> Ġif Ġ( threads Ġ>= Ġ 4 ) ĠBenchmark Parallel Actor Synchron izer () Ġelse Ġthrow ĠIllegalStateException (" Must Ġhave Ġ 4 Ġor Ġmore Ġthreads Ġto Ġuse ĠBenchmark Synchronization Task . ĠPlease Ġdisable Ġin Ġapplication . conf .") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthreads Ġ>= Ġ 4 Ġ-> ĠParallel Actor Synchron izer () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠSequential Actor Synchron izer () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ ĠGame Loop ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠExec utors . new Single Thread Scheduled Executor (), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWorld Logout Synchron izer (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWorld Login Synchron izer (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Synchron izer čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠ Ġ} čĊĠĠĠ Ġsingle Ġ{ ĠPlayer Json Encoder Service ( Executors . new Single Thread Scheduled Executor ()) Ġ} č Ċ } čĊ