@energy8platform/game-engine 0.10.8 → 0.10.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/simulate.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env npx tsx
2
2
  import { SimulationRunner, formatSimulationResult } from '../src/lua/SimulationRunner';
3
+ import { ParallelSimulationRunner } from '../src/lua/ParallelSimulationRunner';
4
+ import { cpus } from 'os';
3
5
  import { resolve } from 'path';
4
6
 
5
7
  // ─── Argument Parsing ───────────────────────────────────
@@ -25,6 +27,7 @@ async function main() {
25
27
  const seed = args.seed ? parseInt(args.seed, 10) : undefined;
26
28
  const action = args.action ?? 'spin';
27
29
  const params = args.params ? JSON.parse(args.params) : undefined;
30
+ const workers = args.workers ? parseInt(args.workers, 10) : cpus().length;
28
31
 
29
32
  // Load dev config
30
33
  let config: any;
@@ -49,23 +52,43 @@ async function main() {
49
52
  }
50
53
 
51
54
  const gameId = config.gameDefinition.id ?? 'unknown';
52
- console.log(`Starting simulation for ${gameId} (${iterations.toLocaleString()} iterations, action: ${action})...`);
55
+ const useParallel = workers > 1;
56
+ console.log(`Starting simulation for ${gameId} (${iterations.toLocaleString()} iterations, action: ${action}, workers: ${useParallel ? workers : 1})...`);
53
57
 
54
- const runner = new SimulationRunner({
55
- script: config.luaScript,
56
- gameDefinition: config.gameDefinition,
57
- iterations,
58
- bet,
59
- seed,
60
- action,
61
- params,
62
- onProgress: (completed, total) => {
63
- const pct = Math.round((completed / total) * 100);
64
- console.log(`Progress: ${completed.toLocaleString()}/${total.toLocaleString()} (${pct}%)`);
65
- },
66
- });
58
+ const onProgress = (completed: number, total: number) => {
59
+ const pct = Math.round((completed / total) * 100);
60
+ console.log(`Progress: ${completed.toLocaleString()}/${total.toLocaleString()} (${pct}%)`);
61
+ };
62
+
63
+ let result;
64
+
65
+ if (useParallel) {
66
+ const runner = new ParallelSimulationRunner({
67
+ script: config.luaScript,
68
+ gameDefinition: config.gameDefinition,
69
+ iterations,
70
+ bet,
71
+ seed,
72
+ action,
73
+ params,
74
+ workerCount: workers,
75
+ onProgress,
76
+ });
77
+ result = await runner.run();
78
+ } else {
79
+ const runner = new SimulationRunner({
80
+ script: config.luaScript,
81
+ gameDefinition: config.gameDefinition,
82
+ iterations,
83
+ bet,
84
+ seed,
85
+ action,
86
+ params,
87
+ onProgress,
88
+ });
89
+ result = runner.run();
90
+ }
67
91
 
68
- const result = runner.run();
69
92
  console.log(formatSimulationResult(result));
70
93
  }
71
94
 
package/dist/lua.cjs.js CHANGED
@@ -1,9 +1,24 @@
1
1
  'use strict';
2
2
 
3
3
  var fengari = require('fengari');
4
+ var worker_threads = require('worker_threads');
5
+ var os = require('os');
6
+ var url = require('url');
7
+ var path = require('path');
4
8
 
9
+ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
5
10
  const { lua: lua$1, lauxlib: lauxlib$1 } = fengari;
6
11
  const { to_luastring: to_luastring$1, to_jsstring: to_jsstring$1 } = fengari;
12
+ /** Cache for to_luastring() results — avoids re-encoding the same keys every iteration */
13
+ const luaStringCache = new Map();
14
+ function cachedToLuastring(s) {
15
+ let cached = luaStringCache.get(s);
16
+ if (!cached) {
17
+ cached = to_luastring$1(s);
18
+ luaStringCache.set(s, cached);
19
+ }
20
+ return cached;
21
+ }
7
22
  /**
8
23
  * Seeded xoshiro128** PRNG for deterministic simulation/replay.
9
24
  * Period: 2^128 - 1
@@ -240,7 +255,7 @@ function pushJSValue(L, value) {
240
255
  }
241
256
  }
242
257
  else if (typeof value === 'string') {
243
- lua$1.lua_pushstring(L, to_luastring$1(value));
258
+ lua$1.lua_pushstring(L, cachedToLuastring(value));
244
259
  }
245
260
  else if (Array.isArray(value)) {
246
261
  pushJSArray(L, value);
@@ -266,7 +281,7 @@ function pushJSObject(L, obj) {
266
281
  lua$1.lua_createtable(L, 0, keys.length);
267
282
  for (const key of keys) {
268
283
  pushJSValue(L, obj[key]);
269
- lua$1.lua_setfield(L, -2, to_luastring$1(key));
284
+ lua$1.lua_setfield(L, -2, cachedToLuastring(key));
270
285
  }
271
286
  }
272
287
 
@@ -641,6 +656,11 @@ class LuaEngine {
641
656
  gameDefinition;
642
657
  variables = {};
643
658
  simulationMode;
659
+ /** Reusable state objects to avoid per-iteration allocation */
660
+ _stateVars = {};
661
+ _stateParams = {};
662
+ /** Whether the game uses _persist_ keys (detected on first run, cached) */
663
+ _hasPersistKeys;
644
664
  constructor(config) {
645
665
  this.gameDefinition = config.gameDefinition;
646
666
  this.simulationMode = config.simulationMode ?? false;
@@ -693,11 +713,14 @@ class LuaEngine {
693
713
  bet = this.sessionManager.sessionBet;
694
714
  }
695
715
  // 3. Build state.variables (matching server's NewGameState + restore)
696
- const stateVars = {
697
- ...DEFAULT_VARIABLES,
698
- ...this.variables,
699
- bet,
700
- };
716
+ // Reuse pooled object to avoid per-iteration allocation
717
+ const stateVars = this._stateVars;
718
+ // Clear previous keys
719
+ for (const key in stateVars)
720
+ delete stateVars[key];
721
+ // Apply defaults, then engine vars, then bet
722
+ Object.assign(stateVars, DEFAULT_VARIABLES, this.variables);
723
+ stateVars.bet = bet;
701
724
  // Load cross-spin persistent state
702
725
  this.persistentState.loadIntoVariables(stateVars);
703
726
  // Load session persistent vars + restore spinsRemaining
@@ -715,8 +738,12 @@ class LuaEngine {
715
738
  // Also set free_spins_remaining for convenience
716
739
  stateVars.free_spins_remaining = this.sessionManager.spinsRemaining;
717
740
  }
718
- // 4. Build state.params
719
- const stateParams = { ...clientParams };
741
+ // 4. Build state.params (reuse pooled object)
742
+ const stateParams = this._stateParams;
743
+ for (const key in stateParams)
744
+ delete stateParams[key];
745
+ if (clientParams)
746
+ Object.assign(stateParams, clientParams);
720
747
  stateParams._action = actionName;
721
748
  // Inject session _ps_* persistent data
722
749
  if (this.sessionManager.isActive) {
@@ -749,10 +776,12 @@ class LuaEngine {
749
776
  const totalWinMultiplier = typeof luaResult.total_win === 'number' ? luaResult.total_win : 0;
750
777
  const resultVariables = (luaResult.variables ?? {});
751
778
  const spinWin = Math.round(totalWinMultiplier * bet * 100) / 100;
752
- // Merge result variables into engine variables
779
+ // Merge ONLY Lua return variables into engine state (not the whole stateVars).
780
+ // On the server, state.Variables is a temporary object rebuilt each call.
781
+ // Only the Lua result's `variables` table persists between calls.
782
+ Object.assign(this.variables, resultVariables);
783
+ // Also update stateVars for transition evaluation below
753
784
  Object.assign(stateVars, resultVariables);
754
- this.variables = { ...stateVars };
755
- delete this.variables.bet;
756
785
  // Build client data (everything except special keys)
757
786
  const data = {};
758
787
  for (const [key, value] of Object.entries(luaResult)) {
@@ -763,8 +792,8 @@ class LuaEngine {
763
792
  // 7. Handle _persist_* and _persist_game_* keys
764
793
  this.sessionManager.storePersistData(data);
765
794
  this.persistentState.storeGameData(data);
766
- // Save cross-spin persistent state
767
- this.persistentState.saveFromVariables(this.variables);
795
+ // Save cross-spin persistent state (from stateVars which has Lua result merged)
796
+ this.persistentState.saveFromVariables(stateVars);
768
797
  // Add exposed persistent vars to client data
769
798
  const exposedVars = this.persistentState.getExposedVars();
770
799
  if (exposedVars) {
@@ -776,8 +805,8 @@ class LuaEngine {
776
805
  delete data[key];
777
806
  }
778
807
  }
779
- // 8. Evaluate transitions (server: evaluateTransitions)
780
- const { rule, nextActions } = this.actionRouter.evaluateTransitions(action, this.variables);
808
+ // 8. Evaluate transitions (server uses state.Variables which is stateVars)
809
+ const { rule, nextActions } = this.actionRouter.evaluateTransitions(action, stateVars);
781
810
  // 9. Determine credit behavior (server: creditNow logic)
782
811
  let creditDeferred = action.credit === 'defer' || rule.credit_override === 'defer';
783
812
  // 10. Session lifecycle (server: create/update/complete session)
@@ -788,7 +817,7 @@ class LuaEngine {
788
817
  const maxWinCap = this.calculateMaxWinCap(bet);
789
818
  if (rule.creates_session && !this.sessionManager.isActive) {
790
819
  // CREATE SESSION — initial spin counted (server: createSession includes spinWin)
791
- session = this.sessionManager.createSession(rule, this.variables, bet, spinWin, maxWinCap);
820
+ session = this.sessionManager.createSession(rule, stateVars, bet, spinWin, maxWinCap);
792
821
  creditDeferred = true;
793
822
  resultTotalWin = spinWin;
794
823
  // Clear the trigger variable — it was consumed to set spinsRemaining
@@ -798,7 +827,7 @@ class LuaEngine {
798
827
  }
799
828
  else if (this.sessionManager.isActive) {
800
829
  // UPDATE SESSION — accumulate win, check completion
801
- session = this.sessionManager.updateSession(rule, this.variables, spinWin);
830
+ session = this.sessionManager.updateSession(rule, stateVars, spinWin);
802
831
  if (session?.completed) {
803
832
  // SESSION COMPLETED — server returns session.TotalWin as result.TotalWin
804
833
  const completed = this.sessionManager.completeSession();
@@ -829,7 +858,8 @@ class LuaEngine {
829
858
  data,
830
859
  nextActions,
831
860
  session,
832
- variables: { ...this.variables },
861
+ // In simulation mode, return reference directly (caller only reads, never mutates)
862
+ variables: this.simulationMode ? this.variables : { ...this.variables },
833
863
  creditDeferred,
834
864
  };
835
865
  }
@@ -852,7 +882,7 @@ class LuaEngine {
852
882
  lua.lua_pop(this.L, 1);
853
883
  throw new Error(`Failed to load Lua script: ${err}`);
854
884
  }
855
- lua.lua_getglobal(this.L, to_luastring('execute'));
885
+ lua.lua_getglobal(this.L, cachedToLuastring('execute'));
856
886
  if (lua.lua_type(this.L, -1) !== lua.LUA_TFUNCTION) {
857
887
  lua.lua_pop(this.L, 1);
858
888
  throw new Error('Lua script must define a global `execute(state)` function');
@@ -860,21 +890,21 @@ class LuaEngine {
860
890
  lua.lua_pop(this.L, 1);
861
891
  }
862
892
  callLuaExecute(stage, action, params, variables) {
863
- lua.lua_getglobal(this.L, to_luastring('execute'));
893
+ lua.lua_getglobal(this.L, cachedToLuastring('execute'));
864
894
  // Build state table: {stage, action, params, variables}
865
895
  lua.lua_createtable(this.L, 0, 4);
866
896
  // state.stage
867
- lua.lua_pushstring(this.L, to_luastring(stage));
868
- lua.lua_setfield(this.L, -2, to_luastring('stage'));
897
+ lua.lua_pushstring(this.L, cachedToLuastring(stage));
898
+ lua.lua_setfield(this.L, -2, cachedToLuastring('stage'));
869
899
  // state.action (server sets this at top level)
870
- lua.lua_pushstring(this.L, to_luastring(action));
871
- lua.lua_setfield(this.L, -2, to_luastring('action'));
900
+ lua.lua_pushstring(this.L, cachedToLuastring(action));
901
+ lua.lua_setfield(this.L, -2, cachedToLuastring('action'));
872
902
  // state.params
873
903
  pushJSValue(this.L, params);
874
- lua.lua_setfield(this.L, -2, to_luastring('params'));
904
+ lua.lua_setfield(this.L, -2, cachedToLuastring('params'));
875
905
  // state.variables
876
906
  pushJSValue(this.L, variables);
877
- lua.lua_setfield(this.L, -2, to_luastring('variables'));
907
+ lua.lua_setfield(this.L, -2, cachedToLuastring('variables'));
878
908
  const status = lua.lua_pcall(this.L, 1, 1, 0);
879
909
  if (status !== lua.LUA_OK) {
880
910
  const err = to_jsstring(lua.lua_tostring(this.L, -1));
@@ -884,24 +914,33 @@ class LuaEngine {
884
914
  if (this.simulationMode) {
885
915
  // Fast path: extract only total_win, variables, _persist_* keys
886
916
  const result = {};
887
- lua.lua_getfield(this.L, -1, to_luastring('total_win'));
917
+ lua.lua_getfield(this.L, -1, cachedToLuastring('total_win'));
888
918
  result.total_win = lua.lua_type(this.L, -1) === lua.LUA_TNUMBER
889
919
  ? lua.lua_tonumber(this.L, -1) : 0;
890
920
  lua.lua_pop(this.L, 1);
891
- lua.lua_getfield(this.L, -1, to_luastring('variables'));
921
+ lua.lua_getfield(this.L, -1, cachedToLuastring('variables'));
892
922
  if (lua.lua_type(this.L, -1) === lua.LUA_TTABLE) {
893
923
  result.variables = luaToJS(this.L, -1);
894
924
  }
895
925
  lua.lua_pop(this.L, 1);
896
- lua.lua_pushnil(this.L);
897
- while (lua.lua_next(this.L, -2) !== 0) {
898
- if (lua.lua_type(this.L, -2) === lua.LUA_TSTRING) {
899
- const key = to_jsstring(lua.lua_tostring(this.L, -2));
900
- if (key.startsWith('_persist_')) {
901
- result[key] = luaToJS(this.L, -1);
926
+ // Scan for _persist_* keys only if the game might use them
927
+ if (this._hasPersistKeys !== false) {
928
+ let foundPersist = false;
929
+ lua.lua_pushnil(this.L);
930
+ while (lua.lua_next(this.L, -2) !== 0) {
931
+ if (lua.lua_type(this.L, -2) === lua.LUA_TSTRING) {
932
+ const key = to_jsstring(lua.lua_tostring(this.L, -2));
933
+ if (key.startsWith('_persist_')) {
934
+ result[key] = luaToJS(this.L, -1);
935
+ foundPersist = true;
936
+ }
902
937
  }
938
+ lua.lua_pop(this.L, 1);
939
+ }
940
+ // After first iteration, cache whether persist keys exist
941
+ if (this._hasPersistKeys === undefined) {
942
+ this._hasPersistKeys = foundPersist;
903
943
  }
904
- lua.lua_pop(this.L, 1);
905
944
  }
906
945
  lua.lua_pop(this.L, 1);
907
946
  return result;
@@ -1042,6 +1081,7 @@ class SimulationRunner {
1042
1081
  maxWinHits,
1043
1082
  bonusTriggered,
1044
1083
  bonusSpinsPlayed,
1084
+ _raw: { totalWagered, totalWon, baseGameWin, bonusWin, hits },
1045
1085
  };
1046
1086
  }
1047
1087
  /** Calculate the real cost of one spin (accounting for buy bonus / ante bet) */
@@ -1085,9 +1125,137 @@ function formatSimulationResult(result) {
1085
1125
  return lines.join('\n');
1086
1126
  }
1087
1127
 
1128
+ /// <reference types="node" />
1129
+ const SEED_STRIDE = 1 << 20; // 2^20 — gap between worker seeds to avoid overlap
1130
+ /**
1131
+ * Runs simulation across multiple worker threads for parallel speedup.
1132
+ * Each worker gets an independent LuaEngine with a partitioned seed range.
1133
+ *
1134
+ * Results are statistically equivalent to single-threaded mode but not
1135
+ * bit-identical (different RNG sequence ordering).
1136
+ *
1137
+ * @example
1138
+ * ```ts
1139
+ * const runner = new ParallelSimulationRunner({
1140
+ * script: luaSource,
1141
+ * gameDefinition,
1142
+ * iterations: 1_000_000,
1143
+ * bet: 1.0,
1144
+ * workerCount: 8,
1145
+ * onProgress: (done, total) => console.log(`${done}/${total}`),
1146
+ * });
1147
+ * const result = await runner.run();
1148
+ * ```
1149
+ */
1150
+ class ParallelSimulationRunner {
1151
+ config;
1152
+ workerCount;
1153
+ constructor(config) {
1154
+ this.config = config;
1155
+ const maxWorkers = os.cpus().length;
1156
+ this.workerCount = Math.max(1, Math.min(config.workerCount ?? maxWorkers, maxWorkers, config.iterations));
1157
+ }
1158
+ async run() {
1159
+ const { iterations, seed, onProgress, workerCount: _, ...restConfig } = this.config;
1160
+ const workerCount = this.workerCount;
1161
+ // Split iterations evenly, remainder goes to last worker
1162
+ const baseChunk = Math.floor(iterations / workerCount);
1163
+ const remainder = iterations - baseChunk * workerCount;
1164
+ const workerPath = path.join(path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('lua.cjs.js', document.baseURI).href)))), 'SimulationWorker.ts');
1165
+ const progressPerWorker = new Array(workerCount).fill(0);
1166
+ const totalIterations = iterations;
1167
+ const promises = Array.from({ length: workerCount }, (_, i) => {
1168
+ const workerIterations = baseChunk + (i < remainder ? 1 : 0);
1169
+ const workerSeed = seed !== undefined ? seed + i * SEED_STRIDE : undefined;
1170
+ const workerConfig = {
1171
+ config: {
1172
+ ...restConfig,
1173
+ iterations: workerIterations,
1174
+ seed: workerSeed,
1175
+ progressInterval: this.config.progressInterval,
1176
+ },
1177
+ };
1178
+ return new Promise((resolve, reject) => {
1179
+ const worker = new worker_threads.Worker(workerPath, {
1180
+ workerData: workerConfig,
1181
+ // tsx registers itself via --require/--import; pass through to workers
1182
+ execArgv: process.execArgv,
1183
+ });
1184
+ worker.on('message', (msg) => {
1185
+ if (msg.type === 'progress' && onProgress) {
1186
+ progressPerWorker[i] = msg.progress.completed;
1187
+ const totalCompleted = progressPerWorker.reduce((a, b) => a + b, 0);
1188
+ onProgress(totalCompleted, totalIterations);
1189
+ }
1190
+ else if (msg.type === 'result') {
1191
+ resolve(msg.result);
1192
+ }
1193
+ else if (msg.type === 'error') {
1194
+ reject(new Error(`Worker ${i} failed: ${msg.error}`));
1195
+ }
1196
+ });
1197
+ worker.on('error', (err) => reject(new Error(`Worker ${i} error: ${err.message}`)));
1198
+ worker.on('exit', (code) => {
1199
+ if (code !== 0)
1200
+ reject(new Error(`Worker ${i} exited with code ${code}`));
1201
+ });
1202
+ });
1203
+ });
1204
+ const results = await Promise.all(promises);
1205
+ return aggregateResults(results);
1206
+ }
1207
+ }
1208
+ function aggregateResults(results) {
1209
+ const raw = {
1210
+ totalWagered: 0,
1211
+ totalWon: 0,
1212
+ baseGameWin: 0,
1213
+ bonusWin: 0,
1214
+ hits: 0,
1215
+ };
1216
+ let iterations = 0;
1217
+ let maxWin = 0;
1218
+ let maxWinHits = 0;
1219
+ let bonusTriggered = 0;
1220
+ let bonusSpinsPlayed = 0;
1221
+ let maxDurationMs = 0;
1222
+ for (const r of results) {
1223
+ const rr = r._raw;
1224
+ raw.totalWagered += rr.totalWagered;
1225
+ raw.totalWon += rr.totalWon;
1226
+ raw.baseGameWin += rr.baseGameWin;
1227
+ raw.bonusWin += rr.bonusWin;
1228
+ raw.hits += rr.hits;
1229
+ iterations += r.iterations;
1230
+ if (r.maxWin > maxWin)
1231
+ maxWin = r.maxWin;
1232
+ maxWinHits += r.maxWinHits;
1233
+ bonusTriggered += r.bonusTriggered;
1234
+ bonusSpinsPlayed += r.bonusSpinsPlayed;
1235
+ if (r.durationMs > maxDurationMs)
1236
+ maxDurationMs = r.durationMs;
1237
+ }
1238
+ return {
1239
+ gameId: results[0].gameId,
1240
+ action: results[0].action,
1241
+ iterations,
1242
+ durationMs: maxDurationMs,
1243
+ totalRtp: raw.totalWagered > 0 ? (raw.totalWon / raw.totalWagered) * 100 : 0,
1244
+ baseGameRtp: raw.totalWagered > 0 ? (raw.baseGameWin / raw.totalWagered) * 100 : 0,
1245
+ bonusRtp: raw.totalWagered > 0 ? (raw.bonusWin / raw.totalWagered) * 100 : 0,
1246
+ hitFrequency: iterations > 0 ? (raw.hits / iterations) * 100 : 0,
1247
+ maxWin,
1248
+ maxWinHits,
1249
+ bonusTriggered,
1250
+ bonusSpinsPlayed,
1251
+ _raw: raw,
1252
+ };
1253
+ }
1254
+
1088
1255
  exports.ActionRouter = ActionRouter;
1089
1256
  exports.LuaEngine = LuaEngine;
1090
1257
  exports.LuaEngineAPI = LuaEngineAPI;
1258
+ exports.ParallelSimulationRunner = ParallelSimulationRunner;
1091
1259
  exports.PersistentState = PersistentState;
1092
1260
  exports.SessionManager = SessionManager;
1093
1261
  exports.SimulationRunner = SimulationRunner;
@@ -1 +1 @@
1
- {"version":3,"file":"lua.cjs.js","sources":["../src/lua/LuaEngineAPI.ts","../src/lua/ActionRouter.ts","../src/lua/SessionManager.ts","../src/lua/PersistentState.ts","../src/lua/LuaEngine.ts","../src/lua/SimulationRunner.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["lua","lauxlib","to_luastring","to_jsstring"],"mappings":"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"}
1
+ {"version":3,"file":"lua.cjs.js","sources":["../src/lua/LuaEngineAPI.ts","../src/lua/ActionRouter.ts","../src/lua/SessionManager.ts","../src/lua/PersistentState.ts","../src/lua/LuaEngine.ts","../src/lua/SimulationRunner.ts","../src/lua/ParallelSimulationRunner.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["lua","lauxlib","to_luastring","to_jsstring","cpus","join","dirname","fileURLToPath","Worker"],"mappings":"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"}