[{"data":1,"prerenderedAt":1213},["ShallowReactive",2],{"doc:\u002Fgame-engine\u002Fcore\u002Ftime":3,"surround:\u002Fgame-engine\u002Fcore\u002Ftime":962,"navigation":973},{"id":4,"title":5,"body":6,"description":955,"extension":956,"meta":957,"navigation":209,"path":958,"seo":959,"stem":960,"__hash__":961},"docs\u002F01.game-engine\u002F05.core\u002F02.time.md","Czas i pętla gry",{"type":7,"value":8,"toc":947},"minimark",[9,14,38,48,52,306,390,394,404,501,505,515,570,710,734,738,888,901,905,936,943],[10,11,13],"h2",{"id":12},"jedno-źródło-czasu","Jedno źródło czasu",[15,16,17,21,22,26,27,30,31,34,35,37],"p",{},[18,19,20],"code",{},"Time"," to ",[23,24,25],"strong",{},"jedyne"," źródło ",[18,28,29],{},"deltaTime"," w silniku. Nie ma drugiej pętli ",[18,32,33],{},"requestAnimationFrame"," — adapter przekazuje surowy czas klatki, a ",[18,36,20],{}," go clampuje i skaluje.",[39,40,46],"pre",{"className":41,"code":43,"language":44,"meta":45},[42],"language-text","deltaTime = min(rawDeltaMs \u002F 1000, maxDeltaTime) × timeScale\n","text","",[18,47,43],{"__ignoreMap":45},[10,49,51],{"id":50},"api","API",[39,53,57],{"className":54,"code":55,"language":56,"meta":45,"style":45},"language-ts shiki shiki-themes github-light github-dark","get elapsed()\nget gameTime()\nget realElapsed()\nget deltaTime()\nget realDeltaTime()\nget rawDeltaTime()\nget frame()\nget isPaused()\nget timeScale()\nget maxDeltaTime()\nget fixedDelta()\nget fixedAlpha()\nget isClamped()\nget pendingFixedSteps()\n\nupdate(rawDeltaMs: number): void\nsetTimeScale(value: number): this\nsetFixedStep(hz: number, maxSteps = 5): this\nconsumeFixedStep(): boolean\npause(): void\nresume(): void\nreset(): void\ntoState(): TimeState\n","ts",[18,58,59,75,85,95,104,114,124,134,144,154,164,174,184,194,204,211,224,237,257,266,277,287,297],{"__ignoreMap":45},[60,61,64,68,72],"span",{"class":62,"line":63},"line",1,[60,65,67],{"class":66},"sVt8B","get ",[60,69,71],{"class":70},"sScJk","elapsed",[60,73,74],{"class":66},"()\n",[60,76,78,80,83],{"class":62,"line":77},2,[60,79,67],{"class":66},[60,81,82],{"class":70},"gameTime",[60,84,74],{"class":66},[60,86,88,90,93],{"class":62,"line":87},3,[60,89,67],{"class":66},[60,91,92],{"class":70},"realElapsed",[60,94,74],{"class":66},[60,96,98,100,102],{"class":62,"line":97},4,[60,99,67],{"class":66},[60,101,29],{"class":70},[60,103,74],{"class":66},[60,105,107,109,112],{"class":62,"line":106},5,[60,108,67],{"class":66},[60,110,111],{"class":70},"realDeltaTime",[60,113,74],{"class":66},[60,115,117,119,122],{"class":62,"line":116},6,[60,118,67],{"class":66},[60,120,121],{"class":70},"rawDeltaTime",[60,123,74],{"class":66},[60,125,127,129,132],{"class":62,"line":126},7,[60,128,67],{"class":66},[60,130,131],{"class":70},"frame",[60,133,74],{"class":66},[60,135,137,139,142],{"class":62,"line":136},8,[60,138,67],{"class":66},[60,140,141],{"class":70},"isPaused",[60,143,74],{"class":66},[60,145,147,149,152],{"class":62,"line":146},9,[60,148,67],{"class":66},[60,150,151],{"class":70},"timeScale",[60,153,74],{"class":66},[60,155,157,159,162],{"class":62,"line":156},10,[60,158,67],{"class":66},[60,160,161],{"class":70},"maxDeltaTime",[60,163,74],{"class":66},[60,165,167,169,172],{"class":62,"line":166},11,[60,168,67],{"class":66},[60,170,171],{"class":70},"fixedDelta",[60,173,74],{"class":66},[60,175,177,179,182],{"class":62,"line":176},12,[60,178,67],{"class":66},[60,180,181],{"class":70},"fixedAlpha",[60,183,74],{"class":66},[60,185,187,189,192],{"class":62,"line":186},13,[60,188,67],{"class":66},[60,190,191],{"class":70},"isClamped",[60,193,74],{"class":66},[60,195,197,199,202],{"class":62,"line":196},14,[60,198,67],{"class":66},[60,200,201],{"class":70},"pendingFixedSteps",[60,203,74],{"class":66},[60,205,207],{"class":62,"line":206},15,[60,208,210],{"emptyLinePlaceholder":209},true,"\n",[60,212,214,217,220],{"class":62,"line":213},16,[60,215,216],{"class":70},"update",[60,218,219],{"class":66},"(rawDeltaMs: number): ",[60,221,223],{"class":222},"szBVR","void\n",[60,225,227,230,233],{"class":62,"line":226},17,[60,228,229],{"class":70},"setTimeScale",[60,231,232],{"class":66},"(value: number): ",[60,234,236],{"class":235},"sj4cs","this\n",[60,238,240,243,246,249,252,255],{"class":62,"line":239},18,[60,241,242],{"class":70},"setFixedStep",[60,244,245],{"class":66},"(hz: number, maxSteps ",[60,247,248],{"class":222},"=",[60,250,251],{"class":235}," 5",[60,253,254],{"class":66},"): ",[60,256,236],{"class":235},[60,258,260,263],{"class":62,"line":259},19,[60,261,262],{"class":70},"consumeFixedStep",[60,264,265],{"class":66},"(): boolean\n",[60,267,269,272,275],{"class":62,"line":268},20,[60,270,271],{"class":70},"pause",[60,273,274],{"class":66},"(): ",[60,276,223],{"class":222},[60,278,280,283,285],{"class":62,"line":279},21,[60,281,282],{"class":70},"resume",[60,284,274],{"class":66},[60,286,223],{"class":222},[60,288,290,293,295],{"class":62,"line":289},22,[60,291,292],{"class":70},"reset",[60,294,274],{"class":66},[60,296,223],{"class":222},[60,298,300,303],{"class":62,"line":299},23,[60,301,302],{"class":70},"toState",[60,304,305],{"class":66},"(): TimeState\n",[307,308,309,322],"table",{},[310,311,312],"thead",{},[313,314,315,319],"tr",{},[316,317,318],"th",{},"Właściwość",[316,320,321],{},"Znaczenie",[323,324,325,341,350,361,372,381],"tbody",{},[313,326,327,335],{},[328,329,330,332,333],"td",{},[18,331,71],{}," \u002F ",[18,334,82],{},[328,336,337,338,340],{},"Sekundy gry (skalowane przez ",[18,339,151],{},")",[313,342,343,347],{},[328,344,345],{},[18,346,92],{},[328,348,349],{},"Sekundy rzeczywiste",[313,351,352,356],{},[328,353,354],{},[18,355,29],{},[328,357,358,359],{},"Klatka gry po clampie i ",[18,360,151],{},[313,362,363,367],{},[328,364,365],{},[18,366,111],{},[328,368,369,370],{},"Klatka po clampie, bez ",[18,371,151],{},[313,373,374,378],{},[328,375,376],{},[18,377,121],{},[328,379,380],{},"Surowa klatka z adaptera",[313,382,383,387],{},[328,384,385],{},[18,386,191],{},[328,388,389],{},"Klatka została obcięta (np. po powrocie z innej karty)",[10,391,393],{"id":392},"clamp-i-powrót-z-innej-karty","Clamp i powrót z innej karty",[15,395,396,397,399,400,403],{},"Gdy gracz wraca po minucie z innej karty, surowa klatka mogłaby wynosić 60 s — fizyka eksploduje. ",[18,398,161],{}," (domyślnie ",[18,401,402],{},"0.1"," s) ucina skok:",[39,405,407],{"className":54,"code":406,"language":56,"meta":45,"style":45},"update(dt: number) {\n  if (this.getTime().isClamped) {\n    this.getLogger().info('Klatka obcięta — powrót z tła')\n  }\n  this.player.translate(this.speed * dt, 0)\n}\n",[18,408,409,416,436,462,467,496],{"__ignoreMap":45},[60,410,411,413],{"class":62,"line":63},[60,412,216],{"class":70},[60,414,415],{"class":66},"(dt: number) {\n",[60,417,418,421,424,427,430,433],{"class":62,"line":77},[60,419,420],{"class":222},"  if",[60,422,423],{"class":66}," (",[60,425,426],{"class":235},"this",[60,428,429],{"class":66},".",[60,431,432],{"class":70},"getTime",[60,434,435],{"class":66},"().isClamped) {\n",[60,437,438,441,443,446,449,452,455,459],{"class":62,"line":87},[60,439,440],{"class":235},"    this",[60,442,429],{"class":66},[60,444,445],{"class":70},"getLogger",[60,447,448],{"class":66},"().",[60,450,451],{"class":70},"info",[60,453,454],{"class":66},"(",[60,456,458],{"class":457},"sZZnC","'Klatka obcięta — powrót z tła'",[60,460,461],{"class":66},")\n",[60,463,464],{"class":62,"line":97},[60,465,466],{"class":66},"  }\n",[60,468,469,472,475,478,480,482,485,488,491,494],{"class":62,"line":106},[60,470,471],{"class":235},"  this",[60,473,474],{"class":66},".player.",[60,476,477],{"class":70},"translate",[60,479,454],{"class":66},[60,481,426],{"class":235},[60,483,484],{"class":66},".speed ",[60,486,487],{"class":222},"*",[60,489,490],{"class":66}," dt, ",[60,492,493],{"class":235},"0",[60,495,461],{"class":66},[60,497,498],{"class":62,"line":116},[60,499,500],{"class":66},"}\n",[10,502,504],{"id":503},"krok-stały-fixed-step","Krok stały (fixed step)",[15,506,507,508,511,512,514],{},"Fizyka i logika wymagająca determinizmu powinny działać w ",[18,509,510],{},"fixedUpdate",", nie w ",[18,513,216],{},":",[39,516,518],{"className":54,"code":517,"language":56,"meta":45,"style":45},"const engine = createEngine({\n  parent: 'app',\n  fixedStep: { hz: 60, maxSteps: 5 }\n})\n",[18,519,520,537,548,565],{"__ignoreMap":45},[60,521,522,525,528,531,534],{"class":62,"line":63},[60,523,524],{"class":222},"const",[60,526,527],{"class":235}," engine",[60,529,530],{"class":222}," =",[60,532,533],{"class":70}," createEngine",[60,535,536],{"class":66},"({\n",[60,538,539,542,545],{"class":62,"line":77},[60,540,541],{"class":66},"  parent: ",[60,543,544],{"class":457},"'app'",[60,546,547],{"class":66},",\n",[60,549,550,553,556,559,562],{"class":62,"line":87},[60,551,552],{"class":66},"  fixedStep: { hz: ",[60,554,555],{"class":235},"60",[60,557,558],{"class":66},", maxSteps: ",[60,560,561],{"class":235},"5",[60,563,564],{"class":66}," }\n",[60,566,567],{"class":62,"line":97},[60,568,569],{"class":66},"})\n",[39,571,573],{"className":54,"code":572,"language":56,"meta":45,"style":45},"class GameScene extends Scene {\n  fixedUpdate(fixedDelta: number) {\n    this.getPhysics().setVelocity(this.player, this.vx, this.vy)\n  }\n\n  update(dt: number) {\n    const alpha = this.getTime().fixedAlpha\n    this.camera.smoothTo(this.player.x, alpha)\n  }\n}\n",[18,574,575,592,610,641,645,649,665,685,702,706],{"__ignoreMap":45},[60,576,577,580,583,586,589],{"class":62,"line":63},[60,578,579],{"class":222},"class",[60,581,582],{"class":70}," GameScene",[60,584,585],{"class":222}," extends",[60,587,588],{"class":70}," Scene",[60,590,591],{"class":66}," {\n",[60,593,594,597,599,602,604,607],{"class":62,"line":77},[60,595,596],{"class":70},"  fixedUpdate",[60,598,454],{"class":66},[60,600,171],{"class":601},"s4XuR",[60,603,514],{"class":222},[60,605,606],{"class":235}," number",[60,608,609],{"class":66},") {\n",[60,611,612,614,616,619,621,624,626,628,631,633,636,638],{"class":62,"line":87},[60,613,440],{"class":235},[60,615,429],{"class":66},[60,617,618],{"class":70},"getPhysics",[60,620,448],{"class":66},[60,622,623],{"class":70},"setVelocity",[60,625,454],{"class":66},[60,627,426],{"class":235},[60,629,630],{"class":66},".player, ",[60,632,426],{"class":235},[60,634,635],{"class":66},".vx, ",[60,637,426],{"class":235},[60,639,640],{"class":66},".vy)\n",[60,642,643],{"class":62,"line":97},[60,644,466],{"class":66},[60,646,647],{"class":62,"line":106},[60,648,210],{"emptyLinePlaceholder":209},[60,650,651,654,656,659,661,663],{"class":62,"line":116},[60,652,653],{"class":70},"  update",[60,655,454],{"class":66},[60,657,658],{"class":601},"dt",[60,660,514],{"class":222},[60,662,606],{"class":235},[60,664,609],{"class":66},[60,666,667,670,673,675,678,680,682],{"class":62,"line":126},[60,668,669],{"class":222},"    const",[60,671,672],{"class":235}," alpha",[60,674,530],{"class":222},[60,676,677],{"class":235}," this",[60,679,429],{"class":66},[60,681,432],{"class":70},[60,683,684],{"class":66},"().fixedAlpha\n",[60,686,687,689,692,695,697,699],{"class":62,"line":136},[60,688,440],{"class":235},[60,690,691],{"class":66},".camera.",[60,693,694],{"class":70},"smoothTo",[60,696,454],{"class":66},[60,698,426],{"class":235},[60,700,701],{"class":66},".player.x, alpha)\n",[60,703,704],{"class":62,"line":146},[60,705,466],{"class":66},[60,707,708],{"class":62,"line":156},[60,709,500],{"class":66},[711,712,713,723,728],"ul",{},[714,715,716,718,719,722],"li",{},[18,717,171],{}," to stały krok (np. ",[18,720,721],{},"1\u002F60",").",[714,724,725,727],{},[18,726,181],{}," to interpolacja między krokami — użyj jej do płynnego renderu.",[714,729,730,733],{},[18,731,732],{},"maxSteps"," ogranicza nadganianie po lagi (domyślnie 5), więc spirala śmierci nie zjada klatki.",[10,735,737],{"id":736},"slow-motion-i-przyspieszenie","Slow motion i przyspieszenie",[39,739,741],{"className":54,"code":740,"language":56,"meta":45,"style":45},"class GameScene extends Scene {\n  update() {\n    const input = this.getInput()\n    if (input.isActionPressed('time-slow')) this.getTime().setTimeScale(0.3)\n    if (input.isActionPressed('time-fast')) this.getTime().setTimeScale(2)\n    if (input.isActionPressed('time-normal')) this.getTime().setTimeScale(1)\n  }\n}\n",[18,742,743,755,762,780,816,848,880,884],{"__ignoreMap":45},[60,744,745,747,749,751,753],{"class":62,"line":63},[60,746,579],{"class":222},[60,748,582],{"class":70},[60,750,585],{"class":222},[60,752,588],{"class":70},[60,754,591],{"class":66},[60,756,757,759],{"class":62,"line":77},[60,758,653],{"class":70},[60,760,761],{"class":66},"() {\n",[60,763,764,766,769,771,773,775,778],{"class":62,"line":87},[60,765,669],{"class":222},[60,767,768],{"class":235}," input",[60,770,530],{"class":222},[60,772,677],{"class":235},[60,774,429],{"class":66},[60,776,777],{"class":70},"getInput",[60,779,74],{"class":66},[60,781,782,785,788,791,793,796,799,801,803,805,807,809,811,814],{"class":62,"line":97},[60,783,784],{"class":222},"    if",[60,786,787],{"class":66}," (input.",[60,789,790],{"class":70},"isActionPressed",[60,792,454],{"class":66},[60,794,795],{"class":457},"'time-slow'",[60,797,798],{"class":66},")) ",[60,800,426],{"class":235},[60,802,429],{"class":66},[60,804,432],{"class":70},[60,806,448],{"class":66},[60,808,229],{"class":70},[60,810,454],{"class":66},[60,812,813],{"class":235},"0.3",[60,815,461],{"class":66},[60,817,818,820,822,824,826,829,831,833,835,837,839,841,843,846],{"class":62,"line":106},[60,819,784],{"class":222},[60,821,787],{"class":66},[60,823,790],{"class":70},[60,825,454],{"class":66},[60,827,828],{"class":457},"'time-fast'",[60,830,798],{"class":66},[60,832,426],{"class":235},[60,834,429],{"class":66},[60,836,432],{"class":70},[60,838,448],{"class":66},[60,840,229],{"class":70},[60,842,454],{"class":66},[60,844,845],{"class":235},"2",[60,847,461],{"class":66},[60,849,850,852,854,856,858,861,863,865,867,869,871,873,875,878],{"class":62,"line":116},[60,851,784],{"class":222},[60,853,787],{"class":66},[60,855,790],{"class":70},[60,857,454],{"class":66},[60,859,860],{"class":457},"'time-normal'",[60,862,798],{"class":66},[60,864,426],{"class":235},[60,866,429],{"class":66},[60,868,432],{"class":70},[60,870,448],{"class":66},[60,872,229],{"class":70},[60,874,454],{"class":66},[60,876,877],{"class":235},"1",[60,879,461],{"class":66},[60,881,882],{"class":62,"line":126},[60,883,466],{"class":66},[60,885,886],{"class":62,"line":136},[60,887,500],{"class":66},[889,890,892],"callout",{"type":891},"tip",[15,893,894,895,897,898,900],{},"UI i liczniki czasu rzeczywistego (np. czas sesji) opieraj na ",[18,896,92],{},", nie na ",[18,899,71],{}," — inaczej slow motion zwolni też zegar, który nie powinien zwalniać.",[10,902,904],{"id":903},"pauza","Pauza",[39,906,908],{"className":54,"code":907,"language":56,"meta":45,"style":45},"engine.pause()\nengine.getTime().isPaused\nengine.resume()\n",[18,909,910,919,928],{"__ignoreMap":45},[60,911,912,915,917],{"class":62,"line":63},[60,913,914],{"class":66},"engine.",[60,916,271],{"class":70},[60,918,74],{"class":66},[60,920,921,923,925],{"class":62,"line":77},[60,922,914],{"class":66},[60,924,432],{"class":70},[60,926,927],{"class":66},"().isPaused\n",[60,929,930,932,934],{"class":62,"line":87},[60,931,914],{"class":66},[60,933,282],{"class":70},[60,935,74],{"class":66},[15,937,938,939,942],{},"Pauza zatrzymuje czas gry i audio. ",[18,940,941],{},"Time.reset()"," zeruje liczniki — przydatne przy restarcie poziomu bez restartu silnika.",[944,945,946],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":45,"searchDepth":87,"depth":87,"links":948},[949,950,951,952,953,954],{"id":12,"depth":77,"text":13},{"id":50,"depth":77,"text":51},{"id":392,"depth":77,"text":393},{"id":503,"depth":77,"text":504},{"id":736,"depth":77,"text":737},{"id":903,"depth":77,"text":904},"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.","md",{},"\u002Fgame-engine\u002Fcore\u002Ftime",{"title":5,"description":955},"01.game-engine\u002F05.core\u002F02.time","kDcgORaMU4bSZsfxaxtS17YgnJyy5n98HwEItloLt3w",[963,968],{"title":964,"path":965,"stem":966,"description":967,"children":-1},"Silnik i cykl życia","\u002Fgame-engine\u002Fcore\u002Fengine","01.game-engine\u002F05.core\u002F01.engine","createEngine, rejestracja scen, start, pauza, timeScale i sprzątanie. Pełna referencja API obiektu Engine z przykładami.",{"title":969,"path":970,"stem":971,"description":972,"children":-1},"Sceny","\u002Fgame-engine\u002Fcore\u002Fscenes","01.game-engine\u002F05.core\u002F03.scenes","Cykl życia sceny, SceneManager, dane startowe, fabryki obiektów i automatyczne sprzątanie przy shutdown.",[974,1085,1146],{"title":975,"path":976,"stem":977,"children":978},"2D Game Engine","\u002Fgame-engine","01.game-engine\u002F01.index",[979,981,985,989,993,1010,1039,1052,1073,1077,1081],{"title":980,"path":976,"stem":977},"Przegląd",{"title":982,"path":983,"stem":984},"Szybki start","\u002Fgame-engine\u002Fgetting-started","01.game-engine\u002F02.getting-started",{"title":986,"path":987,"stem":988},"Konfiguracja","\u002Fgame-engine\u002Fconfiguration","01.game-engine\u002F03.configuration",{"title":990,"path":991,"stem":992},"Architektura","\u002Fgame-engine\u002Farchitecture","01.game-engine\u002F04.architecture",{"title":994,"path":995,"stem":996,"children":997,"page":1009},"Rdzeń","\u002Fgame-engine\u002Fcore","01.game-engine\u002F05.core",[998,999,1000,1001,1005],{"title":964,"path":965,"stem":966},{"title":5,"path":958,"stem":960},{"title":969,"path":970,"stem":971},{"title":1002,"path":1003,"stem":1004},"Obiekty i komponenty","\u002Fgame-engine\u002Fcore\u002Fobjects","01.game-engine\u002F05.core\u002F04.objects",{"title":1006,"path":1007,"stem":1008},"Zdarzenia i harmonogram","\u002Fgame-engine\u002Fcore\u002Fevents","01.game-engine\u002F05.core\u002F05.events",false,{"title":1011,"path":1012,"stem":1013,"children":1014,"page":1009},"Systemy","\u002Fgame-engine\u002Fsystems","01.game-engine\u002F06.systems",[1015,1019,1023,1027,1031,1035],{"title":1016,"path":1017,"stem":1018},"Zasoby (AssetManager)","\u002Fgame-engine\u002Fsystems\u002Fassets","01.game-engine\u002F06.systems\u002F01.assets",{"title":1020,"path":1021,"stem":1022},"Wejście (InputManager)","\u002Fgame-engine\u002Fsystems\u002Finput","01.game-engine\u002F06.systems\u002F02.input",{"title":1024,"path":1025,"stem":1026},"Fizyka (PhysicsManager)","\u002Fgame-engine\u002Fsystems\u002Fphysics","01.game-engine\u002F06.systems\u002F03.physics",{"title":1028,"path":1029,"stem":1030},"Kamera (CameraManager)","\u002Fgame-engine\u002Fsystems\u002Fcamera","01.game-engine\u002F06.systems\u002F04.camera",{"title":1032,"path":1033,"stem":1034},"Audio (AudioManager)","\u002Fgame-engine\u002Fsystems\u002Faudio","01.game-engine\u002F06.systems\u002F05.audio",{"title":1036,"path":1037,"stem":1038},"Tweeny i easing","\u002Fgame-engine\u002Fsystems\u002Ftweens","01.game-engine\u002F06.systems\u002F06.tweens",{"title":1040,"path":1041,"stem":1042,"children":1043,"page":1009},"Dane i zapisy","\u002Fgame-engine\u002Fdata","01.game-engine\u002F07.data",[1044,1048],{"title":1045,"path":1046,"stem":1047},"Format projektu","\u002Fgame-engine\u002Fdata\u002Fproject-format","01.game-engine\u002F07.data\u002F01.project-format",{"title":1049,"path":1050,"stem":1051},"Zapisy gry","\u002Fgame-engine\u002Fdata\u002Fsaves","01.game-engine\u002F07.data\u002F02.saves",{"title":1053,"path":1054,"stem":1055,"children":1056,"page":1009},"Zaawansowane","\u002Fgame-engine\u002Fadvanced","01.game-engine\u002F08.advanced",[1057,1061,1065,1069],{"title":1058,"path":1059,"stem":1060},"Pluginy","\u002Fgame-engine\u002Fadvanced\u002Fplugins","01.game-engine\u002F08.advanced\u002F01.plugins",{"title":1062,"path":1063,"stem":1064},"WebAssembly","\u002Fgame-engine\u002Fadvanced\u002Fwasm","01.game-engine\u002F08.advanced\u002F02.wasm",{"title":1066,"path":1067,"stem":1068},"Debugowanie","\u002Fgame-engine\u002Fadvanced\u002Fdebugging","01.game-engine\u002F08.advanced\u002F03.debugging",{"title":1070,"path":1071,"stem":1072},"Wydajność i benchmarki","\u002Fgame-engine\u002Fadvanced\u002Fperformance","01.game-engine\u002F08.advanced\u002F04.performance",{"title":1074,"path":1075,"stem":1076},"Wdrożenie","\u002Fgame-engine\u002Fdeployment","01.game-engine\u002F09.deployment",{"title":1078,"path":1079,"stem":1080},"Przykłady","\u002Fgame-engine\u002Fexamples","01.game-engine\u002F10.examples",{"title":1082,"path":1083,"stem":1084},"Decyzje architektoniczne","\u002Fgame-engine\u002Fadr","01.game-engine\u002F11.adr",{"title":1086,"path":1087,"stem":1088,"children":1089},"Reverse Proxy","\u002Freverse-proxy","02.reverse-proxy\u002F01.index",[1090,1091,1094,1097,1118],{"title":980,"path":1087,"stem":1088},{"title":982,"path":1092,"stem":1093},"\u002Freverse-proxy\u002Fgetting-started","02.reverse-proxy\u002F02.getting-started",{"title":986,"path":1095,"stem":1096},"\u002Freverse-proxy\u002Fconfiguration","02.reverse-proxy\u002F03.configuration",{"title":1098,"path":1099,"stem":1100,"children":1101,"page":1009},"Ruch i odporność","\u002Freverse-proxy\u002Ftraffic","02.reverse-proxy\u002F04.traffic",[1102,1106,1110,1114],{"title":1103,"path":1104,"stem":1105},"Load balancing","\u002Freverse-proxy\u002Ftraffic\u002Fload-balancing","02.reverse-proxy\u002F04.traffic\u002F01.load-balancing",{"title":1107,"path":1108,"stem":1109},"Health checks","\u002Freverse-proxy\u002Ftraffic\u002Fhealth-checks","02.reverse-proxy\u002F04.traffic\u002F02.health-checks",{"title":1111,"path":1112,"stem":1113},"Circuit breaker i retry","\u002Freverse-proxy\u002Ftraffic\u002Fresilience","02.reverse-proxy\u002F04.traffic\u002F03.resilience",{"title":1115,"path":1116,"stem":1117},"Rate limiting","\u002Freverse-proxy\u002Ftraffic\u002Frate-limiting","02.reverse-proxy\u002F04.traffic\u002F04.rate-limiting",{"title":1119,"path":1120,"stem":1121,"children":1122,"page":1009},"Operacje i wdrożenie","\u002Freverse-proxy\u002Foperations","02.reverse-proxy\u002F05.operations",[1123,1127,1131,1135,1138,1142],{"title":1124,"path":1125,"stem":1126},"Admin API","\u002Freverse-proxy\u002Foperations\u002Fadmin-api","02.reverse-proxy\u002F05.operations\u002F01.admin-api",{"title":1128,"path":1129,"stem":1130},"Metryki i monitoring","\u002Freverse-proxy\u002Foperations\u002Fobservability","02.reverse-proxy\u002F05.operations\u002F02.observability",{"title":1132,"path":1133,"stem":1134},"Bezpieczeństwo","\u002Freverse-proxy\u002Foperations\u002Fsecurity","02.reverse-proxy\u002F05.operations\u002F03.security",{"title":1074,"path":1136,"stem":1137},"\u002Freverse-proxy\u002Foperations\u002Fdeployment","02.reverse-proxy\u002F05.operations\u002F04.deployment",{"title":1139,"path":1140,"stem":1141},"Benchmarki","\u002Freverse-proxy\u002Foperations\u002Fbenchmarks","02.reverse-proxy\u002F05.operations\u002F05.benchmarks",{"title":1143,"path":1144,"stem":1145},"Troubleshooting","\u002Freverse-proxy\u002Foperations\u002Ftroubleshooting","02.reverse-proxy\u002F05.operations\u002F06.troubleshooting",{"title":1147,"path":1148,"stem":1149,"children":1150},"Vector Engine","\u002Fvector-engine","03.vector-engine\u002F01.index",[1151,1152,1155,1176,1189,1209],{"title":980,"path":1148,"stem":1149},{"title":982,"path":1153,"stem":1154},"\u002Fvector-engine\u002Fgetting-started","03.vector-engine\u002F02.getting-started",{"title":1156,"path":1157,"stem":1158,"children":1159,"page":1009},"Scena","\u002Fvector-engine\u002Fscene","03.vector-engine\u002F03.scene",[1160,1164,1168,1172],{"title":1161,"path":1162,"stem":1163},"Format sceny 1.0","\u002Fvector-engine\u002Fscene\u002Fscene-format","03.vector-engine\u002F03.scene\u002F01.scene-format",{"title":1165,"path":1166,"stem":1167},"Obiekty sceny","\u002Fvector-engine\u002Fscene\u002Fobjects","03.vector-engine\u002F03.scene\u002F02.objects",{"title":1169,"path":1170,"stem":1171},"Gradienty i warstwy","\u002Fvector-engine\u002Fscene\u002Fgradients-layers","03.vector-engine\u002F03.scene\u002F03.gradients-layers",{"title":1173,"path":1174,"stem":1175},"Przykłady scen","\u002Fvector-engine\u002Fscene\u002Fexamples","03.vector-engine\u002F03.scene\u002F04.examples",{"title":1177,"path":1178,"stem":1179,"children":1180,"page":1009},"Eksport","\u002Fvector-engine\u002Fexport","03.vector-engine\u002F04.export",[1181,1185],{"title":1182,"path":1183,"stem":1184},"Formaty eksportu","\u002Fvector-engine\u002Fexport\u002Fexport-formats","03.vector-engine\u002F04.export\u002F01.export-formats",{"title":1186,"path":1187,"stem":1188},"Proces eksportu","\u002Fvector-engine\u002Fexport\u002Fexport-workflow","03.vector-engine\u002F04.export\u002F02.export-workflow",{"title":1190,"path":1191,"stem":1192,"children":1193,"page":1009},"Wnętrze silnika","\u002Fvector-engine\u002Finternals","03.vector-engine\u002F05.internals",[1194,1197,1201,1205],{"title":990,"path":1195,"stem":1196},"\u002Fvector-engine\u002Finternals\u002Farchitecture","03.vector-engine\u002F05.internals\u002F01.architecture",{"title":1198,"path":1199,"stem":1200},"WebAssembly i workery","\u002Fvector-engine\u002Finternals\u002Fwasm","03.vector-engine\u002F05.internals\u002F02.wasm",{"title":1202,"path":1203,"stem":1204},"Workspace i panele","\u002Fvector-engine\u002Finternals\u002Fworkspace","03.vector-engine\u002F05.internals\u002F03.workspace",{"title":1206,"path":1207,"stem":1208},"Breakpointy","\u002Fvector-engine\u002Finternals\u002Fbreakpoints","03.vector-engine\u002F05.internals\u002F04.breakpoints",{"title":1210,"path":1211,"stem":1212},"Wdrożenie na Vercel","\u002Fvector-engine\u002Fdeployment","03.vector-engine\u002F06.deployment",1793986307367]