{"id":15401,"date":"2026-10-05T14:10:16","date_gmt":"2026-10-05T14:10:16","guid":{"rendered":"https:\/\/playgama.com\/blog\/?p=15401"},"modified":"2026-10-23T10:06:41","modified_gmt":"2026-10-23T10:06:41","slug":"how-to-make-a-game-with-ai","status":"publish","type":"post","link":"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/","title":{"rendered":"How to Make a Game with AI: Sky Shift, from a 3D Model to Playgama"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>A step-by-step guide: generating the assets, building the game with an AI coding agent, and getting it to players with Playgama Bridge and Playgama MCP. Every screenshot comes from the real build.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Can AI really make a game? We made one to find out. <strong>Sky Shift<\/strong> is a 3D car stunt race in the sky: the tracks float over the sea, and every gate you drive through swaps your car for a different one. It runs in any browser, on a computer and on a phone.<\/p>\n\n\n\n<div class=\"pg-play\" id=\"pg-play-skyshift\">\n<div class=\"pg-play-stage\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-3d-car-stunt-game-1024x576.jpg\" alt=\"Sky Shift, the 3D car stunt game this guide is built on\" class=\"wp-image-15359\" width=\"1024\" height=\"576\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-3d-car-stunt-game-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-3d-car-stunt-game-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-3d-car-stunt-game-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-3d-car-stunt-game-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-3d-car-stunt-game-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-3d-car-stunt-game.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\n<button type=\"button\" class=\"pg-play-btn\" aria-label=\"Play Sky Shift here\"><span class=\"pg-play-tri\"><\/span>Play Sky Shift<\/button>\n<\/div>\n<div class=\"pg-play-bar\">\n<span>Sky Shift runs right here, on a computer and on a phone.<\/span>\n<span class=\"pg-play-act\"><button type=\"button\" class=\"pg-play-fs\">Full screen<\/button><a href=\"https:\/\/playgama.ai\/play\/i66ryvsxgiybqp\" target=\"_blank\" rel=\"noopener\">Open in a new tab<\/a><\/span>\n<\/div>\n<\/div>\n<style>\n.pg-play{margin:2em 0!important;border-radius:var(--radius-16,16px);overflow:hidden;border:1px solid var(--border-default,#e4e0ef);background:#0d0b14}\n.pg-play-stage{position:relative;width:100%;padding-top:56.25%;background:#0d0b14}\n.pg-play-stage.on{padding-top:calc(56.25% + 44px)}\n.pg-play-stage img,.pg-play-stage iframe{position:absolute;inset:0;width:100%!important;height:100%!important;border:0;margin:0!important;object-fit:cover;border-radius:0!important}\n.pg-play-btn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:12px;padding:16px 28px;border:0;border-radius:999px;cursor:pointer;font:800 18px\/1 inherit;color:#fff;background:var(--accent-purple,#7b4dff);box-shadow:0 12px 32px -8px rgba(0,0,0,.6)}\n.pg-play-btn:hover{filter:brightness(1.1)}\n.pg-play-tri{width:0;height:0;border-left:16px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent}\n.pg-play-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:12px 16px;font-size:14px;color:#c9c4d8;background:#16131f}\n.pg-play-act{display:flex;gap:16px;align-items:center}\n.pg-play-act button,.pg-play-act a{font:700 14px\/1 inherit;color:#fff!important;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}\n.pg-play:fullscreen{border:0;border-radius:0;display:flex;flex-direction:column}\n.pg-play:fullscreen .pg-play-stage{flex:1;padding-top:0}\n<\/style>\n<script>\n(function(){\nvar root=document.getElementById('pg-play-skyshift');if(!root)return;\nvar stage=root.querySelector('.pg-play-stage');var url='https:\/\/playgama.ai\/play\/i66ryvsxgiybqp';\nfunction start(){if(stage.querySelector('iframe'))return;var f=document.createElement('iframe');f.src=url;f.title='Sky Shift';\nf.setAttribute('allow','fullscreen; autoplay; gamepad; screen-wake-lock');f.setAttribute('allowfullscreen','');\nstage.innerHTML='';stage.className+=' on';stage.appendChild(f);f.focus();}\nroot.querySelector('.pg-play-btn').addEventListener('click',start);\nroot.querySelector('.pg-play-fs').addEventListener('click',function(){start();\nif(root.requestFullscreen){root.requestFullscreen();}else if(root.webkitRequestFullscreen){root.webkitRequestFullscreen();}else{window.open(url,'_blank','noopener');}});\n})();\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\">AI did most of the work: Tripo turned images into the two cars, Claude Code wrote every line of the code, and the same agent got the game ready for Playgama through Playgama MCP. The decisions stayed with us: what to build, how it should feel, and when it was good enough. This guide shows every step, including the parts that didn&#8217;t work the first time.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"How to Make a Game with AI: from a 3D Model to Playgama\" width=\"720\" height=\"405\" src=\"https:\/\/www.youtube.com\/embed\/KGID1fQxtxM?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">The whole process in 11 minutes: the cars, the code and the publishing.<\/figcaption><\/figure>\n\n\n<script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"VideoObject\", \"name\": \"How to Make a Game with AI: from a 3D Model to Playgama\", \"description\": \"How to make a game with AI, step by step: Sky Shift, a 3D car stunt race for the browser, built with AI-generated cars, an AI coding agent and Playgama MCP.\", \"thumbnailUrl\": \"https:\/\/i.ytimg.com\/vi\/KGID1fQxtxM\/maxresdefault.jpg\", \"uploadDate\": \"2026-10-05T07:13:33-07:00\", \"duration\": \"PT11M4S\", \"contentUrl\": \"https:\/\/www.youtube.com\/watch?v=KGID1fQxtxM\", \"embedUrl\": \"https:\/\/www.youtube.com\/embed\/KGID1fQxtxM\"}<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">How to make a video game with AI: the steps<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Making a video game with AI takes five steps. AI does the heavy lifting in each one, and you make the calls:<\/p>\n\n\n\n<figure class=\"wp-block-table pg-table pg-t8 pg-cards\"><table><thead><tr><th>Step<\/th><th>What AI does<\/th><th>What you do<\/th><\/tr><\/thead><tbody><tr><td>1. Plan<\/td><td>ChatGPT drafts a game design document (GDD) from your constraints<\/td><td>pick the idea and cut the scope<\/td><\/tr><tr><td>2. Assets<\/td><td>Tripo turns images into 3D models; Suno writes the music<\/td><td>take free CC0 packs and check every licence<\/td><\/tr><tr><td>3. Code<\/td><td>an AI coding agent writes the whole game<\/td><td>play every version and decide what changes<\/td><\/tr><tr><td>4. Get ready<\/td><td>Playgama MCP checks the game against the checklist and adds the Bridge SDK<\/td><td>test it in the QA tool<\/td><\/tr><tr><td>5. Publish<\/td><td>the agent uploads the build and gives you a public link<\/td><td>share it and read the analytics<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"#pg-ai-starter\">Start your own game with the free tool below<\/a>: it turns each step into a ready prompt. Before you publish, run through <a href=\"#pg-ai-checklist\">the AI game checklist<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What you&#8217;ll learn<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>how to plan a game with ChatGPT and a game design document (GDD);<\/li>\n\n\n<li>how to generate 3D cars with AI and make them ready for a game;<\/li>\n\n\n<li>where to find free models, sounds and music, and how to read their licences;<\/li>\n\n\n<li>how an AI agent builds a game from plain-language requests, and how to give it &#8220;eyes&#8221;;<\/li>\n\n\n<li>how Playgama Bridge and Playgama MCP get a game ready for Playgama: ads, saves, translations, the checklist;<\/li>\n\n\n<li>how publishing works with Playgama MCP, and how to read your game&#8217;s analytics.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">The tools we used for Sky Shift<\/h3>\n\n\n\n<figure class=\"wp-block-table pg-table pg-t1\"><table><thead><tr><th>Tool<\/th><th>What it did<\/th><\/tr><\/thead><tbody><tr><td>ChatGPT<\/td><td>concept images of the cars<\/td><\/tr><tr><td>Tripo<\/td><td>turned the images into 3D models<\/td><\/tr><tr><td>Blender<\/td><td>made the models game-ready, with a script<\/td><\/tr><tr><td>Kenney, Sketchfab<\/td><td>free props and sounds<\/td><\/tr><tr><td>Suno<\/td><td>the music<\/td><\/tr><tr><td>Claude Code<\/td><td>wrote the game<\/td><\/tr><tr><td>Playgama Bridge SDK<\/td><td>ads, saves, leaderboards and languages, on every platform<\/td><\/tr><tr><td>Playgama MCP<\/td><td>gets the game ready, publishes it, and reads its analytics<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Contents:<\/strong> The steps \u00b7 Can AI make a whole game? \u00b7 Plan your own AI game \u00b7 Step 1 \u00b7 Brainstorming and the GDD \u00b7 Step 2 \u00b7 Assets \u00b7 Step 3 \u00b7 Development \u00b7 Step 4 \u00b7 Getting ready for Playgama \u00b7 Checklist \u00b7 Step 5 \u00b7 Distribution \u00b7 Top AI tools \u00b7 Challenges \u00b7 FAQ \u00b7 What we learned<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Can AI make a whole game by itself?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">AI can make most of a game, but not the decisions: it is a co-pilot, not a replacement for you. It drafts, generates and fixes faster than any solo developer can, but it doesn&#8217;t know what makes your game fun. You still choose the idea, judge every version and decide when it&#8217;s ready. For a solo or indie developer, that split is what saves time and money: the slow, repetitive parts go to the tools, and your hours go into the decisions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is where AI helps most, stage by stage:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ideas and design:<\/strong> brainstorming, lore, mechanics and a structured game design document (GDD), with ChatGPT or another chat model;<\/li>\n\n\n<li><strong>Art:<\/strong> concept images (ChatGPT) and 3D models from an image (Tripo, Meshy);<\/li>\n\n\n<li><strong>Code:<\/strong> a whole browser game on three.js, written by an AI coding agent such as Claude Code;<\/li>\n\n\n<li><strong>Audio:<\/strong> music (Suno), plus ready-made free sound packs;<\/li>\n\n\n<li><strong>Testing and release:<\/strong> checking the build, fixing what breaks and publishing it, which an agent can do through Playgama MCP.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Prompt engineering ties these stages together: asking for exactly what you want, in small, specific pieces. Every step below shows the real prompts we used, so you can see what a useful one looks like.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Plan your own AI game<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The tool below follows this guide step by step and fills every prompt in for your idea: the GDD, the asset prompts, the agent setup and the build prompt. You only chat with the agent in plain English.<\/p>\n\n\n\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap-icons@1.11.3\/font\/bootstrap-icons.min.css\">\n<style>\n.pgs{--a:#7b4dff;--a2:#a35bff;--soft:#f1ecff;--ink:#16141c;--mut:#5d5a6b;--line:#e4e0ef;--bg2:#f6f4fb;\nposition:relative;margin:2.4em 0!important;border-radius:24px;padding:30px 30px 30px;color:#fff;font-size:16px;line-height:1.5;scroll-margin-top:90px;\nbackground:radial-gradient(120% 140% at 0% 0%,#b77bff 0%,#8f55ff 45%,#6a3df0 100%);box-shadow:0 24px 60px -24px rgba(110,60,240,.65)}\n.pgs *{box-sizing:border-box}\n.pgs-badge{display:inline-block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--a);background:#fff;border-radius:999px;padding:4px 12px}\n.pgs h3{margin:14px 0 8px!important;padding:0!important;color:#fff!important;font-size:30px;line-height:1.15}\n.pgs-lead{margin:0 0 26px!important;color:#fff;opacity:.92;font-size:17px;line-height:1.45}\n.pgs-prog{margin:0 0 22px}\n.pgs-phases{display:grid;grid-template-columns:3fr 4fr 1.4fr;gap:8px}\n.pgs-steps{margin:0 0 14px!important;padding-left:20px!important;color:var(--mut);font-size:15px}.pgs-steps li{margin:4px 0!important}\n.pgs-phase span{display:block;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fff;opacity:.6;margin-bottom:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.pgs-phase.on span{opacity:1}\n.pgs-segs{display:flex;gap:4px}\n.pgs-segs i{flex:1;height:8px;border-radius:99px;background:rgba(255,255,255,.28);transition:background .25s}\n.pgs-segs i.done{background:#fff}\n.pgs-segs i.cur{background:linear-gradient(90deg,#fff 50%,rgba(255,255,255,.28) 50%)}\n.pgs-count{font-size:14px;font-weight:700;color:#fff;opacity:.85;margin-top:12px}\n.pgs-body{background:#fff;color:var(--ink);border-radius:18px;padding:30px 30px 24px}\n.pgs-body a{color:var(--a)!important}\n.pgs-scr{display:none;min-height:230px}\n.pgs-scr.on{display:block;animation:pgsIn .25s ease}\n@keyframes pgsIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}\n.pgs-q{font-size:24px;font-weight:800;line-height:1.25;margin:0 0 8px!important;color:var(--ink)}\n.pgs-hint{color:var(--mut);font-size:16px;line-height:1.5;margin:0 0 22px!important}\n.pgs-field{margin:0 0 20px}\n.pgs-field label{display:block;font-weight:700;font-size:15px;margin:0 0 8px!important;color:var(--ink)}\n.pgs-field small{display:block;color:var(--mut);font-size:13px;margin-top:5px}\n.pgs input[type=text],.pgs textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1.5px solid #cfc9df;border-radius:12px;padding:12px 14px}\n.pgs input::placeholder,.pgs textarea::placeholder{color:#9a96a8}\n.pgs textarea{min-height:100px;resize:vertical}\n.pgs input:focus,.pgs textarea:focus{outline:3px solid #d9c8ff;border-color:var(--a)}\n.pgs-chips{display:flex;flex-wrap:wrap;gap:8px}\n.pgs-chip{font:inherit;font-size:15px;font-weight:600;border:1.5px solid #cfc9df;background:#fff;color:var(--ink);border-radius:999px;padding:9px 16px;cursor:pointer}\n.pgs-chip:hover{border-color:var(--a)}\n.pgs-chip[aria-pressed=true]{border-color:var(--a);background:var(--a);color:#fff}\n.pgs-games{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.pgs-game{display:flex;flex-direction:column;border:2px solid var(--line);border-radius:14px;padding:0;overflow:hidden;cursor:pointer;background:#fff;text-align:left;font:inherit;color:var(--ink);min-width:0}.pgs-game img{display:block;width:100%;height:auto;aspect-ratio:4\/5;object-fit:cover;object-position:top;margin:0!important;border-radius:0!important;max-width:none}.pgs-game b{display:block;font-size:14px;line-height:1.3;padding:9px 9px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pgs-game span{display:none;font-size:12px;line-height:1.35;color:var(--mut);padding:1px 9px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pgs-game[aria-pressed=true]{border-color:var(--a);box-shadow:0 0 0 3px #d9c8ff}\n.pgs-any{display:grid!important;grid-template-columns:repeat(3,1fr);place-items:center;gap:6px;aspect-ratio:4\/5;padding:16% 12%!important;white-space:normal!important;color:#fff!important;background:radial-gradient(120% 120% at 0% 0%,#ffb86b 0%,#ff6fa8 45%,#7b4dff 100%)}.pgs-any i{font-size:26px;line-height:1}.pgs-play{display:flex;flex-direction:column;gap:4px;margin:18px 0 0;background:var(--soft);border-radius:14px;padding:14px 16px;font-size:16px;line-height:1.5;color:var(--ink);animation:pgsIn .25s ease}.pgs-play b{display:inline-flex;align-items:center;gap:7px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--a)}.pgs .pgs-other{display:none;margin-top:12px}.pgs .pgs-other.on{display:block}.pgs-custom{display:none}.pgs-custom.on{display:block}.pgs-ideas{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.pgs-idea{font:inherit;font-size:14px;border:1.5px dashed #cfc9df;background:#fff;color:var(--ink);border-radius:999px;padding:7px 13px;cursor:pointer;text-align:left}.pgs-idea:hover{border-color:var(--a);color:var(--a)}\n.pgs-card{border:1.5px solid var(--line);border-radius:14px;padding:18px 20px;margin:0 0 14px}\n.pgs-card b{color:var(--ink)}\n.pgs-card p{margin:6px 0 10px!important;font-size:15px;color:var(--mut)}\n.pgs-need{font-size:15px;color:var(--ink);background:var(--soft);border-radius:12px;padding:14px 16px;margin:4px 0 0!important}\n.pgs pre{white-space:pre-wrap;word-break:break-word;background:var(--bg2);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-size:13.5px;line-height:1.5;margin:0 0 12px!important;max-height:300px;overflow:auto}\n.pgs-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}\n.pgs-btn{display:inline-block;font:inherit;font-size:16px;font-weight:800;border-radius:12px;padding:12px 20px;cursor:pointer;text-decoration:none!important;border:2px solid var(--a);background:var(--a);color:#fff!important}\n.pgs-btn:hover{filter:brightness(1.1)}\n.pgs-btn.pgs-ghost{background:#fff;color:var(--a)!important}\n.pgs-ok{font-size:14px;font-weight:700;color:#1a9a55;min-height:1em}\n.pgs-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}\n.pgs-skip{font:inherit;font-size:15px;font-weight:700;color:var(--a);background:none;border:0;cursor:pointer;text-decoration:underline;padding:0}\n.pgs-sum{font-size:16px;color:var(--mut);margin:0 0 18px!important}\n@media (max-width:640px){.pgs{padding:22px 14px 14px;border-radius:20px}.pgs h3{font-size:24px}.pgs-lead{font-size:16px;margin-bottom:20px!important}.pgs-body{padding:22px 16px 16px}.pgs-q{font-size:21px}.pgs-nav{margin-top:20px;padding-top:16px}\n.pgs-games{display:flex;overflow-x:auto;scrollbar-width:none;padding:3px;margin:-3px}.pgs-game b{padding-bottom:0}.pgs-game span{display:block!important}.pgs-games::-webkit-scrollbar{display:none}.pgs-game{flex:0 0 42%}.pgs-phase span{font-size:10px;letter-spacing:.03em}}\n<\/style>\n<div class=\"pgs\" id=\"pg-ai-starter\">\n  <span class=\"pgs-badge\">Free tool<\/span>\n  <h3>Start your AI game<\/h3>\n  <p class=\"pgs-lead\">Eight short steps from an idea to a public link. Each step gives you a ready prompt from this guide, filled in for your game.<\/p>\n  <div class=\"pgs-prog\">\n    <div class=\"pgs-phases\">\n      <div class=\"pgs-phase\"><span>Plan<\/span><div class=\"pgs-segs\"><i><\/i><i><\/i><i><\/i><\/div><\/div>\n      <div class=\"pgs-phase\"><span>One-time setup<\/span><div class=\"pgs-segs\"><i><\/i><i><\/i><i><\/i><i><\/i><\/div><\/div>\n      <div class=\"pgs-phase\"><span>Build<\/span><div class=\"pgs-segs\"><i><\/i><\/div><\/div>\n    <\/div>\n    <div class=\"pgs-count\" id=\"pgs-count\"><\/div>\n  <\/div>\n  <div class=\"pgs-body\">\n\n  <section class=\"pgs-scr\" data-s=\"1\">\n    <p class=\"pgs-q\">What game do you want to make?<\/p><p class=\"pgs-hint\">One or two sentences are enough. Small beats big for a first game.<\/p>\n    <div class=\"pgs-field\"><label for=\"pgs-idea\">Your idea<\/label><textarea id=\"pgs-idea\" placeholder=\"A car race in the sky where every gate swaps your car for another one\"><\/textarea>\n      <small>Need a spark? Tap one:<\/small>\n      <div class=\"pgs-ideas\" id=\"pgs-ideas\">\n        <button type=\"button\" class=\"pgs-idea\">A car race in the sky where every gate swaps your car<\/button>\n        <button type=\"button\" class=\"pgs-idea\">A one-button platformer where gravity flips on every jump<\/button>\n        <button type=\"button\" class=\"pgs-idea\">A cozy puzzle about packing a tiny suitcase<\/button>\n        <button type=\"button\" class=\"pgs-idea\">An idle game about running a food truck<\/button>\n      <\/div><\/div>\n    <div class=\"pgs-field\"><label>Genre<\/label><div class=\"pgs-chips\" data-group=\"genre\">\n      <button type=\"button\" class=\"pgs-chip\" data-v=\"racing\" aria-pressed=\"true\">Racing<\/button><button type=\"button\" class=\"pgs-chip\" data-v=\"platformer\" aria-pressed=\"false\">Platformer<\/button><button type=\"button\" class=\"pgs-chip\" data-v=\"puzzle\" aria-pressed=\"false\">Puzzle<\/button><button type=\"button\" class=\"pgs-chip\" data-v=\"action\" aria-pressed=\"false\">Action or shooter<\/button><button type=\"button\" class=\"pgs-chip\" data-v=\"idle\" aria-pressed=\"false\">Idle or clicker<\/button><button type=\"button\" class=\"pgs-chip\" data-v=\"other\" aria-pressed=\"false\">Something else<\/button><\/div><\/div>\n    <div class=\"pgs-field\"><label>Look<\/label><div class=\"pgs-chips\" data-group=\"dim\">\n      <button type=\"button\" class=\"pgs-chip\" data-v=\"3d\" aria-pressed=\"true\">3D<\/button><button type=\"button\" class=\"pgs-chip\" data-v=\"2d\" aria-pressed=\"false\">2D<\/button><\/div>\n      <small>2D is simpler for a first game: no 3D models to generate and clean up.<\/small><\/div>\n  <\/section>\n\n  <section class=\"pgs-scr\" data-s=\"2\">\n    <p class=\"pgs-q\">Plan it: the game design document<\/p><p class=\"pgs-hint\">Paste this into ChatGPT or any chat model, answer its questions, and save the result as <b>GDD.md<\/b>. Your agent will read it in step 8.<\/p>\n    <div class=\"pgs-field\"><label>One play session<\/label><div class=\"pgs-chips\" data-group=\"len\">\n      <button type=\"button\" class=\"pgs-chip\" data-v=\"1\u20132 minutes\" aria-pressed=\"false\">1\u20132 min<\/button><button type=\"button\" class=\"pgs-chip\" data-v=\"2\u20133 minutes\" aria-pressed=\"true\">2\u20133 min<\/button><button type=\"button\" class=\"pgs-chip\" data-v=\"5\u201310 minutes\" aria-pressed=\"false\">5\u201310 min<\/button><\/div><\/div>\n    <pre id=\"pgs-gdd\"><\/pre>\n    <div class=\"pgs-row\"><button type=\"button\" class=\"pgs-btn\" data-copy=\"pgs-gdd\">Copy the GDD prompt<\/button><span class=\"pgs-ok\" aria-live=\"polite\"><\/span><\/div>\n  <\/section>\n\n  <section class=\"pgs-scr\" data-s=\"3\">\n    <p class=\"pgs-q\">Get the assets<\/p><p class=\"pgs-hint\" id=\"pgs-a-hint\"><\/p>\n    <div class=\"pgs-card\" id=\"pgs-a3d\"><b>A 3D model with AI<\/b>\n      <div class=\"pgs-field\" style=\"margin:10px 0 12px\"><label for=\"pgs-obj\">The main object<\/label><input type=\"text\" id=\"pgs-obj\" placeholder=\"sports racing car\" maxlength=\"60\" autocomplete=\"off\"><\/div>\n      <p>1. Ask ChatGPT for a clean picture first:<\/p><pre id=\"pgs-img\"><\/pre>\n      <div class=\"pgs-row\"><button type=\"button\" class=\"pgs-btn pgs-ghost\" data-copy=\"pgs-img\">Copy<\/button><span class=\"pgs-ok\" aria-live=\"polite\"><\/span><\/div>\n      <p style=\"margin-top:14px\">2. In Tripo, turn the picture into a model:<\/p>\n      <ul class=\"pgs-steps\"><li>topology: triangles, about 5,000 of them;<\/li><li>export format: GLB, textures 1K\u20132K;<\/li><li>export the unsplit model first, then segment it if parts must move.<\/li><\/ul><\/div>\n    <div class=\"pgs-card\" id=\"pgs-a2d\"><b>2D art with AI<\/b>\n      <div class=\"pgs-field\" style=\"margin:10px 0 12px\"><label for=\"pgs-obj2\">The main character or object<\/label><input type=\"text\" id=\"pgs-obj2\" placeholder=\"a small round robot\" maxlength=\"60\" autocomplete=\"off\"><\/div>\n      <pre id=\"pgs-img2\"><\/pre>\n      <div class=\"pgs-row\"><button type=\"button\" class=\"pgs-btn pgs-ghost\" data-copy=\"pgs-img2\">Copy<\/button><span class=\"pgs-ok\" aria-live=\"polite\"><\/span><\/div><\/div>\n    <div class=\"pgs-card\"><b>Free props and sounds<\/b><p>Take CC0 packs from <a href=\"https:\/\/kenney.nl\/assets\" target=\"_blank\" rel=\"noopener\">Kenney<\/a> and download them before you start. CC0 means commercial use with no credit needed.<\/p><\/div>\n    <div class=\"pgs-card\"><b>Music with Suno<\/b><pre id=\"pgs-music\"><\/pre>\n      <div class=\"pgs-row\"><button type=\"button\" class=\"pgs-btn pgs-ghost\" data-copy=\"pgs-music\">Copy<\/button><span class=\"pgs-ok\" aria-live=\"polite\"><\/span><\/div>\n      <p style=\"margin-top:10px\">Suno&#8217;s free plan has no commercial rights: check its terms before a game with ads goes live.<\/p><\/div>\n  <\/section>\n\n  <section class=\"pgs-scr\" data-s=\"4\">\n    <p class=\"pgs-q\">Which AI agent will write the code?<\/p><p class=\"pgs-hint\">Any of these connects to Playgama MCP. Pick the one you have or want to try.<\/p>\n    <div class=\"pgs-field\"><div class=\"pgs-chips\" data-group=\"agent\">\n      <button type=\"button\" class=\"pgs-chip\" data-v=\"claude\" aria-pressed=\"true\">Claude Code<\/button><button type=\"button\" class=\"pgs-chip\" data-v=\"codex\" aria-pressed=\"false\">Codex<\/button><button type=\"button\" class=\"pgs-chip\" data-v=\"cursor\" aria-pressed=\"false\">Cursor<\/button><button type=\"button\" class=\"pgs-chip\" data-v=\"vscode\" aria-pressed=\"false\">VS Code + GitHub Copilot<\/button><\/div><\/div>\n    <div class=\"pgs-field\"><label>Your computer<\/label><div class=\"pgs-chips\" data-group=\"os\">\n      <button type=\"button\" class=\"pgs-chip\" data-v=\"mac\" aria-pressed=\"true\">Mac or Linux<\/button><button type=\"button\" class=\"pgs-chip\" data-v=\"win\" aria-pressed=\"false\">Windows<\/button><\/div><\/div>\n    <p class=\"pgs-need\" id=\"pgs-need\"><\/p>\n    <p style=\"margin-top:14px\"><button type=\"button\" class=\"pgs-skip\" id=\"pgs-skip\">Already set up with Playgama? Skip to the build prompt<\/button><\/p>\n  <\/section>\n\n  <section class=\"pgs-scr\" data-s=\"5\">\n    <p class=\"pgs-q\">Create your Playgama developer account<\/p><p class=\"pgs-hint\">Your game will live here, and this is the account your agent connects to. Finish the sign-up, then come back.<\/p>\n    <a class=\"pgs-btn\" id=\"pgs-console\" href=\"https:\/\/developer.playgama.com\/mcp?utm_source=playgama_blog&amp;utm_medium=article&amp;utm_campaign=how_to_make_a_game_with_ai&amp;utm_content=starter_tool\" target=\"_blank\" rel=\"noopener\">Open the developer console<\/a>\n  <\/section>\n\n  <section class=\"pgs-scr\" data-s=\"6\">\n    <p class=\"pgs-q\" id=\"pgs-s6-q\">Install the agent<\/p><p class=\"pgs-hint\" id=\"pgs-s6-p\"><\/p>\n    <pre id=\"pgs-install\"><\/pre>\n    <div class=\"pgs-row\" id=\"pgs-install-row\"><button type=\"button\" class=\"pgs-btn pgs-ghost\" data-copy=\"pgs-install\">Copy<\/button><span class=\"pgs-ok\" aria-live=\"polite\"><\/span><\/div>\n    <p class=\"pgs-hint\" id=\"pgs-s6-after\" style=\"margin-top:12px\"><\/p>\n  <\/section>\n\n  <section class=\"pgs-scr\" data-s=\"7\">\n    <p class=\"pgs-q\">Connect Playgama MCP to the agent<\/p><p class=\"pgs-hint\" id=\"pgs-s7-p\"><\/p>\n    <pre id=\"pgs-cmd\"><\/pre>\n    <div class=\"pgs-row\"><button type=\"button\" class=\"pgs-btn pgs-ghost\" data-copy=\"pgs-cmd\">Copy<\/button><span class=\"pgs-ok\" aria-live=\"polite\"><\/span><\/div>\n    <p class=\"pgs-hint\" id=\"pgs-s7-after\" style=\"margin-top:12px\"><\/p>\n  <\/section>\n\n  <section class=\"pgs-scr\" data-s=\"8\">\n    <p class=\"pgs-q\">Build and publish<\/p><p class=\"pgs-sum\" id=\"pgs-sum\"><\/p>\n    <div class=\"pgs-card\"><b>1. Start the agent in the game folder<\/b><p id=\"pgs-s8-p\"><\/p><pre id=\"pgs-start\"><\/pre>\n      <div class=\"pgs-row\" id=\"pgs-start-row\"><button type=\"button\" class=\"pgs-btn pgs-ghost\" data-copy=\"pgs-start\">Copy<\/button><span class=\"pgs-ok\" aria-live=\"polite\"><\/span><\/div>\n      <p>Put <b>GDD.md<\/b> in the folder, and your models, sounds and music in <b>assets<\/b>.<\/p><\/div>\n    <div class=\"pgs-card\"><b>2. Paste the build prompt<\/b><p>The agent asks its questions, then builds the game one feature at a time. Play every version and say what to change.<\/p><pre id=\"pgs-prompt\"><\/pre>\n      <div class=\"pgs-row\"><button type=\"button\" class=\"pgs-btn\" data-copy=\"pgs-prompt\">Copy the prompt<\/button><span class=\"pgs-ok\" aria-live=\"polite\"><\/span><\/div><\/div>\n    <div class=\"pgs-card\"><b>3. Publish when you like it<\/b><p>Run through the <a href=\"#pg-ai-checklist\">checklist below<\/a>, then send one sentence:<\/p><pre id=\"pgs-pub\">Upload this game to Playgama and give me a public playable link.<\/pre>\n      <div class=\"pgs-row\"><button type=\"button\" class=\"pgs-btn pgs-ghost\" data-copy=\"pgs-pub\">Copy<\/button><span class=\"pgs-ok\" aria-live=\"polite\"><\/span><\/div><\/div>\n  <\/section>\n\n  <div class=\"pgs-nav\"><button type=\"button\" class=\"pgs-btn pgs-ghost\" id=\"pgs-back\">Back<\/button><button type=\"button\" class=\"pgs-btn\" id=\"pgs-next\">Next<\/button><\/div>\n  <\/div>\n<\/div>\n<script>\n(function(){\n  var root=document.getElementById('pg-ai-starter'); if(!root) return;\n  var $=function(id){return document.getElementById(id)};\n  var EP='https:\/\/developer.playgama.com\/api\/mcp', LAST=8, PH=[[1,2,3],[4,5,6,7],[8]];\n  var st={step:1,genre:'racing',dim:'3d',len:'2\u20133 minutes',agent:'claude',os:(\/Win\/i.test(navigator.platform||navigator.userAgent||'')?'win':'mac')};\n  var INSTALL={claude:{mac:'curl -fsSL https:\/\/claude.ai\/install.sh | bash',win:'irm https:\/\/claude.ai\/install.ps1 | iex'},\n    codex:{mac:'curl -fsSL https:\/\/chatgpt.com\/codex\/install.sh | sh',win:'powershell -ExecutionPolicy ByPass -c \"irm https:\/\/chatgpt.com\/codex\/install.ps1 | iex\"'}};\n  var NEED={claude:'You need a Claude Pro, Max, Team or Enterprise plan, or a Claude Console account. The free claude.ai plan does not include Claude Code.',\n    codex:'You need a ChatGPT Plus, Pro, Business, Edu or Enterprise plan.',\n    cursor:'Cursor has a free plan with a limited number of agent requests.',\n    vscode:'For people who already work in VS Code. GitHub Copilot Free includes agent mode and MCP servers with limited usage; paid plans raise the limits.'};\n  var NAMES={claude:'Claude Code',codex:'Codex',cursor:'Cursor',vscode:'VS Code'};\n  var GENRE={racing:'arcade racing',platformer:'platformer',puzzle:'puzzle',action:'action',idle:'idle clicker',other:'casual'};\n  var MUSIC={racing:'energetic electronic racing game soundtrack, driving synth bass, punchy drums, bright arpeggios, upbeat, confident, instrumental, 128 bpm',\n    platformer:'bright upbeat platformer game soundtrack, bouncy bass, playful lead melody, light drums, instrumental, 140 bpm',\n    puzzle:'calm puzzle game music, soft piano, warm pads, gentle and focused, instrumental, 85 bpm',\n    action:'intense action game soundtrack, heavy drums, driving synths, tense and fast, instrumental, 150 bpm',\n    idle:'cozy idle game music, light plucked melody, soft pads, relaxed, seamless loop, instrumental, 90 bpm',\n    other:'upbeat casual game soundtrack, catchy melody, light drums, friendly, instrumental, 110 bpm'};\n  function val(id,d){var v=($(id).value||'').trim();return v||d}\n  function track(n){try{(window.dataLayer=window.dataLayer||[]).push({event:n,pgai_step:st.step,pgai_genre:st.genre,pgai_dim:st.dim,pgai_agent:st.agent,pgai_os:st.os})}catch(e){}}\n  function press(sel,v){root.querySelectorAll(sel).forEach(function(b){b.setAttribute('aria-pressed',b.getAttribute('data-v')===v?'true':'false')})}\n  function show(id,on){$(id).style.display=on?'':'none'}\n  function setup(){\n    var a=st.agent,os=st.os;$('pgs-need').textContent=NEED[a];\n    if(a==='claude'||a==='codex'){\n      var bin=a==='claude'?'claude':'codex';\n      $('pgs-s6-q').textContent='Install '+NAMES[a];\n      $('pgs-s6-p').textContent=os==='win'?'Open PowerShell and paste this command:':'Open the Terminal app and paste this command:';\n      show('pgs-install',true);show('pgs-install-row',true);$('pgs-install').textContent=INSTALL[a][os];\n      $('pgs-s6-after').innerHTML=a==='claude'?'Then open a new terminal window and run <b>claude<\\\/b>. It opens the browser so you can log in with your Claude account. When you are logged in, close that window.'\n        :'Then open a new terminal window, run <b>codex<\\\/b> and choose <b>Sign in with ChatGPT<\\\/b>. When you are signed in, close that window.';\n      $('pgs-s7-p').textContent='Paste this into the terminal once:';\n      $('pgs-cmd').textContent=a==='claude'?\"claude mcp add --transport 'http' 'playgama-developer-console' '\"+EP+\"'\":\"codex mcp add 'playgama-developer-console' --url '\"+EP+\"'\";\n      $('pgs-s7-after').innerHTML=a==='claude'?'Then run <b>claude<\\\/b>, type <b>\/mcp<\\\/b>, pick <b>playgama-developer-console<\\\/b> and choose to authenticate. The Playgama console opens in your browser: check the account and click <b>Allow<\\\/b>.'\n        :'Codex opens the Playgama console in your browser right away: check the account and click <b>Allow<\\\/b>.';\n      $('pgs-s8-p').textContent='Create a folder for the game and start the agent inside it:';\n      show('pgs-start',true);show('pgs-start-row',true);$('pgs-start').textContent=(os==='win'?'mkdir my-ai-game; cd my-ai-game; ':'mkdir my-ai-game \\x26\\x26 cd my-ai-game \\x26\\x26 ')+bin;\n    } else if(a==='cursor'){\n      $('pgs-s6-q').textContent='Install Cursor';\n      $('pgs-s6-p').innerHTML='Download Cursor from <a href=\"https:\/\/cursor.com\/download\" target=\"_blank\" rel=\"noopener\">cursor.com\/download<\\\/a>, install it like any app and sign in.';\n      show('pgs-install',false);show('pgs-install-row',false);$('pgs-s6-after').textContent='';\n      $('pgs-s7-p').innerHTML='Create the file <b>'+(os==='win'?'C:\\\\Users\\\\&lt;your name&gt;\\\\.cursor\\\\mcp.json':'~\/.cursor\/mcp.json')+'<\\\/b> (or open it if it exists) and paste:';\n      $('pgs-cmd').textContent='{\\n  \"mcpServers\": {\\n    \"playgama-developer-console\": {\\n      \"type\": \"http\",\\n      \"url\": \"'+EP+'\"\\n    }\\n  }\\n}';\n      $('pgs-s7-after').innerHTML='Restart Cursor. When it first connects to the server, the Playgama console opens in your browser: check the account and click <b>Allow<\\\/b>.';\n      $('pgs-s8-p').innerHTML='In Cursor choose <b>File \u2192 Open Folder<\\\/b>, create a new folder called <b>my-ai-game<\\\/b> and open the agent chat.';\n      show('pgs-start',false);show('pgs-start-row',false);\n    } else {\n      $('pgs-s6-q').textContent='Install VS Code and GitHub Copilot';\n      $('pgs-s6-p').innerHTML='Download VS Code from <a href=\"https:\/\/code.visualstudio.com\/download\" target=\"_blank\" rel=\"noopener\">code.visualstudio.com<\\\/a>, open the Chat view and sign in to GitHub Copilot with your GitHub account.';\n      show('pgs-install',false);show('pgs-install-row',false);$('pgs-s6-after').textContent='';\n      $('pgs-s7-p').innerHTML='Create a folder called <b>my-ai-game<\\\/b>, open it in VS Code (<b>File \u2192 Open Folder<\\\/b>), add the file <b>.vscode\/mcp.json<\\\/b> and paste:';\n      $('pgs-cmd').textContent='{\\n  \"servers\": {\\n    \"playgama-developer-console\": {\\n      \"type\": \"http\",\\n      \"url\": \"'+EP+'\"\\n    }\\n  }\\n}';\n      $('pgs-s7-after').innerHTML='The file holds no secret. VS Code asks you to sign in when it starts the server: the Playgama console opens in your browser, check the account and click <b>Allow<\\\/b>.';\n      $('pgs-s8-p').innerHTML='In the same folder, open Copilot Chat and switch it to <b>Agent<\\\/b> mode.';\n      show('pgs-start',false);show('pgs-start-row',false);\n    }\n  }\n  function build(){\n    var idea=val('pgs-idea','a small '+GENRE[st.genre]+' game').replace(\/[.\\s]+$\/,''),g=GENRE[st.genre],d3=st.dim==='3d';\n    var art=d3?'low-poly 3D':'clean 2D';\n    $('pgs-gdd').textContent='You are a game designer. Write a one-page game design document for a browser game. The idea: '+idea+'. '+\n      'Constraints: [genre: '+g+'], [platform: desktop and mobile browser], [session length: '+st.len+'], [solo developer, 4 weeks], [art: '+art+']. '+\n      'Use these sections: 1) one-sentence pitch, 2) core loop, 3) controls for keyboard and touch, 4) three levels from easy to hard, '+\n      '5) progression and rewards, 6) art and audio style, 7) monetization moments (natural pauses for ads), 8) what is out of scope. '+\n      'Then ask me five questions about anything that is unclear before you finish.';\n    show('pgs-a3d',d3);show('pgs-a2d',!d3);\n    $('pgs-a-hint').textContent=d3?'Generate the main 3D model, take everything else from free packs, and make the music from one prompt.'\n      :'Generate the main character or object, take everything else from free packs, and make the music from one prompt.';\n    var obj=val('pgs-obj','sports racing car'),obj2=val('pgs-obj2','a small round robot');\n    $('pgs-img').textContent=obj+' on a transparent background, in a neutral pose with nothing turned or bent, for my '+g+' game. Later I will use the image to generate a 3D model in Tripo.';\n    $('pgs-img2').textContent=obj2+' for my 2D '+g+' game, side view, on a plain flat background, one consistent '+art+' style. I will remove the background and use it as a sprite.';\n    $('pgs-music').textContent=MUSIC[st.genre];\n    var L=['Build the browser game described in GDD.md in this folder.','','The idea: '+idea+'.','',\n      'Before you write any code, ask me up to five questions about anything that is unclear.','','Requirements:',\n      '- Plain JavaScript'+(d3?' with three.js for the 3D scene':' with HTML5 canvas')+'. It runs in a desktop and mobile browser, with keyboard and touch controls.',\n      '- Use the models, sounds and music in .\/assets. Everything ships inside the build; nothing loads from a CDN except the Playgama Bridge.',\n      '- Describe levels as data, one line per section, so one sentence can change a level.',\n      '- Expose the game state on window.__game, so you can drive the game in a headless browser, take screenshots and measure the frame rate.',\n      '- Check the layout at 360x640, 390x844, 915x412, 1280x720 and 2560x1440.',\n      '- Build it one feature at a time and tell me what to test after each one.',\n      '- Before the first upload, read get_bridge_sdk_docs and get_game_checklist on the Playgama MCP server, integrate the Playgama Bridge SDK 2.2.0 or newer and check the game against the checklist.'];\n    $('pgs-prompt').textContent=L.join('\\n');\n    $('pgs-sum').textContent='A '+(d3?'3D':'2D')+' '+g+' game for the browser, built with '+NAMES[st.agent]+'.';\n  }\n  function go(n,silent){st.step=Math.max(1,Math.min(LAST,n));\n    root.querySelectorAll('.pgs-scr').forEach(function(s){s.classList.toggle('on',+s.getAttribute('data-s')===st.step)});\n    root.querySelectorAll('.pgs-segs i').forEach(function(s,k){s.className=k+1<st.step?'done':k+1===st.step?'cur':''});\n    root.querySelectorAll('.pgs-phase').forEach(function(p,k){p.classList.toggle('on',PH[k].indexOf(st.step)>=0)});\n    $('pgs-count').textContent='Step '+st.step+' of '+LAST;\n    $('pgs-back').style.visibility=st.step===1?'hidden':'visible';\n    $('pgs-next').textContent=st.step===LAST?'Start over':st.step===4?'Set up '+NAMES[st.agent]+' \u2192':st.step===7?'Done, I clicked Allow \u2192':'Next \u2192';\n    setup();build();if(!silent){track('pgai_step');if(root.getBoundingClientRect().top<0)root.scrollIntoView({behavior:'smooth',block:'start'})}}\n  root.addEventListener('input',build);\n  root.querySelectorAll('[data-group]').forEach(function(g){g.addEventListener('click',function(e){var b=e.target.closest('.pgs-chip');if(!b)return;var k=g.getAttribute('data-group');st[k]=b.getAttribute('data-v');\n    press('[data-group='+k+'] .pgs-chip',st[k]);go(st.step,true);track('pgai_pick_'+k)})});\n  $('pgs-next').onclick=function(){go(st.step===LAST?1:st.step+1)};\n  $('pgs-back').onclick=function(){go(st.step-1)};\n  $('pgs-ideas').addEventListener('click',function(e){var b=e.target.closest('.pgs-idea');if(!b)return;$('pgs-idea').value=b.textContent;build();track('pgai_pick_idea')});\n  $('pgs-skip').onclick=function(){track('pgai_skip_setup');go(LAST)};\n  $('pgs-console').addEventListener('click',function(){track('pgai_open_console')});\n  root.querySelectorAll('[data-copy]').forEach(function(b){b.addEventListener('click',function(){\n    var id=b.getAttribute('data-copy'),text=$(id).textContent,ok=b.parentNode.querySelector('.pgs-ok');\n    function done(){if(ok){ok.textContent='Copied';setTimeout(function(){ok.textContent=''},1800)}track('pgai_copy_'+id.replace('pgs-',''))}\n    function fb(){var ta=document.createElement('textarea');ta.value=text;ta.style.position='fixed';ta.style.opacity='0';document.body.appendChild(ta);ta.select();try{document.execCommand('copy');done()}catch(e){}document.body.removeChild(ta)}\n    if(navigator.clipboard?navigator.clipboard.writeText:0)navigator.clipboard.writeText(text).then(done,fb);else fb()})});\n  press('[data-group=os] .pgs-chip',st.os);go(1,true);\n})();\n<\/script>\n\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Brainstorming and the game design document (GDD)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A game design document (GDD) is the plan of your game in one place: the genre, the core loop, the controls, the levels, the art style and what \"done\" means. It matters even more when you work with AI, because every later prompt can point back to it. An agent that has read your GDD makes fewer guesses, and you have something to check its work against.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A small game needs only a short GDD: Sky Shift started with a one-paragraph idea, which you'll see in Step 3, and four questions the agent asked us before it wrote any code. For a bigger game, write the GDD first.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Using ChatGPT for game design ideas<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">ChatGPT writes a GDD you can build from when you give it constraints, not just a theme, and ask for a fixed structure. Compare two prompts:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Vague:<\/strong> \"Make me a cool racing game idea.\" You get a generic list that fits any game.<\/li>\n\n\n<li><strong>Specific:<\/strong> the template below. You get a document you can build from, and you can ask the model to change one section at a time.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default ai-prompt is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">You are a game designer. Write a one-page game design document for a browser game. Constraints: [genre], [platform: desktop and mobile browser], [session length: 2\u20133 minutes], [solo developer, 4 weeks], [art: low-poly 3D]. Use these sections: 1) one-sentence pitch, 2) core loop, 3) controls for keyboard and touch, 4) three levels from easy to hard, 5) progression and rewards, 6) art and audio style, 7) monetization moments (natural pauses for ads), 8) what is out of scope. Then ask me five questions about anything that is unclear before you finish.<\/p>\n<cite>A GDD prompt template for ChatGPT<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Iteration turns the first draft into a working GDD: ask for three alternative core loops, a short backstory for each character, or a harder version of level 2. Keep what you like, paste it back into the document, and move on. A generated GDD should cover:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>genre and a one-sentence pitch;<\/li>\n\n\n<li>the core loop: what the player does every few seconds, and why they come back;<\/li>\n\n\n<li>game mechanics and controls, for every device you support;<\/li>\n\n\n<li>levels or content, with how difficulty grows;<\/li>\n\n\n<li>story, lore and characters, if the game has them;<\/li>\n\n\n<li>art and audio style, so every asset you generate matches;<\/li>\n\n\n<li>rewards, progression and where ads or purchases fit;<\/li>\n\n\n<li>what you will not build in the first version.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Prototype the core loop first<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A prototype tests the core loop before you make any content. Sky Shift grew from a single track: the rivals, the smoke at every swap and the three levels came later, one request at a time. Playtesting a rough version early tells you whether the idea is fun before you spend hours on assets.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Generating game assets with AI<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Game assets, the 3D models, sound effects and music a game is built from, come from three places: AI generators, free libraries and asset stores. In Sky Shift that meant the cars you drive, the props you crash into, and the music behind it all. For Sky Shift we used the first two. Here is exactly how, including the parts that didn't work the first time.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Generate 3D models with AI<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tripo turns a text prompt or an image into a 3D model (text-to-3D and image-to-3D), and both Sky Shift cars were made with it.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Start with an image, not a 3D model<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">A 3D generator works best from a clean picture of exactly what you want. So the first step was an image. We asked ChatGPT:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default ai-prompt is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">sports racing car in transparent background for my racing game, later I will use image to generate 3d model in tripo AI<\/p>\n<cite>Our prompt in ChatGPT<\/cite><\/blockquote>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-chatgpt-prompt-car-concept-1024x576.jpg\" alt=\"The prompt in ChatGPT\" class=\"wp-image-15360\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-chatgpt-prompt-car-concept-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-chatgpt-prompt-car-concept-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-chatgpt-prompt-car-concept-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-chatgpt-prompt-car-concept-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-chatgpt-prompt-car-concept-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-chatgpt-prompt-car-concept.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The prompt in ChatGPT<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">An image-to-3D generator copies whatever it sees, so turned wheels end up baked into the model, and you can't steer them straight later. Our first car came out with its front wheels turned, a typical \"dynamic\" pose. One more prompt fixed it:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default ai-prompt is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">generate this same car but with straigth wheels<\/p>\n<cite>Our follow-up prompt, typo included<\/cite><\/blockquote>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-chatgpt-car-wheels-turned-vs-straight-1024x576.jpg\" alt=\"The first image&#x27;s front wheel is turned; the second&#x27;s is straight\" class=\"wp-image-15361\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-chatgpt-car-wheels-turned-vs-straight-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-chatgpt-car-wheels-turned-vs-straight-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-chatgpt-car-wheels-turned-vs-straight-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-chatgpt-car-wheels-turned-vs-straight-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-chatgpt-car-wheels-turned-vs-straight-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-chatgpt-car-wheels-turned-vs-straight.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The first image's front wheel is turned; the second's is straight<\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">From image to 3D in Tripo<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">In Tripo, the image becomes a textured 3D model. Two settings matter for a game that runs in a browser:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Topology and polycount.<\/strong> We chose triangles and about 5,000 of them. That's plenty for a car seen from a chase camera, and light enough for a phone.<\/li>\n\n\n<li><strong>Export format: GLB.<\/strong> It's a single file with the mesh and its textures, and every web 3D engine loads it. Tripo's export dialog was set to 4K textures; for a web game, 1K\u20132K is enough. See also <a href=\"https:\/\/playgama.com\/blog\/business-faqs\/what-3d-file-formats-are-best-for-three-js-webgl-browser-gam\/\">the best 3D formats for three.js<\/a>.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-topology-triangles-5000-1024x576.jpg\" alt=\"Tripo&#x27;s topology settings: triangles, 5,000\" class=\"wp-image-15362\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-topology-triangles-5000-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-topology-triangles-5000-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-topology-triangles-5000-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-topology-triangles-5000-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-topology-triangles-5000-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-topology-triangles-5000.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Tripo's topology settings: triangles, 5,000<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-export-glb-1024x576.jpg\" alt=\"Tripo&#x27;s export dialog: GLB\" class=\"wp-image-15363\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-export-glb-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-export-glb-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-export-glb-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-export-glb-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-export-glb-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-export-glb.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Tripo's export dialog: GLB<\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Split the car so the wheels can spin<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">A car is only drivable if its wheels are separate objects that the game can spin and steer. Tripo's segmentation splits a model into parts, and the wheels come out on their own.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-segmentation-1024x576.jpg\" alt=\"Segmentation in Tripo\" class=\"wp-image-15364\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-segmentation-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-segmentation-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-segmentation-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-segmentation-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-segmentation-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-segmentation.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Segmentation in Tripo<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-car-split-into-parts-1024x576.jpg\" alt=\"The car split into parts\" class=\"wp-image-15365\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-car-split-into-parts-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-car-split-into-parts-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-car-split-into-parts-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-car-split-into-parts-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-car-split-into-parts-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-tripo-car-split-into-parts.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The car split into parts<\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Make the model game-ready<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Tripo's segmentation gives every part its own tiny texture: our red car came back in 55 parts, each with its own texture, and those textures are tiny: most are 32 to 128 pixels across. A browser draws every part separately, and Playgama's own <a href=\"https:\/\/wiki.playgama.com\/playgama\/mcp\/game-checklist\">game checklist<\/a> puts it plainly: \"Budget draw calls, not polygons.\"<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-split-export-55-textures-1024x576.jpg\" alt=\"The split export&#x27;s 55 textures, as they come out of the file, smallest first: 42 of them are 128 px or less\" class=\"wp-image-15366\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-split-export-55-textures-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-split-export-55-textures-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-split-export-55-textures-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-split-export-55-textures-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-split-export-55-textures-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-split-export-55-textures.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The split export's 55 textures, as they come out of the file, smallest first: 42 of them are 128 px or less<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Texture baking can't add detail that isn't there: our first fix baked the 55 small textures into one, and the car came out blurry. The unsplit export of the same model has one texture of 2048 \u00d7 2048 for the whole car, and the same triangles. So the final Blender script, which runs without opening Blender, takes the best of both:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>it reads the split export only to learn which triangles are the wheels (gathering each wheel's loose pieces);<\/li>\n\n\n<li>it cuts the body and the four wheels out of the unsplit export, so all five keep its one sharp texture;<\/li>\n\n\n<li>it moves each wheel's pivot to its axle, so the wheel spins in place;<\/li>\n\n\n<li>it scales the car to real size.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>blender -b --python clean_car.py -- red-car-split.glb red.glb renders\/ 4.4 --full red-car-full.glb<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-table pg-table pg-t2 pg-cards\"><table><thead><tr><th><\/th><th>Split export from Tripo<\/th><th>After the script<\/th><\/tr><\/thead><tbody><tr><td>Meshes<\/td><td>55<\/td><td>5 (body + 4 wheels)<\/td><\/tr><tr><td>Textures<\/td><td>55, mostly 32\u2013128 px<\/td><td>1, 2048 px<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"629\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-blender-script-55-parts-to-body-and-wheels-1024x629.png\" alt=\"55 parts \u2192 body + 4 wheels \u2192 the finished car\" class=\"wp-image-15367\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-blender-script-55-parts-to-body-and-wheels-1024x629.png 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-blender-script-55-parts-to-body-and-wheels-300x184.png 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-blender-script-55-parts-to-body-and-wheels-768x472.png 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-blender-script-55-parts-to-body-and-wheels-1536x944.png 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-blender-script-55-parts-to-body-and-wheels-150x92.png 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-blender-script-55-parts-to-body-and-wheels.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">55 parts \u2192 body + 4 wheels \u2192 the finished car<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Export the unsplit model before you segment it. For the yellow car we only had the split export: we hadn't exported the original before segmenting it, and couldn't get it back afterwards. So the script joined its 53 small textures into one 4096 \u00d7 4096 atlas instead. It's cleaner than before, but softer than the red car. <strong>The lesson: export the unsplit model first, then segment.<\/strong> For lighter meshes, see <a href=\"https:\/\/playgama.com\/blog\/business-faqs\/how-to-optimize-and-decimate-ai-3d-meshes-for-webgl-browser\/\">how to optimize AI 3D meshes for WebGL<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A Blender script makes every car game-ready the same way, which is another tip from Playgama's checklist: \"Script the asset pipeline into one command instead of optimizing by hand.\" Other generators work the same way; Meshy is a popular alternative.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Take assets from free libraries<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Kenney publishes game assets under CC0: you can use them in a commercial game, and you don't have to credit him (<a href=\"https:\/\/playgama.com\/blog\/business-faqs\/can-you-use-kenney-and-opengameart-assets-in-commercial-web\/\">Kenney and OpenGameArt in commercial games<\/a>). From Kenney we took:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>the Racing Kit: barriers, billboards, flags, ramps and road pieces;<\/li>\n\n\n<li>Impact Sounds for the crash sound effects and Interface Sounds for the menus.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-car-kit-cc0-1024x576.jpg\" alt=\"Kenney&#x27;s Car Kit page: Creative Commons CC0\" class=\"wp-image-15368\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-car-kit-cc0-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-car-kit-cc0-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-car-kit-cc0-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-car-kit-cc0-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-car-kit-cc0-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-car-kit-cc0.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Kenney's Car Kit page: Creative Commons CC0<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-racing-kit-1024x576.jpg\" alt=\"Kenney&#x27;s Racing Kit\" class=\"wp-image-15369\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-racing-kit-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-racing-kit-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-racing-kit-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-racing-kit-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-racing-kit-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-racing-kit.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Kenney's Racing Kit<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-racing-kit-props-1024x576.jpg\" alt=\"The four props we use from the Racing Kit: a barrier, a billboard, a flag and a ramp\" class=\"wp-image-15370\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-racing-kit-props-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-racing-kit-props-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-racing-kit-props-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-racing-kit-props-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-racing-kit-props-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-racing-kit-props.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The four props we use from the Racing Kit: a barrier, a billboard, a flag and a ramp<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-impact-sounds-cc0-1024x576.jpg\" alt=\"Kenney&#x27;s Impact Sounds: 130 files, CC0\" class=\"wp-image-15371\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-impact-sounds-cc0-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-impact-sounds-cc0-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-impact-sounds-cc0-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-impact-sounds-cc0-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-impact-sounds-cc0-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-kenney-impact-sounds-cc0.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Kenney's Impact Sounds: 130 files, CC0<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Playgama's checklist has two tips here: take assets from free CC0 libraries and download them before you start, rather than asking the AI agent to look for them along the way; and don't synthesize sound in code: ready-made free sound packs are faster and sound far better.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sketchfab has far more models, but every model carries its own licence:<\/p>\n\n\n\n<figure class=\"wp-block-table pg-table pg-t3\"><table><thead><tr><th>Licence<\/th><th>What it means<\/th><\/tr><\/thead><tbody><tr><td>CC0<\/td><td>no conditions<\/td><\/tr><tr><td>CC BY<\/td><td>credit the author<\/td><\/tr><tr><td>CC BY-NC<\/td><td>not for commercial use: not for a game with ads<\/td><\/tr><tr><td>Store licences<\/td><td>bought models, under the store's terms<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Filter by \"Downloadable\", and read the licence before you download. For more libraries, see <a href=\"https:\/\/playgama.com\/blog\/business-faqs\/where-to-find-free-cc0-and-commercial-use-assets-for-browser\/\">where to find free CC0 assets for browser games<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-downloadable-license-filters-1024x576.jpg\" alt=\"Sketchfab&#x27;s search with the Downloadable and Licenses filters\" class=\"wp-image-15372\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-downloadable-license-filters-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-downloadable-license-filters-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-downloadable-license-filters-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-downloadable-license-filters-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-downloadable-license-filters-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-downloadable-license-filters.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Sketchfab's search with the Downloadable and Licenses filters<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-cc-by-model-1024x576.jpg\" alt=\"A model under CC BY: free to use, with credit to its author\" class=\"wp-image-15373\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-cc-by-model-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-cc-by-model-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-cc-by-model-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-cc-by-model-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-cc-by-model-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-cc-by-model.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">A model under CC BY: free to use, with credit to its author<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-cc-by-nc-model-1024x576.jpg\" alt=\"A model under CC BY-NC: not for a game that earns from ads\" class=\"wp-image-15374\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-cc-by-nc-model-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-cc-by-nc-model-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-cc-by-nc-model-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-cc-by-nc-model-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-cc-by-nc-model-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sketchfab-cc-by-nc-model.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">A model under CC BY-NC: not for a game that earns from ads<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Or buy them<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ready-made packs from asset stores are the fastest route to one consistent style. For Sky Shift, AI and free libraries were enough.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-asset-store-low-poly-packs-1024x576.jpg\" alt=\"An asset store&#x27;s 3D low-poly packs (prices removed from the screenshot)\" class=\"wp-image-15375\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-asset-store-low-poly-packs-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-asset-store-low-poly-packs-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-asset-store-low-poly-packs-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-asset-store-low-poly-packs-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-asset-store-low-poly-packs-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-asset-store-low-poly-packs.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">An asset store's 3D low-poly packs (prices removed from the screenshot)<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Music with Suno<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Suno generates a full music track from one text prompt, and Sky Shift's soundtrack came from this one:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default ai-prompt is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">energetic electronic racing game soundtrack, driving synth bass, punchy drums, bright arpeggios, upbeat, confident, instrumental, 128 bpm<\/p>\n<cite>Our prompt in Suno<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Suno's terms decide whether you can use a track commercially, so check them before you ship (more in <a href=\"https:\/\/playgama.com\/blog\/business-faqs\/can-you-use-suno-ai-music-commercially-in-ad-monetized-brows\/\">can you use Suno music in a game with ads<\/a>). Our prompt gave two full tracks, 2:32 and 2:27 long, and we kept the first.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What we used<\/h3>\n\n\n\n<figure class=\"wp-block-table pg-table pg-t4 pg-cards\"><table><thead><tr><th>Asset<\/th><th>Where it came from<\/th><th>Licence<\/th><\/tr><\/thead><tbody><tr><td>2 cars<\/td><td>ChatGPT image \u2192 Tripo \u2192 our Blender script<\/td><td>Tripo's terms for your plan<\/td><\/tr><tr><td>Props<\/td><td>Kenney Racing Kit<\/td><td>CC0<\/td><\/tr><tr><td>Sounds<\/td><td>Kenney Impact Sounds, Interface Sounds<\/td><td>CC0<\/td><\/tr><tr><td>Music<\/td><td>Suno<\/td><td>Suno's terms<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Next, we hand these assets to an AI agent and build the game itself.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Coding the game with an AI agent<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Claude Code, an AI coding agent, wrote every line of Sky Shift: 33,113 lines of JavaScript. The way of working is simple: you describe what you want, the agent builds it, and you play every version and decide what changes next. This way of working is often called vibe coding.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Which AI coding agent to use<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Any AI coding agent that supports MCP can build a game this way, and all four below connect to Playgama MCP. Claude Code, which we used, needs a Claude Pro, Max, Team or Enterprise plan (Pro is $20 a month). OpenAI's Codex works with ChatGPT Plus, Pro, Business, Edu and Enterprise plans. Cursor, an AI code editor, has a free plan with a limited number of agent requests. GitHub Copilot in VS Code includes agent mode and MCP servers on its free plan, with limited usage. <a href=\"#pg-ai-starter\">The tool above<\/a> shows the setup for each, and <a href=\"https:\/\/playgama.com\/blog\/business-faqs\/how-to-configure-cursor-rules-and-claude-md-for-game-coding\/\">project rules for Cursor and Claude Code<\/a> and <a href=\"https:\/\/playgama.com\/blog\/business-faqs\/how-to-use-claude-code-for-developing-browser-games-via-cli\/\">Claude Code for browser games<\/a> go deeper.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The decisions stay with you<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Playgama's own guide to making games with AI, <a href=\"https:\/\/wiki.playgama.com\/playgama\/articles\/use-ai-right\">Use AI Right<\/a>, puts it plainly: the model speeds up the work, but taste, what to build and what to cut, still comes from the developer. In its words: \"Those decisions still come from the developer.\"<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-use-ai-right-guide-1024x576.jpg\" alt=\"Playgama&#x27;s guide to working with AI\" class=\"wp-image-15376\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-use-ai-right-guide-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-use-ai-right-guide-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-use-ai-right-guide-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-use-ai-right-guide-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-use-ai-right-guide-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-use-ai-right-guide.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Playgama's guide to working with AI<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">The engine<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Three.js draws Sky Shift's 3D world in the browser through WebGL, and the Jolt physics engine handles the collisions. Both were our choice, because we wanted real collisions. Three.js is a JavaScript library rather than a full game engine like Unity or Godot: it draws the scene, and the agent writes the rest of the game around it. Jolt brings proper car physics: suspension, tyre friction, differentials and a gearbox. Both are free and run in any browser, and both ship inside the game: nothing is loaded from a CDN, which is also a rule of Playgama's game checklist.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-threejs-3d-library-1024x576.jpg\" alt=\"three.js draws the 3D world\" class=\"wp-image-15377\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-threejs-3d-library-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-threejs-3d-library-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-threejs-3d-library-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-threejs-3d-library-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-threejs-3d-library-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-threejs-3d-library.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">three.js draws the 3D world<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-jolt-physics-javascript-1024x576.jpg\" alt=\"Jolt, a physics engine ported to JavaScript, drives the cars\" class=\"wp-image-15378\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-jolt-physics-javascript-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-jolt-physics-javascript-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-jolt-physics-javascript-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-jolt-physics-javascript-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-jolt-physics-javascript-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-jolt-physics-javascript.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Jolt, a physics engine ported to JavaScript, drives the cars<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">The idea: every gate swaps your car<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The idea was a transform race in the sky, like the stunt races in GTA: you drive one car into a gate and come out of it in another. Our request to the agent (translated, like every prompt in this guide):<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default ai-prompt is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Let's make the gameplay a transform race in the clouds, like in GTA: the player drives one car to a portal, and the car changes into another car, and so on. Not a normal road: a path in the sky.<\/p>\n<cite>Our request to Claude Code<\/cite><\/blockquote>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-gate-swaps-car-1024x576.jpg\" alt=\"A gate inside the tube swaps the red car for the yellow one\" class=\"wp-image-15379\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-gate-swaps-car-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-gate-swaps-car-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-gate-swaps-car-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-gate-swaps-car-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-gate-swaps-car-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-gate-swaps-car.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">A gate inside the tube swaps the red car for the yellow one<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Research first, then four questions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Reference screenshots give the agent a target: to get the tracks right, we gave it fourteen screenshots of the kind of maps we wanted and asked it to research how they are built:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default ai-prompt is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Please look at all these screenshots and tell me what you understand about the tracks in them. Ask me questions about building a new track like these. What is the big problem with our track?<\/p>\n<cite>Our request to Claude Code<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">The agent studied the screenshots and the reference pages, then asked four questions before writing any code:<\/p>\n\n\n\n<figure class=\"wp-block-table pg-table pg-t5\"><table><thead><tr><th>The agent asked<\/th><th>We answered<\/th><\/tr><\/thead><tbody><tr><td>Which set pieces should we build first?<\/td><td>the mega-platform, the canyon, the tube, steep climbs and drops<\/td><\/tr><tr><td>Keep the three-lap ring, or change the format?<\/td><td>a point-to-point sprint<\/td><\/tr><tr><td>Change the vehicle type too, like the real transform races?<\/td><td>cars only, for now<\/td><\/tr><tr><td>A colour for each section?<\/td><td>a colour per zone<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Then it built the new track: a sprint over the sea, with a giant platform, a canyon, a tube and steep climbs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Asking the agent to ask you questions turns a vague taste into concrete choices. <strong>Tip: ask the agent to ask you questions.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-track-set-pieces-1024x576.jpg\" alt=\"The set pieces: a giant platform, a canyon, a tube and steep climbs\" class=\"wp-image-15380\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-track-set-pieces-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-track-set-pieces-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-track-set-pieces-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-track-set-pieces-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-track-set-pieces-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-track-set-pieces.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The set pieces: a giant platform, a canyon, a tube and steep climbs<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">One request at a time<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Small requests work better than one big one. The rest came the same way, one request at a time: rivals that swap cars at their own gates, a puff of smoke at every swap, three levels (Harbour Run, Skybridge and Razor Coast), a finish screen, and arcade handling (<a href=\"https:\/\/playgama.com\/blog\/business-faqs\/how-to-prompt-ai-coding-agents-to-build-games-iteratively-in\/\">how to prompt an agent step by step<\/a>). The agent even picked the name: Sky Shift.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-three-levels-1024x576.jpg\" alt=\"Three levels, from easy to hard\" class=\"wp-image-15381\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-three-levels-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-three-levels-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-three-levels-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-three-levels-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-three-levels-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-three-levels.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Three levels, from easy to hard<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-main-menu-sky-shift-1024x576.jpg\" alt=\"The main menu. The name was the agent&#x27;s idea\" class=\"wp-image-15382\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-main-menu-sky-shift-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-main-menu-sky-shift-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-main-menu-sky-shift-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-main-menu-sky-shift-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-main-menu-sky-shift-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-main-menu-sky-shift.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The main menu. The name was the agent's idea<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Our own cars, with wheels that work<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Then we dropped in our own cars from the asset step. Because the wheels are separate objects, the code spins them, steers the front ones and lets the suspension work.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-red-car-garage-1024x576.jpg\" alt=\"Our red car in the game&#x27;s garage\" class=\"wp-image-15383\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-red-car-garage-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-red-car-garage-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-red-car-garage-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-red-car-garage-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-red-car-garage-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-red-car-garage.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Our red car in the game's garage<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Describe the world as data<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The track is written as data, not built by hand, which makes level design a matter of editing lines. Each line is one section: its length, its turn, its climb, its width, and what it is: a canyon with walls, a jump, a tube or a banked wall-ride. Reorder the lines and you have a new track. This is a tip from Playgama's game checklist, and it suits an agent perfectly: changing a level is changing a line, and the agent can rewrite a whole track from one sentence.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-track-config-data-1024x576.jpg\" alt=\"The track in the game&#x27;s config: one line per section\" class=\"wp-image-15384\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-track-config-data-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-track-config-data-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-track-config-data-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-track-config-data-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-track-config-data-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-track-config-data.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The track in the game's config: one line per section<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Give the agent eyes<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Another tip from the checklist: give the agent eyes. The game exposes its state on a global object, <code>window.__game<\/code>, so the agent can drive it in a headless browser, take screenshots and measure the frame rate, instead of guessing from the code.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-checklist-tips-1024x576.jpg\" alt=\"Playgama&#x27;s checklist tips: describe the world as data, give the agent eyes, test a fixed matrix of sizes\" class=\"wp-image-15385\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-checklist-tips-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-checklist-tips-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-checklist-tips-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-checklist-tips-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-checklist-tips-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-checklist-tips.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Playgama's checklist tips: describe the world as data, give the agent eyes, test a fixed matrix of sizes<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The agent wrote its own rule into the project's notes: \"Numbers from window.__game settle it; screenshots agree with almost anything.\"<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-agent-rule-project-notes-1024x576.jpg\" alt=\"The agent&#x27;s rule, in the project&#x27;s notes\" class=\"wp-image-15386\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-agent-rule-project-notes-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-agent-rule-project-notes-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-agent-rule-project-notes-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-agent-rule-project-notes-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-agent-rule-project-notes-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-agent-rule-project-notes.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The agent's rule, in the project's notes<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The same hooks filmed the gameplay for this guide's video, one game step per frame, so the footage is smooth however slowly the machine renders:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>node tools\/capture-steps.mjs --url &quot;localhost:5190\/?record=1&amp;autopilot=1&quot; --w 2560 --h 1440 --seconds 100<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Every screen size<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The agent checks the interface at a fixed set of sizes, from a small phone in portrait to a large monitor, and measures whether anything overlaps. On one pass it found three places where the interface overlapped, fixed them, and checked all fourteen screens again.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"292\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-menu-five-screen-sizes-1024x292.jpg\" alt=\"The menu at five of the sizes the agent checks\" class=\"wp-image-15387\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-menu-five-screen-sizes-1024x292.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-menu-five-screen-sizes-300x86.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-menu-five-screen-sizes-768x219.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-menu-five-screen-sizes-1536x438.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-menu-five-screen-sizes-150x43.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-menu-five-screen-sizes.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The menu at five of the sizes the agent checks<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">When something breaks<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Car physics broke at high speed: a hard turn tipped the car onto two wheels, and some cars flipped over. Not everything works the first time, and debugging is part of the job, so we asked the agent to look at how other people solve it:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default ai-prompt is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Some cars still flip over. Think, search the internet for how car control is done on the engine we use, and make it as good as you can.<\/p>\n<cite>Our request to Claude Code<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">The answer was in Jolt's own documentation. By default, Jolt applies the tyre forces where the tyre touches the road, which, as the docs say, \"makes the vehicle less stable.\" Applying them at a fixed point on the car's body instead turned a 75\u00b0 rollover at full lock and 245 km\/h into 4.5\u00b0 of lean, on all four wheels. <strong>Tip: when the agent is stuck, point it at the engine's documentation.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-jolt-docs-setting-1024x576.jpg\" alt=\"Jolt&#x27;s documentation for the setting the agent found\" class=\"wp-image-15388\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-jolt-docs-setting-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-jolt-docs-setting-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-jolt-docs-setting-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-jolt-docs-setting-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-jolt-docs-setting-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-jolt-docs-setting.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Jolt's documentation for the setting the agent found<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Getting the game ready for Playgama<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every game on Playgama runs on the <a href=\"https:\/\/wiki.playgama.com\/playgama\/bridge-sdk\/getting-started\">Playgama Bridge SDK<\/a>: one integration that handles ads, saves, leaderboards and more, on every platform the game goes to. Playgama recommends letting an AI agent integrate it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-bridge-docs-ai-agent-1024x576.jpg\" alt=\"The Bridge documentation: integrate the SDK with an AI agent\" class=\"wp-image-15389\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-bridge-docs-ai-agent-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-bridge-docs-ai-agent-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-bridge-docs-ai-agent-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-bridge-docs-ai-agent-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-bridge-docs-ai-agent-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-bridge-docs-ai-agent.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The Bridge documentation: integrate the SDK with an AI agent<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Playgama MCP gives your agent the SDK docs and the game checklist, so you don't have to wire it up by hand. Connect Playgama MCP to your agent once (the setup is at <a href=\"https:\/\/playgama.com\/mcp\/\">playgama.com\/mcp<\/a>), and the agent gets everything it needs: the SDK documentation, Playgama's <a href=\"https:\/\/wiki.playgama.com\/playgama\/mcp\/game-checklist\">game checklist<\/a>, and the QA tool. Then one request is enough:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default ai-prompt is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Get this game ready for Playgama.<\/p>\n<cite>Our request to Claude Code<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">For Sky Shift, the agent read the checklist and the docs through the MCP, checked the game point by point, and found four things to fix. It fixed all four:<\/p>\n\n\n\n<figure class=\"wp-block-table pg-table pg-t6\"><table><thead><tr><th>What the check found<\/th><th>What the agent did<\/th><\/tr><\/thead><tbody><tr><td>An older SDK version<\/td><td>updated Playgama Bridge from 2.0.2 to 2.2.0, the version Playgama's sandbox takes<\/td><\/tr><tr><td>No translations (a required step)<\/td><td>translated the game into eight languages: English, Spanish, Portuguese, French, German, Italian, Russian and Turkish, in the language the platform reports<\/td><\/tr><tr><td>Saves sent one setting at a time<\/td><td>saved everything in a single call<\/td><\/tr><tr><td>A picture stretched on very wide screens<\/td><td>kept the game within 2:1 on desktop, with margins<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Then it replayed a recorded race to prove the gameplay hadn't changed.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-menu-four-languages-1024x576.jpg\" alt=\"The same menu in four of its eight languages\" class=\"wp-image-15390\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-menu-four-languages-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-menu-four-languages-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-menu-four-languages-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-menu-four-languages-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-menu-four-languages-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-menu-four-languages.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The same menu in four of its eight languages<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">How the game earns<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Bridge also shows the ads. In Sky Shift, an interstitial ad shows only at a natural pause, when the player leaves a results screen, never in the first 30 seconds of a race, and at most once every three minutes. And a player can choose to watch a rewarded video to double the coins from a win; the reward arrives only after the video has been watched to the end.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"560\" height=\"640\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-finish-screen-rewarded-video.jpg\" alt=\"The finish screen: take the coins, or watch a video to double them\" class=\"wp-image-15391\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-finish-screen-rewarded-video.jpg 560w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-finish-screen-rewarded-video-263x300.jpg 263w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-finish-screen-rewarded-video-150x171.jpg 150w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><figcaption class=\"wp-element-caption\">The finish screen: take the coins, or watch a video to double them<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Test it in the QA tool<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Before publishing, the agent opens the game in Playgama's QA tool, which runs it inside the Bridge, just like the real platform. Sky Shift passed: the Bridge started, the game reported that it was ready, the saves loaded in a single call, and the tool measured an initial download of 6 MB, \"Everything looks good!\", with the game loaded in about a second.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-qa-tool-1024x576.jpg\" alt=\"Sky Shift in Playgama&#x27;s QA tool\" class=\"wp-image-15392\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-qa-tool-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-qa-tool-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-qa-tool-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-qa-tool-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-qa-tool-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-qa-tool.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Sky Shift in Playgama's QA tool<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Before you publish: the AI game checklist<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A pre-publish checklist catches what a quick play misses: asset licences, controls on every device and the Bridge steps Playgama requires. Use it for any game you make with AI, not only this one. Tick what you have checked, then copy the items left as a prompt, and your agent checks the game against them.<\/p>\n\n\n\n<style>\n.pgc{--a:#7b4dff;--ink:#16141c;--mut:#5d5a6b;--line:#e4e0ef;--soft:#f1ecff;margin:2em 0!important;border-radius:20px;background:#fff;color:var(--ink);padding:26px 26px 20px;font-size:16px;line-height:1.5;border:1.5px solid var(--line);scroll-margin-top:90px}\n.pgc *{box-sizing:border-box}\n.pgc a{color:var(--a)!important;text-decoration:underline}\n.pgc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin:0 0 6px}\n.pgc-title{margin:0!important;font-size:20px;font-weight:800;line-height:1.2;color:var(--ink)}\n.pgc-lead{margin:6px 0 16px!important;color:var(--mut);font-size:15px}\n.pgc-meter{min-width:150px;text-align:right}\n.pgc-meter b{display:block;font-size:14px;color:var(--ink)}\n.pgc-bar{height:8px;border-radius:99px;background:#ece8f6;margin-top:6px;overflow:hidden}\n.pgc-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#a35bff,#7b4dff);transition:width .25s}\n.pgc-g{margin:18px 0 0}\n.pgc-g p{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--a);margin:0 0 8px!important;display:flex;align-items:center;gap:8px}\n.pgc label{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:12px;cursor:pointer;margin:0!important;font-size:15.5px;color:var(--ink)}\n.pgc label:hover{background:#f7f5fc}\n.pgc input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;margin:1px 0 0;border:2px solid #b9b3cc;border-radius:7px;background:#fff;cursor:pointer;display:grid;place-items:center}\n.pgc input[type=checkbox]:checked{background:var(--a);border-color:var(--a)}\n.pgc input[type=checkbox]:checked::after{content:\"\";width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translate(-1px,-1px)}\n.pgc input:checked+span{color:var(--mut);text-decoration:line-through;text-decoration-color:#c9c3dc}\n.pgc small{display:block;color:var(--mut);font-size:12.5px;margin-top:2px;text-decoration:none}\n.pgc-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}\n.pgc-btn{font:inherit;font-size:15px;font-weight:800;border-radius:12px;padding:11px 18px;cursor:pointer;border:2px solid var(--a);background:var(--a);color:#fff}\n.pgc-btn.pgc-ghost{background:#fff;color:var(--a)}\n.pgc-ok{font-size:14px;font-weight:700;color:#1a9a55}\n@media (max-width:640px){.pgc{padding:20px 14px 16px}.pgc-title{font-size:18px}.pgc-meter{text-align:left;min-width:100%}.pgc label{padding:9px 6px}}\n<\/style>\n<div class=\"pgc\" id=\"pg-ai-checklist\">\n  <div class=\"pgc-top\"><div><p class=\"pgc-title\">Tick it off as you go<\/p><\/div>\n    <div class=\"pgc-meter\"><b id=\"pgc-n\">0 of 0 done<\/b><div class=\"pgc-bar\"><i id=\"pgc-bar\"><\/i><\/div><\/div><\/div>\n  <p class=\"pgc-lead\">Tick what you have checked. Your ticks stay in this browser. Items marked \"Playgama checklist\" are quoted from Playgama's <a href=\"https:\/\/wiki.playgama.com\/playgama\/mcp\/game-checklist\" target=\"_blank\" rel=\"noopener\">game checklist<\/a>.<\/p>\n  <div id=\"pgc-list\"><\/div>\n  <div class=\"pgc-row\"><button type=\"button\" class=\"pgc-btn\" id=\"pgc-copy\">Copy as a prompt for your agent<\/button><button type=\"button\" class=\"pgc-btn pgc-ghost\" id=\"pgc-reset\">Clear ticks<\/button><span class=\"pgc-ok\" id=\"pgc-ok\" aria-live=\"polite\"><\/span><\/div>\n<\/div>\n<script>\n(function(){\n  var root=document.getElementById('pg-ai-checklist'); if(!root) return;\n  var KEY='pg-ai-checklist-v1', W='Playgama checklist';\n  var G=[['bi-box-seam','Assets and licences',[\n      ['Every model, sound and track has a recorded source and licence.',''],\n      ['Nothing you earn from comes from a free plan without commercial rights, such as the free plans of Tripo and Suno.',''],\n      ['CC BY assets credit their author, and there are no CC BY-NC assets in a game with ads.',''],\n      ['Ship audio compressed (ogg\/mp3, not wav).',W]]],\n    ['bi-hammer','Build',[\n      ['Load no external resources: everything the game needs ships inside the build, and only the Bridge itself comes from the Playgama CDN.',W],\n      ['Check that interface elements do not overlap and that the layout holds at every screen size.',W],\n      ['Check that the game has both mobile and desktop controls, and that both of them work.',W],\n      ['Play the game through: levels can be completed, and nothing freezes anywhere.',W]]],\n    ['bi-controller','Playgama',[\n      ['Connect and initialize the Bridge: nothing else works until initialization finishes. The sandbox takes Playgama Bridge 2.2.0 or newer.',W],\n      ['English localization is required. Use English as the default and fallback language.',W],\n      ['Save and load everything in a single call.',W],\n      ['Show interstitials at natural pauses: level transitions and game over.',W],\n      ['Grant the reward only after the Bridge confirms successful completion of the rewarded ad.',W],\n      ['The game passes the QA tool, running inside the Bridge.',''],\n      ['Three covers are ready: square 800 \u00d7 800, portrait 1080 \u00d7 1920 and landscape 1920 \u00d7 1080.','']]],\n    ['bi-shield-check','Store and legal',[\n      ['You selected, edited and combined the AI output in the parts you want rights to.','']]]];\n  var saved={};try{saved=JSON.parse(localStorage.getItem(KEY)||'{}')||{}}catch(e){}\n  var list=document.getElementById('pgc-list'),n=0,html='';\n  G.forEach(function(g){html+='<div class=\"pgc-g\"><p><i class=\"bi '+g[0]+'\"><\\\/i>'+g[1]+'<\\\/p>';\n    g[2].forEach(function(it){var id='c'+(n++);html+='<label><input type=\"checkbox\" data-id=\"'+id+'\"'+(saved[id]?' checked':'')+'><span>'+it[0]+(it[1]?'<small>'+it[1]+'<\\\/small>':'')+'<\\\/span><\\\/label>'});\n    html+='<\\\/div>'});\n  list.innerHTML=html;\n  var boxes=[].slice.call(root.querySelectorAll('input[type=checkbox]'));\n  function track(e){try{(window.dataLayer=window.dataLayer||[]).push({event:e,pgai_done:boxes.filter(function(b){return b.checked}).length})}catch(x){}}\n  function upd(){var d=boxes.filter(function(b){return b.checked}).length;document.getElementById('pgc-n').textContent=d+' of '+boxes.length+' done';\n    document.getElementById('pgc-bar').style.width=Math.round(100*d\/boxes.length)+'%';\n    var s={};boxes.forEach(function(b){if(b.checked)s[b.getAttribute('data-id')]=1});try{localStorage.setItem(KEY,JSON.stringify(s))}catch(e){}}\n  list.addEventListener('change',function(){upd();track('pgai_check')});\n  document.getElementById('pgc-reset').onclick=function(){boxes.forEach(function(b){b.checked=false});upd();track('pgai_check_reset')};\n  document.getElementById('pgc-copy').onclick=function(){\n    var left=boxes.filter(function(b){return !b.checked}).map(function(b){return '- '+b.parentNode.querySelector('span').firstChild.textContent});\n    var text=left.length?'Check my game against these items. Fix what fails, and tell me which items you could not check yourself:\\n'+left.join('\\n')\n      :'Every item of my checklist is done. Upload this game to Playgama and give me a public playable link.';\n    var ok=document.getElementById('pgc-ok');\n    function done(){ok.textContent='Copied';setTimeout(function(){ok.textContent=''},1800);track('pgai_check_copy')}\n    function fb(){var ta=document.createElement('textarea');ta.value=text;ta.style.position='fixed';ta.style.opacity='0';document.body.appendChild(ta);ta.select();try{document.execCommand('copy');done()}catch(e){}document.body.removeChild(ta)}\n    if(navigator.clipboard?navigator.clipboard.writeText:0)navigator.clipboard.writeText(text).then(done,fb);else fb()};\n  upd();\n})();\n<\/script>\n\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Publishing your game and finding players<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The hard part was never publishing your game. It's getting anyone to play it. Playgama gives you both: a public link, and your first players.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">One sentence<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The instruction is written for you on <a href=\"https:\/\/playgama.com\/mcp\/\">playgama.com\/mcp<\/a>, with a copy button:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default ai-prompt is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Upload this game to Playgama and give me a public playable link.<\/p>\n<cite>The prompt from playgama.com\/mcp<\/cite><\/blockquote>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-mcp-page-sentence-1024x576.jpg\" alt=\"The sentence on Playgama&#x27;s MCP page\" class=\"wp-image-15393\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-mcp-page-sentence-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-mcp-page-sentence-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-mcp-page-sentence-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-mcp-page-sentence-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-mcp-page-sentence-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-playgama-mcp-page-sentence.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The sentence on Playgama's MCP page<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">What the agent does<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Through Playgama MCP, the agent:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>creates the game in your developer account;<\/li>\n\n\n<li>packs the build and sends it;<\/li>\n\n\n<li>waits for it to unpack and pass the automatic check, the Bridge SDK included;<\/li>\n\n\n<li>publishes it to a sandbox: a public link, live the moment it finishes, with no review queue.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">The agent asks you before it publishes, because anyone with a sandbox link can play the game. The link works on a computer and on a phone, and you can send it to anyone.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-desktop-and-mobile-1024x576.jpg\" alt=\"Sky Shift on a computer and on a phone\" class=\"wp-image-15394\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-desktop-and-mobile-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-desktop-and-mobile-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-desktop-and-mobile-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-desktop-and-mobile-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-desktop-and-mobile-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-desktop-and-mobile.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Sky Shift on a computer and on a phone<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Covers<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A game needs three covers: square (800 \u00d7 800), portrait (1080 \u00d7 1920) and landscape (1920 \u00d7 1080). The agent can draw them from the game's own frames and upload them for you.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-three-covers-1024x576.jpg\" alt=\"Sky Shift&#x27;s three covers, drawn by the agent from the game&#x27;s frames\" class=\"wp-image-15395\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-three-covers-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-three-covers-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-three-covers-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-three-covers-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-three-covers-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-sky-shift-three-covers.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Sky Shift's three covers, drawn by the agent from the game's frames<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Players<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sharing the game feeds a free campaign on Playgama's own network that brings real players to it. The agent writes the post and gives you the share links; you publish it, and paste the links to your posts back. Each one adds to a free campaign on Playgama's own network that brings real players to the game. The first campaign is free, and the agent asks you before it starts one.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Read what comes back<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Playtesting with real players starts here: once they arrive, you read what came back: plays, average play time and day-one retention.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-example-first-week-analytics-1024x576.jpg\" alt=\"Example data, for illustration: the numbers a first week might bring\" class=\"wp-image-15396\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-example-first-week-analytics-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-example-first-week-analytics-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-example-first-week-analytics-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-example-first-week-analytics-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-example-first-week-analytics-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-example-first-week-analytics.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Example data, for illustration: the numbers a first week might bring<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Your game's own events<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Bridge can also send your game's own analytics events: where a level starts, how far a player gets, and where they give up. The documentation's rule: keep event names short and stable, and put the values that change, like the level or the section, into the event's data. Your agent adds them in a few lines (custom events need Playgama Bridge 2.3.0 or newer).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-bridge-analytics-events-code-1024x576.jpg\" alt=\"An example for Sky Shift: one event per section reached, and one when a player falls off\" class=\"wp-image-15397\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-bridge-analytics-events-code-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-bridge-analytics-events-code-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-bridge-analytics-events-code-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-bridge-analytics-events-code-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-bridge-analytics-events-code-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-bridge-analytics-events-code.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">An example for Sky Shift: one event per section reached, and one when a player falls off<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The agent reads them back through Playgama MCP. Playgama's telemetry guide for agents tells it to look for where players drop off, make the smallest safe change, and measure the next version before claiming it helped.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-example-section-drop-off-1024x576.jpg\" alt=\"Example data: most players get through the canyon, but almost half of those who reach the wall-ride stop there\" class=\"wp-image-15398\" srcset=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-example-section-drop-off-1024x576.jpg 1024w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-example-section-drop-off-300x169.jpg 300w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-example-section-drop-off-768x432.jpg 768w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-example-section-drop-off-1536x864.jpg 1536w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-example-section-drop-off-150x84.jpg 150w, https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/sky-shift-example-section-drop-off.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Example data: most players get through the canyon, but almost half of those who reach the wall-ride stop there<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In this example, the agent would see the wall-ride in the numbers, make that section easier, and check again with the next version.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">More on getting players and ad revenue: <a href=\"https:\/\/playgama.com\/blog\/main\/built-a-game-with-ai-get-your-first-players-and-ad-revenue-with-playgama-mcp\/\">built a game with AI? Get your first players and ad revenue with Playgama MCP<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Top AI tools for game development (pricing and features)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A quick reference to the stack behind Sky Shift. Prices are starting prices with monthly billing unless noted, as listed on each vendor's site at the time of writing. They change often, so treat them as estimates and check before you subscribe.<\/p>\n\n\n\n<figure class=\"wp-block-table pg-table pg-t7 pg-cards\"><table><thead><tr><th>Tool<\/th><th>Category<\/th><th>Best for<\/th><th>Price (starting at)<\/th><\/tr><\/thead><tbody><tr><td>ChatGPT<\/td><td>Ideas, design, images<\/td><td>GDDs, lore, concept images of what you want in 3D<\/td><td>Free plan; Go $8\/month; Plus $20\/month<\/td><\/tr><tr><td>Tripo<\/td><td>3D models<\/td><td>image or text to a textured 3D model<\/td><td>free plan (public, non-commercial); Pro $20\/month billed annually<\/td><\/tr><tr><td>Meshy<\/td><td>3D models<\/td><td>an alternative image or text to 3D generator<\/td><td>free plan (CC BY 4.0 outputs); Pro $20\/month<\/td><\/tr><tr><td>Blender<\/td><td>3D clean-up<\/td><td>scripted asset pipelines<\/td><td>free and open source<\/td><\/tr><tr><td>Kenney<\/td><td>Free assets<\/td><td>CC0 models, props and sounds<\/td><td>free<\/td><\/tr><tr><td>Sketchfab<\/td><td>Models<\/td><td>a large library, every model with its own licence<\/td><td>free and paid models<\/td><\/tr><tr><td>Suno<\/td><td>Music<\/td><td>full soundtracks from a prompt<\/td><td>free plan (no commercial rights); Pro $10\/month<\/td><\/tr><tr><td>Claude Code<\/td><td>AI coding agent<\/td><td>building a whole game from plain-language requests<\/td><td>included in Claude Pro, $20\/month<\/td><\/tr><tr><td>Playgama Bridge SDK<\/td><td>Platform SDK<\/td><td>ads, saves, leaderboards and languages on every platform<\/td><td>see the <a href=\"https:\/\/wiki.playgama.com\/playgama\/bridge-sdk\/getting-started\">Bridge docs<\/a><\/td><\/tr><tr><td>Playgama MCP<\/td><td>Publishing<\/td><td>readying, publishing and analysing a game from your agent<\/td><td>see <a href=\"https:\/\/playgama.com\/mcp\/\">playgama.com\/mcp<\/a>; the first player campaign is free<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The free path: three.js, Blender, Kenney's CC0 packs and the free plans of Cursor or GitHub Copilot cost nothing, and Playgama's first player campaign is free. For a game you will earn from, budget for the paid plans of the generators whose free plans exclude commercial use, such as Tripo and Suno.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Challenges, copyright and limitations<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">AI speeds up the work, but three problems come with it, and all three matter once you publish.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Steam's rules on AI content<\/h3>\n\n\n\n<div class=\"wp-block-group pg-notice\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Planning a Steam release?<\/strong> Valve requires every developer to disclose AI-generated content in the Steam content survey, and much of that disclosure appears on the game's store page. It covers content that ships with the game and that players see or hear, such as art, sound, narrative and localization; using AI tools only to work faster is not the focus. There are two categories. <strong>Pre-generated<\/strong> content was made with AI during development and is reviewed like any other content. <strong>Live-generated<\/strong> content is created while the game runs, and Valve asks you to describe the guardrails you put on your AI. Check the current text in Steamworks before you submit, because Valve updates it.<\/p>\n<\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Copyright and commercial use<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Purely AI-generated material can't be copyrighted in the US. The Copyright Office's position is clear: \"Copyright does not extend to purely AI-generated material, or material where there is insufficient human control over the expressive elements,\" and \"prompts alone do not provide sufficient human control.\" In practice, the more you select, edit and combine the output, the stronger your claim to the result. Separately, check each tool's licence for commercial use: the free plans of Suno and Tripo do not allow it, Meshy's free outputs are CC BY 4.0, and on Sketchfab every model carries its own licence. A game with ads is a commercial product. More on this: <a href=\"https:\/\/playgama.com\/blog\/business-faqs\/can-ai-generated-game-code-and-art-be-copyrighted-under-us-l\/\">can AI-generated game code and art be copyrighted<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hallucinations in AI code<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">AI coding agents hallucinate: models make things up with confidence. In code, that looks like methods the engine doesn't have, or settings from another version. The fix is the one that worked for Sky Shift: give the AI real sources and real measurements. Our agent stopped guessing about the flipping cars once it read Jolt's documentation, and its own rule was to trust numbers from the running game over screenshots.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">AI game development FAQ<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Can AI make a whole video game by itself?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Not on its own. AI can generate the models, write all of the code and publish the game: in Sky Shift, an AI coding agent wrote 33,113 lines of JavaScript. But a person still picks the idea, plays every version and decides what is fun and when it is ready.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Is it legal to make a game with AI, and can I sell it?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, if you follow each tool's licence. The free plans of Suno and Tripo don't allow commercial use, and Meshy's free outputs are CC BY 4.0. In the US, purely AI-generated material can't be copyrighted, so your own selection and editing matter. More: <a href=\"https:\/\/playgama.com\/blog\/business-faqs\/can-ai-generated-game-code-and-art-be-copyrighted-under-us-l\/\">copyright for AI-made games<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Do I need to know how to code?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. You describe the game in plain English and the AI coding agent writes the code; for a browser game, that code is JavaScript. It helps to read error messages and to test every version, but all 33,113 lines of Sky Shift were written by the agent.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I make a game with AI for free?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Partly. Three.js, Blender and Kenney's CC0 assets are free, and Cursor and GitHub Copilot have free plans with limited agent use. The free plans of Tripo and Suno don't allow commercial use, Claude Code needs a paid plan from $20 a month, and Playgama's first player campaign is free.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Do I need Unity or Godot to make a game with AI?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Not for a browser game. Unity and Godot are full game engines with their own editors. Sky Shift uses three.js, a JavaScript library that draws 3D in the browser, plus the Jolt physics engine, and the AI agent writes the rest of the game around them.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Should my first AI game be 2D or 3D?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">2D is simpler for a first game: there are no 3D models to generate, split and optimize. Sky Shift is 3D, and its two cars took a whole step: an image, a model from Tripo, segmentation and a Blender script. If your idea works in 2D, start there.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Where can I publish my first game?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On Playgama, straight from your agent. Playgama MCP uploads the build, runs the automatic check and gives you a public sandbox link with no review queue, and the first player campaign that brings real players to the game is free. When the game is ready for more, you submit it to moderation in the Playgama developer console. More: <a href=\"https:\/\/playgama.com\/mcp\/\">Playgama MCP<\/a> \u00b7 <a href=\"https:\/\/playgama.com\/blog\/main\/built-a-game-with-ai-get-your-first-players-and-ad-revenue-with-playgama-mcp\/\">how to get your first players and ad revenue<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Will AI replace game developers?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Not the decisions. Playgama's guide Use AI Right puts it this way: the model speeds up the work, but taste, what to build and what to cut, still comes from the developer. AI takes the slow, repetitive parts, and your time goes into what makes the game fun. <a href=\"https:\/\/wiki.playgama.com\/playgama\/articles\/use-ai-right\">Use AI Right<\/a>.<\/p>\n\n\n\n<script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"FAQPage\", \"@id\": \"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/#faq\", \"mainEntity\": [{\"@type\": \"Question\", \"name\": \"Can AI make a whole video game by itself?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Not on its own. AI can generate the models, write all of the code and publish the game: in Sky Shift, an AI coding agent wrote 33,113 lines of JavaScript. But a person still picks the idea, plays every version and decides what is fun and when it is ready.\"}}, {\"@type\": \"Question\", \"name\": \"Is it legal to make a game with AI, and can I sell it?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Yes, if you follow each tool's licence. The free plans of Suno and Tripo don't allow commercial use, and Meshy's free outputs are CC BY 4.0. In the US, purely AI-generated material can't be copyrighted, so your own selection and editing matter.\"}}, {\"@type\": \"Question\", \"name\": \"Do I need to know how to code?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. You describe the game in plain English and the AI coding agent writes the code; for a browser game, that code is JavaScript. It helps to read error messages and to test every version, but all 33,113 lines of Sky Shift were written by the agent.\"}}, {\"@type\": \"Question\", \"name\": \"Can I make a game with AI for free?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Partly. Three.js, Blender and Kenney's CC0 assets are free, and Cursor and GitHub Copilot have free plans with limited agent use. The free plans of Tripo and Suno don't allow commercial use, Claude Code needs a paid plan from $20 a month, and Playgama's first player campaign is free.\"}}, {\"@type\": \"Question\", \"name\": \"Do I need Unity or Godot to make a game with AI?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Not for a browser game. Unity and Godot are full game engines with their own editors. Sky Shift uses three.js, a JavaScript library that draws 3D in the browser, plus the Jolt physics engine, and the AI agent writes the rest of the game around them.\"}}, {\"@type\": \"Question\", \"name\": \"Should my first AI game be 2D or 3D?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"2D is simpler for a first game: there are no 3D models to generate, split and optimize. Sky Shift is 3D, and its two cars took a whole step: an image, a model from Tripo, segmentation and a Blender script. If your idea works in 2D, start there.\"}}, {\"@type\": \"Question\", \"name\": \"Where can I publish my first game?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"On Playgama, straight from your agent. Playgama MCP uploads the build, runs the automatic check and gives you a public sandbox link with no review queue, and the first player campaign that brings real players to the game is free. When the game is ready for more, you submit it to moderation in the Playgama developer console.\"}}, {\"@type\": \"Question\", \"name\": \"Will AI replace game developers?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Not the decisions. Playgama's guide Use AI Right puts it this way: the model speeds up the work, but taste, what to build and what to cut, still comes from the developer. AI takes the slow, repetitive parts, and your time goes into what makes the game fun.\"}}]}<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">What we learned<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">AI made every part of Sky Shift faster, but it didn't make the decisions. So, can AI make a game? It sped up the models, the code and the publishing. But the decisions were still ours: what to build, how it should feel, and when it was ready.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The tips that saved us the most time:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Start a 3D model from a clean image, and export the unsplit model before you segment it.<\/li>\n\n\n<li>Take assets from free CC0 libraries, and read every licence before you download.<\/li>\n\n\n<li>Ask the agent to ask you questions before it builds.<\/li>\n\n\n<li>Give the agent eyes: debug hooks and numbers, not guesses from the code.<\/li>\n\n\n<li>Describe the world as data, so one sentence can change a whole level.<\/li>\n\n\n<li>When the agent is stuck, point it at the engine's documentation.<\/li>\n\n\n<li>Let the agent do the Playgama integration through Playgama MCP, then test the game in the QA tool.<\/li>\n\n\n<li>Send your game's own events, and let the agent read them.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Sky Shift is live: <a href=\"https:\/\/playgama.ai\/play\/i66ryvsxgiybqp\">play it in your browser<\/a>, on a computer or a phone, or press Play at the top of this guide.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your first game does not have to be big: make a small one from your shared memories and give it as a present, like in our <a href=\"https:\/\/playgama.com\/blog\/main\/birthday-surprise-ideas\/\">birthday surprise ideas<\/a> and <a href=\"https:\/\/playgama.com\/blog\/main\/thoughtful-gifts\/\">thoughtful gifts<\/a> guides.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Start here: <a href=\"https:\/\/playgama.com\/mcp\/\">playgama.com\/mcp<\/a> \u00b7 <a href=\"https:\/\/wiki.playgama.com\/playgama\/bridge-sdk\/getting-started\">Playgama Bridge documentation<\/a> \u00b7 <a href=\"https:\/\/wiki.playgama.com\/playgama\/mcp\/game-checklist\">Playgama's game checklist<\/a><\/p>\n\n\n\n<script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"Article\", \"@id\": \"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/#article\", \"about\": [{\"@type\": \"Thing\", \"name\": \"video game development\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q1061635\"}, {\"@type\": \"Thing\", \"name\": \"generative artificial intelligence\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q117246174\"}, {\"@type\": \"Thing\", \"name\": \"browser game\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q848991\"}], \"mentions\": [{\"@type\": \"SoftwareApplication\", \"name\": \"three.js\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q3525922\"}, {\"@type\": \"SoftwareApplication\", \"name\": \"Claude Code\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q138457287\"}, {\"@type\": \"SoftwareApplication\", \"name\": \"ChatGPT\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q115564437\"}, {\"@type\": \"SoftwareApplication\", \"name\": \"Blender\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q173136\"}, {\"@type\": \"SoftwareApplication\", \"name\": \"Suno\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q124313865\"}, {\"@type\": \"SoftwareApplication\", \"name\": \"Jolt Physics\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q116445967\"}, {\"@type\": \"Thing\", \"name\": \"game design document\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q3010535\"}, {\"@type\": \"Thing\", \"name\": \"glTF\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q28135989\"}, {\"@type\": \"Thing\", \"name\": \"WebGL\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q375913\"}, {\"@type\": \"Thing\", \"name\": \"Creative Commons CC0\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q6938433\"}, {\"@type\": \"Thing\", \"name\": \"Steam\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q337535\"}, {\"@type\": \"GovernmentOrganization\", \"name\": \"United States Copyright Office\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q1784058\"}, {\"@type\": \"Thing\", \"name\": \"Model Context Protocol\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q133436854\"}, {\"@type\": \"SoftwareApplication\", \"name\": \"Playgama Bridge\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q140770787\"}, {\"@type\": \"SoftwareApplication\", \"name\": \"Unity\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q63966\"}, {\"@type\": \"SoftwareApplication\", \"name\": \"Godot\", \"sameAs\": \"https:\/\/www.wikidata.org\/wiki\/Q16972633\"}]}<\/script>\n\n\n\n<style>.wp-block-table.pg-table table{min-width:0;table-layout:auto;width:100%}.wp-block-table.pg-table th,.wp-block-table.pg-table td{padding:12px 16px;vertical-align:top;white-space:normal;overflow-wrap:break-word;line-height:1.45;border:1px solid var(--border-default)}.wp-block-table.pg-table th{background:var(--color-white-4)}.wp-block-table.pg-table tbody tr:nth-child(even) td{background:var(--color-white-4)}.wp-block-group.pg-notice{border-left:4px solid var(--accent-purple);background:var(--color-purple-100);border-radius:0 var(--radius-16) var(--radius-16) 0;padding:20px 24px;margin:1.6em 0;color:var(--text-primary)}.wp-block-group.pg-notice strong{color:var(--text-primary)}.wp-block-group.pg-notice p{margin:0;color:inherit}@media (min-width:641px){.wp-block-table.pg-wide table{min-width:760px}}@media (max-width:640px){.wp-block-table.pg-table th,.wp-block-table.pg-table td{padding:10px 12px}.wp-block-table.pg-cards{overflow:visible;border:0}.wp-block-table.pg-cards table,.wp-block-table.pg-cards tbody,.wp-block-table.pg-cards tr,.wp-block-table.pg-cards td{display:block;width:100%}.wp-block-table.pg-cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.wp-block-table.pg-cards tr{border:1px solid var(--border-strong);border-radius:var(--radius-12);padding:6px 0;margin:0 0 12px;background:none}.wp-block-table.pg-cards tbody tr:nth-child(even) td{background:none}.wp-block-table.pg-cards td{border:0;padding:6px 14px}.wp-block-table.pg-cards td:first-child{color:var(--text-primary);font-weight:600}.wp-block-table.pg-cards td::before{display:block;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary);font-weight:400;margin-bottom:2px}}@media (max-width:640px){.pg-t2 td:nth-child(2)::before{content:\"Split export from Tripo\"}.pg-t2 td:nth-child(3)::before{content:\"After the script\"}.pg-t4 td:nth-child(2)::before{content:\"Where it came from\"}.pg-t4 td:nth-child(3)::before{content:\"Licence\"}.pg-t7 td:nth-child(2)::before{content:\"Category\"}.pg-t7 td:nth-child(3)::before{content:\"Best for\"}.pg-t7 td:nth-child(4)::before{content:\"Price (starting at)\"}.pg-t8 td:nth-child(2)::before{content:\"What AI does\"}.pg-t8 td:nth-child(3)::before{content:\"What you do\"}}<\/style>\n","protected":false},"excerpt":{"rendered":"<p>A step-by-step guide to making a game with AI, built on a real game: Sky Shift, a 3D car stunt race made with ChatGPT, Tripo, Blender, Suno and Claude Code, and published with Playgama MCP.<\/p>\n","protected":false},"author":11,"featured_media":15405,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"footnotes":""},"categories":[1299],"tags":[252,5,1313,1312],"class_list":["post-15401","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-main","tag-ai","tag-game-development","tag-gamedev","tag-webdev"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Make a Video Game with AI: Step-by-Step Guide<\/title>\n<meta name=\"description\" content=\"How to make a video game with AI, step by step: plan it with a GDD, turn images into 3D models, let an AI agent write the code and publish a browser game.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Make a Video Game with AI: Step-by-Step Guide\" \/>\n<meta property=\"og:description\" content=\"How to make a video game with AI, step by step: plan it with a GDD, turn images into 3D models, let an AI agent write the code and publish a browser game.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/\" \/>\n<meta property=\"og:site_name\" content=\"Playgama Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-05T14:10:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-23T10:06:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/how-to-make-a-game-with-ai-cover-1200.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"David Sedrakyan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Sedrakyan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"35 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/main\\\/how-to-make-a-game-with-ai\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/main\\\/how-to-make-a-game-with-ai\\\/\"},\"author\":{\"name\":\"David Sedrakyan\",\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/#\\\/schema\\\/person\\\/5bbe086be334a842649a21fd6514a306\"},\"headline\":\"How to Make a Game with AI: Sky Shift, from a 3D Model to Playgama\",\"datePublished\":\"2026-10-05T14:10:16+00:00\",\"dateModified\":\"2026-10-23T10:06:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/main\\\/how-to-make-a-game-with-ai\\\/\"},\"wordCount\":6473,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/main\\\/how-to-make-a-game-with-ai\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/playgama.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/how-to-make-a-game-with-ai-cover-1200.jpg\",\"keywords\":[\"AI\",\"Game Development\",\"gamedev\",\"webdev\"],\"articleSection\":[\"Main\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/playgama.com\\\/blog\\\/main\\\/how-to-make-a-game-with-ai\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/main\\\/how-to-make-a-game-with-ai\\\/\",\"url\":\"https:\\\/\\\/playgama.com\\\/blog\\\/main\\\/how-to-make-a-game-with-ai\\\/\",\"name\":\"How to Make a Video Game with AI: Step-by-Step Guide\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/main\\\/how-to-make-a-game-with-ai\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/main\\\/how-to-make-a-game-with-ai\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/playgama.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/how-to-make-a-game-with-ai-cover-1200.jpg\",\"datePublished\":\"2026-10-05T14:10:16+00:00\",\"dateModified\":\"2026-10-23T10:06:41+00:00\",\"description\":\"How to make a video game with AI, step by step: plan it with a GDD, turn images into 3D models, let an AI agent write the code and publish a browser game.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/main\\\/how-to-make-a-game-with-ai\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/playgama.com\\\/blog\\\/main\\\/how-to-make-a-game-with-ai\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/main\\\/how-to-make-a-game-with-ai\\\/#primaryimage\",\"url\":\"https:\\\/\\\/playgama.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/how-to-make-a-game-with-ai-cover-1200.jpg\",\"contentUrl\":\"https:\\\/\\\/playgama.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/how-to-make-a-game-with-ai-cover-1200.jpg\",\"width\":1200,\"height\":675,\"caption\":\"How to make a game with AI: a step-by-step guide on Sky Shift\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/main\\\/how-to-make-a-game-with-ai\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/playgama.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Make a Game with AI: Sky Shift, from a 3D Model to Playgama\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/playgama.com\\\/blog\\\/\",\"name\":\"Playgama Blog: \ud83c\udfae Insights, Tutorials, and Creative Inspiration for Game Development \ud83d\ude80\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/playgama.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/#organization\",\"name\":\"Playgama Blog: \ud83c\udfae Insights, Tutorials, and Creative Inspiration for Game Development \ud83d\ude80\",\"url\":\"https:\\\/\\\/playgama.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/playgama.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/cropped-playgama-scaled-1.png\",\"contentUrl\":\"https:\\\/\\\/playgama.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/cropped-playgama-scaled-1.png\",\"width\":2559,\"height\":523,\"caption\":\"Playgama Blog: \ud83c\udfae Insights, Tutorials, and Creative Inspiration for Game Development \ud83d\ude80\"},\"image\":{\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/playgama.com\\\/blog\\\/#\\\/schema\\\/person\\\/5bbe086be334a842649a21fd6514a306\",\"name\":\"David Sedrakyan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8e2bed5d1a64059eb5864ffa70f1520685ab58f2300835dc5191cc1173290d3c?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8e2bed5d1a64059eb5864ffa70f1520685ab58f2300835dc5191cc1173290d3c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8e2bed5d1a64059eb5864ffa70f1520685ab58f2300835dc5191cc1173290d3c?s=96&d=mm&r=g\",\"caption\":\"David Sedrakyan\"},\"description\":\"Game developer with 8+ years of experience, shipping games globally with Voodoo and multiple publishers, working across Unity and modern web engines, with hands-on experience in game design, market analysis, business insights, and leading teams of 4+ people.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/david-sedrakyan-77b930199\\\/\"],\"url\":\"https:\\\/\\\/playgama.com\\\/blog\\\/author\\\/david\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Make a Video Game with AI: Step-by-Step Guide","description":"How to make a video game with AI, step by step: plan it with a GDD, turn images into 3D models, let an AI agent write the code and publish a browser game.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/","og_locale":"en_US","og_type":"article","og_title":"How to Make a Video Game with AI: Step-by-Step Guide","og_description":"How to make a video game with AI, step by step: plan it with a GDD, turn images into 3D models, let an AI agent write the code and publish a browser game.","og_url":"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/","og_site_name":"Playgama Blog","article_published_time":"2026-10-05T14:10:16+00:00","article_modified_time":"2026-10-23T10:06:41+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/how-to-make-a-game-with-ai-cover-1200.jpg","type":"image\/jpeg"}],"author":"David Sedrakyan","twitter_card":"summary_large_image","twitter_misc":{"Written by":"David Sedrakyan","Est. reading time":"35 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/#article","isPartOf":{"@id":"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/"},"author":{"name":"David Sedrakyan","@id":"https:\/\/playgama.com\/blog\/#\/schema\/person\/5bbe086be334a842649a21fd6514a306"},"headline":"How to Make a Game with AI: Sky Shift, from a 3D Model to Playgama","datePublished":"2026-10-05T14:10:16+00:00","dateModified":"2026-10-23T10:06:41+00:00","mainEntityOfPage":{"@id":"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/"},"wordCount":6473,"commentCount":0,"publisher":{"@id":"https:\/\/playgama.com\/blog\/#organization"},"image":{"@id":"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/#primaryimage"},"thumbnailUrl":"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/how-to-make-a-game-with-ai-cover-1200.jpg","keywords":["AI","Game Development","gamedev","webdev"],"articleSection":["Main"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/","url":"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/","name":"How to Make a Video Game with AI: Step-by-Step Guide","isPartOf":{"@id":"https:\/\/playgama.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/#primaryimage"},"image":{"@id":"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/#primaryimage"},"thumbnailUrl":"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/how-to-make-a-game-with-ai-cover-1200.jpg","datePublished":"2026-10-05T14:10:16+00:00","dateModified":"2026-10-23T10:06:41+00:00","description":"How to make a video game with AI, step by step: plan it with a GDD, turn images into 3D models, let an AI agent write the code and publish a browser game.","breadcrumb":{"@id":"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/#primaryimage","url":"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/how-to-make-a-game-with-ai-cover-1200.jpg","contentUrl":"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/10\/how-to-make-a-game-with-ai-cover-1200.jpg","width":1200,"height":675,"caption":"How to make a game with AI: a step-by-step guide on Sky Shift"},{"@type":"BreadcrumbList","@id":"https:\/\/playgama.com\/blog\/main\/how-to-make-a-game-with-ai\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/playgama.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Make a Game with AI: Sky Shift, from a 3D Model to Playgama"}]},{"@type":"WebSite","@id":"https:\/\/playgama.com\/blog\/#website","url":"https:\/\/playgama.com\/blog\/","name":"Playgama Blog: \ud83c\udfae Insights, Tutorials, and Creative Inspiration for Game Development \ud83d\ude80","description":"","publisher":{"@id":"https:\/\/playgama.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/playgama.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/playgama.com\/blog\/#organization","name":"Playgama Blog: \ud83c\udfae Insights, Tutorials, and Creative Inspiration for Game Development \ud83d\ude80","url":"https:\/\/playgama.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/playgama.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/04\/cropped-playgama-scaled-1.png","contentUrl":"https:\/\/playgama.com\/blog\/wp-content\/uploads\/2026\/04\/cropped-playgama-scaled-1.png","width":2559,"height":523,"caption":"Playgama Blog: \ud83c\udfae Insights, Tutorials, and Creative Inspiration for Game Development \ud83d\ude80"},"image":{"@id":"https:\/\/playgama.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/playgama.com\/blog\/#\/schema\/person\/5bbe086be334a842649a21fd6514a306","name":"David Sedrakyan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/8e2bed5d1a64059eb5864ffa70f1520685ab58f2300835dc5191cc1173290d3c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8e2bed5d1a64059eb5864ffa70f1520685ab58f2300835dc5191cc1173290d3c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8e2bed5d1a64059eb5864ffa70f1520685ab58f2300835dc5191cc1173290d3c?s=96&d=mm&r=g","caption":"David Sedrakyan"},"description":"Game developer with 8+ years of experience, shipping games globally with Voodoo and multiple publishers, working across Unity and modern web engines, with hands-on experience in game design, market analysis, business insights, and leading teams of 4+ people.","sameAs":["https:\/\/www.linkedin.com\/in\/david-sedrakyan-77b930199\/"],"url":"https:\/\/playgama.com\/blog\/author\/david\/"}]}},"_links":{"self":[{"href":"https:\/\/playgama.com\/blog\/wp-json\/wp\/v2\/posts\/15401","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/playgama.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/playgama.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/playgama.com\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/playgama.com\/blog\/wp-json\/wp\/v2\/comments?post=15401"}],"version-history":[{"count":15,"href":"https:\/\/playgama.com\/blog\/wp-json\/wp\/v2\/posts\/15401\/revisions"}],"predecessor-version":[{"id":18714,"href":"https:\/\/playgama.com\/blog\/wp-json\/wp\/v2\/posts\/15401\/revisions\/18714"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/playgama.com\/blog\/wp-json\/wp\/v2\/media\/15405"}],"wp:attachment":[{"href":"https:\/\/playgama.com\/blog\/wp-json\/wp\/v2\/media?parent=15401"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/playgama.com\/blog\/wp-json\/wp\/v2\/categories?post=15401"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/playgama.com\/blog\/wp-json\/wp\/v2\/tags?post=15401"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}