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