[{"data":1,"prerenderedAt":454},["ShallowReactive",2],{"navigation_docs":3,"-using-parallax-project-structure":64,"-using-parallax-project-structure-surround":449},[4,26,43],{"title":5,"path":6,"stem":7,"children":8,"page":25},"Using Parallax","\u002Fusing-parallax","1.using-parallax",[9,13,17,21],{"title":10,"path":11,"stem":12},"Getting Started","\u002Fusing-parallax\u002Fgetting-started","1.using-parallax\u002F0.getting-started",{"title":14,"path":15,"stem":16},"Project Structure","\u002Fusing-parallax\u002Fproject-structure","1.using-parallax\u002F1.project-structure",{"title":18,"path":19,"stem":20},"Working with the Agent","\u002Fusing-parallax\u002Fworking-with-agent","1.using-parallax\u002F2.working-with-agent",{"title":22,"path":23,"stem":24},"Deploying Your Game","\u002Fusing-parallax\u002Fdeploying","1.using-parallax\u002F3.deploying",false,{"title":27,"path":28,"stem":29,"children":30,"page":25},"Features","\u002Ffeatures","2.features",[31,35,39],{"title":32,"path":33,"stem":34},"Feature Overview","\u002Ffeatures\u002Foverview","2.features\u002F0.overview",{"title":36,"path":37,"stem":38},"Roadmap","\u002Ffeatures\u002Froadmap","2.features\u002F1.roadmap",{"title":40,"path":41,"stem":42},"Feature Requests","\u002Ffeatures\u002Frequests","2.features\u002F2.requests",{"title":44,"path":45,"stem":46,"children":47,"page":25},"Game Dev","\u002Fgame-dev","3.game-dev",[48,52,56,60],{"title":49,"path":50,"stem":51},"The Mental Model","\u002Fgame-dev\u002Fmental-model","3.game-dev\u002F0.mental-model",{"title":53,"path":54,"stem":55},"Best Practices","\u002Fgame-dev\u002Fbest-practices","3.game-dev\u002F1.best-practices",{"title":57,"path":58,"stem":59},"Love2D Patterns","\u002Fgame-dev\u002Flove2d-patterns","3.game-dev\u002F2.love2d-patterns",{"title":61,"path":62,"stem":63},"Agent Integration (MCP + Context7)","\u002Fgame-dev\u002Fagent-integration","3.game-dev\u002F3.agent-integration",{"id":65,"title":14,"body":66,"description":441,"extension":442,"links":443,"meta":444,"navigation":446,"path":15,"seo":447,"stem":16,"__hash__":448},"docs\u002F1.using-parallax\u002F1.project-structure.md",{"type":67,"value":68,"toc":435},"minimark",[69,73,77,82,93,97,147,151,156,374,380,384,391,408,431],[70,71,14],"h1",{"id":72},"project-structure",[74,75,76],"p",{},"A Parallax project is a standard Love2D project with a few extra conventions the agent understands.",[78,79,81],"h2",{"id":80},"default-layout","Default layout",[83,84,89],"pre",{"className":85,"code":87,"language":88},[86],"language-text","my-game\u002F\n  main.lua          # Entry point — love.load, love.update, love.draw\n  conf.lua          # Love2D window and module config\n  player.lua        # Player entity (auto-created for non-blank templates)\n  physics.lua       # Physics helpers and collision groups\n  assets\u002F\n    images\u002F         # Sprites and backgrounds (.png)\n    audio\u002F          # Sound effects and music (.ogg, .mp3)\n    fonts\u002F          # Bitmap and TTF fonts\n  lib\u002F              # Third-party Lua libraries (e.g. hump, bump.lua)\n  .parallax\u002F\n    context.json    # Agent context: genre, rules, decisions made\n    history.jsonl   # Local cache of agent conversation\n","text",[90,91,87],"code",{"__ignoreMap":92},"",[78,94,96],{"id":95},"key-files-the-agent-watches","Key files the agent watches",[98,99,100,113],"table",{},[101,102,103],"thead",{},[104,105,106,110],"tr",{},[107,108,109],"th",{},"File",[107,111,112],{},"Purpose",[114,115,116,127,137],"tbody",{},[104,117,118,124],{},[119,120,121],"td",{},[90,122,123],{},"main.lua",[119,125,126],{},"Core game loop — the agent always has this in context",[104,128,129,134],{},[119,130,131],{},[90,132,133],{},"conf.lua",[119,135,136],{},"Window size, enabled modules — agent reads this to understand your canvas",[104,138,139,144],{},[119,140,141],{},[90,142,143],{},".parallax\u002Fcontext.json",[119,145,146],{},"Your game's \"constitution\" — genre, player rules, world rules",[78,148,150],{"id":149},"the-context-file","The context file",[74,152,153,155],{},[90,154,143],{}," is the agent's long-term memory for your project. You can edit it directly:",[83,157,161],{"className":158,"code":159,"language":160,"meta":92,"style":92},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"genre\": \"platformer\",\n  \"player\": {\n    \"speed\": 200,\n    \"jump_force\": 400,\n    \"has_double_jump\": true\n  },\n  \"world\": {\n    \"gravity\": 600,\n    \"tile_size\": 16\n  },\n  \"conventions\": [\n    \"All entities are tables with :update(dt) and :draw() methods\",\n    \"Collision uses bump.lua — never raw AABB\"\n  ]\n}\n","json",[90,162,163,172,200,215,235,252,267,273,287,304,319,324,339,351,362,368],{"__ignoreMap":92},[164,165,168],"span",{"class":166,"line":167},"line",1,[164,169,171],{"class":170},"sMK4o","{\n",[164,173,175,178,182,185,188,191,195,197],{"class":166,"line":174},2,[164,176,177],{"class":170},"  \"",[164,179,181],{"class":180},"spNyl","genre",[164,183,184],{"class":170},"\"",[164,186,187],{"class":170},":",[164,189,190],{"class":170}," \"",[164,192,194],{"class":193},"sfazB","platformer",[164,196,184],{"class":170},[164,198,199],{"class":170},",\n",[164,201,203,205,208,210,212],{"class":166,"line":202},3,[164,204,177],{"class":170},[164,206,207],{"class":180},"player",[164,209,184],{"class":170},[164,211,187],{"class":170},[164,213,214],{"class":170}," {\n",[164,216,218,221,225,227,229,233],{"class":166,"line":217},4,[164,219,220],{"class":170},"    \"",[164,222,224],{"class":223},"sBMFI","speed",[164,226,184],{"class":170},[164,228,187],{"class":170},[164,230,232],{"class":231},"sbssI"," 200",[164,234,199],{"class":170},[164,236,238,240,243,245,247,250],{"class":166,"line":237},5,[164,239,220],{"class":170},[164,241,242],{"class":223},"jump_force",[164,244,184],{"class":170},[164,246,187],{"class":170},[164,248,249],{"class":231}," 400",[164,251,199],{"class":170},[164,253,255,257,260,262,264],{"class":166,"line":254},6,[164,256,220],{"class":170},[164,258,259],{"class":223},"has_double_jump",[164,261,184],{"class":170},[164,263,187],{"class":170},[164,265,266],{"class":170}," true\n",[164,268,270],{"class":166,"line":269},7,[164,271,272],{"class":170},"  },\n",[164,274,276,278,281,283,285],{"class":166,"line":275},8,[164,277,177],{"class":170},[164,279,280],{"class":180},"world",[164,282,184],{"class":170},[164,284,187],{"class":170},[164,286,214],{"class":170},[164,288,290,292,295,297,299,302],{"class":166,"line":289},9,[164,291,220],{"class":170},[164,293,294],{"class":223},"gravity",[164,296,184],{"class":170},[164,298,187],{"class":170},[164,300,301],{"class":231}," 600",[164,303,199],{"class":170},[164,305,307,309,312,314,316],{"class":166,"line":306},10,[164,308,220],{"class":170},[164,310,311],{"class":223},"tile_size",[164,313,184],{"class":170},[164,315,187],{"class":170},[164,317,318],{"class":231}," 16\n",[164,320,322],{"class":166,"line":321},11,[164,323,272],{"class":170},[164,325,327,329,332,334,336],{"class":166,"line":326},12,[164,328,177],{"class":170},[164,330,331],{"class":180},"conventions",[164,333,184],{"class":170},[164,335,187],{"class":170},[164,337,338],{"class":170}," [\n",[164,340,342,344,347,349],{"class":166,"line":341},13,[164,343,220],{"class":170},[164,345,346],{"class":193},"All entities are tables with :update(dt) and :draw() methods",[164,348,184],{"class":170},[164,350,199],{"class":170},[164,352,354,356,359],{"class":166,"line":353},14,[164,355,220],{"class":170},[164,357,358],{"class":193},"Collision uses bump.lua — never raw AABB",[164,360,361],{"class":170},"\"\n",[164,363,365],{"class":166,"line":364},15,[164,366,367],{"class":170},"  ]\n",[164,369,371],{"class":166,"line":370},16,[164,372,373],{"class":170},"}\n",[74,375,376,377,379],{},"The ",[90,378,331],{}," array is especially powerful — add your own coding rules and the agent will follow them.",[78,381,383],{"id":382},"adding-libraries","Adding libraries",[74,385,386,387,390],{},"Drop Lua libraries into ",[90,388,389],{},"lib\u002F"," and require them normally:",[83,392,396],{"className":393,"code":394,"language":395,"meta":92,"style":92},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","local bump = require('lib.bump')\nlocal flux  = require('lib.flux')\n","lua",[90,397,398,403],{"__ignoreMap":92},[164,399,400],{"class":166,"line":167},[164,401,402],{},"local bump = require('lib.bump')\n",[164,404,405],{"class":166,"line":174},[164,406,407],{},"local flux  = require('lib.flux')\n",[74,409,410,411,414,415,414,418,414,421,414,424,414,427,430],{},"The agent knows common Love2D libraries by default: ",[90,412,413],{},"bump.lua",", ",[90,416,417],{},"hump",[90,419,420],{},"flux",[90,422,423],{},"lume",[90,425,426],{},"sti",[90,428,429],{},"anim8",".",[432,433,434],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":92,"searchDepth":174,"depth":174,"links":436},[437,438,439,440],{"id":80,"depth":174,"text":81},{"id":95,"depth":174,"text":96},{"id":149,"depth":174,"text":150},{"id":382,"depth":174,"text":383},"How Parallax organizes your Love2D game files.","md",null,{"ogImage":445},"\u002Flogo.png",true,{"title":14,"description":441},"F3kRAC__i5VYzXfvXW0UYQ46VcpRAKGmTm5dzIgs1js",[450,452],{"title":10,"path":11,"stem":12,"description":451,"children":-1},"Set up Parallax and build your first Love2D game in under 10 minutes.",{"title":18,"path":19,"stem":20,"description":453,"children":-1},"How to prompt the Parallax agent effectively — patterns that work, patterns that don't.",1778701173953]