@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,562 @@
1
+ 'use strict';
2
+
3
+ /* ────────────────────────────────────────────────────────────────
4
+ DeveloperExperience — LEGENDARY DX improvements
5
+
6
+ Features:
7
+ • Rich error messages with suggestions and docs links
8
+ • API usage hints / auto-complete metadata
9
+ • Performance dashboard data collection
10
+ • Engine health check
11
+ • Debug overlay system
12
+ ──────────────────────────────────────────────────────────────── */
13
+ /** Error code registry with friendly messages */
14
+ const ERROR_REGISTRY = {
15
+ 'E001': {
16
+ message: 'Entity not found',
17
+ suggestion: 'Check that the entity ID exists. Use world.hasEntity(id) before accessing.',
18
+ docsSection: 'ecs/entities',
19
+ severity: 'error',
20
+ },
21
+ 'E002': {
22
+ message: 'Component not found on entity',
23
+ suggestion: 'Use world.hasComponent(entityId, type) to check before getComponent().',
24
+ docsSection: 'ecs/components',
25
+ severity: 'error',
26
+ },
27
+ 'E003': {
28
+ message: 'Scene not registered',
29
+ suggestion: 'Register the scene with sceneManager.register(id, config) before loading it.',
30
+ docsSection: 'scenes/management',
31
+ severity: 'error',
32
+ },
33
+ 'E004': {
34
+ message: 'Canvas not found',
35
+ suggestion: 'Ensure the canvas element exists in the DOM before creating the engine. Use document.getElementById("your-canvas-id").',
36
+ docsSection: 'getting-started',
37
+ severity: 'error',
38
+ },
39
+ 'E005': {
40
+ message: 'Physics body has NaN values',
41
+ suggestion: 'A velocity or position component has NaN. Check for division by zero or uninitialized values.',
42
+ docsSection: 'physics/debugging',
43
+ severity: 'error',
44
+ },
45
+ 'E006': {
46
+ message: 'Asset not loaded',
47
+ suggestion: 'Load assets before using them: await assetManager.load(id, url). Check assetManager.isLoaded(id).',
48
+ docsSection: 'assets/loading',
49
+ severity: 'error',
50
+ },
51
+ 'E007': {
52
+ message: 'System priority conflict',
53
+ suggestion: 'Two systems have the same priority. Assign unique priority values to control execution order.',
54
+ docsSection: 'ecs/systems',
55
+ severity: 'warning',
56
+ },
57
+ 'E008': {
58
+ message: 'Maximum entity count exceeded',
59
+ suggestion: 'You have too many entities. Consider using object pooling (ObjectPool) or destroying unused entities.',
60
+ docsSection: 'performance/pooling',
61
+ severity: 'warning',
62
+ },
63
+ 'E009': {
64
+ message: 'Circular parent reference detected',
65
+ suggestion: 'Entity A is a child of B which is a child of A. Remove the circular parent-child relationship.',
66
+ docsSection: 'ecs/hierarchy',
67
+ severity: 'error',
68
+ },
69
+ 'E010': {
70
+ message: 'WebGL context lost',
71
+ suggestion: 'The browser lost the rendering context. This usually happens with GPU memory issues. Try reducing texture sizes.',
72
+ docsSection: 'rendering/troubleshooting',
73
+ severity: 'error',
74
+ },
75
+ 'W001': {
76
+ message: 'Frame time exceeds budget',
77
+ suggestion: 'The frame took longer than 16.67ms (60 FPS). Profile your systems to find the bottleneck.',
78
+ docsSection: 'performance/profiling',
79
+ severity: 'warning',
80
+ },
81
+ 'W002': {
82
+ message: 'Orphaned event listener',
83
+ suggestion: 'An event listener was registered but never unsubscribed. Store the unsubscribe function and call it in dispose().',
84
+ docsSection: 'patterns/cleanup',
85
+ severity: 'warning',
86
+ },
87
+ 'W003': {
88
+ message: 'Deprecated API usage',
89
+ suggestion: 'This API is deprecated and will be removed in a future version. Check the migration guide.',
90
+ docsSection: 'migration',
91
+ severity: 'warning',
92
+ },
93
+ 'W004': {
94
+ message: 'Large texture detected',
95
+ suggestion: 'Texture exceeds 2048x2048. Consider using texture atlases or lower resolution for better performance.',
96
+ docsSection: 'assets/optimization',
97
+ severity: 'warning',
98
+ },
99
+ 'I001': {
100
+ message: 'Engine initialized successfully',
101
+ suggestion: '',
102
+ docsSection: 'getting-started',
103
+ severity: 'info',
104
+ },
105
+ 'I002': {
106
+ message: 'Hot module replacement active',
107
+ suggestion: 'Changes to game scripts will be applied without restarting the engine.',
108
+ docsSection: 'development/hmr',
109
+ severity: 'info',
110
+ },
111
+ };
112
+ /** Get a rich engine error by code */
113
+ function getEngineError(code, context) {
114
+ const entry = ERROR_REGISTRY[code];
115
+ if (!entry) {
116
+ return {
117
+ code,
118
+ message: `Unknown engine error: ${code}`,
119
+ suggestion: 'Report this issue at github.com/nicetdev/game-engine/issues',
120
+ severity: 'error',
121
+ context,
122
+ };
123
+ }
124
+ return { code, ...entry, context };
125
+ }
126
+ /** Format an engine error for console output */
127
+ function formatEngineError(err) {
128
+ const icon = err.severity === 'error' ? '❌' : err.severity === 'warning' ? '⚠️' : 'ℹ️';
129
+ const lines = [
130
+ `${icon} [Nice2Dev ${err.code}] ${err.message}`,
131
+ ];
132
+ if (err.suggestion) {
133
+ lines.push(` 💡 ${err.suggestion}`);
134
+ }
135
+ if (err.docsSection) {
136
+ lines.push(` 📖 Docs: https://nice2dev.com/docs/game-engine/${err.docsSection}`);
137
+ }
138
+ if (err.context) {
139
+ lines.push(` 📋 Context: ${JSON.stringify(err.context)}`);
140
+ }
141
+ return lines.join('\n');
142
+ }
143
+ /** Throw a rich engine error */
144
+ function throwEngineError(code, context) {
145
+ const err = getEngineError(code, context);
146
+ throw new Error(formatEngineError(err));
147
+ }
148
+ /** Log a rich engine warning */
149
+ function warnEngine(code, context) {
150
+ const err = getEngineError(code, context);
151
+ // eslint-disable-next-line no-console
152
+ console.warn(formatEngineError(err));
153
+ }
154
+ /** Core API hints for auto-complete and intellisense */
155
+ const API_HINTS = [
156
+ {
157
+ method: 'world.createEntity',
158
+ module: 'ECS',
159
+ signature: 'world.createEntity(name?: string): EntityId',
160
+ description: 'Create a new entity in the world',
161
+ example: 'const player = world.createEntity("Player");',
162
+ params: [{ name: 'name', type: 'string', description: 'Optional display name', optional: true }],
163
+ returns: 'EntityId — unique numeric ID',
164
+ since: '0.1.0',
165
+ tags: ['ecs', 'entity', 'create'],
166
+ },
167
+ {
168
+ method: 'world.addComponent',
169
+ module: 'ECS',
170
+ signature: 'world.addComponent<K>(entityId, type: K, data?: Partial<ComponentMap[K]>): ComponentMap[K]',
171
+ description: 'Add a component to an entity',
172
+ example: 'world.addComponent(player, "Transform", { x: 100, y: 200 });',
173
+ params: [
174
+ { name: 'entityId', type: 'EntityId', description: 'Entity to add component to' },
175
+ { name: 'type', type: 'string', description: 'Component type name (e.g., "Transform", "Sprite")' },
176
+ { name: 'data', type: 'Partial<ComponentMap[K]>', description: 'Initial component data', optional: true },
177
+ ],
178
+ returns: 'The created component instance',
179
+ since: '0.1.0',
180
+ tags: ['ecs', 'component', 'add'],
181
+ },
182
+ {
183
+ method: 'world.getComponent',
184
+ module: 'ECS',
185
+ signature: 'world.getComponent<K>(entityId, type: K): ComponentMap[K]',
186
+ description: 'Get a component from an entity',
187
+ example: 'const pos = world.getComponent(player, "Transform");',
188
+ params: [
189
+ { name: 'entityId', type: 'EntityId', description: 'Entity to get from' },
190
+ { name: 'type', type: 'string', description: 'Component type name' },
191
+ ],
192
+ returns: 'The component data',
193
+ since: '0.1.0',
194
+ tags: ['ecs', 'component', 'get'],
195
+ },
196
+ {
197
+ method: 'world.query',
198
+ module: 'ECS',
199
+ signature: 'world.query(...types: string[]): EntityId[]',
200
+ description: 'Find all entities with ALL specified components',
201
+ example: 'const movers = world.query("Transform", "RigidBody2D");',
202
+ params: [
203
+ { name: 'types', type: '...string[]', description: 'Component types to match (spread)' },
204
+ ],
205
+ returns: 'Array of matching EntityIds',
206
+ since: '0.1.0',
207
+ tags: ['ecs', 'query', 'search'],
208
+ },
209
+ {
210
+ method: 'engine.start',
211
+ module: 'Engine',
212
+ signature: 'engine.start(): void',
213
+ description: 'Start the game loop',
214
+ example: 'engine.start();',
215
+ params: [],
216
+ returns: 'void',
217
+ since: '0.1.0',
218
+ tags: ['engine', 'start', 'loop'],
219
+ },
220
+ {
221
+ method: 'input.isKeyDown',
222
+ module: 'Input',
223
+ signature: 'input.isKeyDown(key: string): boolean',
224
+ description: 'Check if a key is currently held down (continuous)',
225
+ example: 'if (input.isKeyDown("ArrowRight")) { /* move */ }',
226
+ params: [{ name: 'key', type: 'string', description: 'Key code (e.g., "ArrowLeft", "Space", "KeyA")' }],
227
+ returns: 'boolean',
228
+ since: '0.1.0',
229
+ tags: ['input', 'keyboard', 'continuous'],
230
+ },
231
+ {
232
+ method: 'input.isKeyPressed',
233
+ module: 'Input',
234
+ signature: 'input.isKeyPressed(key: string): boolean',
235
+ description: 'Check if a key was just pressed this frame (single-frame)',
236
+ example: 'if (input.isKeyPressed("Space")) { /* jump */ }',
237
+ params: [{ name: 'key', type: 'string', description: 'Key code' }],
238
+ returns: 'boolean — true only on the first frame',
239
+ since: '0.1.0',
240
+ tags: ['input', 'keyboard', 'single-frame'],
241
+ },
242
+ {
243
+ method: 'sceneManager.loadScene',
244
+ module: 'Scene',
245
+ signature: 'sceneManager.loadScene(id: string, transition?: TransitionType): void',
246
+ description: 'Load a registered scene with optional transition',
247
+ example: 'sceneManager.loadScene("level2", "fade");',
248
+ params: [
249
+ { name: 'id', type: 'string', description: 'Scene ID' },
250
+ { name: 'transition', type: 'TransitionType', description: 'Transition effect', optional: true },
251
+ ],
252
+ returns: 'void',
253
+ since: '0.1.0',
254
+ tags: ['scene', 'load', 'transition'],
255
+ },
256
+ ];
257
+ /** Search API hints */
258
+ function searchAPIHints(query) {
259
+ const lower = query.toLowerCase();
260
+ return API_HINTS.filter(h => h.method.toLowerCase().includes(lower) ||
261
+ h.description.toLowerCase().includes(lower) ||
262
+ h.tags.some(t => t.includes(lower)));
263
+ }
264
+ function createPerfDashboard(maxSnapshots = 300) {
265
+ return { snapshots: [], maxSnapshots, warnings: [] };
266
+ }
267
+ function recordPerfSnapshot(dashboard, snapshot) {
268
+ dashboard.snapshots.push(snapshot);
269
+ if (dashboard.snapshots.length > dashboard.maxSnapshots) {
270
+ dashboard.snapshots.shift();
271
+ }
272
+ // Auto-detect warnings
273
+ if (snapshot.fps < 30) {
274
+ dashboard.warnings.push(`Low FPS: ${snapshot.fps.toFixed(1)} at ${new Date(snapshot.timestamp).toISOString()}`);
275
+ }
276
+ if (snapshot.frameTimeMs > 33) {
277
+ dashboard.warnings.push(`Frame time spike: ${snapshot.frameTimeMs.toFixed(1)}ms`);
278
+ }
279
+ if (snapshot.entityCount > 5000) {
280
+ dashboard.warnings.push(`High entity count: ${snapshot.entityCount}`);
281
+ }
282
+ // Keep last 50 warnings
283
+ if (dashboard.warnings.length > 50) {
284
+ dashboard.warnings.splice(0, dashboard.warnings.length - 50);
285
+ }
286
+ }
287
+ /** Get average FPS from last N snapshots */
288
+ function getAverageFPS(dashboard, lastN = 60) {
289
+ const snapshots = dashboard.snapshots;
290
+ const start = Math.max(0, snapshots.length - lastN);
291
+ const slice = snapshots.slice(start);
292
+ if (slice.length === 0)
293
+ return 0;
294
+ let sum = 0;
295
+ for (const s of slice)
296
+ sum += s.fps;
297
+ return sum / slice.length;
298
+ }
299
+ /** Get performance summary */
300
+ function getPerfSummary(dashboard) {
301
+ const snaps = dashboard.snapshots;
302
+ if (snaps.length === 0) {
303
+ return { avgFPS: 0, minFPS: 0, maxFPS: 0, avgFrameTime: 0, peakFrameTime: 0, totalWarnings: 0 };
304
+ }
305
+ let sumFPS = 0;
306
+ let minFPS = Infinity;
307
+ let maxFPS = 0;
308
+ let sumFrameTime = 0;
309
+ let peakFrameTime = 0;
310
+ for (const s of snaps) {
311
+ sumFPS += s.fps;
312
+ sumFrameTime += s.frameTimeMs;
313
+ if (s.fps < minFPS)
314
+ minFPS = s.fps;
315
+ if (s.fps > maxFPS)
316
+ maxFPS = s.fps;
317
+ if (s.frameTimeMs > peakFrameTime)
318
+ peakFrameTime = s.frameTimeMs;
319
+ }
320
+ return {
321
+ avgFPS: sumFPS / snaps.length,
322
+ minFPS,
323
+ maxFPS,
324
+ avgFrameTime: sumFrameTime / snaps.length,
325
+ peakFrameTime,
326
+ totalWarnings: dashboard.warnings.length,
327
+ };
328
+ }
329
+ /** Run a health check on common engine misconfigurations */
330
+ function runHealthCheck(config) {
331
+ const results = [];
332
+ // Canvas size check
333
+ if (config.canvasWidth > 3840 || config.canvasHeight > 2160) {
334
+ results.push({
335
+ category: 'Rendering',
336
+ status: 'warning',
337
+ message: 'Canvas resolution is very high',
338
+ details: `${config.canvasWidth}x${config.canvasHeight} — may cause performance issues on lower-end devices.`,
339
+ });
340
+ }
341
+ else {
342
+ results.push({ category: 'Rendering', status: 'ok', message: 'Canvas resolution is reasonable' });
343
+ }
344
+ // Entity count
345
+ if (config.entityCount > 10000) {
346
+ results.push({
347
+ category: 'ECS',
348
+ status: 'error',
349
+ message: 'Very high entity count',
350
+ details: `${config.entityCount} entities. Consider object pooling or culling.`,
351
+ });
352
+ }
353
+ else if (config.entityCount > 5000) {
354
+ results.push({
355
+ category: 'ECS',
356
+ status: 'warning',
357
+ message: 'High entity count',
358
+ details: `${config.entityCount} entities. Monitor FPS closely.`,
359
+ });
360
+ }
361
+ else {
362
+ results.push({ category: 'ECS', status: 'ok', message: `${config.entityCount} entities — healthy` });
363
+ }
364
+ // FPS target
365
+ if (config.targetFps > 144) {
366
+ results.push({
367
+ category: 'Performance',
368
+ status: 'warning',
369
+ message: 'Target FPS is unusually high',
370
+ details: `${config.targetFps} FPS target. Most displays are 60-144Hz.`,
371
+ });
372
+ }
373
+ else {
374
+ results.push({ category: 'Performance', status: 'ok', message: `Target FPS: ${config.targetFps}` });
375
+ }
376
+ // Physics timestep
377
+ if (config.physicsTimestep < 1 / 120) {
378
+ results.push({
379
+ category: 'Physics',
380
+ status: 'warning',
381
+ message: 'Physics timestep is very small',
382
+ details: `${config.physicsTimestep.toFixed(6)}s — will use more CPU. Standard is 1/60.`,
383
+ });
384
+ }
385
+ else {
386
+ results.push({ category: 'Physics', status: 'ok', message: 'Physics timestep is standard' });
387
+ }
388
+ // Systems
389
+ if (config.systemCount === 0) {
390
+ results.push({
391
+ category: 'ECS',
392
+ status: 'warning',
393
+ message: 'No systems registered',
394
+ details: 'Add systems to process game logic.',
395
+ });
396
+ }
397
+ else {
398
+ results.push({ category: 'ECS', status: 'ok', message: `${config.systemCount} systems registered` });
399
+ }
400
+ // Texture
401
+ if (config.maxTextureDimension > 4096) {
402
+ results.push({
403
+ category: 'Assets',
404
+ status: 'warning',
405
+ message: 'Large textures detected',
406
+ details: `Max dimension: ${config.maxTextureDimension}px. Consider texture atlasing.`,
407
+ });
408
+ }
409
+ else {
410
+ results.push({ category: 'Assets', status: 'ok', message: 'Texture sizes are reasonable' });
411
+ }
412
+ return results;
413
+ }
414
+ const DEFAULT_DEBUG_OVERLAY = {
415
+ showFPS: true,
416
+ showEntityCount: true,
417
+ showDrawCalls: false,
418
+ showPhysicsDebug: false,
419
+ showGrid: false,
420
+ gridSize: 32,
421
+ showBoundingBoxes: false,
422
+ showOrigins: false,
423
+ position: 'top-left',
424
+ opacity: 0.85,
425
+ };
426
+ /** Render a debug text overlay onto a canvas context */
427
+ function renderDebugOverlay(ctx, config, stats, canvasSize) {
428
+ const lines = [];
429
+ if (config.showFPS)
430
+ lines.push(`FPS: ${stats.fps.toFixed(0)} (${stats.frameTimeMs.toFixed(1)}ms)`);
431
+ if (config.showEntityCount)
432
+ lines.push(`Entities: ${stats.entityCount}`);
433
+ if (config.showDrawCalls)
434
+ lines.push(`Draw Calls: ${stats.drawCalls}`);
435
+ if (lines.length === 0)
436
+ return;
437
+ const lineHeight = 16;
438
+ const padding = 6;
439
+ const width = 180;
440
+ const height = lines.length * lineHeight + padding * 2;
441
+ // Position
442
+ let x = padding;
443
+ let y = padding;
444
+ if (config.position === 'top-right')
445
+ x = canvasSize.x - width - padding;
446
+ if (config.position === 'bottom-left')
447
+ y = canvasSize.y - height - padding;
448
+ if (config.position === 'bottom-right') {
449
+ x = canvasSize.x - width - padding;
450
+ y = canvasSize.y - height - padding;
451
+ }
452
+ // Background
453
+ ctx.save();
454
+ ctx.globalAlpha = config.opacity;
455
+ ctx.fillStyle = '#000';
456
+ ctx.fillRect(x, y, width, height);
457
+ ctx.globalAlpha = 1;
458
+ // Text
459
+ ctx.fillStyle = stats.fps < 30 ? '#ff4444' : stats.fps < 55 ? '#ffaa00' : '#44ff44';
460
+ ctx.font = '12px monospace';
461
+ ctx.textBaseline = 'top';
462
+ for (let i = 0; i < lines.length; i++) {
463
+ ctx.fillText(lines[i], x + padding, y + padding + i * lineHeight);
464
+ }
465
+ ctx.restore();
466
+ }
467
+ const QUICK_START_TEMPLATES = [
468
+ {
469
+ id: 'empty-project',
470
+ name: 'Empty Project',
471
+ description: 'A blank canvas to start from scratch',
472
+ category: 'prototype',
473
+ difficulty: 'beginner',
474
+ tags: ['empty', 'starter'],
475
+ code: `const engine = new NiceGameEngine({
476
+ canvas: document.getElementById("game") as HTMLCanvasElement,
477
+ settings: { width: 800, height: 600, targetFps: 60 },
478
+ });
479
+
480
+ engine.start();`,
481
+ },
482
+ {
483
+ id: 'hello-world',
484
+ name: 'Hello World',
485
+ description: 'A rotating square to verify everything works',
486
+ category: 'demo',
487
+ difficulty: 'beginner',
488
+ tags: ['hello', 'demo', 'beginner'],
489
+ code: `const engine = new NiceGameEngine({
490
+ canvas: document.getElementById("game") as HTMLCanvasElement,
491
+ });
492
+
493
+ const entity = engine.world.createEntity("Square");
494
+ engine.world.addComponent(entity, "Transform", { x: 400, y: 300 });
495
+ engine.world.addComponent(entity, "Sprite", {
496
+ shape: "rect", width: 50, height: 50, color: "#00ff88",
497
+ });
498
+
499
+ // Rotate every frame
500
+ engine.events.on("engine:update", () => {
501
+ const t = engine.world.getComponent(entity, "Transform");
502
+ t.rotation += 2;
503
+ });
504
+
505
+ engine.start();`,
506
+ },
507
+ {
508
+ id: 'platformer-starter',
509
+ name: 'Platformer Starter',
510
+ description: 'A basic platformer with player, ground, and gravity',
511
+ category: 'game',
512
+ difficulty: 'intermediate',
513
+ tags: ['platformer', 'physics', '2d'],
514
+ code: `const engine = new NiceGameEngine({
515
+ canvas: document.getElementById("game") as HTMLCanvasElement,
516
+ settings: {
517
+ width: 800, height: 600, targetFps: 60,
518
+ physics: { gravity: { x: 0, y: 980 } },
519
+ },
520
+ });
521
+
522
+ // Player
523
+ const player = engine.world.createEntity("Player");
524
+ engine.world.addComponent(player, "Transform", { x: 400, y: 400 });
525
+ engine.world.addComponent(player, "Sprite", {
526
+ shape: "rect", width: 32, height: 48, color: "#4488ff",
527
+ });
528
+ engine.world.addComponent(player, "RigidBody2D", { type: "dynamic" });
529
+ engine.world.addComponent(player, "Collider2D", {
530
+ shape: "box", width: 32, height: 48,
531
+ });
532
+
533
+ // Ground
534
+ const ground = engine.world.createEntity("Ground");
535
+ engine.world.addComponent(ground, "Transform", { x: 400, y: 580 });
536
+ engine.world.addComponent(ground, "Sprite", {
537
+ shape: "rect", width: 800, height: 40, color: "#44aa44",
538
+ });
539
+ engine.world.addComponent(ground, "RigidBody2D", { type: "static" });
540
+ engine.world.addComponent(ground, "Collider2D", {
541
+ shape: "box", width: 800, height: 40,
542
+ });
543
+
544
+ engine.start();`,
545
+ },
546
+ ];
547
+
548
+ exports.API_HINTS = API_HINTS;
549
+ exports.DEFAULT_DEBUG_OVERLAY = DEFAULT_DEBUG_OVERLAY;
550
+ exports.QUICK_START_TEMPLATES = QUICK_START_TEMPLATES;
551
+ exports.createPerfDashboard = createPerfDashboard;
552
+ exports.formatEngineError = formatEngineError;
553
+ exports.getAverageFPS = getAverageFPS;
554
+ exports.getEngineError = getEngineError;
555
+ exports.getPerfSummary = getPerfSummary;
556
+ exports.recordPerfSnapshot = recordPerfSnapshot;
557
+ exports.renderDebugOverlay = renderDebugOverlay;
558
+ exports.runHealthCheck = runHealthCheck;
559
+ exports.searchAPIHints = searchAPIHints;
560
+ exports.throwEngineError = throwEngineError;
561
+ exports.warnEngine = warnEngine;
562
+ //# sourceMappingURL=DeveloperExperience.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeveloperExperience.js","sources":["../../../src/devtools/DeveloperExperience.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}