@nice2dev/game-engine 0.1.0

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.
Files changed (519) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/LICENSE +21 -0
  3. package/README.md +105 -0
  4. package/dist/cjs/accessibility/Accessibility.js +162 -0
  5. package/dist/cjs/accessibility/Accessibility.js.map +1 -0
  6. package/dist/cjs/ai/AI.js +321 -0
  7. package/dist/cjs/ai/AI.js.map +1 -0
  8. package/dist/cjs/animation/Animation.js +233 -0
  9. package/dist/cjs/animation/Animation.js.map +1 -0
  10. package/dist/cjs/audio/AudioAdvanced.js +262 -0
  11. package/dist/cjs/audio/AudioAdvanced.js.map +1 -0
  12. package/dist/cjs/audio/AudioManager.js +248 -0
  13. package/dist/cjs/audio/AudioManager.js.map +1 -0
  14. package/dist/cjs/core/EventBus.js +63 -0
  15. package/dist/cjs/core/EventBus.js.map +1 -0
  16. package/dist/cjs/core/GameClock.js +70 -0
  17. package/dist/cjs/core/GameClock.js.map +1 -0
  18. package/dist/cjs/core/GameConfig.js +86 -0
  19. package/dist/cjs/core/GameConfig.js.map +1 -0
  20. package/dist/cjs/core/GameLoop.js +93 -0
  21. package/dist/cjs/core/GameLoop.js.map +1 -0
  22. package/dist/cjs/core/ServiceLocator.js +73 -0
  23. package/dist/cjs/core/ServiceLocator.js.map +1 -0
  24. package/dist/cjs/core/Validation.js +119 -0
  25. package/dist/cjs/core/Validation.js.map +1 -0
  26. package/dist/cjs/core/math.js +116 -0
  27. package/dist/cjs/core/math.js.map +1 -0
  28. package/dist/cjs/devtools/DevTools.js +560 -0
  29. package/dist/cjs/devtools/DevTools.js.map +1 -0
  30. package/dist/cjs/devtools/DeveloperExperience.js +562 -0
  31. package/dist/cjs/devtools/DeveloperExperience.js.map +1 -0
  32. package/dist/cjs/docs/DocGenerator.js +357 -0
  33. package/dist/cjs/docs/DocGenerator.js.map +1 -0
  34. package/dist/cjs/ecs/World.js +280 -0
  35. package/dist/cjs/ecs/World.js.map +1 -0
  36. package/dist/cjs/editor/AdvancedEditor.js +149 -0
  37. package/dist/cjs/editor/AdvancedEditor.js.map +1 -0
  38. package/dist/cjs/editor/AssetManager.js +190 -0
  39. package/dist/cjs/editor/AssetManager.js.map +1 -0
  40. package/dist/cjs/editor/DebugTools.js +187 -0
  41. package/dist/cjs/editor/DebugTools.js.map +1 -0
  42. package/dist/cjs/editor/NiceGameEditor.js +361 -0
  43. package/dist/cjs/editor/NiceGameEditor.js.map +1 -0
  44. package/dist/cjs/editor/SceneEditor.js +223 -0
  45. package/dist/cjs/editor/SceneEditor.js.map +1 -0
  46. package/dist/cjs/engine/NiceGameEngine.js +172 -0
  47. package/dist/cjs/engine/NiceGameEngine.js.map +1 -0
  48. package/dist/cjs/enterprise/Enterprise.js +258 -0
  49. package/dist/cjs/enterprise/Enterprise.js.map +1 -0
  50. package/dist/cjs/i18n/I18n.js +634 -0
  51. package/dist/cjs/i18n/I18n.js.map +1 -0
  52. package/dist/cjs/i18n/useTranslation.js +100 -0
  53. package/dist/cjs/i18n/useTranslation.js.map +1 -0
  54. package/dist/cjs/index.js +526 -0
  55. package/dist/cjs/index.js.map +1 -0
  56. package/dist/cjs/input/GamepadNavigation.js +181 -0
  57. package/dist/cjs/input/GamepadNavigation.js.map +1 -0
  58. package/dist/cjs/input/InputManager.js +404 -0
  59. package/dist/cjs/input/InputManager.js.map +1 -0
  60. package/dist/cjs/input/useGamepads.js +86 -0
  61. package/dist/cjs/input/useGamepads.js.map +1 -0
  62. package/dist/cjs/kids/KidMode.js +670 -0
  63. package/dist/cjs/kids/KidMode.js.map +1 -0
  64. package/dist/cjs/kids/KidTools.js +533 -0
  65. package/dist/cjs/kids/KidTools.js.map +1 -0
  66. package/dist/cjs/monetization/Monetization.js +197 -0
  67. package/dist/cjs/monetization/Monetization.js.map +1 -0
  68. package/dist/cjs/multiplayer/LocalMultiplayer.js +288 -0
  69. package/dist/cjs/multiplayer/LocalMultiplayer.js.map +1 -0
  70. package/dist/cjs/multiplayer/MiniGameTypes.js +70 -0
  71. package/dist/cjs/multiplayer/MiniGameTypes.js.map +1 -0
  72. package/dist/cjs/network/MultiplayerTransport.js +109 -0
  73. package/dist/cjs/network/MultiplayerTransport.js.map +1 -0
  74. package/dist/cjs/network/Networking.js +569 -0
  75. package/dist/cjs/network/Networking.js.map +1 -0
  76. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js +32 -0
  77. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -0
  78. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js +51 -0
  79. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -0
  80. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js +46 -0
  81. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -0
  82. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js +18 -0
  83. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -0
  84. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js +145 -0
  85. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -0
  86. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js +161 -0
  87. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -0
  88. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js +56 -0
  89. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -0
  90. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js +11 -0
  91. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -0
  92. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js +52 -0
  93. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -0
  94. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js +576 -0
  95. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -0
  96. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js +956 -0
  97. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -0
  98. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js +149 -0
  99. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -0
  100. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js +25 -0
  101. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -0
  102. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js +27 -0
  103. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -0
  104. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js +26 -0
  105. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -0
  106. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js +124 -0
  107. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -0
  108. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js +17 -0
  109. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -0
  110. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js +188 -0
  111. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -0
  112. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js +199 -0
  113. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -0
  114. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js +108 -0
  115. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -0
  116. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js +38 -0
  117. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -0
  118. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js +24 -0
  119. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -0
  120. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js +264 -0
  121. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -0
  122. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js +160 -0
  123. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -0
  124. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js +88 -0
  125. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -0
  126. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/index.js +50 -0
  127. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/index.js.map +1 -0
  128. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js +6 -0
  129. package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -0
  130. package/dist/cjs/pathfinding/Pathfinding.js +255 -0
  131. package/dist/cjs/pathfinding/Pathfinding.js.map +1 -0
  132. package/dist/cjs/performance/BenchmarkSuite.js +318 -0
  133. package/dist/cjs/performance/BenchmarkSuite.js.map +1 -0
  134. package/dist/cjs/performance/Performance.js +180 -0
  135. package/dist/cjs/performance/Performance.js.map +1 -0
  136. package/dist/cjs/performance/PerformanceAdvanced.js +628 -0
  137. package/dist/cjs/performance/PerformanceAdvanced.js.map +1 -0
  138. package/dist/cjs/physics/PhysicsAdvanced.js +432 -0
  139. package/dist/cjs/physics/PhysicsAdvanced.js.map +1 -0
  140. package/dist/cjs/physics/PhysicsEngine2D.js +445 -0
  141. package/dist/cjs/physics/PhysicsEngine2D.js.map +1 -0
  142. package/dist/cjs/plugins/PluginSDK.js +488 -0
  143. package/dist/cjs/plugins/PluginSDK.js.map +1 -0
  144. package/dist/cjs/plugins/PluginTestKit.js +368 -0
  145. package/dist/cjs/plugins/PluginTestKit.js.map +1 -0
  146. package/dist/cjs/procedural/Procedural.js +288 -0
  147. package/dist/cjs/procedural/Procedural.js.map +1 -0
  148. package/dist/cjs/procedural/WorldBuilding.js +246 -0
  149. package/dist/cjs/procedural/WorldBuilding.js.map +1 -0
  150. package/dist/cjs/release/MobileExport.js +149 -0
  151. package/dist/cjs/release/MobileExport.js.map +1 -0
  152. package/dist/cjs/release/Release.js +151 -0
  153. package/dist/cjs/release/Release.js.map +1 -0
  154. package/dist/cjs/rendering/Camera2D.js +129 -0
  155. package/dist/cjs/rendering/Camera2D.js.map +1 -0
  156. package/dist/cjs/rendering/Renderer2D.js +337 -0
  157. package/dist/cjs/rendering/Renderer2D.js.map +1 -0
  158. package/dist/cjs/runtime3d/Runtime3D.js +381 -0
  159. package/dist/cjs/runtime3d/Runtime3D.js.map +1 -0
  160. package/dist/cjs/runtime3d/SceneEditor3D.js +316 -0
  161. package/dist/cjs/runtime3d/SceneEditor3D.js.map +1 -0
  162. package/dist/cjs/scene/SceneManager.js +186 -0
  163. package/dist/cjs/scene/SceneManager.js.map +1 -0
  164. package/dist/cjs/scripting/NodeGraph.js +573 -0
  165. package/dist/cjs/scripting/NodeGraph.js.map +1 -0
  166. package/dist/cjs/social/Social.js +91 -0
  167. package/dist/cjs/social/Social.js.map +1 -0
  168. package/dist/cjs/templates/ActionTemplates.js +229 -0
  169. package/dist/cjs/templates/ActionTemplates.js.map +1 -0
  170. package/dist/cjs/templates/PartyTemplates.js +221 -0
  171. package/dist/cjs/templates/PartyTemplates.js.map +1 -0
  172. package/dist/cjs/templates/PuzzleTemplates.js +283 -0
  173. package/dist/cjs/templates/PuzzleTemplates.js.map +1 -0
  174. package/dist/cjs/templates/RPGTemplates.js +209 -0
  175. package/dist/cjs/templates/RPGTemplates.js.map +1 -0
  176. package/dist/cjs/templates/SportsTemplates.js +272 -0
  177. package/dist/cjs/templates/SportsTemplates.js.map +1 -0
  178. package/dist/cjs/templates/StrategyTemplates.js +173 -0
  179. package/dist/cjs/templates/StrategyTemplates.js.map +1 -0
  180. package/dist/cjs/templates/WaveDefense.js +470 -0
  181. package/dist/cjs/templates/WaveDefense.js.map +1 -0
  182. package/dist/cjs/tilemap/Tilemap.js +208 -0
  183. package/dist/cjs/tilemap/Tilemap.js.map +1 -0
  184. package/dist/cjs/tutorials/TutorialBranching.js +392 -0
  185. package/dist/cjs/tutorials/TutorialBranching.js.map +1 -0
  186. package/dist/cjs/tutorials/TutorialEngine.js +903 -0
  187. package/dist/cjs/tutorials/TutorialEngine.js.map +1 -0
  188. package/dist/cjs/tutorials/TutorialOverlay.js +602 -0
  189. package/dist/cjs/tutorials/TutorialOverlay.js.map +1 -0
  190. package/dist/cjs/tutorials/content/Tutorials_T05_T08.js +816 -0
  191. package/dist/cjs/tutorials/content/Tutorials_T05_T08.js.map +1 -0
  192. package/dist/cjs/tutorials/content/Tutorials_T09_T11.js +741 -0
  193. package/dist/cjs/tutorials/content/Tutorials_T09_T11.js.map +1 -0
  194. package/dist/cjs/tutorials/content/Tutorials_T12_T15.js +786 -0
  195. package/dist/cjs/tutorials/content/Tutorials_T12_T15.js.map +1 -0
  196. package/dist/cjs/ui/GameUI.js +312 -0
  197. package/dist/cjs/ui/GameUI.js.map +1 -0
  198. package/dist/cjs/xr/ARVR.js +197 -0
  199. package/dist/cjs/xr/ARVR.js.map +1 -0
  200. package/dist/esm/accessibility/Accessibility.js +153 -0
  201. package/dist/esm/accessibility/Accessibility.js.map +1 -0
  202. package/dist/esm/ai/AI.js +302 -0
  203. package/dist/esm/ai/AI.js.map +1 -0
  204. package/dist/esm/animation/Animation.js +227 -0
  205. package/dist/esm/animation/Animation.js.map +1 -0
  206. package/dist/esm/audio/AudioAdvanced.js +243 -0
  207. package/dist/esm/audio/AudioAdvanced.js.map +1 -0
  208. package/dist/esm/audio/AudioManager.js +246 -0
  209. package/dist/esm/audio/AudioManager.js.map +1 -0
  210. package/dist/esm/core/EventBus.js +61 -0
  211. package/dist/esm/core/EventBus.js.map +1 -0
  212. package/dist/esm/core/GameClock.js +68 -0
  213. package/dist/esm/core/GameClock.js.map +1 -0
  214. package/dist/esm/core/GameConfig.js +80 -0
  215. package/dist/esm/core/GameConfig.js.map +1 -0
  216. package/dist/esm/core/GameLoop.js +91 -0
  217. package/dist/esm/core/GameLoop.js.map +1 -0
  218. package/dist/esm/core/ServiceLocator.js +70 -0
  219. package/dist/esm/core/ServiceLocator.js.map +1 -0
  220. package/dist/esm/core/Validation.js +108 -0
  221. package/dist/esm/core/Validation.js.map +1 -0
  222. package/dist/esm/core/math.js +114 -0
  223. package/dist/esm/core/math.js.map +1 -0
  224. package/dist/esm/devtools/DevTools.js +555 -0
  225. package/dist/esm/devtools/DevTools.js.map +1 -0
  226. package/dist/esm/devtools/DeveloperExperience.js +547 -0
  227. package/dist/esm/devtools/DeveloperExperience.js.map +1 -0
  228. package/dist/esm/docs/DocGenerator.js +353 -0
  229. package/dist/esm/docs/DocGenerator.js.map +1 -0
  230. package/dist/esm/ecs/World.js +276 -0
  231. package/dist/esm/ecs/World.js.map +1 -0
  232. package/dist/esm/editor/AdvancedEditor.js +141 -0
  233. package/dist/esm/editor/AdvancedEditor.js.map +1 -0
  234. package/dist/esm/editor/AssetManager.js +188 -0
  235. package/dist/esm/editor/AssetManager.js.map +1 -0
  236. package/dist/esm/editor/DebugTools.js +179 -0
  237. package/dist/esm/editor/DebugTools.js.map +1 -0
  238. package/dist/esm/editor/NiceGameEditor.js +355 -0
  239. package/dist/esm/editor/NiceGameEditor.js.map +1 -0
  240. package/dist/esm/editor/SceneEditor.js +209 -0
  241. package/dist/esm/editor/SceneEditor.js.map +1 -0
  242. package/dist/esm/engine/NiceGameEngine.js +170 -0
  243. package/dist/esm/engine/NiceGameEngine.js.map +1 -0
  244. package/dist/esm/enterprise/Enterprise.js +246 -0
  245. package/dist/esm/enterprise/Enterprise.js.map +1 -0
  246. package/dist/esm/i18n/I18n.js +622 -0
  247. package/dist/esm/i18n/I18n.js.map +1 -0
  248. package/dist/esm/i18n/useTranslation.js +95 -0
  249. package/dist/esm/i18n/useTranslation.js.map +1 -0
  250. package/dist/esm/index.js +71 -0
  251. package/dist/esm/index.js.map +1 -0
  252. package/dist/esm/input/GamepadNavigation.js +178 -0
  253. package/dist/esm/input/GamepadNavigation.js.map +1 -0
  254. package/dist/esm/input/InputManager.js +399 -0
  255. package/dist/esm/input/InputManager.js.map +1 -0
  256. package/dist/esm/input/useGamepads.js +83 -0
  257. package/dist/esm/input/useGamepads.js.map +1 -0
  258. package/dist/esm/kids/KidMode.js +663 -0
  259. package/dist/esm/kids/KidMode.js.map +1 -0
  260. package/dist/esm/kids/KidTools.js +529 -0
  261. package/dist/esm/kids/KidTools.js.map +1 -0
  262. package/dist/esm/monetization/Monetization.js +186 -0
  263. package/dist/esm/monetization/Monetization.js.map +1 -0
  264. package/dist/esm/multiplayer/LocalMultiplayer.js +284 -0
  265. package/dist/esm/multiplayer/LocalMultiplayer.js.map +1 -0
  266. package/dist/esm/multiplayer/MiniGameTypes.js +60 -0
  267. package/dist/esm/multiplayer/MiniGameTypes.js.map +1 -0
  268. package/dist/esm/network/MultiplayerTransport.js +106 -0
  269. package/dist/esm/network/MultiplayerTransport.js.map +1 -0
  270. package/dist/esm/network/Networking.js +561 -0
  271. package/dist/esm/network/Networking.js.map +1 -0
  272. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js +30 -0
  273. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +1 -0
  274. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js +49 -0
  275. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +1 -0
  276. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js +44 -0
  277. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +1 -0
  278. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js +16 -0
  279. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +1 -0
  280. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js +136 -0
  281. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +1 -0
  282. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js +159 -0
  283. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +1 -0
  284. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js +54 -0
  285. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +1 -0
  286. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js +9 -0
  287. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +1 -0
  288. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js +49 -0
  289. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +1 -0
  290. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js +573 -0
  291. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +1 -0
  292. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js +954 -0
  293. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +1 -0
  294. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js +147 -0
  295. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +1 -0
  296. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js +25 -0
  297. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +1 -0
  298. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js +27 -0
  299. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +1 -0
  300. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js +26 -0
  301. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +1 -0
  302. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js +122 -0
  303. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +1 -0
  304. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js +15 -0
  305. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +1 -0
  306. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js +186 -0
  307. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +1 -0
  308. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js +197 -0
  309. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +1 -0
  310. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js +106 -0
  311. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +1 -0
  312. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js +36 -0
  313. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +1 -0
  314. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js +22 -0
  315. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +1 -0
  316. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js +249 -0
  317. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +1 -0
  318. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js +158 -0
  319. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +1 -0
  320. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js +86 -0
  321. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +1 -0
  322. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/index.js +13 -0
  323. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/index.js.map +1 -0
  324. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js +4 -0
  325. package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +1 -0
  326. package/dist/esm/pathfinding/Pathfinding.js +250 -0
  327. package/dist/esm/pathfinding/Pathfinding.js.map +1 -0
  328. package/dist/esm/performance/BenchmarkSuite.js +315 -0
  329. package/dist/esm/performance/BenchmarkSuite.js.map +1 -0
  330. package/dist/esm/performance/Performance.js +171 -0
  331. package/dist/esm/performance/Performance.js.map +1 -0
  332. package/dist/esm/performance/PerformanceAdvanced.js +620 -0
  333. package/dist/esm/performance/PerformanceAdvanced.js.map +1 -0
  334. package/dist/esm/physics/PhysicsAdvanced.js +417 -0
  335. package/dist/esm/physics/PhysicsAdvanced.js.map +1 -0
  336. package/dist/esm/physics/PhysicsEngine2D.js +442 -0
  337. package/dist/esm/physics/PhysicsEngine2D.js.map +1 -0
  338. package/dist/esm/plugins/PluginSDK.js +484 -0
  339. package/dist/esm/plugins/PluginSDK.js.map +1 -0
  340. package/dist/esm/plugins/PluginTestKit.js +359 -0
  341. package/dist/esm/plugins/PluginTestKit.js.map +1 -0
  342. package/dist/esm/procedural/Procedural.js +282 -0
  343. package/dist/esm/procedural/Procedural.js.map +1 -0
  344. package/dist/esm/procedural/WorldBuilding.js +225 -0
  345. package/dist/esm/procedural/WorldBuilding.js.map +1 -0
  346. package/dist/esm/release/MobileExport.js +142 -0
  347. package/dist/esm/release/MobileExport.js.map +1 -0
  348. package/dist/esm/release/Release.js +141 -0
  349. package/dist/esm/release/Release.js.map +1 -0
  350. package/dist/esm/rendering/Camera2D.js +127 -0
  351. package/dist/esm/rendering/Camera2D.js.map +1 -0
  352. package/dist/esm/rendering/Renderer2D.js +334 -0
  353. package/dist/esm/rendering/Renderer2D.js.map +1 -0
  354. package/dist/esm/runtime3d/Runtime3D.js +371 -0
  355. package/dist/esm/runtime3d/Runtime3D.js.map +1 -0
  356. package/dist/esm/runtime3d/SceneEditor3D.js +299 -0
  357. package/dist/esm/runtime3d/SceneEditor3D.js.map +1 -0
  358. package/dist/esm/scene/SceneManager.js +184 -0
  359. package/dist/esm/scene/SceneManager.js.map +1 -0
  360. package/dist/esm/scripting/NodeGraph.js +568 -0
  361. package/dist/esm/scripting/NodeGraph.js.map +1 -0
  362. package/dist/esm/social/Social.js +85 -0
  363. package/dist/esm/social/Social.js.map +1 -0
  364. package/dist/esm/templates/ActionTemplates.js +217 -0
  365. package/dist/esm/templates/ActionTemplates.js.map +1 -0
  366. package/dist/esm/templates/PartyTemplates.js +204 -0
  367. package/dist/esm/templates/PartyTemplates.js.map +1 -0
  368. package/dist/esm/templates/PuzzleTemplates.js +267 -0
  369. package/dist/esm/templates/PuzzleTemplates.js.map +1 -0
  370. package/dist/esm/templates/RPGTemplates.js +196 -0
  371. package/dist/esm/templates/RPGTemplates.js.map +1 -0
  372. package/dist/esm/templates/SportsTemplates.js +257 -0
  373. package/dist/esm/templates/SportsTemplates.js.map +1 -0
  374. package/dist/esm/templates/StrategyTemplates.js +157 -0
  375. package/dist/esm/templates/StrategyTemplates.js.map +1 -0
  376. package/dist/esm/templates/WaveDefense.js +467 -0
  377. package/dist/esm/templates/WaveDefense.js.map +1 -0
  378. package/dist/esm/tilemap/Tilemap.js +205 -0
  379. package/dist/esm/tilemap/Tilemap.js.map +1 -0
  380. package/dist/esm/tutorials/TutorialBranching.js +388 -0
  381. package/dist/esm/tutorials/TutorialBranching.js.map +1 -0
  382. package/dist/esm/tutorials/TutorialEngine.js +897 -0
  383. package/dist/esm/tutorials/TutorialEngine.js.map +1 -0
  384. package/dist/esm/tutorials/TutorialOverlay.js +600 -0
  385. package/dist/esm/tutorials/TutorialOverlay.js.map +1 -0
  386. package/dist/esm/tutorials/content/Tutorials_T05_T08.js +810 -0
  387. package/dist/esm/tutorials/content/Tutorials_T05_T08.js.map +1 -0
  388. package/dist/esm/tutorials/content/Tutorials_T09_T11.js +736 -0
  389. package/dist/esm/tutorials/content/Tutorials_T09_T11.js.map +1 -0
  390. package/dist/esm/tutorials/content/Tutorials_T12_T15.js +780 -0
  391. package/dist/esm/tutorials/content/Tutorials_T12_T15.js.map +1 -0
  392. package/dist/esm/ui/GameUI.js +310 -0
  393. package/dist/esm/ui/GameUI.js.map +1 -0
  394. package/dist/esm/xr/ARVR.js +182 -0
  395. package/dist/esm/xr/ARVR.js.map +1 -0
  396. package/dist/types/__tests__/setup.d.ts +1 -0
  397. package/dist/types/accessibility/Accessibility.d.ts +82 -0
  398. package/dist/types/accessibility/index.d.ts +1 -0
  399. package/dist/types/ai/AI.d.ts +140 -0
  400. package/dist/types/ai/index.d.ts +1 -0
  401. package/dist/types/animation/Animation.d.ts +90 -0
  402. package/dist/types/animation/index.d.ts +1 -0
  403. package/dist/types/audio/AudioAdvanced.d.ts +190 -0
  404. package/dist/types/audio/AudioManager.d.ts +55 -0
  405. package/dist/types/audio/index.d.ts +1 -0
  406. package/dist/types/community/Community.d.ts +112 -0
  407. package/dist/types/community/index.d.ts +1 -0
  408. package/dist/types/core/EventBus.d.ts +16 -0
  409. package/dist/types/core/GameClock.d.ts +29 -0
  410. package/dist/types/core/GameConfig.d.ts +20 -0
  411. package/dist/types/core/GameLoop.d.ts +32 -0
  412. package/dist/types/core/ServiceLocator.d.ts +36 -0
  413. package/dist/types/core/TypeSafety.d.ts +190 -0
  414. package/dist/types/core/Validation.d.ts +24 -0
  415. package/dist/types/core/index.d.ts +7 -0
  416. package/dist/types/core/math.d.ts +32 -0
  417. package/dist/types/core/types.d.ts +130 -0
  418. package/dist/types/devtools/AssetStore.d.ts +133 -0
  419. package/dist/types/devtools/DevTools.d.ts +217 -0
  420. package/dist/types/devtools/DeveloperExperience.d.ts +123 -0
  421. package/dist/types/devtools/index.d.ts +3 -0
  422. package/dist/types/docs/APIPlayground.d.ts +26 -0
  423. package/dist/types/docs/Cookbook.d.ts +18 -0
  424. package/dist/types/docs/DocGenerator.d.ts +83 -0
  425. package/dist/types/docs/Guides.d.ts +18 -0
  426. package/dist/types/docs/index.d.ts +4 -0
  427. package/dist/types/ecs/World.d.ts +219 -0
  428. package/dist/types/ecs/index.d.ts +1 -0
  429. package/dist/types/editor/AdvancedEditor.d.ts +267 -0
  430. package/dist/types/editor/AssetManager.d.ts +45 -0
  431. package/dist/types/editor/DebugTools.d.ts +74 -0
  432. package/dist/types/editor/NiceGameEditor.d.ts +115 -0
  433. package/dist/types/editor/SceneEditor.d.ts +37 -0
  434. package/dist/types/editor/index.d.ts +8 -0
  435. package/dist/types/engine/NiceGameEngine.d.ts +53 -0
  436. package/dist/types/engine/index.d.ts +2 -0
  437. package/dist/types/enterprise/Enterprise.d.ts +217 -0
  438. package/dist/types/enterprise/index.d.ts +1 -0
  439. package/dist/types/epic/index.d.ts +10 -0
  440. package/dist/types/i18n/I18n.d.ts +107 -0
  441. package/dist/types/i18n/index.d.ts +2 -0
  442. package/dist/types/i18n/useTranslation.d.ts +74 -0
  443. package/dist/types/index.d.ts +127 -0
  444. package/dist/types/input/GamepadNavigation.d.ts +34 -0
  445. package/dist/types/input/InputManager.d.ts +77 -0
  446. package/dist/types/input/index.d.ts +3 -0
  447. package/dist/types/input/useGamepads.d.ts +39 -0
  448. package/dist/types/kids/KidMode.d.ts +207 -0
  449. package/dist/types/kids/KidTools.d.ts +135 -0
  450. package/dist/types/kids/index.d.ts +2 -0
  451. package/dist/types/legendary/index.d.ts +57 -0
  452. package/dist/types/monetization/Monetization.d.ts +224 -0
  453. package/dist/types/monetization/index.d.ts +1 -0
  454. package/dist/types/multiplayer/LocalMultiplayer.d.ts +61 -0
  455. package/dist/types/multiplayer/MiniGameTypes.d.ts +70 -0
  456. package/dist/types/multiplayer/index.d.ts +3 -0
  457. package/dist/types/network/MultiplayerTransport.d.ts +71 -0
  458. package/dist/types/network/Networking.d.ts +199 -0
  459. package/dist/types/network/index.d.ts +2 -0
  460. package/dist/types/pathfinding/Pathfinding.d.ts +42 -0
  461. package/dist/types/pathfinding/index.d.ts +1 -0
  462. package/dist/types/performance/AssetCompression.d.ts +137 -0
  463. package/dist/types/performance/BenchmarkSuite.d.ts +99 -0
  464. package/dist/types/performance/Performance.d.ts +87 -0
  465. package/dist/types/performance/PerformanceAdvanced.d.ts +220 -0
  466. package/dist/types/performance/WASMModules.d.ts +65 -0
  467. package/dist/types/performance/WebGPUCompute.d.ts +164 -0
  468. package/dist/types/performance/index.d.ts +1 -0
  469. package/dist/types/physics/PhysicsAdvanced.d.ts +148 -0
  470. package/dist/types/physics/PhysicsEngine2D.d.ts +66 -0
  471. package/dist/types/physics/index.d.ts +1 -0
  472. package/dist/types/plugins/PluginSDK.d.ts +134 -0
  473. package/dist/types/plugins/PluginTestKit.d.ts +107 -0
  474. package/dist/types/plugins/index.d.ts +2 -0
  475. package/dist/types/procedural/Procedural.d.ts +90 -0
  476. package/dist/types/procedural/WorldBuilding.d.ts +200 -0
  477. package/dist/types/procedural/index.d.ts +2 -0
  478. package/dist/types/release/MobileExport.d.ts +218 -0
  479. package/dist/types/release/Release.d.ts +81 -0
  480. package/dist/types/release/index.d.ts +1 -0
  481. package/dist/types/rendering/Camera2D.d.ts +39 -0
  482. package/dist/types/rendering/Renderer2D.d.ts +41 -0
  483. package/dist/types/rendering/index.d.ts +2 -0
  484. package/dist/types/runtime3d/Runtime3D.d.ts +259 -0
  485. package/dist/types/runtime3d/SceneEditor3D.d.ts +186 -0
  486. package/dist/types/runtime3d/index.d.ts +2 -0
  487. package/dist/types/scene/SceneManager.d.ts +59 -0
  488. package/dist/types/scene/index.d.ts +2 -0
  489. package/dist/types/scripting/NodeGraph.d.ts +84 -0
  490. package/dist/types/scripting/index.d.ts +2 -0
  491. package/dist/types/social/Social.d.ts +245 -0
  492. package/dist/types/social/index.d.ts +1 -0
  493. package/dist/types/templates/ActionTemplates.d.ts +173 -0
  494. package/dist/types/templates/PartyTemplates.d.ts +195 -0
  495. package/dist/types/templates/PuzzleTemplates.d.ts +127 -0
  496. package/dist/types/templates/RPGTemplates.d.ts +210 -0
  497. package/dist/types/templates/SportsTemplates.d.ts +162 -0
  498. package/dist/types/templates/StrategyTemplates.d.ts +264 -0
  499. package/dist/types/templates/WaveDefense.d.ts +92 -0
  500. package/dist/types/templates/index.d.ts +2 -0
  501. package/dist/types/tilemap/Tilemap.d.ts +66 -0
  502. package/dist/types/tilemap/index.d.ts +1 -0
  503. package/dist/types/tutorials/TutorialBranching.d.ts +132 -0
  504. package/dist/types/tutorials/TutorialEditor.d.ts +43 -0
  505. package/dist/types/tutorials/TutorialEngine.d.ts +237 -0
  506. package/dist/types/tutorials/TutorialOverlay.d.ts +79 -0
  507. package/dist/types/tutorials/VoiceNarration.d.ts +75 -0
  508. package/dist/types/tutorials/content/Tutorials_T04.d.ts +3 -0
  509. package/dist/types/tutorials/content/Tutorials_T05_T08.d.ts +6 -0
  510. package/dist/types/tutorials/content/Tutorials_T09_T11.d.ts +5 -0
  511. package/dist/types/tutorials/content/Tutorials_T12_T15.d.ts +6 -0
  512. package/dist/types/tutorials/content/UITutorials.d.ts +14 -0
  513. package/dist/types/tutorials/content/index.d.ts +5 -0
  514. package/dist/types/tutorials/index.d.ts +6 -0
  515. package/dist/types/ui/GameUI.d.ts +97 -0
  516. package/dist/types/ui/index.d.ts +2 -0
  517. package/dist/types/xr/ARVR.d.ts +252 -0
  518. package/dist/types/xr/index.d.ts +1 -0
  519. package/package.json +88 -0
@@ -0,0 +1,220 @@
1
+ import { EventBus } from '../core/EventBus';
2
+ export interface FrameBudgetConfig {
3
+ /** Target frame time in ms (default: 16.67 → 60fps). */
4
+ targetFrameMs: number;
5
+ /** Budget allocation per subsystem (0-1, must sum to ≤ 1). */
6
+ allocations: Record<string, number>;
7
+ /** Warn if total frame time exceeds target by this factor (default: 1.5). */
8
+ warningThreshold: number;
9
+ /** Sample window for rolling averages (default: 60 frames). */
10
+ sampleWindow: number;
11
+ }
12
+ export interface BudgetReport {
13
+ subsystem: string;
14
+ budgetMs: number;
15
+ actualMs: number;
16
+ overBudget: boolean;
17
+ utilizationPercent: number;
18
+ }
19
+ export interface FrameBudgetSnapshot {
20
+ frameNumber: number;
21
+ totalMs: number;
22
+ overBudget: boolean;
23
+ subsystems: BudgetReport[];
24
+ }
25
+ export declare class FrameBudgetManager {
26
+ readonly events: EventBus;
27
+ private config;
28
+ private currentFrame;
29
+ private history;
30
+ private frameCount;
31
+ private startTimes;
32
+ private rollingTotals;
33
+ private rollingSubsystems;
34
+ constructor(config?: Partial<FrameBudgetConfig>);
35
+ /** Mark the start of a subsystem's work in this frame. */
36
+ beginSubsystem(name: string): void;
37
+ /** Mark the end of a subsystem's work in this frame. */
38
+ endSubsystem(name: string): void;
39
+ /** Complete the current frame, generate report, advance to next. */
40
+ endFrame(): FrameBudgetSnapshot;
41
+ /** Get the average frame time over the rolling window. */
42
+ getAverageFrameMs(): number;
43
+ /** Get average time for a specific subsystem. */
44
+ getSubsystemAverageMs(name: string): number;
45
+ /** Get latest snapshot. */
46
+ getLatest(): FrameBudgetSnapshot | null;
47
+ /** Get the worst-case frame in history. */
48
+ getWorstFrame(): FrameBudgetSnapshot | null;
49
+ /** Format a concise budget text report. */
50
+ formatReport(): string;
51
+ /** Reset all collected data. */
52
+ reset(): void;
53
+ }
54
+ export interface MemoryTracker {
55
+ category: string;
56
+ count: number;
57
+ peakCount: number;
58
+ totalAllocated: number;
59
+ totalFreed: number;
60
+ }
61
+ export interface MemorySnapshot {
62
+ timestamp: number;
63
+ trackers: Map<string, MemoryTracker>;
64
+ totalActive: number;
65
+ /** JS heap size in bytes (if available). */
66
+ heapUsed: number | null;
67
+ heapTotal: number | null;
68
+ }
69
+ export interface LeakSuspect {
70
+ category: string;
71
+ growthRate: number;
72
+ currentCount: number;
73
+ windowCount: number;
74
+ severity: 'low' | 'medium' | 'high';
75
+ }
76
+ export declare class MemoryLeakDetector {
77
+ readonly events: EventBus;
78
+ private trackers;
79
+ private snapshots;
80
+ private maxSnapshots;
81
+ private checkIntervalMs;
82
+ private lastCheckTime;
83
+ constructor(maxSnapshots?: number, checkIntervalMs?: number);
84
+ /** Track an allocation (e.g., new entity, texture, sound). */
85
+ trackAlloc(category: string, count?: number): void;
86
+ /** Track a deallocation / free. */
87
+ trackFree(category: string, count?: number): void;
88
+ /** Take a snapshot of current allocations. */
89
+ takeSnapshot(): MemorySnapshot;
90
+ /** Call from game loop — takes periodic snapshots and checks for leaks. */
91
+ update(): void;
92
+ /** Analyze snapshots for continuous growth patterns. */
93
+ detectLeaks(): LeakSuspect[];
94
+ /** Get current tracker for a category. */
95
+ getTracker(category: string): MemoryTracker | undefined;
96
+ /** Get all trackers. */
97
+ get allTrackers(): MemoryTracker[];
98
+ /** Format a human-readable leak report. */
99
+ formatReport(): string;
100
+ /** Reset all tracking data. */
101
+ reset(): void;
102
+ }
103
+ export type QualityLevel = 'ultra' | 'high' | 'medium' | 'low' | 'potato';
104
+ export interface AutoLODConfig {
105
+ /** Target FPS (default: 60). */
106
+ targetFps: number;
107
+ /** FPS below which quality downgrades (default: 50). */
108
+ downgradeThreshold: number;
109
+ /** FPS above which quality upgrades (default: 58). */
110
+ upgradeThreshold: number;
111
+ /** Seconds of stable performance before upgrading (default: 5). */
112
+ stabilityWindow: number;
113
+ /** Minimum seconds between quality changes (default: 3). */
114
+ cooldownSec: number;
115
+ }
116
+ export interface QualitySettings {
117
+ level: QualityLevel;
118
+ /** Render scale (0.5 = half res, 1.0 = native). */
119
+ renderScale: number;
120
+ /** Max draw distance. */
121
+ drawDistance: number;
122
+ /** Shadow quality (0 = off, 1-3 = low-high). */
123
+ shadowQuality: number;
124
+ /** Particle multiplier (0-1). */
125
+ particleMultiplier: number;
126
+ /** Post-processing enabled. */
127
+ postProcessing: boolean;
128
+ /** Physics simulation rate multiplier (0.5 = half, 1.0 = full). */
129
+ physicsFidelity: number;
130
+ }
131
+ export declare const QUALITY_PRESETS: Record<QualityLevel, QualitySettings>;
132
+ export declare class AutoLODManager {
133
+ readonly events: EventBus;
134
+ private config;
135
+ private currentLevel;
136
+ private currentSettings;
137
+ private fpsHistory;
138
+ private lastChangeTime;
139
+ private stableAboveSince;
140
+ constructor(initialLevel?: QualityLevel, config?: Partial<AutoLODConfig>);
141
+ get level(): QualityLevel;
142
+ get settings(): Readonly<QualitySettings>;
143
+ /** Call each frame with current FPS. */
144
+ update(currentFps: number): void;
145
+ private downgrade;
146
+ private upgrade;
147
+ /** Manually set quality level. */
148
+ setLevel(level: QualityLevel, now?: number): void;
149
+ /** Get a quality preset. */
150
+ getPreset(level: QualityLevel): QualitySettings;
151
+ private getAverageFps;
152
+ }
153
+ export type WorkerTaskStatus = 'pending' | 'running' | 'done' | 'error';
154
+ export interface WorkerTask<T = unknown> {
155
+ id: number;
156
+ type: string;
157
+ data: unknown;
158
+ status: WorkerTaskStatus;
159
+ result: T | null;
160
+ error: string | null;
161
+ submittedAt: number;
162
+ completedAt: number | null;
163
+ }
164
+ export interface WorkerPoolConfig {
165
+ /** Number of worker threads (default: navigator.hardwareConcurrency - 1). */
166
+ poolSize: number;
167
+ /** Maximum queued tasks before rejecting (default: 100). */
168
+ maxQueueSize: number;
169
+ }
170
+ /**
171
+ * Abstract worker pool for offloading CPU-heavy tasks.
172
+ * Concrete implementations provide the actual Worker script.
173
+ */
174
+ export declare class WorkerPool {
175
+ readonly events: EventBus;
176
+ private workers;
177
+ private busyWorkers;
178
+ private taskQueue;
179
+ private activeTasks;
180
+ private nextTaskId;
181
+ private config;
182
+ private workerScriptUrl;
183
+ constructor(workerScriptUrl: string, config?: Partial<WorkerPoolConfig>);
184
+ /** Initialize the worker pool. */
185
+ init(): void;
186
+ /** Submit a task to the worker pool. Returns a promise resolved when done. */
187
+ submit<T>(type: string, data: unknown): Promise<T>;
188
+ private dispatchNext;
189
+ private handleResult;
190
+ private handleError;
191
+ /** Number of idle workers. */
192
+ get idleCount(): number;
193
+ /** Number of queued tasks. */
194
+ get queueSize(): number;
195
+ /** Terminate all workers. */
196
+ dispose(): void;
197
+ }
198
+ /** Simple high-resolution timer. */
199
+ export declare class PerfTimer {
200
+ private marks;
201
+ mark(name: string): void;
202
+ measure(startMark: string, endMark?: string): number;
203
+ clear(): void;
204
+ }
205
+ /** Object pool for reducing garbage collection pressure. */
206
+ export declare class ObjectPool<T> {
207
+ private pool;
208
+ private factory;
209
+ private resetFn;
210
+ readonly maxSize: number;
211
+ constructor(factory: () => T, resetFn: (obj: T) => void, maxSize?: number);
212
+ /** Get an object from the pool (or create a new one). */
213
+ acquire(): T;
214
+ /** Return an object to the pool after use. */
215
+ release(obj: T): void;
216
+ /** Pre-populate the pool. */
217
+ prewarm(count: number): void;
218
+ get available(): number;
219
+ clear(): void;
220
+ }
@@ -0,0 +1,65 @@
1
+ export interface WASMModuleConfig {
2
+ wasmUrl?: string;
3
+ fallbackToJS: boolean;
4
+ enableSIMD: boolean;
5
+ }
6
+ export interface Vec2 {
7
+ x: number;
8
+ y: number;
9
+ }
10
+ export interface AABB {
11
+ minX: number;
12
+ minY: number;
13
+ maxX: number;
14
+ maxY: number;
15
+ }
16
+ export interface CollisionResult {
17
+ collides: boolean;
18
+ overlapX: number;
19
+ overlapY: number;
20
+ depth: number;
21
+ }
22
+ export interface PathResult {
23
+ path: Vec2[];
24
+ cost: number;
25
+ nodesExplored: number;
26
+ }
27
+ export interface WASMExports {
28
+ memory: WebAssembly.Memory;
29
+ aabb_test: (ax: number, ay: number, aw: number, ah: number, bx: number, by: number, bw: number, bh: number) => number;
30
+ aabb_overlap: (ax: number, ay: number, aw: number, ah: number, bx: number, by: number, bw: number, bh: number, outPtr: number) => void;
31
+ circle_test: (ax: number, ay: number, ar: number, bx: number, by: number, br: number) => number;
32
+ vec2_dot: (ax: number, ay: number, bx: number, by: number) => number;
33
+ vec2_cross: (ax: number, ay: number, bx: number, by: number) => number;
34
+ vec2_length: (x: number, y: number) => number;
35
+ vec2_normalize: (x: number, y: number, outPtr: number) => void;
36
+ astar_init: (width: number, height: number, gridPtr: number) => void;
37
+ astar_find: (sx: number, sy: number, tx: number, ty: number, outPtr: number) => number;
38
+ batch_aabb_test: (aabbsPtr: number, count: number, outPtr: number) => number;
39
+ malloc: (size: number) => number;
40
+ free: (ptr: number) => void;
41
+ }
42
+ export declare class WASMAccelerator {
43
+ private config;
44
+ private wasmExports;
45
+ private initialized;
46
+ constructor(config?: Partial<WASMModuleConfig>);
47
+ init(wasmBytes?: ArrayBuffer): Promise<boolean>;
48
+ get isWASM(): boolean;
49
+ get ready(): boolean;
50
+ aabbTest(ax: number, ay: number, aw: number, ah: number, bx: number, by: number, bw: number, bh: number): boolean;
51
+ aabbOverlap(a: AABB, b: AABB): CollisionResult;
52
+ circleTest(ax: number, ay: number, ar: number, bx: number, by: number, br: number): boolean;
53
+ batchAABBTest(aabbs: AABB[]): [number, number][];
54
+ vec2Dot(ax: number, ay: number, bx: number, by: number): number;
55
+ vec2Cross(ax: number, ay: number, bx: number, by: number): number;
56
+ vec2Length(x: number, y: number): number;
57
+ vec2Normalize(x: number, y: number): Vec2;
58
+ findPath(grid: number[][], startX: number, startY: number, targetX: number, targetY: number): PathResult;
59
+ destroy(): void;
60
+ }
61
+ export declare function benchmarkWASMvsJS(accelerator: WASMAccelerator, iterations?: number): Record<string, {
62
+ wasm: number;
63
+ js: number;
64
+ speedup: number;
65
+ }>;
@@ -0,0 +1,164 @@
1
+ declare global {
2
+ interface GPUBuffer {
3
+ readonly size: number;
4
+ readonly usage: number;
5
+ getMappedRange(): ArrayBuffer;
6
+ unmap(): void;
7
+ destroy(): void;
8
+ mapAsync(mode: number): Promise<void>;
9
+ }
10
+ interface GPUDevice {
11
+ createBuffer(desc: {
12
+ size: number;
13
+ usage: number;
14
+ mappedAtCreation?: boolean;
15
+ }): GPUBuffer;
16
+ createShaderModule(desc: {
17
+ code: string;
18
+ }): GPUShaderModule;
19
+ createComputePipeline(desc: {
20
+ layout: string | GPUPipelineLayout;
21
+ compute: {
22
+ module: GPUShaderModule;
23
+ entryPoint: string;
24
+ };
25
+ }): GPUComputePipeline;
26
+ createCommandEncoder(): GPUCommandEncoder;
27
+ createBindGroup(desc: {
28
+ layout: GPUBindGroupLayout;
29
+ entries: {
30
+ binding: number;
31
+ resource: {
32
+ buffer: GPUBuffer;
33
+ };
34
+ }[];
35
+ }): GPUBindGroup;
36
+ readonly queue: GPUQueue;
37
+ readonly lost: Promise<GPUDeviceLostInfo>;
38
+ destroy(): void;
39
+ }
40
+ interface GPUAdapter {
41
+ requestDevice(desc?: {
42
+ requiredLimits?: Record<string, number>;
43
+ }): Promise<GPUDevice>;
44
+ }
45
+ interface GPUComputePipeline {
46
+ getBindGroupLayout(index: number): GPUBindGroupLayout;
47
+ }
48
+ interface GPUShaderModule {
49
+ }
50
+ interface GPUPipelineLayout {
51
+ }
52
+ interface GPUBindGroupLayout {
53
+ }
54
+ interface GPUBindGroup {
55
+ }
56
+ interface GPUCommandEncoder {
57
+ beginComputePass(): GPUComputePassEncoder;
58
+ copyBufferToBuffer(src: GPUBuffer, srcOffset: number, dst: GPUBuffer, dstOffset: number, size: number): void;
59
+ finish(): GPUCommandBuffer;
60
+ }
61
+ interface GPUComputePassEncoder {
62
+ setPipeline(pipeline: GPUComputePipeline): void;
63
+ setBindGroup(index: number, bindGroup: GPUBindGroup): void;
64
+ dispatchWorkgroups(x: number, y?: number, z?: number): void;
65
+ end(): void;
66
+ }
67
+ interface GPUCommandBuffer {
68
+ }
69
+ interface GPUQueue {
70
+ submit(buffers: GPUCommandBuffer[]): void;
71
+ }
72
+ interface GPUDeviceLostInfo {
73
+ readonly message: string;
74
+ }
75
+ namespace GPUBufferUsage {
76
+ const STORAGE: number;
77
+ const COPY_SRC: number;
78
+ const COPY_DST: number;
79
+ const MAP_READ: number;
80
+ const UNIFORM: number;
81
+ }
82
+ namespace GPUMapMode {
83
+ const READ: number;
84
+ }
85
+ interface GPU {
86
+ requestAdapter(options?: {
87
+ powerPreference?: string;
88
+ }): Promise<GPUAdapter | null>;
89
+ }
90
+ interface Navigator {
91
+ readonly gpu?: GPU;
92
+ }
93
+ }
94
+ export interface WebGPUConfig {
95
+ maxWorkGroupSize: number;
96
+ preferredFormat: string;
97
+ powerPreference: 'low-power' | 'high-performance';
98
+ }
99
+ export interface ComputeBuffer {
100
+ gpuBuffer: GPUBuffer | null;
101
+ size: number;
102
+ usage: number;
103
+ data: Float32Array | Uint32Array;
104
+ }
105
+ export interface ComputePipeline {
106
+ id: string;
107
+ shaderSource: string;
108
+ entryPoint: string;
109
+ workGroupSize: [number, number, number];
110
+ }
111
+ export interface PhysicsBroadphaseResult {
112
+ pairs: [number, number][];
113
+ count: number;
114
+ }
115
+ export declare class WebGPUContext {
116
+ private device;
117
+ private adapter;
118
+ private config;
119
+ private pipelines;
120
+ constructor(config?: Partial<WebGPUConfig>);
121
+ init(): Promise<boolean>;
122
+ get isAvailable(): boolean;
123
+ getDevice(): GPUDevice;
124
+ createBuffer(data: Float32Array | Uint32Array, usage: number): GPUBuffer;
125
+ createComputePipeline(id: string, shaderSource: string, entryPoint?: string): GPUComputePipeline;
126
+ getPipeline(id: string): GPUComputePipeline | undefined;
127
+ readBuffer(buffer: GPUBuffer, size: number): Promise<ArrayBuffer>;
128
+ destroy(): void;
129
+ }
130
+ export declare class GPUPhysicsBroadphase {
131
+ private ctx;
132
+ private pipeline;
133
+ constructor(ctx: WebGPUContext);
134
+ init(): void;
135
+ computePairs(aabbs: {
136
+ minX: number;
137
+ minY: number;
138
+ maxX: number;
139
+ maxY: number;
140
+ }[]): Promise<PhysicsBroadphaseResult>;
141
+ }
142
+ export declare class GPUParticleSystem {
143
+ private ctx;
144
+ private pipeline;
145
+ private particleBuffer;
146
+ private maxParticles;
147
+ constructor(ctx: WebGPUContext, maxParticles?: number);
148
+ init(): void;
149
+ update(dt: number, gravity?: {
150
+ x: number;
151
+ y: number;
152
+ }): Promise<void>;
153
+ readParticles(): Promise<Float32Array>;
154
+ destroy(): void;
155
+ }
156
+ export declare class GPUPathfinder {
157
+ private ctx;
158
+ private pipeline;
159
+ constructor(ctx: WebGPUContext);
160
+ init(): void;
161
+ computeDistanceField(costGrid: number[][], targetX: number, targetY: number, maxIterations?: number): Promise<number[][]>;
162
+ }
163
+ export declare function isWebGPUAvailable(): Promise<boolean>;
164
+ export declare function getWebGPUShaders(): Record<string, string>;
@@ -0,0 +1 @@
1
+ export * from './Performance';
@@ -0,0 +1,148 @@
1
+ import type { Vec2 } from '../core/types';
2
+ export interface FluidConfig {
3
+ particleCount: number;
4
+ particleRadius: number;
5
+ restDensity: number;
6
+ stiffness: number;
7
+ viscosity: number;
8
+ gravity: Vec2;
9
+ boundaryMin: Vec2;
10
+ boundaryMax: Vec2;
11
+ smoothingRadius: number;
12
+ timeStep: number;
13
+ surfaceTension: number;
14
+ colorMode: 'velocity' | 'density' | 'pressure' | 'solid';
15
+ renderMode: 'particles' | 'metaballs' | 'mesh';
16
+ }
17
+ export declare const DEFAULT_FLUID_CONFIG: FluidConfig;
18
+ export interface FluidParticle {
19
+ position: Vec2;
20
+ velocity: Vec2;
21
+ acceleration: Vec2;
22
+ density: number;
23
+ pressure: number;
24
+ mass: number;
25
+ }
26
+ export declare function createFluidParticles(config: FluidConfig): FluidParticle[];
27
+ export declare function stepFluid(particles: FluidParticle[], config: FluidConfig): void;
28
+ export interface SoftBodyConfig {
29
+ stiffness: number;
30
+ damping: number;
31
+ gravity: Vec2;
32
+ pressure: number;
33
+ friction: number;
34
+ maxStretch: number;
35
+ iterations: number;
36
+ }
37
+ export declare const DEFAULT_SOFT_BODY: SoftBodyConfig;
38
+ export interface SoftBodyNode {
39
+ position: Vec2;
40
+ prevPosition: Vec2;
41
+ velocity: Vec2;
42
+ mass: number;
43
+ pinned: boolean;
44
+ }
45
+ export interface SoftBodySpring {
46
+ nodeA: number;
47
+ nodeB: number;
48
+ restLength: number;
49
+ stiffness: number;
50
+ damping: number;
51
+ }
52
+ export interface SoftBody {
53
+ nodes: SoftBodyNode[];
54
+ springs: SoftBodySpring[];
55
+ config: SoftBodyConfig;
56
+ }
57
+ export declare function createSoftBodyCircle(center: Vec2, radius: number, segments: number, config: SoftBodyConfig): SoftBody;
58
+ export declare function stepSoftBody(body: SoftBody, dt: number): void;
59
+ export interface DestructionConfig {
60
+ maxFragments: number;
61
+ minFragmentSize: number;
62
+ explosionForce: number;
63
+ debrisLifetime: number;
64
+ cascadeChance: number;
65
+ cascadeForceMultiplier: number;
66
+ particlesPerBreak: number;
67
+ }
68
+ export declare const DEFAULT_DESTRUCTION: DestructionConfig;
69
+ export interface DestructibleObject {
70
+ id: string;
71
+ health: number;
72
+ maxHealth: number;
73
+ position: Vec2;
74
+ width: number;
75
+ height: number;
76
+ material: 'wood' | 'stone' | 'metal' | 'glass' | 'ice';
77
+ fragments?: Fragment[];
78
+ destroyed: boolean;
79
+ }
80
+ export interface Fragment {
81
+ position: Vec2;
82
+ velocity: Vec2;
83
+ rotation: number;
84
+ angularVelocity: number;
85
+ width: number;
86
+ height: number;
87
+ lifetime: number;
88
+ }
89
+ export declare function shatterObject(obj: DestructibleObject, impactPoint: Vec2, force: number, config: DestructionConfig): Fragment[];
90
+ export interface RopeConfig {
91
+ segmentCount: number;
92
+ segmentLength: number;
93
+ gravity: Vec2;
94
+ damping: number;
95
+ iterations: number;
96
+ stiffness: number;
97
+ breakForce: number;
98
+ collisionRadius: number;
99
+ }
100
+ export declare const DEFAULT_ROPE_CONFIG: RopeConfig;
101
+ export interface RopePoint {
102
+ position: Vec2;
103
+ prevPosition: Vec2;
104
+ pinned: boolean;
105
+ }
106
+ export interface Rope {
107
+ points: RopePoint[];
108
+ config: RopeConfig;
109
+ broken: boolean;
110
+ breakIndex: number;
111
+ }
112
+ export declare function createRope(startPos: Vec2, endPos: Vec2, config: RopeConfig): Rope;
113
+ export declare function stepRope(rope: Rope, dt: number): void;
114
+ export interface ClothConfig {
115
+ width: number;
116
+ height: number;
117
+ resolutionX: number;
118
+ resolutionY: number;
119
+ gravity: Vec2;
120
+ damping: number;
121
+ stiffness: number;
122
+ tearThreshold: number;
123
+ windForce: Vec2;
124
+ windTurbulence: number;
125
+ iterations: number;
126
+ pinnedRow: 'top' | 'bottom' | 'none' | 'both';
127
+ }
128
+ export declare const DEFAULT_CLOTH: ClothConfig;
129
+ export interface ClothNode {
130
+ position: Vec2;
131
+ prevPosition: Vec2;
132
+ pinned: boolean;
133
+ }
134
+ export interface ClothLink {
135
+ a: number;
136
+ b: number;
137
+ restLength: number;
138
+ torn: boolean;
139
+ }
140
+ export interface ClothMesh {
141
+ nodes: ClothNode[];
142
+ links: ClothLink[];
143
+ config: ClothConfig;
144
+ cols: number;
145
+ rows: number;
146
+ }
147
+ export declare function createCloth(originX: number, originY: number, config: ClothConfig): ClothMesh;
148
+ export declare function stepCloth(cloth: ClothMesh, dt: number, time: number): void;
@@ -0,0 +1,66 @@
1
+ import type { Vec2 } from '../core/types';
2
+ import { EventBus } from '../core/EventBus';
3
+ import type { EntityId } from '../core/types';
4
+ import { World, System } from '../ecs/World';
5
+ export interface CollisionInfo {
6
+ entityA: EntityId;
7
+ entityB: EntityId;
8
+ normal: Vec2;
9
+ depth: number;
10
+ point: Vec2;
11
+ }
12
+ export interface RaycastHit {
13
+ entityId: EntityId;
14
+ point: Vec2;
15
+ normal: Vec2;
16
+ distance: number;
17
+ }
18
+ export declare class PhysicsEngine2D {
19
+ readonly events: EventBus;
20
+ gravity: Vec2;
21
+ private hash;
22
+ private activeCollisions;
23
+ private activeTriggers;
24
+ step(world: World, dt: number): void;
25
+ private integrateForces;
26
+ private detectCollisions;
27
+ private narrowPhase;
28
+ private resolveCollisions;
29
+ private emitEvents;
30
+ raycast(world: World, origin: Vec2, direction: Vec2, maxDistance?: number, layerMask?: number): RaycastHit | null;
31
+ static testAABBvsAABB(a: {
32
+ x: number;
33
+ y: number;
34
+ width: number;
35
+ height: number;
36
+ }, b: {
37
+ x: number;
38
+ y: number;
39
+ width: number;
40
+ height: number;
41
+ }): boolean;
42
+ static testCircleVsCircle(a: {
43
+ x: number;
44
+ y: number;
45
+ radius: number;
46
+ }, b: {
47
+ x: number;
48
+ y: number;
49
+ radius: number;
50
+ }): boolean;
51
+ static testAABBvsCircle(aabb: {
52
+ x: number;
53
+ y: number;
54
+ width: number;
55
+ height: number;
56
+ }, circle: {
57
+ x: number;
58
+ y: number;
59
+ radius: number;
60
+ }): boolean;
61
+ }
62
+ export declare class PhysicsSystem extends System {
63
+ private engine;
64
+ constructor(engine: PhysicsEngine2D, priority?: number);
65
+ fixedUpdate(world: World, dt: number): void;
66
+ }
@@ -0,0 +1 @@
1
+ export { PhysicsEngine2D, PhysicsSystem, type CollisionInfo, type RaycastHit, } from './PhysicsEngine2D';