[{"data":1,"prerenderedAt":1126},["ShallowReactive",2],{"doc:\u002Fgame-engine\u002Fsystems\u002Fcamera":3,"surround:\u002Fgame-engine\u002Fsystems\u002Fcamera":875,"navigation":886},{"id":4,"title":5,"body":6,"description":868,"extension":869,"meta":870,"navigation":279,"path":871,"seo":872,"stem":873,"__hash__":874},"docs\u002F01.game-engine\u002F06.systems\u002F04.camera.md","Kamera (CameraManager)",{"type":7,"value":8,"toc":858},"minimark",[9,14,244,248,347,358,362,504,522,527,649,653,705,709,751,770,774,781,851,854],[10,11,13],"h2",{"id":12},"api","API",[15,16,21],"pre",{"className":17,"code":18,"language":19,"meta":20,"style":20},"language-ts shiki shiki-themes github-light github-dark","follow(target, lerpX = 0.1, lerpY = 0.1); stopFollow()\nsetZoom(z); getZoom(); setBounds(x, y, w, h)\nsetBackgroundColor(color); getCenter(); worldToScreen(x, y)\nshake(duration = 100, intensity = 0.01)\nfadeIn(duration = 300, r = 0, g = 0, b = 0)\nfadeOut(duration = 300, r = 0, g = 0, b = 0)\nflash(duration = 150, r = 255, g = 255, b = 255)\nresetEffects(); supportsEffects(): boolean\n","ts","",[22,23,24,61,82,102,127,164,196,230],"code",{"__ignoreMap":20},[25,26,29,33,37,41,45,48,50,52,55,58],"span",{"class":27,"line":28},"line",1,[25,30,32],{"class":31},"sScJk","follow",[25,34,36],{"class":35},"sVt8B","(target, lerpX ",[25,38,40],{"class":39},"szBVR","=",[25,42,44],{"class":43},"sj4cs"," 0.1",[25,46,47],{"class":35},", lerpY ",[25,49,40],{"class":39},[25,51,44],{"class":43},[25,53,54],{"class":35},"); ",[25,56,57],{"class":31},"stopFollow",[25,59,60],{"class":35},"()\n",[25,62,64,67,70,73,76,79],{"class":27,"line":63},2,[25,65,66],{"class":31},"setZoom",[25,68,69],{"class":35},"(z); ",[25,71,72],{"class":31},"getZoom",[25,74,75],{"class":35},"(); ",[25,77,78],{"class":31},"setBounds",[25,80,81],{"class":35},"(x, y, w, h)\n",[25,83,85,88,91,94,96,99],{"class":27,"line":84},3,[25,86,87],{"class":31},"setBackgroundColor",[25,89,90],{"class":35},"(color); ",[25,92,93],{"class":31},"getCenter",[25,95,75],{"class":35},[25,97,98],{"class":31},"worldToScreen",[25,100,101],{"class":35},"(x, y)\n",[25,103,105,108,111,113,116,119,121,124],{"class":27,"line":104},4,[25,106,107],{"class":31},"shake",[25,109,110],{"class":35},"(duration ",[25,112,40],{"class":39},[25,114,115],{"class":43}," 100",[25,117,118],{"class":35},", intensity ",[25,120,40],{"class":39},[25,122,123],{"class":43}," 0.01",[25,125,126],{"class":35},")\n",[25,128,130,133,135,137,140,143,145,148,151,153,155,158,160,162],{"class":27,"line":129},5,[25,131,132],{"class":31},"fadeIn",[25,134,110],{"class":35},[25,136,40],{"class":39},[25,138,139],{"class":43}," 300",[25,141,142],{"class":35},", r ",[25,144,40],{"class":39},[25,146,147],{"class":43}," 0",[25,149,150],{"class":35},", g ",[25,152,40],{"class":39},[25,154,147],{"class":43},[25,156,157],{"class":35},", b ",[25,159,40],{"class":39},[25,161,147],{"class":43},[25,163,126],{"class":35},[25,165,167,170,172,174,176,178,180,182,184,186,188,190,192,194],{"class":27,"line":166},6,[25,168,169],{"class":31},"fadeOut",[25,171,110],{"class":35},[25,173,40],{"class":39},[25,175,139],{"class":43},[25,177,142],{"class":35},[25,179,40],{"class":39},[25,181,147],{"class":43},[25,183,150],{"class":35},[25,185,40],{"class":39},[25,187,147],{"class":43},[25,189,157],{"class":35},[25,191,40],{"class":39},[25,193,147],{"class":43},[25,195,126],{"class":35},[25,197,199,202,204,206,209,211,213,216,218,220,222,224,226,228],{"class":27,"line":198},7,[25,200,201],{"class":31},"flash",[25,203,110],{"class":35},[25,205,40],{"class":39},[25,207,208],{"class":43}," 150",[25,210,142],{"class":35},[25,212,40],{"class":39},[25,214,215],{"class":43}," 255",[25,217,150],{"class":35},[25,219,40],{"class":39},[25,221,215],{"class":43},[25,223,157],{"class":35},[25,225,40],{"class":39},[25,227,215],{"class":43},[25,229,126],{"class":35},[25,231,233,236,238,241],{"class":27,"line":232},8,[25,234,235],{"class":31},"resetEffects",[25,237,75],{"class":35},[25,239,240],{"class":31},"supportsEffects",[25,242,243],{"class":35},"(): boolean\n",[10,245,247],{"id":246},"podążanie-za-graczem","Podążanie za graczem",[15,249,251],{"className":17,"code":250,"language":19,"meta":20,"style":20},"const camera = this.getCamera()\n\ncamera.setBounds(0, 0, 2000, 1400)\ncamera.follow(this.player, 0.08, 0.08)\ncamera.setZoom(1.5)\n",[22,252,253,275,281,311,334],{"__ignoreMap":20},[25,254,255,258,261,264,267,270,273],{"class":27,"line":28},[25,256,257],{"class":39},"const",[25,259,260],{"class":43}," camera",[25,262,263],{"class":39}," =",[25,265,266],{"class":43}," this",[25,268,269],{"class":35},".",[25,271,272],{"class":31},"getCamera",[25,274,60],{"class":35},[25,276,277],{"class":27,"line":63},[25,278,280],{"emptyLinePlaceholder":279},true,"\n",[25,282,283,286,288,291,294,297,299,301,304,306,309],{"class":27,"line":84},[25,284,285],{"class":35},"camera.",[25,287,78],{"class":31},[25,289,290],{"class":35},"(",[25,292,293],{"class":43},"0",[25,295,296],{"class":35},", ",[25,298,293],{"class":43},[25,300,296],{"class":35},[25,302,303],{"class":43},"2000",[25,305,296],{"class":35},[25,307,308],{"class":43},"1400",[25,310,126],{"class":35},[25,312,313,315,317,319,322,325,328,330,332],{"class":27,"line":104},[25,314,285],{"class":35},[25,316,32],{"class":31},[25,318,290],{"class":35},[25,320,321],{"class":43},"this",[25,323,324],{"class":35},".player, ",[25,326,327],{"class":43},"0.08",[25,329,296],{"class":35},[25,331,327],{"class":43},[25,333,126],{"class":35},[25,335,336,338,340,342,345],{"class":27,"line":129},[25,337,285],{"class":35},[25,339,66],{"class":31},[25,341,290],{"class":35},[25,343,344],{"class":43},"1.5",[25,346,126],{"class":35},[348,349,350,351,353,354,357],"p",{},"Lerp ",[22,352,327],{}," daje miękkie, kinowe podążanie; ",[22,355,356],{},"1"," to sztywne przyklejenie.",[10,359,361],{"id":360},"efekty","Efekty",[15,363,365],{"className":17,"code":364,"language":19,"meta":20,"style":20},"camera.shake(220, 0.012)\ncamera.flash(120, 255, 255, 255)\n\ncamera.fadeOut(400, 0, 0, 0)\nthis.getTimer().delay(0.45, () => {\n  this.getEvents().emit('request:scene', { to: 'game-over' })\n})\n",[22,366,367,385,411,415,440,469,499],{"__ignoreMap":20},[25,368,369,371,373,375,378,380,383],{"class":27,"line":28},[25,370,285],{"class":35},[25,372,107],{"class":31},[25,374,290],{"class":35},[25,376,377],{"class":43},"220",[25,379,296],{"class":35},[25,381,382],{"class":43},"0.012",[25,384,126],{"class":35},[25,386,387,389,391,393,396,398,401,403,405,407,409],{"class":27,"line":63},[25,388,285],{"class":35},[25,390,201],{"class":31},[25,392,290],{"class":35},[25,394,395],{"class":43},"120",[25,397,296],{"class":35},[25,399,400],{"class":43},"255",[25,402,296],{"class":35},[25,404,400],{"class":43},[25,406,296],{"class":35},[25,408,400],{"class":43},[25,410,126],{"class":35},[25,412,413],{"class":27,"line":84},[25,414,280],{"emptyLinePlaceholder":279},[25,416,417,419,421,423,426,428,430,432,434,436,438],{"class":27,"line":104},[25,418,285],{"class":35},[25,420,169],{"class":31},[25,422,290],{"class":35},[25,424,425],{"class":43},"400",[25,427,296],{"class":35},[25,429,293],{"class":43},[25,431,296],{"class":35},[25,433,293],{"class":43},[25,435,296],{"class":35},[25,437,293],{"class":43},[25,439,126],{"class":35},[25,441,442,444,446,449,452,455,457,460,463,466],{"class":27,"line":129},[25,443,321],{"class":43},[25,445,269],{"class":35},[25,447,448],{"class":31},"getTimer",[25,450,451],{"class":35},"().",[25,453,454],{"class":31},"delay",[25,456,290],{"class":35},[25,458,459],{"class":43},"0.45",[25,461,462],{"class":35},", () ",[25,464,465],{"class":39},"=>",[25,467,468],{"class":35}," {\n",[25,470,471,474,476,479,481,484,486,490,493,496],{"class":27,"line":166},[25,472,473],{"class":43},"  this",[25,475,269],{"class":35},[25,477,478],{"class":31},"getEvents",[25,480,451],{"class":35},[25,482,483],{"class":31},"emit",[25,485,290],{"class":35},[25,487,489],{"class":488},"sZZnC","'request:scene'",[25,491,492],{"class":35},", { to: ",[25,494,495],{"class":488},"'game-over'",[25,497,498],{"class":35}," })\n",[25,500,501],{"class":27,"line":198},[25,502,503],{"class":35},"})\n",[15,505,507],{"className":17,"code":506,"language":19,"meta":20,"style":20},"camera.fadeIn(500)\n",[22,508,509],{"__ignoreMap":20},[25,510,511,513,515,517,520],{"class":27,"line":28},[25,512,285],{"class":35},[25,514,132],{"class":31},[25,516,290],{"class":35},[25,518,519],{"class":43},"500",[25,521,126],{"class":35},[523,524,526],"h3",{"id":525},"przykład-feedback-przy-trafieniu","Przykład: feedback przy trafieniu",[15,528,530],{"className":17,"code":529,"language":19,"meta":20,"style":20},"this.getEvents().subscribeForScene(this.id, 'player:hit', () => {\n  this.getCamera().shake(180, 0.008)\n  this.getCamera().flash(90, 255, 64, 64)\n  this.playSound('hurt', { channel: 'sfx', volume: 0.8 })\n})\n",[22,531,532,561,585,617,645],{"__ignoreMap":20},[25,533,534,536,538,540,542,545,547,549,552,555,557,559],{"class":27,"line":28},[25,535,321],{"class":43},[25,537,269],{"class":35},[25,539,478],{"class":31},[25,541,451],{"class":35},[25,543,544],{"class":31},"subscribeForScene",[25,546,290],{"class":35},[25,548,321],{"class":43},[25,550,551],{"class":35},".id, ",[25,553,554],{"class":488},"'player:hit'",[25,556,462],{"class":35},[25,558,465],{"class":39},[25,560,468],{"class":35},[25,562,563,565,567,569,571,573,575,578,580,583],{"class":27,"line":63},[25,564,473],{"class":43},[25,566,269],{"class":35},[25,568,272],{"class":31},[25,570,451],{"class":35},[25,572,107],{"class":31},[25,574,290],{"class":35},[25,576,577],{"class":43},"180",[25,579,296],{"class":35},[25,581,582],{"class":43},"0.008",[25,584,126],{"class":35},[25,586,587,589,591,593,595,597,599,602,604,606,608,611,613,615],{"class":27,"line":84},[25,588,473],{"class":43},[25,590,269],{"class":35},[25,592,272],{"class":31},[25,594,451],{"class":35},[25,596,201],{"class":31},[25,598,290],{"class":35},[25,600,601],{"class":43},"90",[25,603,296],{"class":35},[25,605,400],{"class":43},[25,607,296],{"class":35},[25,609,610],{"class":43},"64",[25,612,296],{"class":35},[25,614,610],{"class":43},[25,616,126],{"class":35},[25,618,619,621,623,626,628,631,634,637,640,643],{"class":27,"line":104},[25,620,473],{"class":43},[25,622,269],{"class":35},[25,624,625],{"class":31},"playSound",[25,627,290],{"class":35},[25,629,630],{"class":488},"'hurt'",[25,632,633],{"class":35},", { channel: ",[25,635,636],{"class":488},"'sfx'",[25,638,639],{"class":35},", volume: ",[25,641,642],{"class":43},"0.8",[25,644,498],{"class":35},[25,646,647],{"class":27,"line":129},[25,648,503],{"class":35},[10,650,652],{"id":651},"konwersja-współrzędnych","Konwersja współrzędnych",[15,654,656],{"className":17,"code":655,"language":19,"meta":20,"style":20},"const screen = camera.worldToScreen(this.player.x, this.player.y)\nthis.damageLabel.setPosition(screen.x, screen.y - 40)\n",[22,657,658,684],{"__ignoreMap":20},[25,659,660,662,665,667,670,672,674,676,679,681],{"class":27,"line":28},[25,661,257],{"class":39},[25,663,664],{"class":43}," screen",[25,666,263],{"class":39},[25,668,669],{"class":35}," camera.",[25,671,98],{"class":31},[25,673,290],{"class":35},[25,675,321],{"class":43},[25,677,678],{"class":35},".player.x, ",[25,680,321],{"class":43},[25,682,683],{"class":35},".player.y)\n",[25,685,686,688,691,694,697,700,703],{"class":27,"line":63},[25,687,321],{"class":43},[25,689,690],{"class":35},".damageLabel.",[25,692,693],{"class":31},"setPosition",[25,695,696],{"class":35},"(screen.x, screen.y ",[25,698,699],{"class":39},"-",[25,701,702],{"class":43}," 40",[25,704,126],{"class":35},[10,706,708],{"id":707},"wsparcie-efektów-w-backendach","Wsparcie efektów w backendach",[15,710,712],{"className":17,"code":711,"language":19,"meta":20,"style":20},"if (camera.supportsEffects()) {\n  camera.shake(200, 0.01)\n}\n",[22,713,714,727,746],{"__ignoreMap":20},[25,715,716,719,722,724],{"class":27,"line":28},[25,717,718],{"class":39},"if",[25,720,721],{"class":35}," (camera.",[25,723,240],{"class":31},[25,725,726],{"class":35},"()) {\n",[25,728,729,732,734,736,739,741,744],{"class":27,"line":63},[25,730,731],{"class":35},"  camera.",[25,733,107],{"class":31},[25,735,290],{"class":35},[25,737,738],{"class":43},"200",[25,740,296],{"class":35},[25,742,743],{"class":43},"0.01",[25,745,126],{"class":35},[25,747,748],{"class":27,"line":84},[25,749,750],{"class":35},"}\n",[752,753,755],"callout",{"type":754},"info",[348,756,757,760,761,764,765,769],{},[22,758,759],{},"supportsEffects()"," zwraca ",[22,762,763],{},"false",", gdy backend nie realizuje efektów. Wywołania efektów na takim backendzie ",[766,767,768],"strong",{},"nie rzucają"," — są bezpiecznie ignorowane. To część kontraktu portów: minimalny adapter działa, tylko biedniej.",[10,771,773],{"id":772},"hud-niezależny-od-kamery","HUD niezależny od kamery",[348,775,776,777,780],{},"Obiekty HUD przyklej do ekranu przez ",[22,778,779],{},"setScrollFactor(0)",":",[15,782,784],{"className":17,"code":783,"language":19,"meta":20,"style":20},"const hud = this.createText('score', { x: 16, y: 16, text: '0' })\nhud.setScrollFactor(0).setDepth(1000)\n",[22,785,786,826],{"__ignoreMap":20},[25,787,788,790,793,795,797,799,802,804,807,810,813,816,818,821,824],{"class":27,"line":28},[25,789,257],{"class":39},[25,791,792],{"class":43}," hud",[25,794,263],{"class":39},[25,796,266],{"class":43},[25,798,269],{"class":35},[25,800,801],{"class":31},"createText",[25,803,290],{"class":35},[25,805,806],{"class":488},"'score'",[25,808,809],{"class":35},", { x: ",[25,811,812],{"class":43},"16",[25,814,815],{"class":35},", y: ",[25,817,812],{"class":43},[25,819,820],{"class":35},", text: ",[25,822,823],{"class":488},"'0'",[25,825,498],{"class":35},[25,827,828,831,834,836,838,841,844,846,849],{"class":27,"line":63},[25,829,830],{"class":35},"hud.",[25,832,833],{"class":31},"setScrollFactor",[25,835,290],{"class":35},[25,837,293],{"class":43},[25,839,840],{"class":35},").",[25,842,843],{"class":31},"setDepth",[25,845,290],{"class":35},[25,847,848],{"class":43},"1000",[25,850,126],{"class":35},[348,852,853],{},"Kamera przesuwa świat, HUD zostaje na miejscu.",[855,856,857],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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}",{"title":20,"searchDepth":84,"depth":84,"links":859},[860,861,862,865,866,867],{"id":12,"depth":63,"text":13},{"id":246,"depth":63,"text":247},{"id":360,"depth":63,"text":361,"children":863},[864],{"id":525,"depth":84,"text":526},{"id":651,"depth":63,"text":652},{"id":707,"depth":63,"text":708},{"id":772,"depth":63,"text":773},"Follow, zoom, granice, efekty shake\u002Ffade\u002Fflash i konwersja worldToScreen. Z fallbackiem dla backendów bez efektów.","md",{},"\u002Fgame-engine\u002Fsystems\u002Fcamera",{"title":5,"description":868},"01.game-engine\u002F06.systems\u002F04.camera","4wLtJJwejY-d3hAeGur_jZ_eYmU_yikfXr1KwkXnA_E",[876,881],{"title":877,"path":878,"stem":879,"description":880,"children":-1},"Fizyka (PhysicsManager)","\u002Fgame-engine\u002Fsystems\u002Fphysics","01.game-engine\u002F06.systems\u002F03.physics","Phaser Arcade Physics — ciała, prędkości, collidery, overlap i granice świata. Bez własnego silnika fizyki.",{"title":882,"path":883,"stem":884,"description":885,"children":-1},"Audio (AudioManager)","\u002Fgame-engine\u002Fsystems\u002Faudio","01.game-engine\u002F06.systems\u002F05.audio","Cztery kanały, efektywna głośność, SoundHandle, mute i kolejka autoplay. Jak grać dźwięki bez problemów z blokadą przeglądarki.",[887,998,1059],{"title":888,"path":889,"stem":890,"children":891},"2D Game Engine","\u002Fgame-engine","01.game-engine\u002F01.index",[892,894,898,902,906,932,952,965,986,990,994],{"title":893,"path":889,"stem":890},"Przegląd",{"title":895,"path":896,"stem":897},"Szybki start","\u002Fgame-engine\u002Fgetting-started","01.game-engine\u002F02.getting-started",{"title":899,"path":900,"stem":901},"Konfiguracja","\u002Fgame-engine\u002Fconfiguration","01.game-engine\u002F03.configuration",{"title":903,"path":904,"stem":905},"Architektura","\u002Fgame-engine\u002Farchitecture","01.game-engine\u002F04.architecture",{"title":907,"path":908,"stem":909,"children":910,"page":931},"Rdzeń","\u002Fgame-engine\u002Fcore","01.game-engine\u002F05.core",[911,915,919,923,927],{"title":912,"path":913,"stem":914},"Silnik i cykl życia","\u002Fgame-engine\u002Fcore\u002Fengine","01.game-engine\u002F05.core\u002F01.engine",{"title":916,"path":917,"stem":918},"Czas i pętla gry","\u002Fgame-engine\u002Fcore\u002Ftime","01.game-engine\u002F05.core\u002F02.time",{"title":920,"path":921,"stem":922},"Sceny","\u002Fgame-engine\u002Fcore\u002Fscenes","01.game-engine\u002F05.core\u002F03.scenes",{"title":924,"path":925,"stem":926},"Obiekty i komponenty","\u002Fgame-engine\u002Fcore\u002Fobjects","01.game-engine\u002F05.core\u002F04.objects",{"title":928,"path":929,"stem":930},"Zdarzenia i harmonogram","\u002Fgame-engine\u002Fcore\u002Fevents","01.game-engine\u002F05.core\u002F05.events",false,{"title":933,"path":934,"stem":935,"children":936,"page":931},"Systemy","\u002Fgame-engine\u002Fsystems","01.game-engine\u002F06.systems",[937,941,945,946,947,948],{"title":938,"path":939,"stem":940},"Zasoby (AssetManager)","\u002Fgame-engine\u002Fsystems\u002Fassets","01.game-engine\u002F06.systems\u002F01.assets",{"title":942,"path":943,"stem":944},"Wejście (InputManager)","\u002Fgame-engine\u002Fsystems\u002Finput","01.game-engine\u002F06.systems\u002F02.input",{"title":877,"path":878,"stem":879},{"title":5,"path":871,"stem":873},{"title":882,"path":883,"stem":884},{"title":949,"path":950,"stem":951},"Tweeny i easing","\u002Fgame-engine\u002Fsystems\u002Ftweens","01.game-engine\u002F06.systems\u002F06.tweens",{"title":953,"path":954,"stem":955,"children":956,"page":931},"Dane i zapisy","\u002Fgame-engine\u002Fdata","01.game-engine\u002F07.data",[957,961],{"title":958,"path":959,"stem":960},"Format projektu","\u002Fgame-engine\u002Fdata\u002Fproject-format","01.game-engine\u002F07.data\u002F01.project-format",{"title":962,"path":963,"stem":964},"Zapisy gry","\u002Fgame-engine\u002Fdata\u002Fsaves","01.game-engine\u002F07.data\u002F02.saves",{"title":966,"path":967,"stem":968,"children":969,"page":931},"Zaawansowane","\u002Fgame-engine\u002Fadvanced","01.game-engine\u002F08.advanced",[970,974,978,982],{"title":971,"path":972,"stem":973},"Pluginy","\u002Fgame-engine\u002Fadvanced\u002Fplugins","01.game-engine\u002F08.advanced\u002F01.plugins",{"title":975,"path":976,"stem":977},"WebAssembly","\u002Fgame-engine\u002Fadvanced\u002Fwasm","01.game-engine\u002F08.advanced\u002F02.wasm",{"title":979,"path":980,"stem":981},"Debugowanie","\u002Fgame-engine\u002Fadvanced\u002Fdebugging","01.game-engine\u002F08.advanced\u002F03.debugging",{"title":983,"path":984,"stem":985},"Wydajność i benchmarki","\u002Fgame-engine\u002Fadvanced\u002Fperformance","01.game-engine\u002F08.advanced\u002F04.performance",{"title":987,"path":988,"stem":989},"Wdrożenie","\u002Fgame-engine\u002Fdeployment","01.game-engine\u002F09.deployment",{"title":991,"path":992,"stem":993},"Przykłady","\u002Fgame-engine\u002Fexamples","01.game-engine\u002F10.examples",{"title":995,"path":996,"stem":997},"Decyzje architektoniczne","\u002Fgame-engine\u002Fadr","01.game-engine\u002F11.adr",{"title":999,"path":1000,"stem":1001,"children":1002},"Reverse Proxy","\u002Freverse-proxy","02.reverse-proxy\u002F01.index",[1003,1004,1007,1010,1031],{"title":893,"path":1000,"stem":1001},{"title":895,"path":1005,"stem":1006},"\u002Freverse-proxy\u002Fgetting-started","02.reverse-proxy\u002F02.getting-started",{"title":899,"path":1008,"stem":1009},"\u002Freverse-proxy\u002Fconfiguration","02.reverse-proxy\u002F03.configuration",{"title":1011,"path":1012,"stem":1013,"children":1014,"page":931},"Ruch i odporność","\u002Freverse-proxy\u002Ftraffic","02.reverse-proxy\u002F04.traffic",[1015,1019,1023,1027],{"title":1016,"path":1017,"stem":1018},"Load balancing","\u002Freverse-proxy\u002Ftraffic\u002Fload-balancing","02.reverse-proxy\u002F04.traffic\u002F01.load-balancing",{"title":1020,"path":1021,"stem":1022},"Health checks","\u002Freverse-proxy\u002Ftraffic\u002Fhealth-checks","02.reverse-proxy\u002F04.traffic\u002F02.health-checks",{"title":1024,"path":1025,"stem":1026},"Circuit breaker i retry","\u002Freverse-proxy\u002Ftraffic\u002Fresilience","02.reverse-proxy\u002F04.traffic\u002F03.resilience",{"title":1028,"path":1029,"stem":1030},"Rate limiting","\u002Freverse-proxy\u002Ftraffic\u002Frate-limiting","02.reverse-proxy\u002F04.traffic\u002F04.rate-limiting",{"title":1032,"path":1033,"stem":1034,"children":1035,"page":931},"Operacje i wdrożenie","\u002Freverse-proxy\u002Foperations","02.reverse-proxy\u002F05.operations",[1036,1040,1044,1048,1051,1055],{"title":1037,"path":1038,"stem":1039},"Admin API","\u002Freverse-proxy\u002Foperations\u002Fadmin-api","02.reverse-proxy\u002F05.operations\u002F01.admin-api",{"title":1041,"path":1042,"stem":1043},"Metryki i monitoring","\u002Freverse-proxy\u002Foperations\u002Fobservability","02.reverse-proxy\u002F05.operations\u002F02.observability",{"title":1045,"path":1046,"stem":1047},"Bezpieczeństwo","\u002Freverse-proxy\u002Foperations\u002Fsecurity","02.reverse-proxy\u002F05.operations\u002F03.security",{"title":987,"path":1049,"stem":1050},"\u002Freverse-proxy\u002Foperations\u002Fdeployment","02.reverse-proxy\u002F05.operations\u002F04.deployment",{"title":1052,"path":1053,"stem":1054},"Benchmarki","\u002Freverse-proxy\u002Foperations\u002Fbenchmarks","02.reverse-proxy\u002F05.operations\u002F05.benchmarks",{"title":1056,"path":1057,"stem":1058},"Troubleshooting","\u002Freverse-proxy\u002Foperations\u002Ftroubleshooting","02.reverse-proxy\u002F05.operations\u002F06.troubleshooting",{"title":1060,"path":1061,"stem":1062,"children":1063},"Vector Engine","\u002Fvector-engine","03.vector-engine\u002F01.index",[1064,1065,1068,1089,1102,1122],{"title":893,"path":1061,"stem":1062},{"title":895,"path":1066,"stem":1067},"\u002Fvector-engine\u002Fgetting-started","03.vector-engine\u002F02.getting-started",{"title":1069,"path":1070,"stem":1071,"children":1072,"page":931},"Scena","\u002Fvector-engine\u002Fscene","03.vector-engine\u002F03.scene",[1073,1077,1081,1085],{"title":1074,"path":1075,"stem":1076},"Format sceny 1.0","\u002Fvector-engine\u002Fscene\u002Fscene-format","03.vector-engine\u002F03.scene\u002F01.scene-format",{"title":1078,"path":1079,"stem":1080},"Obiekty sceny","\u002Fvector-engine\u002Fscene\u002Fobjects","03.vector-engine\u002F03.scene\u002F02.objects",{"title":1082,"path":1083,"stem":1084},"Gradienty i warstwy","\u002Fvector-engine\u002Fscene\u002Fgradients-layers","03.vector-engine\u002F03.scene\u002F03.gradients-layers",{"title":1086,"path":1087,"stem":1088},"Przykłady scen","\u002Fvector-engine\u002Fscene\u002Fexamples","03.vector-engine\u002F03.scene\u002F04.examples",{"title":1090,"path":1091,"stem":1092,"children":1093,"page":931},"Eksport","\u002Fvector-engine\u002Fexport","03.vector-engine\u002F04.export",[1094,1098],{"title":1095,"path":1096,"stem":1097},"Formaty eksportu","\u002Fvector-engine\u002Fexport\u002Fexport-formats","03.vector-engine\u002F04.export\u002F01.export-formats",{"title":1099,"path":1100,"stem":1101},"Proces eksportu","\u002Fvector-engine\u002Fexport\u002Fexport-workflow","03.vector-engine\u002F04.export\u002F02.export-workflow",{"title":1103,"path":1104,"stem":1105,"children":1106,"page":931},"Wnętrze silnika","\u002Fvector-engine\u002Finternals","03.vector-engine\u002F05.internals",[1107,1110,1114,1118],{"title":903,"path":1108,"stem":1109},"\u002Fvector-engine\u002Finternals\u002Farchitecture","03.vector-engine\u002F05.internals\u002F01.architecture",{"title":1111,"path":1112,"stem":1113},"WebAssembly i workery","\u002Fvector-engine\u002Finternals\u002Fwasm","03.vector-engine\u002F05.internals\u002F02.wasm",{"title":1115,"path":1116,"stem":1117},"Workspace i panele","\u002Fvector-engine\u002Finternals\u002Fworkspace","03.vector-engine\u002F05.internals\u002F03.workspace",{"title":1119,"path":1120,"stem":1121},"Breakpointy","\u002Fvector-engine\u002Finternals\u002Fbreakpoints","03.vector-engine\u002F05.internals\u002F04.breakpoints",{"title":1123,"path":1124,"stem":1125},"Wdrożenie na Vercel","\u002Fvector-engine\u002Fdeployment","03.vector-engine\u002F06.deployment",1793986307666]