[{"data":1,"prerenderedAt":1130},["ShallowReactive",2],{"doc:\u002Fgame-engine\u002Fdeployment":3,"surround:\u002Fgame-engine\u002Fdeployment":879,"navigation":890},{"id":4,"title":5,"body":6,"description":872,"extension":873,"meta":874,"navigation":524,"path":875,"seo":876,"stem":877,"__hash__":878},"docs\u002F01.game-engine\u002F09.deployment.md","Wdrożenie",{"type":7,"value":8,"toc":861},"minimark",[9,14,108,114,175,182,186,290,294,365,369,383,466,472,477,664,668,809,821,825,838,841,845,857],[10,11,13],"h2",{"id":12},"dwie-konfiguracje","Dwie konfiguracje",[15,16,17,33],"table",{},[18,19,20],"thead",{},[21,22,23,27,30],"tr",{},[24,25,26],"th",{},"Plik",[24,28,29],{},"Komenda",[24,31,32],{},"Przeznaczenie",[34,35,36,56,82],"tbody",{},[21,37,38,45,50],{},[39,40,41],"td",{},[42,43,44],"code",{},"vite.config.ts",[39,46,47],{},[42,48,49],{},"npm run dev",[39,51,52,53],{},"Serwer deweloperski, HMR, ",[42,54,55],{},"\u002Fdocs",[21,57,58,63,68],{},[39,59,60],{},[42,61,62],{},"vite.prod.config.ts",[39,64,65],{},[42,66,67],{},"npm run build",[39,69,70,71,74,75,78,79],{},"Produkcja, ",[42,72,73],{},"base"," z ",[42,76,77],{},"B2D_BASE",", jeden chunk, ",[42,80,81],{},"release.json",[21,83,84,89,92],{},[39,85,86],{},[42,87,88],{},"config\u002Fbuild-meta.ts",[39,90,91],{},"oba",[39,93,94,95,98,99,98,102,98,105],{},"Meta ",[42,96,97],{},"b2d-build",", ",[42,100,101],{},"b2d-built-at",[42,103,104],{},"b2d-base",[42,106,107],{},"b2d-mode",[109,110,111,113],"p",{},[42,112,77],{}," steruje ścieżką bazową:",[115,116,121],"pre",{"className":117,"code":118,"language":119,"meta":120,"style":120},"language-bash shiki shiki-themes github-light github-dark","npm run build\nB2D_BASE=\u002F npm run build\nB2D_BASE=\u002Fgame\u002F npm run build\n","bash","",[42,122,123,139,159],{"__ignoreMap":120},[124,125,128,132,136],"span",{"class":126,"line":127},"line",1,[124,129,131],{"class":130},"sScJk","npm",[124,133,135],{"class":134},"sZZnC"," run",[124,137,138],{"class":134}," build\n",[124,140,142,145,149,152,155,157],{"class":126,"line":141},2,[124,143,77],{"class":144},"sVt8B",[124,146,148],{"class":147},"szBVR","=",[124,150,151],{"class":134},"\u002F",[124,153,154],{"class":130}," npm",[124,156,135],{"class":134},[124,158,138],{"class":134},[124,160,162,164,166,169,171,173],{"class":126,"line":161},3,[124,163,77],{"class":144},[124,165,148],{"class":147},[124,167,168],{"class":134},"\u002Fgame\u002F",[124,170,154],{"class":130},[124,172,135],{"class":134},[124,174,138],{"class":134},[109,176,177,178,181],{},"Domyślnie ",[42,179,180],{},".\u002F"," — gra działa w dowolnym podkatalogu bez przebudowy.",[10,183,185],{"id":184},"czego-pilnujemy","Czego pilnujemy",[187,188,189,201,218,228,247,253,266,284],"ol",{},[190,191,192,196,197,200],"li",{},[193,194,195],"strong",{},"Względne ścieżki"," — build nie zawiera absolutnych ",[42,198,199],{},"\u002Fassets\u002F…",".",[190,202,203,206,207,210,211,214,215,200],{},[193,204,205],{},"Brak SPA fallback"," — nieznane ścieżki zwracają ",[42,208,209],{},"404.html","; gra nie ma routingu po ścieżkach, a przepisanie na ",[42,212,213],{},"index.html"," psuje względne ",[42,216,217],{},"assets\u002F",[190,219,220,223,224,227],{},[193,221,222],{},"Stan w query stringu"," — ",[42,225,226],{},"?example=\u003Cid>&lang=\u003Cpl|en>"," przeżywa odświeżenie.",[190,229,230,223,233,235,236,239,240,243,244,200],{},[193,231,232],{},"Cache",[42,234,213],{}," zawsze ",[42,237,238],{},"no-cache",", pliki ",[42,241,242],{},"assets\u002F*"," z hashem ",[42,245,246],{},"immutable",[190,248,249,252],{},[193,250,251],{},"HTTPS"," — wymagane przez audio i część API.",[190,254,255,223,258,261,262,265],{},[193,256,257],{},"CSP",[42,259,260],{},"script-src 'self' 'sha256-…'"," bez ",[42,263,264],{},"'unsafe-inline'","; hash liczony z faktycznej treści inline skryptu startowego.",[190,267,268,223,271,274,275,98,278,274,281,200],{},[193,269,270],{},"MIME",[42,272,273],{},".wasm"," jako ",[42,276,277],{},"application\u002Fwasm",[42,279,280],{},".js",[42,282,283],{},"text\u002Fjavascript",[190,285,286,289],{},[193,287,288],{},"Widoczny błąd"," — brak modułu kończy się ekranem startowym z diagnostyką, nigdy czarną planszą.",[10,291,293],{"id":292},"komendy","Komendy",[115,295,297],{"className":117,"code":296,"language":119,"meta":120,"style":120},"npm run build\nnpm run build:site\nnpm run build:single\nnpm run bundle:report\nnpm run bundle:check\nnpm run export:game\nnpm run test:hosting\n",[42,298,299,307,316,325,335,345,355],{"__ignoreMap":120},[124,300,301,303,305],{"class":126,"line":127},[124,302,131],{"class":130},[124,304,135],{"class":134},[124,306,138],{"class":134},[124,308,309,311,313],{"class":126,"line":141},[124,310,131],{"class":130},[124,312,135],{"class":134},[124,314,315],{"class":134}," build:site\n",[124,317,318,320,322],{"class":126,"line":161},[124,319,131],{"class":130},[124,321,135],{"class":134},[124,323,324],{"class":134}," build:single\n",[124,326,328,330,332],{"class":126,"line":327},4,[124,329,131],{"class":130},[124,331,135],{"class":134},[124,333,334],{"class":134}," bundle:report\n",[124,336,338,340,342],{"class":126,"line":337},5,[124,339,131],{"class":130},[124,341,135],{"class":134},[124,343,344],{"class":134}," bundle:check\n",[124,346,348,350,352],{"class":126,"line":347},6,[124,349,131],{"class":130},[124,351,135],{"class":134},[124,353,354],{"class":134}," export:game\n",[124,356,358,360,362],{"class":126,"line":357},7,[124,359,131],{"class":130},[124,361,135],{"class":134},[124,363,364],{"class":134}," test:hosting\n",[10,366,368],{"id":367},"eksport-z-konfiguracjami-hostingu","Eksport z konfiguracjami hostingu",[109,370,371,374,375,378,379,382],{},[42,372,373],{},"npm run export:game"," tworzy ",[42,376,377],{},"release\u002Fgame"," (katalog do wgrania w całości) oraz ",[42,380,381],{},"release\u002Fgame\u002Fhosting",":",[15,384,385,394],{},[18,386,387],{},[21,388,389,391],{},[24,390,26],{},[24,392,393],{},"Hosting",[34,395,396,410,423,433,443,456],{},[21,397,398,403],{},[39,399,400],{},[42,401,402],{},"nginx.conf",[39,404,405,406,409],{},"nginx (TLS, CSP, cache, ",[42,407,408],{},"error_page 404",")",[21,411,412,417],{},[39,413,414],{},[42,415,416],{},"htaccess",[39,418,419,420],{},"Apache 2.4 → zmień nazwę na ",[42,421,422],{},".htaccess",[21,424,425,430],{},[39,426,427],{},[42,428,429],{},"netlify.toml",[39,431,432],{},"Netlify",[21,434,435,440],{},[39,436,437],{},[42,438,439],{},"_headers",[39,441,442],{},"Cloudflare Pages i Netlify",[21,444,445,450],{},[39,446,447],{},[42,448,449],{},"vercel.json",[39,451,452,453,409],{},"Vercel (bez ",[42,454,455],{},"rewrites",[21,457,458,463],{},[39,459,460],{},[42,461,462],{},"firebase.json",[39,464,465],{},"Firebase Hosting",[109,467,468,471],{},[42,469,470],{},"CHECKSUMS.txt"," zawiera SHA-256 każdego pliku — po wgraniu porównaj kilka pozycji, żeby wykluczyć niekompletny upload.",[473,474,476],"h3",{"id":475},"przykład-nginx","Przykład: nginx",[115,478,482],{"className":479,"code":480,"filename":402,"language":481,"meta":120,"style":120},"language-nginx shiki shiki-themes github-light github-dark","server {\n  listen 443 ssl http2;\n  server_name game.example.com;\n  root \u002Fvar\u002Fwww\u002Fgame;\n\n  location = \u002Findex.html {\n    add_header Cache-Control \"no-cache\";\n  }\n\n  location \u002Fassets\u002F {\n    add_header Cache-Control \"public, max-age=31536000, immutable\";\n  }\n\n  location ~ \\.wasm$ {\n    types { application\u002Fwasm wasm; }\n    add_header Cache-Control \"public, max-age=31536000, immutable\";\n  }\n\n  error_page 404 \u002F404.html;\n}\n","nginx",[42,483,484,492,504,512,520,526,541,555,561,566,576,588,593,598,611,625,636,641,646,658],{"__ignoreMap":120},[124,485,486,489],{"class":126,"line":127},[124,487,488],{"class":147},"server",[124,490,491],{"class":144}," {\n",[124,493,494,497,501],{"class":126,"line":141},[124,495,496],{"class":147},"  listen ",[124,498,500],{"class":499},"sj4cs","443",[124,502,503],{"class":144}," ssl http2;\n",[124,505,506,509],{"class":126,"line":161},[124,507,508],{"class":147},"  server_name ",[124,510,511],{"class":144},"game.example.com;\n",[124,513,514,517],{"class":126,"line":327},[124,515,516],{"class":147},"  root ",[124,518,519],{"class":144},"\u002Fvar\u002Fwww\u002Fgame;\n",[124,521,522],{"class":126,"line":337},[124,523,525],{"emptyLinePlaceholder":524},true,"\n",[124,527,528,531,534,538],{"class":126,"line":347},[124,529,530],{"class":147},"  location",[124,532,533],{"class":147}," =",[124,535,537],{"class":536},"sA_wV"," \u002Findex.html ",[124,539,540],{"class":144},"{\n",[124,542,543,546,549,552],{"class":126,"line":357},[124,544,545],{"class":147},"    add_header ",[124,547,548],{"class":144},"Cache-Control ",[124,550,551],{"class":134},"\"no-cache\"",[124,553,554],{"class":144},";\n",[124,556,558],{"class":126,"line":557},8,[124,559,560],{"class":144},"  }\n",[124,562,564],{"class":126,"line":563},9,[124,565,525],{"emptyLinePlaceholder":524},[124,567,569,571,574],{"class":126,"line":568},10,[124,570,530],{"class":147},[124,572,573],{"class":130}," \u002Fassets\u002F ",[124,575,540],{"class":144},[124,577,579,581,583,586],{"class":126,"line":578},11,[124,580,545],{"class":147},[124,582,548],{"class":144},[124,584,585],{"class":134},"\"public, max-age=31536000, immutable\"",[124,587,554],{"class":144},[124,589,591],{"class":126,"line":590},12,[124,592,560],{"class":144},[124,594,596],{"class":126,"line":595},13,[124,597,525],{"emptyLinePlaceholder":524},[124,599,601,603,606,609],{"class":126,"line":600},14,[124,602,530],{"class":147},[124,604,605],{"class":147}," ~",[124,607,608],{"class":536}," \\.wasm$ ",[124,610,540],{"class":144},[124,612,614,617,620,622],{"class":126,"line":613},15,[124,615,616],{"class":147},"    types",[124,618,619],{"class":144}," { ",[124,621,277],{"class":499},[124,623,624],{"class":144}," wasm; }\n",[124,626,628,630,632,634],{"class":126,"line":627},16,[124,629,545],{"class":147},[124,631,548],{"class":144},[124,633,585],{"class":134},[124,635,554],{"class":144},[124,637,639],{"class":126,"line":638},17,[124,640,560],{"class":144},[124,642,644],{"class":126,"line":643},18,[124,645,525],{"emptyLinePlaceholder":524},[124,647,649,652,655],{"class":126,"line":648},19,[124,650,651],{"class":147},"  error_page ",[124,653,654],{"class":499},"404",[124,656,657],{"class":144}," \u002F404.html;\n",[124,659,661],{"class":126,"line":660},20,[124,662,663],{"class":144},"}\n",[473,665,667],{"id":666},"przykład-vercel","Przykład: Vercel",[115,669,673],{"className":670,"code":671,"filename":449,"language":672,"meta":120,"style":120},"language-json shiki shiki-themes github-light github-dark","{\n  \"headers\": [\n    {\n      \"source\": \"\u002Fassets\u002F(.*)\",\n      \"headers\": [\n        { \"key\": \"Cache-Control\", \"value\": \"public, max-age=31536000, immutable\" }\n      ]\n    },\n    {\n      \"source\": \"\u002F(.*).wasm\",\n      \"headers\": [\n        { \"key\": \"Content-Type\", \"value\": \"application\u002Fwasm\" }\n      ]\n    }\n  ]\n}\n","json",[42,674,675,679,687,692,706,713,738,743,748,752,763,769,791,795,800,805],{"__ignoreMap":120},[124,676,677],{"class":126,"line":127},[124,678,540],{"class":144},[124,680,681,684],{"class":126,"line":141},[124,682,683],{"class":499},"  \"headers\"",[124,685,686],{"class":144},": [\n",[124,688,689],{"class":126,"line":161},[124,690,691],{"class":144},"    {\n",[124,693,694,697,700,703],{"class":126,"line":327},[124,695,696],{"class":499},"      \"source\"",[124,698,699],{"class":144},": ",[124,701,702],{"class":134},"\"\u002Fassets\u002F(.*)\"",[124,704,705],{"class":144},",\n",[124,707,708,711],{"class":126,"line":337},[124,709,710],{"class":499},"      \"headers\"",[124,712,686],{"class":144},[124,714,715,718,721,723,726,728,731,733,735],{"class":126,"line":347},[124,716,717],{"class":144},"        { ",[124,719,720],{"class":499},"\"key\"",[124,722,699],{"class":144},[124,724,725],{"class":134},"\"Cache-Control\"",[124,727,98],{"class":144},[124,729,730],{"class":499},"\"value\"",[124,732,699],{"class":144},[124,734,585],{"class":134},[124,736,737],{"class":144}," }\n",[124,739,740],{"class":126,"line":357},[124,741,742],{"class":144},"      ]\n",[124,744,745],{"class":126,"line":557},[124,746,747],{"class":144},"    },\n",[124,749,750],{"class":126,"line":563},[124,751,691],{"class":144},[124,753,754,756,758,761],{"class":126,"line":568},[124,755,696],{"class":499},[124,757,699],{"class":144},[124,759,760],{"class":134},"\"\u002F(.*).wasm\"",[124,762,705],{"class":144},[124,764,765,767],{"class":126,"line":578},[124,766,710],{"class":499},[124,768,686],{"class":144},[124,770,771,773,775,777,780,782,784,786,789],{"class":126,"line":590},[124,772,717],{"class":144},[124,774,720],{"class":499},[124,776,699],{"class":144},[124,778,779],{"class":134},"\"Content-Type\"",[124,781,98],{"class":144},[124,783,730],{"class":499},[124,785,699],{"class":144},[124,787,788],{"class":134},"\"application\u002Fwasm\"",[124,790,737],{"class":144},[124,792,793],{"class":126,"line":595},[124,794,742],{"class":144},[124,796,797],{"class":126,"line":600},[124,798,799],{"class":144},"    }\n",[124,801,802],{"class":126,"line":613},[124,803,804],{"class":144},"  ]\n",[124,806,807],{"class":126,"line":627},[124,808,663],{"class":144},[810,811,814],"callout",{"title":812,"type":813},"Bez rewrites","warning",[109,815,816,817,820],{},"Nie dodawaj SPA rewrite (",[42,818,819],{},"\u002F(.*) → \u002Findex.html","). Gra żyje pod jednym adresem katalogu i trzyma stan w query stringu — rewrite psuje względne ścieżki assetów.",[10,822,824],{"id":823},"testy-hostingu","Testy hostingu",[115,826,828],{"className":117,"code":827,"language":119,"meta":120,"style":120},"npm run test:hosting\n",[42,829,830],{"__ignoreMap":120},[124,831,832,834,836],{"class":126,"line":127},[124,833,131],{"class":130},[124,835,135],{"class":134},[124,837,364],{"class":134},[109,839,840],{},"Osiem scenariuszy w Chromium: HTTP w korzeniu, podkatalog, ścisły CSP, HTTPS z self-signed, cache immutable, odświeżenie stanu, zablokowany bundle i nieznana ścieżka.",[10,842,844],{"id":843},"ograniczenia","Ograniczenia",[846,847,848,851,854],"ul",{},[190,849,850],{},"Eksport desktopowy (Electron\u002FTauri) odłożony do stabilizacji wersji webowej.",[190,852,853],{},"Brak routingu po ścieżkach — aplikacja żyje pod jednym adresem katalogu.",[190,855,856],{},"Testy hostingu wymagają Chromium (Playwright) w CI.",[858,859,860],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sA_wV, html code.shiki .sA_wV{--shiki-default:#032F62;--shiki-dark:#DBEDFF}",{"title":120,"searchDepth":161,"depth":161,"links":862},[863,864,865,866,870,871],{"id":12,"depth":141,"text":13},{"id":184,"depth":141,"text":185},{"id":292,"depth":141,"text":293},{"id":367,"depth":141,"text":368,"children":867},[868,869],{"id":475,"depth":161,"text":476},{"id":666,"depth":161,"text":667},{"id":823,"depth":141,"text":824},{"id":843,"depth":141,"text":844},"Dwie konfiguracje Vite, względne base, brak SPA fallback, CSP z hashem, cache immutable i gotowe konfiguracje hostingu.","md",{},"\u002Fgame-engine\u002Fdeployment",{"title":5,"description":872},"01.game-engine\u002F09.deployment","f3b5YiubSwrUNQuHUCjmMd_-YK0hniqRJvaeJ40HxAc",[880,885],{"title":881,"path":882,"stem":883,"description":884,"children":-1},"Wydajność i benchmarki","\u002Fgame-engine\u002Fadvanced\u002Fperformance","01.game-engine\u002F08.advanced\u002F04.performance","Zasady gorącej pętli, dirty sync, benchmarki Node z progami regresji i raport rozmiaru bundla. Liczby z pomiarów, nie z obietnic.",{"title":886,"path":887,"stem":888,"description":889,"children":-1},"Przykłady","\u002Fgame-engine\u002Fexamples","01.game-engine\u002F10.examples","[object Object]",[891,1002,1063],{"title":892,"path":893,"stem":894,"children":895},"2D Game Engine","\u002Fgame-engine","01.game-engine\u002F01.index",[896,898,902,906,910,936,965,978,996,997,998],{"title":897,"path":893,"stem":894},"Przegląd",{"title":899,"path":900,"stem":901},"Szybki start","\u002Fgame-engine\u002Fgetting-started","01.game-engine\u002F02.getting-started",{"title":903,"path":904,"stem":905},"Konfiguracja","\u002Fgame-engine\u002Fconfiguration","01.game-engine\u002F03.configuration",{"title":907,"path":908,"stem":909},"Architektura","\u002Fgame-engine\u002Farchitecture","01.game-engine\u002F04.architecture",{"title":911,"path":912,"stem":913,"children":914,"page":935},"Rdzeń","\u002Fgame-engine\u002Fcore","01.game-engine\u002F05.core",[915,919,923,927,931],{"title":916,"path":917,"stem":918},"Silnik i cykl życia","\u002Fgame-engine\u002Fcore\u002Fengine","01.game-engine\u002F05.core\u002F01.engine",{"title":920,"path":921,"stem":922},"Czas i pętla gry","\u002Fgame-engine\u002Fcore\u002Ftime","01.game-engine\u002F05.core\u002F02.time",{"title":924,"path":925,"stem":926},"Sceny","\u002Fgame-engine\u002Fcore\u002Fscenes","01.game-engine\u002F05.core\u002F03.scenes",{"title":928,"path":929,"stem":930},"Obiekty i komponenty","\u002Fgame-engine\u002Fcore\u002Fobjects","01.game-engine\u002F05.core\u002F04.objects",{"title":932,"path":933,"stem":934},"Zdarzenia i harmonogram","\u002Fgame-engine\u002Fcore\u002Fevents","01.game-engine\u002F05.core\u002F05.events",false,{"title":937,"path":938,"stem":939,"children":940,"page":935},"Systemy","\u002Fgame-engine\u002Fsystems","01.game-engine\u002F06.systems",[941,945,949,953,957,961],{"title":942,"path":943,"stem":944},"Zasoby (AssetManager)","\u002Fgame-engine\u002Fsystems\u002Fassets","01.game-engine\u002F06.systems\u002F01.assets",{"title":946,"path":947,"stem":948},"Wejście (InputManager)","\u002Fgame-engine\u002Fsystems\u002Finput","01.game-engine\u002F06.systems\u002F02.input",{"title":950,"path":951,"stem":952},"Fizyka (PhysicsManager)","\u002Fgame-engine\u002Fsystems\u002Fphysics","01.game-engine\u002F06.systems\u002F03.physics",{"title":954,"path":955,"stem":956},"Kamera (CameraManager)","\u002Fgame-engine\u002Fsystems\u002Fcamera","01.game-engine\u002F06.systems\u002F04.camera",{"title":958,"path":959,"stem":960},"Audio (AudioManager)","\u002Fgame-engine\u002Fsystems\u002Faudio","01.game-engine\u002F06.systems\u002F05.audio",{"title":962,"path":963,"stem":964},"Tweeny i easing","\u002Fgame-engine\u002Fsystems\u002Ftweens","01.game-engine\u002F06.systems\u002F06.tweens",{"title":966,"path":967,"stem":968,"children":969,"page":935},"Dane i zapisy","\u002Fgame-engine\u002Fdata","01.game-engine\u002F07.data",[970,974],{"title":971,"path":972,"stem":973},"Format projektu","\u002Fgame-engine\u002Fdata\u002Fproject-format","01.game-engine\u002F07.data\u002F01.project-format",{"title":975,"path":976,"stem":977},"Zapisy gry","\u002Fgame-engine\u002Fdata\u002Fsaves","01.game-engine\u002F07.data\u002F02.saves",{"title":979,"path":980,"stem":981,"children":982,"page":935},"Zaawansowane","\u002Fgame-engine\u002Fadvanced","01.game-engine\u002F08.advanced",[983,987,991,995],{"title":984,"path":985,"stem":986},"Pluginy","\u002Fgame-engine\u002Fadvanced\u002Fplugins","01.game-engine\u002F08.advanced\u002F01.plugins",{"title":988,"path":989,"stem":990},"WebAssembly","\u002Fgame-engine\u002Fadvanced\u002Fwasm","01.game-engine\u002F08.advanced\u002F02.wasm",{"title":992,"path":993,"stem":994},"Debugowanie","\u002Fgame-engine\u002Fadvanced\u002Fdebugging","01.game-engine\u002F08.advanced\u002F03.debugging",{"title":881,"path":882,"stem":883},{"title":5,"path":875,"stem":877},{"title":886,"path":887,"stem":888},{"title":999,"path":1000,"stem":1001},"Decyzje architektoniczne","\u002Fgame-engine\u002Fadr","01.game-engine\u002F11.adr",{"title":1003,"path":1004,"stem":1005,"children":1006},"Reverse Proxy","\u002Freverse-proxy","02.reverse-proxy\u002F01.index",[1007,1008,1011,1014,1035],{"title":897,"path":1004,"stem":1005},{"title":899,"path":1009,"stem":1010},"\u002Freverse-proxy\u002Fgetting-started","02.reverse-proxy\u002F02.getting-started",{"title":903,"path":1012,"stem":1013},"\u002Freverse-proxy\u002Fconfiguration","02.reverse-proxy\u002F03.configuration",{"title":1015,"path":1016,"stem":1017,"children":1018,"page":935},"Ruch i odporność","\u002Freverse-proxy\u002Ftraffic","02.reverse-proxy\u002F04.traffic",[1019,1023,1027,1031],{"title":1020,"path":1021,"stem":1022},"Load balancing","\u002Freverse-proxy\u002Ftraffic\u002Fload-balancing","02.reverse-proxy\u002F04.traffic\u002F01.load-balancing",{"title":1024,"path":1025,"stem":1026},"Health checks","\u002Freverse-proxy\u002Ftraffic\u002Fhealth-checks","02.reverse-proxy\u002F04.traffic\u002F02.health-checks",{"title":1028,"path":1029,"stem":1030},"Circuit breaker i retry","\u002Freverse-proxy\u002Ftraffic\u002Fresilience","02.reverse-proxy\u002F04.traffic\u002F03.resilience",{"title":1032,"path":1033,"stem":1034},"Rate limiting","\u002Freverse-proxy\u002Ftraffic\u002Frate-limiting","02.reverse-proxy\u002F04.traffic\u002F04.rate-limiting",{"title":1036,"path":1037,"stem":1038,"children":1039,"page":935},"Operacje i wdrożenie","\u002Freverse-proxy\u002Foperations","02.reverse-proxy\u002F05.operations",[1040,1044,1048,1052,1055,1059],{"title":1041,"path":1042,"stem":1043},"Admin API","\u002Freverse-proxy\u002Foperations\u002Fadmin-api","02.reverse-proxy\u002F05.operations\u002F01.admin-api",{"title":1045,"path":1046,"stem":1047},"Metryki i monitoring","\u002Freverse-proxy\u002Foperations\u002Fobservability","02.reverse-proxy\u002F05.operations\u002F02.observability",{"title":1049,"path":1050,"stem":1051},"Bezpieczeństwo","\u002Freverse-proxy\u002Foperations\u002Fsecurity","02.reverse-proxy\u002F05.operations\u002F03.security",{"title":5,"path":1053,"stem":1054},"\u002Freverse-proxy\u002Foperations\u002Fdeployment","02.reverse-proxy\u002F05.operations\u002F04.deployment",{"title":1056,"path":1057,"stem":1058},"Benchmarki","\u002Freverse-proxy\u002Foperations\u002Fbenchmarks","02.reverse-proxy\u002F05.operations\u002F05.benchmarks",{"title":1060,"path":1061,"stem":1062},"Troubleshooting","\u002Freverse-proxy\u002Foperations\u002Ftroubleshooting","02.reverse-proxy\u002F05.operations\u002F06.troubleshooting",{"title":1064,"path":1065,"stem":1066,"children":1067},"Vector Engine","\u002Fvector-engine","03.vector-engine\u002F01.index",[1068,1069,1072,1093,1106,1126],{"title":897,"path":1065,"stem":1066},{"title":899,"path":1070,"stem":1071},"\u002Fvector-engine\u002Fgetting-started","03.vector-engine\u002F02.getting-started",{"title":1073,"path":1074,"stem":1075,"children":1076,"page":935},"Scena","\u002Fvector-engine\u002Fscene","03.vector-engine\u002F03.scene",[1077,1081,1085,1089],{"title":1078,"path":1079,"stem":1080},"Format sceny 1.0","\u002Fvector-engine\u002Fscene\u002Fscene-format","03.vector-engine\u002F03.scene\u002F01.scene-format",{"title":1082,"path":1083,"stem":1084},"Obiekty sceny","\u002Fvector-engine\u002Fscene\u002Fobjects","03.vector-engine\u002F03.scene\u002F02.objects",{"title":1086,"path":1087,"stem":1088},"Gradienty i warstwy","\u002Fvector-engine\u002Fscene\u002Fgradients-layers","03.vector-engine\u002F03.scene\u002F03.gradients-layers",{"title":1090,"path":1091,"stem":1092},"Przykłady scen","\u002Fvector-engine\u002Fscene\u002Fexamples","03.vector-engine\u002F03.scene\u002F04.examples",{"title":1094,"path":1095,"stem":1096,"children":1097,"page":935},"Eksport","\u002Fvector-engine\u002Fexport","03.vector-engine\u002F04.export",[1098,1102],{"title":1099,"path":1100,"stem":1101},"Formaty eksportu","\u002Fvector-engine\u002Fexport\u002Fexport-formats","03.vector-engine\u002F04.export\u002F01.export-formats",{"title":1103,"path":1104,"stem":1105},"Proces eksportu","\u002Fvector-engine\u002Fexport\u002Fexport-workflow","03.vector-engine\u002F04.export\u002F02.export-workflow",{"title":1107,"path":1108,"stem":1109,"children":1110,"page":935},"Wnętrze silnika","\u002Fvector-engine\u002Finternals","03.vector-engine\u002F05.internals",[1111,1114,1118,1122],{"title":907,"path":1112,"stem":1113},"\u002Fvector-engine\u002Finternals\u002Farchitecture","03.vector-engine\u002F05.internals\u002F01.architecture",{"title":1115,"path":1116,"stem":1117},"WebAssembly i workery","\u002Fvector-engine\u002Finternals\u002Fwasm","03.vector-engine\u002F05.internals\u002F02.wasm",{"title":1119,"path":1120,"stem":1121},"Workspace i panele","\u002Fvector-engine\u002Finternals\u002Fworkspace","03.vector-engine\u002F05.internals\u002F03.workspace",{"title":1123,"path":1124,"stem":1125},"Breakpointy","\u002Fvector-engine\u002Finternals\u002Fbreakpoints","03.vector-engine\u002F05.internals\u002F04.breakpoints",{"title":1127,"path":1128,"stem":1129},"Wdrożenie na Vercel","\u002Fvector-engine\u002Fdeployment","03.vector-engine\u002F06.deployment",1793986307955]