[{"data":1,"prerenderedAt":1324},["ShallowReactive",2],{"doc:\u002Fgame-engine\u002Fcore\u002Fengine":3,"surround:\u002Fgame-engine\u002Fcore\u002Fengine":1075,"navigation":1084},{"id":4,"title":5,"body":6,"description":1068,"extension":1069,"meta":1070,"navigation":60,"path":1071,"seo":1072,"stem":1073,"__hash__":1074},"docs\u002F01.game-engine\u002F05.core\u002F01.engine.md","Silnik i cykl życia",{"type":7,"value":8,"toc":1060},"minimark",[9,14,26,142,149,153,471,475,483,522,526,772,776,786,883,934,938,1020,1038,1056],[10,11,13],"h2",{"id":12},"tworzenie-silnika","Tworzenie silnika",[15,16,17,21,22,25],"p",{},[18,19,20],"code",{},"createEngine(options)"," to punkt kompozycji — buduje menedżery, wstrzykuje fabrykę adaptera i zwraca gotowy ",[18,23,24],{},"Engine",".",[27,28,33],"pre",{"className":29,"code":30,"language":31,"meta":32,"style":32},"language-ts shiki shiki-themes github-light github-dark","import { createEngine } from '@engine'\n\nconst engine = createEngine({\n  parent: 'app',\n  width: 1280,\n  height: 720,\n  backgroundColor: '#0f1419',\n  debug: false\n})\n","ts","",[18,34,35,55,62,82,94,105,116,127,136],{"__ignoreMap":32},[36,37,40,44,48,51],"span",{"class":38,"line":39},"line",1,[36,41,43],{"class":42},"szBVR","import",[36,45,47],{"class":46},"sVt8B"," { createEngine } ",[36,49,50],{"class":42},"from",[36,52,54],{"class":53},"sZZnC"," '@engine'\n",[36,56,58],{"class":38,"line":57},2,[36,59,61],{"emptyLinePlaceholder":60},true,"\n",[36,63,65,68,72,75,79],{"class":38,"line":64},3,[36,66,67],{"class":42},"const",[36,69,71],{"class":70},"sj4cs"," engine",[36,73,74],{"class":42}," =",[36,76,78],{"class":77},"sScJk"," createEngine",[36,80,81],{"class":46},"({\n",[36,83,85,88,91],{"class":38,"line":84},4,[36,86,87],{"class":46},"  parent: ",[36,89,90],{"class":53},"'app'",[36,92,93],{"class":46},",\n",[36,95,97,100,103],{"class":38,"line":96},5,[36,98,99],{"class":46},"  width: ",[36,101,102],{"class":70},"1280",[36,104,93],{"class":46},[36,106,108,111,114],{"class":38,"line":107},6,[36,109,110],{"class":46},"  height: ",[36,112,113],{"class":70},"720",[36,115,93],{"class":46},[36,117,119,122,125],{"class":38,"line":118},7,[36,120,121],{"class":46},"  backgroundColor: ",[36,123,124],{"class":53},"'#0f1419'",[36,126,93],{"class":46},[36,128,130,133],{"class":38,"line":129},8,[36,131,132],{"class":46},"  debug: ",[36,134,135],{"class":70},"false\n",[36,137,139],{"class":38,"line":138},9,[36,140,141],{"class":46},"})\n",[15,143,144,145,148],{},"Nieprawidłowa konfiguracja rzuca ",[18,146,147],{},"Error"," z czytelnym komunikatem, zanim cokolwiek zostanie zamontowane w DOM.",[10,150,152],{"id":151},"api","API",[27,154,156],{"className":29,"code":155,"language":31,"meta":32,"style":32},"getConfig(): EngineConfig\ngetTime(): Time\ngetTimer(): Timer\ngetScheduler(): Scheduler\ngetRandom(): Random\ngetEvents(): EventBus\ngetLogger(): Logger\ngetAssets(): AssetManager\ngetAudio(): AudioManager\ngetInput(): InputManager\ngetPhysics(): PhysicsManager\ngetCamera(): CameraManager\ngetScenes(): SceneManager\ngetWasm(): WasmBridge\ngetAdapter(): RuntimeAdapter\nisRunning(): boolean\nisDestroyed(): boolean\n\nregisterScene(scene: Scene): this\nstart(initialSceneId?: string, data?: unknown): this\nstartScene(id: string, data?: unknown): void\nstopScene(id: string): void\npause(): void\nresume(): void\nsetTimeScale(scale: number): this\nsetDebug(enabled: boolean): void\non\u003CT>(event: string, handler: (p: T) => void): () => void\nstop(): void\ndestroy(): void\n",[18,157,158,166,174,182,190,198,206,214,222,230,239,248,257,266,275,284,293,301,306,318,340,356,367,378,388,399,410,451,461],{"__ignoreMap":32},[36,159,160,163],{"class":38,"line":39},[36,161,162],{"class":77},"getConfig",[36,164,165],{"class":46},"(): EngineConfig\n",[36,167,168,171],{"class":38,"line":57},[36,169,170],{"class":77},"getTime",[36,172,173],{"class":46},"(): Time\n",[36,175,176,179],{"class":38,"line":64},[36,177,178],{"class":77},"getTimer",[36,180,181],{"class":46},"(): Timer\n",[36,183,184,187],{"class":38,"line":84},[36,185,186],{"class":77},"getScheduler",[36,188,189],{"class":46},"(): Scheduler\n",[36,191,192,195],{"class":38,"line":96},[36,193,194],{"class":77},"getRandom",[36,196,197],{"class":46},"(): Random\n",[36,199,200,203],{"class":38,"line":107},[36,201,202],{"class":77},"getEvents",[36,204,205],{"class":46},"(): EventBus\n",[36,207,208,211],{"class":38,"line":118},[36,209,210],{"class":77},"getLogger",[36,212,213],{"class":46},"(): Logger\n",[36,215,216,219],{"class":38,"line":129},[36,217,218],{"class":77},"getAssets",[36,220,221],{"class":46},"(): AssetManager\n",[36,223,224,227],{"class":38,"line":138},[36,225,226],{"class":77},"getAudio",[36,228,229],{"class":46},"(): AudioManager\n",[36,231,233,236],{"class":38,"line":232},10,[36,234,235],{"class":77},"getInput",[36,237,238],{"class":46},"(): InputManager\n",[36,240,242,245],{"class":38,"line":241},11,[36,243,244],{"class":77},"getPhysics",[36,246,247],{"class":46},"(): PhysicsManager\n",[36,249,251,254],{"class":38,"line":250},12,[36,252,253],{"class":77},"getCamera",[36,255,256],{"class":46},"(): CameraManager\n",[36,258,260,263],{"class":38,"line":259},13,[36,261,262],{"class":77},"getScenes",[36,264,265],{"class":46},"(): SceneManager\n",[36,267,269,272],{"class":38,"line":268},14,[36,270,271],{"class":77},"getWasm",[36,273,274],{"class":46},"(): WasmBridge\n",[36,276,278,281],{"class":38,"line":277},15,[36,279,280],{"class":77},"getAdapter",[36,282,283],{"class":46},"(): RuntimeAdapter\n",[36,285,287,290],{"class":38,"line":286},16,[36,288,289],{"class":77},"isRunning",[36,291,292],{"class":46},"(): boolean\n",[36,294,296,299],{"class":38,"line":295},17,[36,297,298],{"class":77},"isDestroyed",[36,300,292],{"class":46},[36,302,304],{"class":38,"line":303},18,[36,305,61],{"emptyLinePlaceholder":60},[36,307,309,312,315],{"class":38,"line":308},19,[36,310,311],{"class":77},"registerScene",[36,313,314],{"class":46},"(scene: Scene): ",[36,316,317],{"class":70},"this\n",[36,319,321,324,327,330,333,335,338],{"class":38,"line":320},20,[36,322,323],{"class":77},"start",[36,325,326],{"class":46},"(initialSceneId",[36,328,329],{"class":42},"?:",[36,331,332],{"class":46}," string, data",[36,334,329],{"class":42},[36,336,337],{"class":46}," unknown): ",[36,339,317],{"class":70},[36,341,343,346,349,351,353],{"class":38,"line":342},21,[36,344,345],{"class":77},"startScene",[36,347,348],{"class":46},"(id: string, data",[36,350,329],{"class":42},[36,352,337],{"class":46},[36,354,355],{"class":42},"void\n",[36,357,359,362,365],{"class":38,"line":358},22,[36,360,361],{"class":77},"stopScene",[36,363,364],{"class":46},"(id: string): ",[36,366,355],{"class":42},[36,368,370,373,376],{"class":38,"line":369},23,[36,371,372],{"class":77},"pause",[36,374,375],{"class":46},"(): ",[36,377,355],{"class":42},[36,379,381,384,386],{"class":38,"line":380},24,[36,382,383],{"class":77},"resume",[36,385,375],{"class":46},[36,387,355],{"class":42},[36,389,391,394,397],{"class":38,"line":390},25,[36,392,393],{"class":77},"setTimeScale",[36,395,396],{"class":46},"(scale: number): ",[36,398,317],{"class":70},[36,400,402,405,408],{"class":38,"line":401},26,[36,403,404],{"class":77},"setDebug",[36,406,407],{"class":46},"(enabled: boolean): ",[36,409,355],{"class":42},[36,411,413,416,419,422,425,428,431,434,437,440,443,446,448],{"class":38,"line":412},27,[36,414,415],{"class":77},"on",[36,417,418],{"class":46},"\u003C",[36,420,421],{"class":77},"T",[36,423,424],{"class":46},">(event: string, handler: (",[36,426,15],{"class":427},"s4XuR",[36,429,430],{"class":42},":",[36,432,433],{"class":77}," T",[36,435,436],{"class":46},") ",[36,438,439],{"class":42},"=>",[36,441,442],{"class":42}," void",[36,444,445],{"class":46},"): () ",[36,447,439],{"class":42},[36,449,450],{"class":42}," void\n",[36,452,454,457,459],{"class":38,"line":453},28,[36,455,456],{"class":77},"stop",[36,458,375],{"class":46},[36,460,355],{"class":42},[36,462,464,467,469],{"class":38,"line":463},29,[36,465,466],{"class":77},"destroy",[36,468,375],{"class":46},[36,470,355],{"class":42},[10,472,474],{"id":473},"cykl-życia","Cykl życia",[27,476,481],{"className":477,"code":479,"language":480,"meta":32},[478],"language-text","createEngine → registerScene → start\n→ engine:start → scene:start → pętla klatek\n→ pause \u002F resume (Time + audio)\n→ stop → engine:stop\n→ destroy (idempotentny)\n","text",[18,482,479],{"__ignoreMap":32},[484,485,486,493,504],"ul",{},[487,488,489,492],"li",{},[18,490,491],{},"stop()"," zwalnia runtime i listenery.",[487,494,495,498,499,503],{},[18,496,497],{},"destroy()"," jest ",[500,501,502],"strong",{},"idempotentny"," — można go wołać wielokrotnie bez błędu.",[487,505,506,509,510,513,514,517,518,521],{},[18,507,508],{},"pause()"," zatrzymuje ",[18,511,512],{},"Time"," i woła ",[18,515,516],{},"audio.pauseAll()","; ",[18,519,520],{},"resume()"," odwraca oba efekty.",[10,523,525],{"id":524},"przykład-pełny-lifecycle","Przykład: pełny lifecycle",[27,527,529],{"className":29,"code":528,"language":31,"meta":32,"style":32},"const engine = createEngine({ parent: 'app', width: 960, height: 540 })\n\nengine.registerScene(new MenuScene())\nengine.registerScene(new GameScene())\n\nconst off = engine.on\u003C{ to: string }>('request:scene', ({ to }) => {\n  engine.startScene(to)\n})\n\nengine.start('menu')\n\ndocument.addEventListener('visibilitychange', () => {\n  if (document.hidden) engine.pause()\n  else engine.resume()\n})\n\nwindow.addEventListener('beforeunload', () => {\n  off()\n  engine.destroy()\n})\n",[18,530,531,561,565,584,599,603,647,657,661,665,679,683,703,716,727,731,735,753,760,768],{"__ignoreMap":32},[36,532,533,535,537,539,541,544,546,549,552,555,558],{"class":38,"line":39},[36,534,67],{"class":42},[36,536,71],{"class":70},[36,538,74],{"class":42},[36,540,78],{"class":77},[36,542,543],{"class":46},"({ parent: ",[36,545,90],{"class":53},[36,547,548],{"class":46},", width: ",[36,550,551],{"class":70},"960",[36,553,554],{"class":46},", height: ",[36,556,557],{"class":70},"540",[36,559,560],{"class":46}," })\n",[36,562,563],{"class":38,"line":57},[36,564,61],{"emptyLinePlaceholder":60},[36,566,567,570,572,575,578,581],{"class":38,"line":64},[36,568,569],{"class":46},"engine.",[36,571,311],{"class":77},[36,573,574],{"class":46},"(",[36,576,577],{"class":42},"new",[36,579,580],{"class":77}," MenuScene",[36,582,583],{"class":46},"())\n",[36,585,586,588,590,592,594,597],{"class":38,"line":84},[36,587,569],{"class":46},[36,589,311],{"class":77},[36,591,574],{"class":46},[36,593,577],{"class":42},[36,595,596],{"class":77}," GameScene",[36,598,583],{"class":46},[36,600,601],{"class":38,"line":96},[36,602,61],{"emptyLinePlaceholder":60},[36,604,605,607,610,612,615,617,620,623,625,628,631,634,637,639,642,644],{"class":38,"line":107},[36,606,67],{"class":42},[36,608,609],{"class":70}," off",[36,611,74],{"class":42},[36,613,614],{"class":46}," engine.",[36,616,415],{"class":77},[36,618,619],{"class":46},"\u003C{ ",[36,621,622],{"class":427},"to",[36,624,430],{"class":42},[36,626,627],{"class":70}," string",[36,629,630],{"class":46}," }>(",[36,632,633],{"class":53},"'request:scene'",[36,635,636],{"class":46},", ({ ",[36,638,622],{"class":427},[36,640,641],{"class":46}," }) ",[36,643,439],{"class":42},[36,645,646],{"class":46}," {\n",[36,648,649,652,654],{"class":38,"line":118},[36,650,651],{"class":46},"  engine.",[36,653,345],{"class":77},[36,655,656],{"class":46},"(to)\n",[36,658,659],{"class":38,"line":129},[36,660,141],{"class":46},[36,662,663],{"class":38,"line":138},[36,664,61],{"emptyLinePlaceholder":60},[36,666,667,669,671,673,676],{"class":38,"line":232},[36,668,569],{"class":46},[36,670,323],{"class":77},[36,672,574],{"class":46},[36,674,675],{"class":53},"'menu'",[36,677,678],{"class":46},")\n",[36,680,681],{"class":38,"line":241},[36,682,61],{"emptyLinePlaceholder":60},[36,684,685,688,691,693,696,699,701],{"class":38,"line":250},[36,686,687],{"class":46},"document.",[36,689,690],{"class":77},"addEventListener",[36,692,574],{"class":46},[36,694,695],{"class":53},"'visibilitychange'",[36,697,698],{"class":46},", () ",[36,700,439],{"class":42},[36,702,646],{"class":46},[36,704,705,708,711,713],{"class":38,"line":259},[36,706,707],{"class":42},"  if",[36,709,710],{"class":46}," (document.hidden) engine.",[36,712,372],{"class":77},[36,714,715],{"class":46},"()\n",[36,717,718,721,723,725],{"class":38,"line":268},[36,719,720],{"class":42},"  else",[36,722,614],{"class":46},[36,724,383],{"class":77},[36,726,715],{"class":46},[36,728,729],{"class":38,"line":277},[36,730,141],{"class":46},[36,732,733],{"class":38,"line":286},[36,734,61],{"emptyLinePlaceholder":60},[36,736,737,740,742,744,747,749,751],{"class":38,"line":295},[36,738,739],{"class":46},"window.",[36,741,690],{"class":77},[36,743,574],{"class":46},[36,745,746],{"class":53},"'beforeunload'",[36,748,698],{"class":46},[36,750,439],{"class":42},[36,752,646],{"class":46},[36,754,755,758],{"class":38,"line":303},[36,756,757],{"class":77},"  off",[36,759,715],{"class":46},[36,761,762,764,766],{"class":38,"line":308},[36,763,651],{"class":46},[36,765,466],{"class":77},[36,767,715],{"class":46},[36,769,770],{"class":38,"line":320},[36,771,141],{"class":46},[10,773,775],{"id":774},"zdarzenia-silnika","Zdarzenia silnika",[15,777,778,781,782,785],{},[18,779,780],{},"engine.on()"," to skrót do ",[18,783,784],{},"EventBus",". Silnik emituje:",[787,788,789,802],"table",{},[790,791,792],"thead",{},[793,794,795,799],"tr",{},[796,797,798],"th",{},"Zdarzenie",[796,800,801],{},"Kiedy",[803,804,805,816,826,840,850,863,873],"tbody",{},[793,806,807,813],{},[808,809,810],"td",{},[18,811,812],{},"engine:start",[808,814,815],{},"Po uruchomieniu pętli",[793,817,818,823],{},[808,819,820],{},[18,821,822],{},"engine:stop",[808,824,825],{},"Po zatrzymaniu",[793,827,828,837],{},[808,829,830,833,834],{},[18,831,832],{},"engine:pause"," \u002F ",[18,835,836],{},"engine:resume",[808,838,839],{},"Pauza i wznowienie",[793,841,842,847],{},[808,843,844],{},[18,845,846],{},"engine:update",[808,848,849],{},"Co klatkę",[793,851,852,860],{},[808,853,854,833,857],{},[18,855,856],{},"scene:start",[18,858,859],{},"scene:stop",[808,861,862],{},"Start i stop sceny",[793,864,865,870],{},[808,866,867],{},[18,868,869],{},"assets:*",[808,871,872],{},"Postęp ładowania zasobów",[793,874,875,880],{},[808,876,877],{},[18,878,879],{},"audio:unlocked",[808,881,882],{},"Odblokowanie audio gestem użytkownika",[27,884,886],{"className":29,"code":885,"language":31,"meta":32,"style":32},"engine.on('scene:start', ({ id }) => {\n  console.log(`Wchodzi scena: ${id}`)\n})\n",[18,887,888,910,930],{"__ignoreMap":32},[36,889,890,892,894,896,899,901,904,906,908],{"class":38,"line":39},[36,891,569],{"class":46},[36,893,415],{"class":77},[36,895,574],{"class":46},[36,897,898],{"class":53},"'scene:start'",[36,900,636],{"class":46},[36,902,903],{"class":427},"id",[36,905,641],{"class":46},[36,907,439],{"class":42},[36,909,646],{"class":46},[36,911,912,915,918,920,923,925,928],{"class":38,"line":57},[36,913,914],{"class":46},"  console.",[36,916,917],{"class":77},"log",[36,919,574],{"class":46},[36,921,922],{"class":53},"`Wchodzi scena: ${",[36,924,903],{"class":46},[36,926,927],{"class":53},"}`",[36,929,678],{"class":46},[36,931,932],{"class":38,"line":64},[36,933,141],{"class":46},[10,935,937],{"id":936},"time-scale-slow-motion","Time scale — slow motion",[27,939,941],{"className":29,"code":940,"language":31,"meta":32,"style":32},"engine.setTimeScale(0.25)\n\nengine.getEvents().emit('request:slowmo', { duration: 2 })\n\nengine.getScheduler().delay(2, () => engine.setTimeScale(1))\n",[18,942,943,956,960,985,989],{"__ignoreMap":32},[36,944,945,947,949,951,954],{"class":38,"line":39},[36,946,569],{"class":46},[36,948,393],{"class":77},[36,950,574],{"class":46},[36,952,953],{"class":70},"0.25",[36,955,678],{"class":46},[36,957,958],{"class":38,"line":57},[36,959,61],{"emptyLinePlaceholder":60},[36,961,962,964,966,969,972,974,977,980,983],{"class":38,"line":64},[36,963,569],{"class":46},[36,965,202],{"class":77},[36,967,968],{"class":46},"().",[36,970,971],{"class":77},"emit",[36,973,574],{"class":46},[36,975,976],{"class":53},"'request:slowmo'",[36,978,979],{"class":46},", { duration: ",[36,981,982],{"class":70},"2",[36,984,560],{"class":46},[36,986,987],{"class":38,"line":84},[36,988,61],{"emptyLinePlaceholder":60},[36,990,991,993,995,997,1000,1002,1004,1006,1008,1010,1012,1014,1017],{"class":38,"line":96},[36,992,569],{"class":46},[36,994,186],{"class":77},[36,996,968],{"class":46},[36,998,999],{"class":77},"delay",[36,1001,574],{"class":46},[36,1003,982],{"class":70},[36,1005,698],{"class":46},[36,1007,439],{"class":42},[36,1009,614],{"class":46},[36,1011,393],{"class":77},[36,1013,574],{"class":46},[36,1015,1016],{"class":70},"1",[36,1018,1019],{"class":46},"))\n",[15,1021,1022,1024,1025,1028,1029,1032,1033,25],{},[18,1023,393],{}," skaluje ",[18,1026,1027],{},"deltaTime"," gry, ale ",[18,1030,1031],{},"realElapsed"," płynie dalej — zegary oparte na czasie rzeczywistym nie zwalniają. Szczegóły: ",[1034,1035,1037],"a",{"href":1036},"\u002Fgame-engine\u002Fcore\u002Ftime","Czas i pętla gry",[1039,1040,1043],"callout",{"title":1041,"type":1042},"Jeden silnik na kontener","warning",[15,1044,1045,1046,1048,1049,1052,1053,1055],{},"Nie twórz dwóch instancji ",[18,1047,24],{}," dla tego samego kontenera. Jeśli potrzebujesz wielu gier na stronie, każda dostaje własny ",[18,1050,1051],{},"parent"," i własny ",[18,1054,497],{}," przy odmontowaniu.",[1057,1058,1059],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":32,"searchDepth":64,"depth":64,"links":1061},[1062,1063,1064,1065,1066,1067],{"id":12,"depth":57,"text":13},{"id":151,"depth":57,"text":152},{"id":473,"depth":57,"text":474},{"id":524,"depth":57,"text":525},{"id":774,"depth":57,"text":775},{"id":936,"depth":57,"text":937},"createEngine, rejestracja scen, start, pauza, timeScale i sprzątanie. Pełna referencja API obiektu Engine z przykładami.","md",{},"\u002Fgame-engine\u002Fcore\u002Fengine",{"title":5,"description":1068},"01.game-engine\u002F05.core\u002F01.engine","3MhXakOG_dMwmlv7WrMeRbxgv54KWlsGSYH20WxMX74",[1076,1081],{"title":1077,"path":1078,"stem":1079,"description":1080,"children":-1},"Architektura","\u002Fgame-engine\u002Farchitecture","01.game-engine\u002F04.architecture","Warstwy silnika, izolacja adaptera przez porty, przepływ klatki, granice modułów i zasady wydajności, które pilnują testy.",{"title":1037,"path":1036,"stem":1082,"description":1083,"children":-1},"01.game-engine\u002F05.core\u002F02.time","Time to jedyne źródło deltaTime w silniku. Clamp, timeScale, krok stały i stan czasu — z przykładami slow motion i fixed update.",[1085,1196,1257],{"title":1086,"path":1087,"stem":1088,"children":1089},"2D Game Engine","\u002Fgame-engine","01.game-engine\u002F01.index",[1090,1092,1096,1100,1101,1121,1150,1163,1184,1188,1192],{"title":1091,"path":1087,"stem":1088},"Przegląd",{"title":1093,"path":1094,"stem":1095},"Szybki start","\u002Fgame-engine\u002Fgetting-started","01.game-engine\u002F02.getting-started",{"title":1097,"path":1098,"stem":1099},"Konfiguracja","\u002Fgame-engine\u002Fconfiguration","01.game-engine\u002F03.configuration",{"title":1077,"path":1078,"stem":1079},{"title":1102,"path":1103,"stem":1104,"children":1105,"page":1120},"Rdzeń","\u002Fgame-engine\u002Fcore","01.game-engine\u002F05.core",[1106,1107,1108,1112,1116],{"title":5,"path":1071,"stem":1073},{"title":1037,"path":1036,"stem":1082},{"title":1109,"path":1110,"stem":1111},"Sceny","\u002Fgame-engine\u002Fcore\u002Fscenes","01.game-engine\u002F05.core\u002F03.scenes",{"title":1113,"path":1114,"stem":1115},"Obiekty i komponenty","\u002Fgame-engine\u002Fcore\u002Fobjects","01.game-engine\u002F05.core\u002F04.objects",{"title":1117,"path":1118,"stem":1119},"Zdarzenia i harmonogram","\u002Fgame-engine\u002Fcore\u002Fevents","01.game-engine\u002F05.core\u002F05.events",false,{"title":1122,"path":1123,"stem":1124,"children":1125,"page":1120},"Systemy","\u002Fgame-engine\u002Fsystems","01.game-engine\u002F06.systems",[1126,1130,1134,1138,1142,1146],{"title":1127,"path":1128,"stem":1129},"Zasoby (AssetManager)","\u002Fgame-engine\u002Fsystems\u002Fassets","01.game-engine\u002F06.systems\u002F01.assets",{"title":1131,"path":1132,"stem":1133},"Wejście (InputManager)","\u002Fgame-engine\u002Fsystems\u002Finput","01.game-engine\u002F06.systems\u002F02.input",{"title":1135,"path":1136,"stem":1137},"Fizyka (PhysicsManager)","\u002Fgame-engine\u002Fsystems\u002Fphysics","01.game-engine\u002F06.systems\u002F03.physics",{"title":1139,"path":1140,"stem":1141},"Kamera (CameraManager)","\u002Fgame-engine\u002Fsystems\u002Fcamera","01.game-engine\u002F06.systems\u002F04.camera",{"title":1143,"path":1144,"stem":1145},"Audio (AudioManager)","\u002Fgame-engine\u002Fsystems\u002Faudio","01.game-engine\u002F06.systems\u002F05.audio",{"title":1147,"path":1148,"stem":1149},"Tweeny i easing","\u002Fgame-engine\u002Fsystems\u002Ftweens","01.game-engine\u002F06.systems\u002F06.tweens",{"title":1151,"path":1152,"stem":1153,"children":1154,"page":1120},"Dane i zapisy","\u002Fgame-engine\u002Fdata","01.game-engine\u002F07.data",[1155,1159],{"title":1156,"path":1157,"stem":1158},"Format projektu","\u002Fgame-engine\u002Fdata\u002Fproject-format","01.game-engine\u002F07.data\u002F01.project-format",{"title":1160,"path":1161,"stem":1162},"Zapisy gry","\u002Fgame-engine\u002Fdata\u002Fsaves","01.game-engine\u002F07.data\u002F02.saves",{"title":1164,"path":1165,"stem":1166,"children":1167,"page":1120},"Zaawansowane","\u002Fgame-engine\u002Fadvanced","01.game-engine\u002F08.advanced",[1168,1172,1176,1180],{"title":1169,"path":1170,"stem":1171},"Pluginy","\u002Fgame-engine\u002Fadvanced\u002Fplugins","01.game-engine\u002F08.advanced\u002F01.plugins",{"title":1173,"path":1174,"stem":1175},"WebAssembly","\u002Fgame-engine\u002Fadvanced\u002Fwasm","01.game-engine\u002F08.advanced\u002F02.wasm",{"title":1177,"path":1178,"stem":1179},"Debugowanie","\u002Fgame-engine\u002Fadvanced\u002Fdebugging","01.game-engine\u002F08.advanced\u002F03.debugging",{"title":1181,"path":1182,"stem":1183},"Wydajność i benchmarki","\u002Fgame-engine\u002Fadvanced\u002Fperformance","01.game-engine\u002F08.advanced\u002F04.performance",{"title":1185,"path":1186,"stem":1187},"Wdrożenie","\u002Fgame-engine\u002Fdeployment","01.game-engine\u002F09.deployment",{"title":1189,"path":1190,"stem":1191},"Przykłady","\u002Fgame-engine\u002Fexamples","01.game-engine\u002F10.examples",{"title":1193,"path":1194,"stem":1195},"Decyzje architektoniczne","\u002Fgame-engine\u002Fadr","01.game-engine\u002F11.adr",{"title":1197,"path":1198,"stem":1199,"children":1200},"Reverse Proxy","\u002Freverse-proxy","02.reverse-proxy\u002F01.index",[1201,1202,1205,1208,1229],{"title":1091,"path":1198,"stem":1199},{"title":1093,"path":1203,"stem":1204},"\u002Freverse-proxy\u002Fgetting-started","02.reverse-proxy\u002F02.getting-started",{"title":1097,"path":1206,"stem":1207},"\u002Freverse-proxy\u002Fconfiguration","02.reverse-proxy\u002F03.configuration",{"title":1209,"path":1210,"stem":1211,"children":1212,"page":1120},"Ruch i odporność","\u002Freverse-proxy\u002Ftraffic","02.reverse-proxy\u002F04.traffic",[1213,1217,1221,1225],{"title":1214,"path":1215,"stem":1216},"Load balancing","\u002Freverse-proxy\u002Ftraffic\u002Fload-balancing","02.reverse-proxy\u002F04.traffic\u002F01.load-balancing",{"title":1218,"path":1219,"stem":1220},"Health checks","\u002Freverse-proxy\u002Ftraffic\u002Fhealth-checks","02.reverse-proxy\u002F04.traffic\u002F02.health-checks",{"title":1222,"path":1223,"stem":1224},"Circuit breaker i retry","\u002Freverse-proxy\u002Ftraffic\u002Fresilience","02.reverse-proxy\u002F04.traffic\u002F03.resilience",{"title":1226,"path":1227,"stem":1228},"Rate limiting","\u002Freverse-proxy\u002Ftraffic\u002Frate-limiting","02.reverse-proxy\u002F04.traffic\u002F04.rate-limiting",{"title":1230,"path":1231,"stem":1232,"children":1233,"page":1120},"Operacje i wdrożenie","\u002Freverse-proxy\u002Foperations","02.reverse-proxy\u002F05.operations",[1234,1238,1242,1246,1249,1253],{"title":1235,"path":1236,"stem":1237},"Admin API","\u002Freverse-proxy\u002Foperations\u002Fadmin-api","02.reverse-proxy\u002F05.operations\u002F01.admin-api",{"title":1239,"path":1240,"stem":1241},"Metryki i monitoring","\u002Freverse-proxy\u002Foperations\u002Fobservability","02.reverse-proxy\u002F05.operations\u002F02.observability",{"title":1243,"path":1244,"stem":1245},"Bezpieczeństwo","\u002Freverse-proxy\u002Foperations\u002Fsecurity","02.reverse-proxy\u002F05.operations\u002F03.security",{"title":1185,"path":1247,"stem":1248},"\u002Freverse-proxy\u002Foperations\u002Fdeployment","02.reverse-proxy\u002F05.operations\u002F04.deployment",{"title":1250,"path":1251,"stem":1252},"Benchmarki","\u002Freverse-proxy\u002Foperations\u002Fbenchmarks","02.reverse-proxy\u002F05.operations\u002F05.benchmarks",{"title":1254,"path":1255,"stem":1256},"Troubleshooting","\u002Freverse-proxy\u002Foperations\u002Ftroubleshooting","02.reverse-proxy\u002F05.operations\u002F06.troubleshooting",{"title":1258,"path":1259,"stem":1260,"children":1261},"Vector Engine","\u002Fvector-engine","03.vector-engine\u002F01.index",[1262,1263,1266,1287,1300,1320],{"title":1091,"path":1259,"stem":1260},{"title":1093,"path":1264,"stem":1265},"\u002Fvector-engine\u002Fgetting-started","03.vector-engine\u002F02.getting-started",{"title":1267,"path":1268,"stem":1269,"children":1270,"page":1120},"Scena","\u002Fvector-engine\u002Fscene","03.vector-engine\u002F03.scene",[1271,1275,1279,1283],{"title":1272,"path":1273,"stem":1274},"Format sceny 1.0","\u002Fvector-engine\u002Fscene\u002Fscene-format","03.vector-engine\u002F03.scene\u002F01.scene-format",{"title":1276,"path":1277,"stem":1278},"Obiekty sceny","\u002Fvector-engine\u002Fscene\u002Fobjects","03.vector-engine\u002F03.scene\u002F02.objects",{"title":1280,"path":1281,"stem":1282},"Gradienty i warstwy","\u002Fvector-engine\u002Fscene\u002Fgradients-layers","03.vector-engine\u002F03.scene\u002F03.gradients-layers",{"title":1284,"path":1285,"stem":1286},"Przykłady scen","\u002Fvector-engine\u002Fscene\u002Fexamples","03.vector-engine\u002F03.scene\u002F04.examples",{"title":1288,"path":1289,"stem":1290,"children":1291,"page":1120},"Eksport","\u002Fvector-engine\u002Fexport","03.vector-engine\u002F04.export",[1292,1296],{"title":1293,"path":1294,"stem":1295},"Formaty eksportu","\u002Fvector-engine\u002Fexport\u002Fexport-formats","03.vector-engine\u002F04.export\u002F01.export-formats",{"title":1297,"path":1298,"stem":1299},"Proces eksportu","\u002Fvector-engine\u002Fexport\u002Fexport-workflow","03.vector-engine\u002F04.export\u002F02.export-workflow",{"title":1301,"path":1302,"stem":1303,"children":1304,"page":1120},"Wnętrze silnika","\u002Fvector-engine\u002Finternals","03.vector-engine\u002F05.internals",[1305,1308,1312,1316],{"title":1077,"path":1306,"stem":1307},"\u002Fvector-engine\u002Finternals\u002Farchitecture","03.vector-engine\u002F05.internals\u002F01.architecture",{"title":1309,"path":1310,"stem":1311},"WebAssembly i workery","\u002Fvector-engine\u002Finternals\u002Fwasm","03.vector-engine\u002F05.internals\u002F02.wasm",{"title":1313,"path":1314,"stem":1315},"Workspace i panele","\u002Fvector-engine\u002Finternals\u002Fworkspace","03.vector-engine\u002F05.internals\u002F03.workspace",{"title":1317,"path":1318,"stem":1319},"Breakpointy","\u002Fvector-engine\u002Finternals\u002Fbreakpoints","03.vector-engine\u002F05.internals\u002F04.breakpoints",{"title":1321,"path":1322,"stem":1323},"Wdrożenie na Vercel","\u002Fvector-engine\u002Fdeployment","03.vector-engine\u002F06.deployment",1793986307367]