<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Adrian &#8211; GameDev AI Hub</title>
	<atom:link href="https://gamedevaihub.com/author/gamedevai/feed/" rel="self" type="application/rss+xml" />
	<link>https://gamedevaihub.com</link>
	<description></description>
	<lastBuildDate>Sun, 01 Nov 2026 21:24:59 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://gamedevaihub.com/wp-content/uploads/2026/10/gamedev-ai-hub-bot-icon-150x150.png</url>
	<title>Adrian &#8211; GameDev AI Hub</title>
	<link>https://gamedevaihub.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>AI Game Development for Beginners: From No Experience to a Published Game</title>
		<link>https://gamedevaihub.com/ai-game-development-for-beginners/</link>
					<comments>https://gamedevaihub.com/ai-game-development-for-beginners/#respond</comments>
		
		<dc:creator><![CDATA[Adrian]]></dc:creator>
		<pubDate>Sun, 01 Nov 2026 20:42:41 +0000</pubDate>
				<category><![CDATA[AI Coding & Engines]]></category>
		<guid isPermaLink="false">https://gamedevaihub.com/?p=20401</guid>

					<description><![CDATA[A route for your device and skills, real costs, copy-paste prompts, and a small game an AI built that no human has played yet.]]></description>
										<content:encoded><![CDATA[
<style>.gdh{--ink:#12151d;--mut:#4a5163;--line:#d5dae6;--tint:#f4f6fb;--blue:#244fb2;--good:#17693a;--warn:#8a5a00;--bad:#a12626;font-size:17px;line-height:1.55;color:var(--ink);margin:1.6em 0}.gdh *{box-sizing:border-box}.gdh p{margin:0 0 .7em}.gdh p:last-child{margin-bottom:0}.gdh button{font:inherit;cursor:pointer}.gdh button:focus-visible,.gdh input:focus-visible,.gdh summary:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.gdh-kicker{font-size:13px;font-weight:700;color:var(--blue);margin-bottom:.4em!important}.gdh-q{font-weight:700;font-size:18px}.gdh-small{font-size:14.5px;color:var(--mut)}.gdh-answer,.gdh-callout,.gdh-quiz,.gdh-ms,.gdh-err,.gdh-rights{background:var(--tint);border:1px solid var(--line);border-radius:12px;padding:20px}.gdh-callout{background:#fff8e8;border-color:#e6cf9a}.gdh-frame{position:relative;aspect-ratio:16/9;background:#12141a;border-radius:12px;overflow:hidden}.gdh-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}.gdh-poster{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:16px;color:#f2f2f2}.gdh-title{font-size:clamp(28px,6vw,44px);font-weight:700;margin:0 0 .15em!important;color:#fff}.gdh-sub{font-size:clamp(14px,2.4vw,17px);color:#d9d9d9}.gdh-btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:6px}.gdh-btn{min-height:46px;padding:10px 20px;border-radius:8px;border:0;background:#9db4e8;color:#12141a;font-weight:700}.gdh-primary{background:#ffb840}.gdh-game .gdh-small{margin-top:.6em}.gdh-result{background:var(--tint);border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-top:10px}.gdh-opts{display:flex;flex-direction:column;gap:8px}.gdh-opt{text-align:left;min-height:44px;padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink)}.gdh-opt:hover{border-color:var(--blue)}.gdh-opt[disabled]{cursor:default;opacity:.65}.gdh-opt.is-right{border:2px solid var(--good);opacity:1;font-weight:700}.gdh-opt.is-wrong{border:2px solid var(--bad);opacity:1}.gdh-out{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:10px}.gdh-link{background:none;border:0;padding:6px 0;color:var(--blue);text-decoration:underline}.gdh-compare{display:grid;grid-template-columns:1fr;gap:12px}.gdh-card{border:1px solid var(--line);border-radius:12px;padding:16px;background:#fff}.gdh-good{background:var(--tint)}.gdh-details{margin-top:6px}.gdh-details summary{cursor:pointer;color:var(--blue);font-weight:600;min-height:32px;padding:4px 0}.gdh-details[open]{padding-bottom:6px}.gdh pre{margin:0;background:#12151d;color:#eef1f7;border-radius:8px;padding:12px 14px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;font-size:14px;line-height:1.5}.gdh pre code{background:none;color:inherit;font-size:inherit;padding:0}.gdh-prompt{margin:0 0 .9em}.gdh-copy{margin-top:6px;min-height:38px;padding:6px 14px;background:#fff;color:var(--blue);border:1px solid var(--blue);border-radius:8px;font-weight:600}.gdh-bar{height:12px;background:#fff;border:1px solid var(--line);border-radius:7px;overflow:hidden;margin-bottom:14px}.gdh-bar span{display:block;height:100%;width:0;background:var(--blue);transition:width .2s}.gdh-m{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:10px}.gdh-check{display:flex;gap:10px;align-items:flex-start;font-weight:700;cursor:pointer}.gdh-check input{width:20px;height:20px;margin-top:3px;flex:none}.gdh-e{margin-bottom:18px}.gdh-e .gdh-opts{margin-top:10px}.gdh-e:last-child{margin-bottom:0}.gdh-rights input{width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;margin:6px 0 12px;background:#fff}.gdh-scroll{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:8px;margin-bottom:10px}.gdh-rights table{border-collapse:collapse;width:100%;font-size:15px;margin:0;min-width:520px}.gdh-rights th,.gdh-rights td{padding:9px 11px;border:0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.gdh-rights th{background:var(--tint)}.gdh-v{font-weight:700;white-space:nowrap}.gdh-v-yes{color:var(--good)}.gdh-v-strings{color:var(--warn)}.gdh-v-unclear{color:var(--warn)}.gdh-v-no{color:var(--bad)}@media(min-width:640px){.gdh-compare{grid-template-columns:1fr 1fr}.gdh-quiz .gdh-opts{display:grid;grid-template-columns:1fr 1fr}}.gdh-shots{margin:1.5em 0}.gdh-shots-grid{display:grid;grid-template-columns:1fr;gap:10px}.gdh-shots img{display:block;width:100%;height:auto;border-radius:8px}@media(min-width:600px){.gdh-shots-grid{grid-template-columns:1fr 1fr 1fr}}@media(prefers-reduced-motion:reduce){.gdh-bar span{transition:none}}</style>



<p class="wp-block-paragraph">You could be the first human ever to play the game below.</p>



<p class="wp-block-paragraph">An AI agent built it from the plan in this guide. Bots played its twin, built in the Godot engine, 4,000 times. No person has played either one, me included.</p>



<p class="wp-block-paragraph">So try it. A round takes three minutes at most. Then I&#8217;ll show you how to make your own, including what broke when we ran these prompts for real.</p>



<div class="gdh gdh-game" id="dry-kindling">
<div class="gdh-frame" data-game="PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KPHRpdGxlPkRyeSBLaW5kbGluZzwvdGl0bGU+CjxzdHlsZT4KaHRtbCxib2R5e21hcmdpbjowO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6IzEyMTQxYTtvdmVyZmxvdzpoaWRkZW59CmJvZHl7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfQpjYW52YXN7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y29udGFpbjt0b3VjaC1hY3Rpb246bm9uZTtvdXRsaW5lOm5vbmU7Y3Vyc29yOnBvaW50ZXJ9Cjwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CjxjYW52YXMgaWQ9ImdhbWUiIHdpZHRoPSIxMjgwIiBoZWlnaHQ9IjcyMCIgdGFiaW5kZXg9IjAiIGFyaWEtbGFiZWw9IkRyeSBLaW5kbGluZy4gQ2FycnkgdHdpZ3MgdG8gdGhlIGZpcmUgd2l0aCBhcnJvdyBrZXlzLCBXQVNEIG9yIHRvdWNoLiBLZWVwIGl0IGFsaXZlIHVudGlsIGRhd24uIj48L2NhbnZhcz4KPHNjcmlwdD4KInVzZSBzdHJpY3QiOwovLyBEcnkgS2luZGxpbmcsIGJyb3dzZXIgYnVpbGQuIE9uZSBmaWxlLCBubyBleHRlcm5hbCBhc3NldHMsIG5vIG5ldHdvcmssIG5vIHNhdmVzLCBubyB0cmFja2luZy4KLy8gQnVpbHQgYnkgYW4gQUkgYWdlbnQuIFRlc3RlZCBieSBzY3JpcHRzIGFuZCBib3RzLiBOb3QgeWV0IHBsYXllZCBieSBhIHBlcnNvbiB3aGVuIHdyaXR0ZW4uCmNvbnN0IFMgPSB7CiAgVzogMTI4MCwgSDogNzIwLCBTUEVFRDogMzAwLCBDQVJSWTogMC43LCBLUjogMTYsIEZSOiAzMiwKICBGSVJFX1NUQVJUOiA2MCwgRklSRV9NQVg6IDEwMCwgVFdJRzogMTAsIE1BWF9UV0lHUzogMywgTUFSR0lOOiAzMiwgUlVOOiAxODAsCiAgREVDQVlfQTogMS4yLCBERUNBWV9COiAyLjQsIFJBSU5fQTogNiwgUkFJTl9COiAyLjUsCiAgQ09MUzogNSwgV0FSTjogMS41LCBQT1VSOiAxLjAsIFJBSU5fRklSRTogOAp9Owpjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7CmNvbnN0IGN2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dhbWUnKTsKY29uc3QgZyA9IGN2LmdldENvbnRleHQoJzJkJyk7CmNvbnN0IGtleXMgPSB7fTsKY29uc3QgRyA9IHsgc2NyZWVuOiAndGl0bGUnLCBib3Q6IGZhbHNlLCBtdXRlZDogZmFsc2UgfTsKbGV0IGN0eCA9IG51bGwsIHBvaW50ZXIgPSBudWxsOwoKZnVuY3Rpb24gbGVycChhLCBiLCB0KSB7IHJldHVybiBhICsgKGIgLSBhKSAqIHQ7IH0KZnVuY3Rpb24gZGlzdChheCwgYXksIGJ4LCBieSkgeyByZXR1cm4gTWF0aC5oeXBvdChheCAtIGJ4LCBheSAtIGJ5KTsgfQpmdW5jdGlvbiBzcGF3bigpIHsKICBHLmdyb3VuZC5wdXNoKHsgeDogUy5NQVJHSU4gKyBNYXRoLnJhbmRvbSgpICogKFMuVyAtIDIgKiBTLk1BUkdJTiksIHk6IFMuTUFSR0lOICsgTWF0aC5yYW5kb20oKSAqIChTLkggLSAyICogUy5NQVJHSU4pIH0pOwp9CmZ1bmN0aW9uIHN0YXJ0KGJvdCkgewogIEcuYm90ID0gISFib3Q7CiAgRy5zY3JlZW4gPSAncGxheSc7CiAgRy5maXJlID0gUy5GSVJFX1NUQVJUOyBHLnR3aWdzID0gMDsgRy50ID0gMDsgRy53b24gPSBmYWxzZTsKICBHLmsgPSB7IHg6IFMuVyAvIDIsIHk6IDUyMCwgY2Fycnlpbmc6IGZhbHNlIH07CiAgRy5ncm91bmQgPSBbXTsgRy5yYWlucyA9IFtdOyBHLm5leHRSYWluID0gUy5SQUlOX0E7CiAgZm9yIChsZXQgaSA9IDA7IGkgPCBTLk1BWF9UV0lHUzsgaSsrKSBzcGF3bigpOwp9Ci8vIC0tLS0gc291bmQ6IGZvdXIgdG9uZXMgZ2VuZXJhdGVkIGluIGNvZGUsIHN0YXJ0ZWQgb25seSBhZnRlciBhIGNsaWNrLCB0YXAgb3Iga2V5IHByZXNzCmZ1bmN0aW9uIGJlZXAoZiwgZCwgdHlwZSkgewogIGlmIChHLm11dGVkIHx8ICFjdHgpIHJldHVybjsKICBjb25zdCBvID0gY3R4LmNyZWF0ZU9zY2lsbGF0b3IoKSwgYSA9IGN0eC5jcmVhdGVHYWluKCk7CiAgby50eXBlID0gdHlwZSB8fCAnc3F1YXJlJzsgby5mcmVxdWVuY3kudmFsdWUgPSBmOwogIGEuZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLjA1LCBjdHguY3VycmVudFRpbWUpOwogIGEuZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMDAxLCBjdHguY3VycmVudFRpbWUgKyBkKTsKICBvLmNvbm5lY3QoYSk7IGEuY29ubmVjdChjdHguZGVzdGluYXRpb24pOyBvLnN0YXJ0KCk7IG8uc3RvcChjdHguY3VycmVudFRpbWUgKyBkKTsKfQpmdW5jdGlvbiB3YWtlKCkgewogIGlmICghY3R4KSB7IHRyeSB7IGN0eCA9IG5ldyAod2luZG93LkF1ZGlvQ29udGV4dCB8fCB3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KSgpOyB9IGNhdGNoIChlKSB7IGN0eCA9IG51bGw7IH0gfQogIGlmIChjdHggJiYgY3R4LnN0YXRlID09PSAnc3VzcGVuZGVkJykgY3R4LnJlc3VtZSgpOwp9Ci8vIC0tLS0gaW5wdXQKY29uc3QgTU9WRSA9IHsgQXJyb3dMZWZ0OiAxLCBBcnJvd1JpZ2h0OiAxLCBBcnJvd1VwOiAxLCBBcnJvd0Rvd246IDEsIEtleUE6IDEsIEtleUQ6IDEsIEtleVc6IDEsIEtleVM6IDEgfTsKYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGUgPT4gewogIHdha2UoKTsKICBpZiAoTU9WRVtlLmNvZGVdKSB7IGtleXNbZS5jb2RlXSA9IHRydWU7IGUucHJldmVudERlZmF1bHQoKTsgfQogIGlmIChlLmNvZGUgPT09ICdLZXlNJyAmJiAhZS5yZXBlYXQpIEcubXV0ZWQgPSAhRy5tdXRlZDsKICBpZiAoZS5jb2RlID09PSAnRW50ZXInICYmICFlLnJlcGVhdCkgeyB3YWtlKCk7IGlmIChHLnNjcmVlbiAhPT0gJ3BsYXknKSBzdGFydChmYWxzZSk7IGUucHJldmVudERlZmF1bHQoKTsgfQogIGlmIChlLmNvZGUgPT09ICdLZXlCJyAmJiAhZS5yZXBlYXQgJiYgRy5zY3JlZW4gIT09ICdwbGF5JykgeyB3YWtlKCk7IHN0YXJ0KHRydWUpOyB9Cn0pOwphZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGUgPT4geyBpZiAoTU9WRVtlLmNvZGVdKSBrZXlzW2UuY29kZV0gPSBmYWxzZTsgfSk7CmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoKSA9PiB7IGZvciAoY29uc3QgYyBpbiBrZXlzKSBrZXlzW2NdID0gZmFsc2U7IHBvaW50ZXIgPSBudWxsOyB9KTsKZnVuY3Rpb24gdG9HYW1lKGUpIHsKICBjb25zdCByID0gY3YuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgY29uc3Qgc2NhbGUgPSBNYXRoLm1pbihyLndpZHRoIC8gUy5XLCByLmhlaWdodCAvIFMuSCk7CiAgY29uc3Qgb3ggPSAoci53aWR0aCAtIFMuVyAqIHNjYWxlKSAvIDIsIG95ID0gKHIuaGVpZ2h0IC0gUy5IICogc2NhbGUpIC8gMjsKICByZXR1cm4geyB4OiAoZS5jbGllbnRYIC0gci5sZWZ0IC0gb3gpIC8gc2NhbGUsIHk6IChlLmNsaWVudFkgLSByLnRvcCAtIG95KSAvIHNjYWxlIH07Cn0KY3YuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBlID0+IHsKICB3YWtlKCk7IGN2LmZvY3VzKCk7IGUucHJldmVudERlZmF1bHQoKTsKICBjb25zdCBwID0gdG9HYW1lKGUpOwogIGlmIChwLnggPiBTLlcgLSA5NiAmJiBwLnkgPiBTLkggLSA1NikgeyBHLm11dGVkID0gIUcubXV0ZWQ7IHJldHVybjsgfQogIGlmIChHLnNjcmVlbiAhPT0gJ3BsYXknKSB7CiAgICBpZiAoRy5zY3JlZW4gPT09ICd0aXRsZScgJiYgcC55ID4gNDcwKSBzdGFydCh0cnVlKTsgZWxzZSBzdGFydChmYWxzZSk7CiAgICByZXR1cm47CiAgfQogIHBvaW50ZXIgPSBwOwogIHRyeSB7IGN2LnNldFBvaW50ZXJDYXB0dXJlKGUucG9pbnRlcklkKTsgfSBjYXRjaCAoeCkge30KfSk7CmN2LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJtb3ZlJywgZSA9PiB7IGlmIChwb2ludGVyKSBwb2ludGVyID0gdG9HYW1lKGUpOyB9KTsKY3YuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgKCkgPT4geyBwb2ludGVyID0gbnVsbDsgfSk7CmN2LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJjYW5jZWwnLCAoKSA9PiB7IHBvaW50ZXIgPSBudWxsOyB9KTsKLy8gLS0tLSBib3Q6IHNhbWUga2V5cyBhbmQgc2FtZSBzcGVlZCBhcyB5b3UKZnVuY3Rpb24gYm90U3RlcCgpIHsKICBjb25zdCBrID0gRy5rOwogIGxldCB0eCA9IFMuVyAvIDIsIHR5ID0gUy5IIC8gMjsKICBpZiAoIWsuY2FycnlpbmcpIHsKICAgIGxldCBiZXN0ID0gSW5maW5pdHk7CiAgICBmb3IgKGNvbnN0IHQgb2YgRy5ncm91bmQpIHsgY29uc3QgZCA9IGRpc3Qoay54LCBrLnksIHQueCwgdC55KTsgaWYgKGQgPCBiZXN0KSB7IGJlc3QgPSBkOyB0eCA9IHQueDsgdHkgPSB0Lnk7IH0gfQogIH0KICBjb25zdCBjb2wgPSBNYXRoLmZsb29yKGsueCAvIChTLlcgLyBTLkNPTFMpKTsKICBjb25zdCBkYW5nZXIgPSBrLmNhcnJ5aW5nICYmIEcucmFpbnMuc29tZShyID0+IHIuY29sID09PSBjb2wgJiYgci5hZ2UgPiBTLldBUk4gLSAwLjcpOwogIGlmIChkYW5nZXIpIHsgdHggPSAoY29sICsgKGNvbCA8IFMuQ09MUyAvIDIgPyAxLjUgOiAtMC41KSkgKiAoUy5XIC8gUy5DT0xTKTsgdHkgPSBrLnk7IH0KICBrZXlzLkFycm93UmlnaHQgPSB0eCAtIGsueCA+IDY7IGtleXMuQXJyb3dMZWZ0ID0gdHggLSBrLnggPCAtNjsKICBrZXlzLkFycm93RG93biA9IHR5IC0gay55ID4gNjsga2V5cy5BcnJvd1VwID0gdHkgLSBrLnkgPCAtNjsKfQovLyAtLS0tIHJ1bGVzCmZ1bmN0aW9uIHVwZGF0ZShkdCkgewogIGlmIChHLnNjcmVlbiAhPT0gJ3BsYXknKSByZXR1cm47CiAgaWYgKEcuYm90KSBib3RTdGVwKCk7CiAgY29uc3QgayA9IEcuazsKICBsZXQgZHggPSAoKGtleXMuQXJyb3dSaWdodCB8fCBrZXlzLktleUQpID8gMSA6IDApIC0gKChrZXlzLkFycm93TGVmdCB8fCBrZXlzLktleUEpID8gMSA6IDApOwogIGxldCBkeSA9ICgoa2V5cy5BcnJvd0Rvd24gfHwga2V5cy5LZXlTKSA/IDEgOiAwKSAtICgoa2V5cy5BcnJvd1VwIHx8IGtleXMuS2V5VykgPyAxIDogMCk7CiAgaWYgKHBvaW50ZXIgJiYgIUcuYm90KSB7CiAgICBjb25zdCBkID0gZGlzdChwb2ludGVyLngsIHBvaW50ZXIueSwgay54LCBrLnkpOwogICAgaWYgKGQgPiA4KSB7IGR4ID0gKHBvaW50ZXIueCAtIGsueCkgLyBkOyBkeSA9IChwb2ludGVyLnkgLSBrLnkpIC8gZDsgfSBlbHNlIHsgZHggPSAwOyBkeSA9IDA7IH0KICB9CiAgY29uc3QgbGVuID0gTWF0aC5oeXBvdChkeCwgZHkpIHx8IDE7CiAgY29uc3Qgc3AgPSBTLlNQRUVEICogKGsuY2FycnlpbmcgPyBTLkNBUlJZIDogMSk7CiAgay54ID0gTWF0aC5tYXgoUy5LUiwgTWF0aC5taW4oUy5XIC0gUy5LUiwgay54ICsgZHggLyBsZW4gKiBzcCAqIGR0KSk7CiAgay55ID0gTWF0aC5tYXgoUy5LUiwgTWF0aC5taW4oUy5IIC0gUy5LUiwgay55ICsgZHkgLyBsZW4gKiBzcCAqIGR0KSk7CiAgaWYgKCFrLmNhcnJ5aW5nKSB7CiAgICBjb25zdCBpID0gRy5ncm91bmQuZmluZEluZGV4KHQgPT4gZGlzdChrLngsIGsueSwgdC54LCB0LnkpIDwgUy5LUiArIDEwKTsKICAgIGlmIChpID49IDApIHsgRy5ncm91bmQuc3BsaWNlKGksIDEpOyBrLmNhcnJ5aW5nID0gdHJ1ZTsgYmVlcCg1MjAsIDAuMDgpOyB9CiAgfQogIGlmIChrLmNhcnJ5aW5nICYmIGRpc3Qoay54LCBrLnksIFMuVyAvIDIsIFMuSCAvIDIpIDwgUy5LUiArIFMuRlIpIHsKICAgIEcuZmlyZSA9IE1hdGgubWluKFMuRklSRV9NQVgsIEcuZmlyZSArIFMuVFdJRyk7CiAgICBHLnR3aWdzKys7IGsuY2FycnlpbmcgPSBmYWxzZTsgc3Bhd24oKTsgYmVlcCg3ODAsIDAuMTIpOwogIH0KICBjb25zdCBwID0gTWF0aC5taW4oRy50IC8gUy5SVU4sIDEpOwogIEcubmV4dFJhaW4gLT0gZHQ7CiAgaWYgKEcubmV4dFJhaW4gPD0gMCkgewogICAgbGV0IGNvbCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIFMuQ09MUyk7CiAgICBpZiAoRy5yYWlucy5zb21lKHIgPT4gci5jb2wgPT09IGNvbCkpIGNvbCA9IChjb2wgKyAxKSAlIFMuQ09MUzsKICAgIEcucmFpbnMucHVzaCh7IGNvbCwgYWdlOiAwLCBoaXQ6IGZhbHNlIH0pOwogICAgRy5uZXh0UmFpbiA9IGxlcnAoUy5SQUlOX0EsIFMuUkFJTl9CLCBwKTsKICB9CiAgY29uc3QgY3cgPSBTLlcgLyBTLkNPTFMsIGZpcmVDb2wgPSBNYXRoLmZsb29yKChTLlcgLyAyKSAvIGN3KTsKICBmb3IgKGNvbnN0IHIgb2YgRy5yYWlucykgewogICAgci5hZ2UgKz0gZHQ7CiAgICBpZiAoci5hZ2UgPj0gUy5XQVJOICYmIHIuYWdlIDwgUy5XQVJOICsgUy5QT1VSKSB7CiAgICAgIGlmIChrLmNhcnJ5aW5nICYmIE1hdGguZmxvb3Ioay54IC8gY3cpID09PSByLmNvbCkgeyBrLmNhcnJ5aW5nID0gZmFsc2U7IHNwYXduKCk7IGJlZXAoMTQwLCAwLjIsICdzYXd0b290aCcpOyB9CiAgICAgIGlmICghci5oaXQgJiYgci5jb2wgPT09IGZpcmVDb2wpIHsgci5oaXQgPSB0cnVlOyBHLmZpcmUgLT0gUy5SQUlOX0ZJUkU7IGJlZXAoMTEwLCAwLjIsICdzYXd0b290aCcpOyB9CiAgICB9CiAgfQogIEcucmFpbnMgPSBHLnJhaW5zLmZpbHRlcihyID0+IHIuYWdlIDwgUy5XQVJOICsgUy5QT1VSKTsKICBHLmZpcmUgLT0gbGVycChTLkRFQ0FZX0EsIFMuREVDQVlfQiwgcCkgKiBkdDsKICBHLnQgKz0gZHQ7CiAgaWYgKEcuZmlyZSA8PSAwKSB7IEcuZmlyZSA9IDA7IEcud29uID0gZmFsc2U7IGVuZCgpOyB9CiAgZWxzZSBpZiAoRy50ID49IFMuUlVOKSB7IEcud29uID0gdHJ1ZTsgZW5kKCk7IH0KfQpmdW5jdGlvbiBlbmQoKSB7CiAgRy5zY3JlZW4gPSAncmVzdWx0JzsgcG9pbnRlciA9IG51bGw7IGZvciAoY29uc3QgYyBpbiBrZXlzKSBrZXlzW2NdID0gZmFsc2U7CiAgYmVlcChHLndvbiA/IDY2MCA6IDE4MCwgMC40LCAndHJpYW5nbGUnKTsKICB0cnkgeyBwYXJlbnQucG9zdE1lc3NhZ2UoeyBkcnlLaW5kbGluZzogdHJ1ZSwgd29uOiBHLndvbiwgdHdpZ3M6IEcudHdpZ3MsIGJvdDogRy5ib3QsIHNlY29uZHM6IE1hdGguZmxvb3IoRy50KSB9LCAnKicpOyB9IGNhdGNoIChlKSB7fQogIGlmIChwYXJhbXMuZ2V0KCdsb2cnKSkgY29uc29sZS5sb2coJ0RLX1JFU1VMVCAnICsgKEcud29uID8gJ1dJTicgOiAnTE9TRScpICsgJyB0d2lncz0nICsgRy50d2lncyArICcgdD0nICsgRy50LnRvRml4ZWQoMSkpOwp9Ci8vIC0tLS0gZHJhd2luZwpmdW5jdGlvbiB0ZXh0KHMsIHgsIHksIHNpemUsIGNvbG9yLCBhbGlnbikgewogIGcuZm9udCA9IHNpemUgKyAncHggc3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sU2Vnb2UgVUksc2Fucy1zZXJpZic7CiAgZy5maWxsU3R5bGUgPSBjb2xvciB8fCAnI2YyZjJmMic7IGcudGV4dEFsaWduID0gYWxpZ24gfHwgJ2NlbnRlcic7IGcuZmlsbFRleHQocywgeCwgeSk7Cn0KZnVuY3Rpb24gYnV0dG9uKHMsIHksIGZpbGwpIHsKICBnLmZpbGxTdHlsZSA9IGZpbGw7IGcuZmlsbFJlY3QoUy5XIC8gMiAtIDIzMCwgeSwgNDYwLCA3NCk7CiAgdGV4dChzLCBTLlcgLyAyLCB5ICsgNDgsIDMyLCAnIzEyMTQxYScpOwp9CmZ1bmN0aW9uIGRyYXcoKSB7CiAgZy5maWxsU3R5bGUgPSAnIzEyMTQxYSc7IGcuZmlsbFJlY3QoMCwgMCwgUy5XLCBTLkgpOwogIGlmIChHLnNjcmVlbiA9PT0gJ3RpdGxlJykgewogICAgdGV4dCgnRHJ5IEtpbmRsaW5nJywgUy5XIC8gMiwgMTUwLCA3Nik7CiAgICB0ZXh0KCdDYXJyeSB0d2lncyB0byB0aGUgZmlyZS4gUmFpbiBzb2FrcyB3aGF0IHlvdSBjYXJyeS4nLCBTLlcgLyAyLCAyMjUsIDMwLCAnI2Q5ZDlkOScpOwogICAgdGV4dCgnS2VlcCB0aGUgZmlyZSBhbGl2ZSBmb3IgMyBtaW51dGVzLCB1bnRpbCBkYXduLicsIFMuVyAvIDIsIDI2OCwgMzAsICcjZDlkOWQ5Jyk7CiAgICB0ZXh0KCdBcnJvdyBrZXlzIG9yIFdBU0QuIE9uIGEgcGhvbmUsIGhvbGQgYW5kIGRyYWcuJywgUy5XIC8gMiwgMzExLCAzMCwgJyNkOWQ5ZDknKTsKICAgIGJ1dHRvbignUGxheSAoY2xpY2sgb3IgRW50ZXIpJywgMzYwLCAnI2ZmYjg0MCcpOwogICAgYnV0dG9uKCdXYXRjaCBhIGJvdCBwbGF5IChCKScsIDQ3OCwgJyM5ZGI0ZTgnKTsKICAgIHRleHQoJ1NvdW5kIG9uLiBNIG11dGVzLicsIFMuVyAvIDIsIDYxMCwgMjQsICcjYjViNWI1Jyk7CiAgICByZXR1cm47CiAgfQogIGlmIChHLnNjcmVlbiA9PT0gJ3Jlc3VsdCcpIHsKICAgIHRleHQoRy53b24gPyAnRGF3bicgOiAnVGhlIGZpcmUgd2VudCBvdXQnLCBTLlcgLyAyLCAyNDAsIDY2KTsKICAgIHRleHQoKEcuYm90ID8gJ1RoZSBib3QgZGVsaXZlcmVkICcgOiAnWW91IGRlbGl2ZXJlZCAnKSArIEcudHdpZ3MgKyAnIHR3aWdzJywgUy5XIC8gMiwgMzEwLCAzNCk7CiAgICBpZiAoIUcud29uKSB0ZXh0KCdTdXJ2aXZlZCAnICsgTWF0aC5mbG9vcihHLnQpICsgJyBvZiAxODAgc2Vjb25kcycsIFMuVyAvIDIsIDM1NiwgMzAsICcjZDlkOWQ5Jyk7CiAgICBidXR0b24oJ1BsYXkgYWdhaW4gKGNsaWNrIG9yIEVudGVyKScsIDQxMCwgJyNmZmI4NDAnKTsKICAgIGlmICghRy5ib3QpIHRleHQoJ1Bvc3QgeW91ciByZXN1bHQgaW4gdGhlIGNvbW1lbnRzIGJlbG93IHRoaXMgZ2FtZS4nLCBTLlcgLyAyLCA1NDUsIDI4LCAnI2Q5ZDlkOScpOwogICAgcmV0dXJuOwogIH0KICBjb25zdCBjdyA9IFMuVyAvIFMuQ09MUzsKICBmb3IgKGNvbnN0IHIgb2YgRy5yYWlucykgewogICAgaWYgKHIuYWdlIDwgUy5XQVJOKSB7IC8vIHdhcm5pbmcgc3RyaXBlLCBzdGVhZHksIG5vIGZsYXNoaW5nCiAgICAgIGcuZmlsbFN0eWxlID0gJ3JnYmEoMTIwLDE3MCwyNTUsMC4yMCknOyBnLmZpbGxSZWN0KHIuY29sICogY3csIDAsIGN3LCBTLkgpOwogICAgICBnLnN0cm9rZVN0eWxlID0gJyM5ZmMyZmYnOyBnLmxpbmVXaWR0aCA9IDM7IGcuc2V0TGluZURhc2goWzE2LCAxMl0pOyBnLnN0cm9rZVJlY3Qoci5jb2wgKiBjdyArIDIsIDIsIGN3IC0gNCwgUy5IIC0gNCk7IGcuc2V0TGluZURhc2goW10pOwogICAgfSBlbHNlIHsKICAgICAgZy5maWxsU3R5bGUgPSAncmdiYSg3MCwxMjAsMjU1LDAuNjIpJzsgZy5maWxsUmVjdChyLmNvbCAqIGN3LCAwLCBjdywgUy5IKTsKICAgICAgZy5zdHJva2VTdHlsZSA9ICcjZGJlN2ZmJzsgZy5saW5lV2lkdGggPSAyOwogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE2OyBpKyspIHsgY29uc3QgeCA9IHIuY29sICogY3cgKyAxMiArIGkgKiAoY3cgLSAyNCkgLyAxNiwgeSA9ICgoaSAqIDk3ICsgci5hZ2UgKiA5MDApICUgUy5IKTsgZy5iZWdpblBhdGgoKTsgZy5tb3ZlVG8oeCwgeSk7IGcubGluZVRvKHggLSA0LCB5ICsgMjApOyBnLnN0cm9rZSgpOyB9CiAgICB9CiAgfQogIGNvbnN0IHNjYWxlID0gMC42ICsgMC44ICogRy5maXJlIC8gUy5GSVJFX01BWDsKICBnLmZpbGxTdHlsZSA9ICcjZjI1YTFhJzsgZy5iZWdpblBhdGgoKTsgZy5tb3ZlVG8oUy5XIC8gMiwgUy5IIC8gMiAtIFMuRlIgKiAxLjUgKiBzY2FsZSk7CiAgZy5saW5lVG8oUy5XIC8gMiArIFMuRlIgKiBzY2FsZSwgUy5IIC8gMiArIFMuRlIgKiBzY2FsZSk7IGcubGluZVRvKFMuVyAvIDIgLSBTLkZSICogc2NhbGUsIFMuSCAvIDIgKyBTLkZSICogc2NhbGUpOyBnLmNsb3NlUGF0aCgpOyBnLmZpbGwoKTsKICBnLmZpbGxTdHlsZSA9ICcjYjM3YTNhJzsgZm9yIChjb25zdCB0IG9mIEcuZ3JvdW5kKSBnLmZpbGxSZWN0KHQueCAtIDE2LCB0LnkgLSA2LCAzMiwgMTIpOwogIGNvbnN0IGsgPSBHLms7CiAgZy5maWxsU3R5bGUgPSAnI2ZmYjg0MCc7IGcuZmlsbFJlY3Qoay54IC0gUy5LUiwgay55IC0gUy5LUiwgUy5LUiAqIDIsIFMuS1IgKiAyKTsKICBpZiAoay5jYXJyeWluZykgeyBnLmZpbGxTdHlsZSA9ICcjYjM3YTNhJzsgZy5maWxsUmVjdChrLnggLSAxNiwgay55IC0gMzIsIDMyLCAxMCk7IH0KICB0ZXh0KCdUd2lncyAnICsgRy50d2lncywgMjAsIDQyLCAzMCwgJyNmMmYyZjInLCAnbGVmdCcpOwogIHRleHQoTWF0aC5jZWlsKFMuUlVOIC0gRy50KSArICcgcyB0byBkYXduJywgUy5XIC0gMjAsIDQyLCAzMCwgJyNmMmYyZjInLCAncmlnaHQnKTsKICBnLmZpbGxTdHlsZSA9ICcjMzMzODQ1JzsgZy5maWxsUmVjdCg0NDAsIDE2LCA0MDAsIDMwKTsKICBnLmZpbGxTdHlsZSA9ICcjZjI1YTFhJzsgZy5maWxsUmVjdCg0NDAsIDE2LCA0MDAgKiBHLmZpcmUgLyBTLkZJUkVfTUFYLCAzMCk7CiAgdGV4dCgnZmlyZScsIDY0MCwgNDAsIDIyLCAnI2ZmZmZmZicpOwogIGlmIChHLmJvdCkgdGV4dCgnQm90IHBsYXlpbmcnLCBTLlcgLyAyLCBTLkggLSAyNiwgMjgsICcjOWRiNGU4Jyk7CiAgdGV4dChHLm11dGVkID8gJ211dGVkJyA6ICdzb3VuZCcsIFMuVyAtIDE2LCBTLkggLSAxOCwgMjQsICcjYjViNWI1JywgJ3JpZ2h0Jyk7Cn0KbGV0IGxhc3QgPSBwZXJmb3JtYW5jZS5ub3coKTsKZnVuY3Rpb24gZnJhbWUobm93KSB7CiAgY29uc3QgZHQgPSBNYXRoLm1pbigobm93IC0gbGFzdCkgLyAxMDAwLCAwLjEpOyBsYXN0ID0gbm93OwogIHVwZGF0ZShkdCk7IGRyYXcoKTsgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZyYW1lKTsKfQpkcmF3KCk7CmlmICh3aW5kb3cuQVVUTykgeyBzdGFydCh3aW5kb3cuQVVUTyA9PT0gJ2JvdCcpOyB9CmlmIChwYXJhbXMuZ2V0KCdmYXN0JykpIHsKICAvLyB0ZXN0IGhvb2s6IGZpeGVkLXN0ZXAgcnVuIHVuZGVyIGhlYWRsZXNzIENocm9tZQogIEcubXV0ZWQgPSB0cnVlOyBzdGFydCh0cnVlKTsKICAoZnVuY3Rpb24gdGljaygpIHsgZm9yIChsZXQgaSA9IDA7IGkgPCAzMDsgaSsrKSB1cGRhdGUoMSAvIDYwKTsgZHJhdygpOyBpZiAoRy5zY3JlZW4gPT09ICdwbGF5Jykgc2V0VGltZW91dCh0aWNrLCAxKTsgfSkoKTsKfSBlbHNlIHsKICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnJhbWUpOwp9Cjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K">
<div class="gdh-poster"><p class="gdh-title">Dry Kindling</p><p class="gdh-sub">Carry twigs to the fire. Rain soaks what you carry. Last 3 minutes.</p>
<div class="gdh-btns"><button type="button" class="gdh-btn gdh-primary" data-start="play">Play now</button><button type="button" class="gdh-btn" data-start="bot">Watch a bot play</button></div></div>
</div>
<p class="gdh-small" id="gdh-game-note">Arrow keys or WASD. On a phone, hold and drag. Built by AI, tested only by bots and scripts. No tracking, nothing saved.</p>
<div class="gdh-result" hidden><p class="gdh-q" data-result></p><p><a href="#comments">Post it in the comments</a>, and say whether it&#8217;s fun, unfair or broken.</p></div>
<noscript><p>The game needs JavaScript. The rules: carry twigs to a fire, dodge rain columns, and keep the fire alive for 180 seconds.</p></noscript>
</div>



<p class="wp-block-paragraph"><strong>Tell me how it went in the comments.</strong> Give me your twig count and your device. And was it fun? Bots can&#8217;t answer that one.</p>



<div class="gdh gdh-answer"><p class="gdh-kicker">Short answer</p><p class="gdh-q">Can you make a game with AI if you&#8217;ve never coded?</p><p>Yes, if it&#8217;s small. Expect a playable toy in hours and a finished small game in roughly 21 to 50 hours of work, which is my estimate, because nobody has measured it. AI writes the code. You decide what&#8217;s fun and test everything.</p></div>



<div class="gdh gdh-callout"><p class="gdh-q">Where to start</p><ul><li>Never made a game? <a href="#which-route-should-you-pick">Pick your route in 30 seconds</a>.</li><li>Already picked a tool? <a href="#how-do-you-build-it-step-by-step">Go to the seven build steps</a>.</li><li>Have a finished game? <a href="#how-do-you-publish-your-game">Go to publishing</a>.</li></ul></div>



<h2 class="wp-block-heading" id="can-ai-really-make-a-whole-game">Can AI really make a whole game?</h2>



<p class="wp-block-paragraph">No, not by itself.</p>



<p class="wp-block-paragraph">In <a href="https://arxiv.org/abs/2602.11103" target="_blank" rel="noopener">GameDevBench</a>, an independent test of 333 Godot tasks, the best agent solved 53.8%, and <a href="https://neurips.cc/virtual/2026/166905" target="_blank" rel="noopener">Roblox&#8217;s own benchmark</a> topped out at 51.7%. Newer models scored 15 out of 15 on tiny tasks in <a href="https://dev.to/orellanaed/the-best-llm-for-godot-37fo" target="_blank" rel="noopener">a test by Flockbay</a>, which sells on Godot, but nobody has measured a beginner using one over weeks. So plan on your first attempt failing about as often as it works.</p>



<p class="wp-block-paragraph">We ran our Godot prompts exactly as written, and they produced this:</p>



<ul class="wp-block-list">
<li>The player walked off the screen, because no prompt set the window size.</li>



<li>Every restart was an instant loss, because the fire&#8217;s health survived the restart.</li>



<li>The game could become unwinnable, because twigs lost in the rain never came back.</li>



<li>Standing on a twig did nothing until you walked off and back.</li>
</ul>



<p class="wp-block-paragraph">None of those showed an error at first. One broken script even finished as if it had succeeded. We saw some of these traps coming and ran the literal prompts anyway, to see what happened. The prompts in this guide are the fixed versions.</p>



<h3 class="wp-block-heading">So what are your odds?</h3>



<p class="wp-block-paragraph">Nobody knows. I looked for a beginner finish rate and couldn&#8217;t find one. You&#8217;ll see numbers like 88% floating around, but the ones we could trace don&#8217;t measure finished games.</p>



<p class="wp-block-paragraph">Real people are shipping though. An <a href="https://www.reddit.com/comments/1xkcy7a" target="_blank" rel="noopener">accountant</a> put a story game on Google Play, a <a href="https://www.reddit.com/comments/1rvv8kz" target="_blank" rel="noopener">music producer</a> put a demo on itch.io, and someone with <a href="https://www.reddit.com/comments/1wiajsf" target="_blank" rel="noopener">&#8220;ZERO experience writing code&#8221;</a> built a Steam demo. All of that is self-reported, and most of these games have almost no players yet.</p>



<h2 class="wp-block-heading" id="what-do-you-need-to-know-before-you-start">What do you need to know before you start?</h2>



<p class="wp-block-paragraph">Learn these seven words now and the AI&#8217;s answers stop sounding like noise.</p>



<figure class="wp-block-table"><table><thead><tr><th>Word</th><th>What it means</th><th>In our game</th></tr></thead><tbody><tr><td>Engine</td><td>The program that runs your game. The AI is a separate tool that edits it.</td><td>Godot or GDevelop</td></tr><tr><td>Agent</td><td>An AI that can edit files and run commands on your computer, beyond chatting.</td><td>The AI that wrote our Godot scripts</td></tr><tr><td>Scene</td><td>A reusable chunk of the game.</td><td>The fire, the player, the main screen</td></tr><tr><td>Event or script</td><td>The rules. Events are visual, scripts are code.</td><td>&#8220;If you touch the fire, add 10 health&#8221;</td></tr><tr><td>Collision</td><td>Whether two things are touching.</td><td>You reach a twig</td></tr><tr><td>Game loop</td><td>Two meanings: the game redrawing itself many times a second, and the thing the player repeats.</td><td>Fetch, feed, repeat</td></tr><tr><td>Export</td><td>Turning your project into something other people can run.</td><td>A zip you upload to itch.io</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">If you search &#8220;game AI&#8221;, you&#8217;ll find enemy pathfinding tutorials, which are a different topic from using AI to build the game.</p>



<h2 class="wp-block-heading" id="which-route-should-you-pick">Which route should you pick?</h2>



<p class="wp-block-paragraph">Answer four questions. Your device decides more than you&#8217;d expect.</p>



<div class="gdh gdh-quiz" data-quiz><p class="gdh-kicker">Route finder, 30 seconds</p><div class="gdh-step" data-step="0"><p class="gdh-q">1 of 4: What will you build on?</p><div class="gdh-opts"><button type="button" class="gdh-opt" data-k="device" data-v="pc">Windows or Mac computer</button><button type="button" class="gdh-opt" data-k="device" data-v="old">Old laptop, about 4 GB RAM</button><button type="button" class="gdh-opt" data-k="device" data-v="chromebook">Chromebook</button><button type="button" class="gdh-opt" data-k="device" data-v="phone">Only a phone</button></div></div><div class="gdh-step" data-step="1" hidden><p class="gdh-q">2 of 4: How old are you?</p><div class="gdh-opts"><button type="button" class="gdh-opt" data-k="age" data-v="adult">18 or over</button><button type="button" class="gdh-opt" data-k="age" data-v="16">16 or 17</button><button type="button" class="gdh-opt" data-k="age" data-v="13">13 to 15</button><button type="button" class="gdh-opt" data-k="age" data-v="kid">Under 13</button></div></div><div class="gdh-step" data-step="2" hidden><p class="gdh-q">3 of 4: What do you want most?</p><div class="gdh-opts"><button type="button" class="gdh-opt" data-k="goal" data-v="any">Any small game of my own</button><button type="button" class="gdh-opt" data-k="goal" data-v="roblox">Roblox players</button><button type="button" class="gdh-opt" data-k="goal" data-v="story">A story game</button><button type="button" class="gdh-opt" data-k="goal" data-v="3d">Good-looking 3D</button></div></div><div class="gdh-step" data-step="3" hidden><p class="gdh-q">4 of 4: When it breaks, would you rather&#8230;</p><div class="gdh-opts"><button type="button" class="gdh-opt" data-k="fix" data-v="play">Describe what looks wrong and let the AI fix it</button><button type="button" class="gdh-opt" data-k="fix" data-v="rules">Fix visible rules, with no code</button><button type="button" class="gdh-opt" data-k="fix" data-v="agent">Work with an AI agent and read its errors</button></div></div><div class="gdh-out" data-out hidden aria-live="polite"></div><button type="button" class="gdh-link" data-reset hidden>Start again</button><noscript><p>The table below gives the same answers.</p></noscript></div>



<p class="wp-block-paragraph">The table has the same picks, plus what each route costs you in freedom. These picks are my judgment from docs and reports, and I haven&#8217;t tested them with real beginners yet.</p>



<figure class="wp-block-table"><table><thead><tr><th>If you&#8230;</th><th>Use</th><th>You give up</th></tr></thead><tbody><tr><td>Want the one route whose prompts we ran from scratch</td><td>One HTML file + one desktop agent</td><td>No editor to drag things in. You describe problems and the AI reads the code</td></tr><tr><td>Want visible rules and no code</td><td><a href="https://gdevelop.io/pricing" target="_blank" rel="noopener">GDevelop</a></td><td>Free AI runs out fast. No named game built with its agent yet</td></tr><tr><td>Will read errors and want to own everything</td><td>Godot + one desktop agent</td><td>It&#8217;s code. <a href="https://docs.godotengine.org/en/stable/getting_started/first_2d_game/index.html" target="_blank" rel="noopener">Godot&#8217;s tutorial</a> &#8220;assumes that you have some programming experience&#8221;</td></tr><tr><td>Want Roblox players</td><td><a href="https://create.roblox.com/docs/ai/build-with-assistant" target="_blank" rel="noopener">Roblox Studio</a></td><td>You can&#8217;t take the game elsewhere. Default release reaches age-checked 16+ only</td></tr><tr><td>Want a story game</td><td>Twine or Ren&#8217;Py</td><td>Genre-bound, but free and close to plain writing</td></tr><tr><td>Own a strong gaming PC and care about 3D looks</td><td>Unreal with Blueprints, AI as tutor</td><td>32 GB RAM recommended, no web export, little AI help on Blueprints</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Godot isn&#8217;t the easy option people say it is.</strong> It&#8217;s free and light, and what you make is yours. But when the AI fails, you&#8217;re reading code.</p>



<p class="wp-block-paragraph"><strong>Be careful with prompt-to-game platforms.</strong> They&#8217;re fun, but test the exit first. <a href="https://www.rosebud.ai/terms-of-service" target="_blank" rel="noopener">Rosebud&#8217;s terms</a> say it &#8220;shall own&#8221; prompt output. Commercial rights start at $30 a month, and code download at $50. <a href="https://aiidelist.com/blog/why-gambo-ai-shut-down" target="_blank" rel="noopener">Gambo shut down in May 2026</a> and its domain is parked. If you can&#8217;t export on day one, treat it as a toy. Comparing tools? See our <a href="/ai-game-prototyping-tools/">AI prototyping tools guide</a>.</p>



<h3 class="wp-block-heading">Claude or Codex?</h3>



<p class="wp-block-paragraph">I couldn&#8217;t find a current test where both built the same game. On older models, the one independent benchmark put Gemini and GPT above Claude for Godot. Roblox&#8217;s leaderboard puts Claude&#8217;s top model first, but that model costs extra on the $20 plan.</p>



<p class="wp-block-paragraph">So try Codex&#8217;s free tier first, because it exists and Claude Code&#8217;s doesn&#8217;t. Pay about $20 a month only if it stalls. One plan is enough. This research ran on Claude, so I&#8217;m not a neutral judge here. For more on each, see <a href="/claude-code-game-development/">what works and breaks in Claude Code</a> and <a href="/how-to-use-chatgpt-for-indie-game-development/">using ChatGPT for game development</a>.</p>



<div class="gdh gdh-callout"><p class="gdh-q">Under 18?</p><p><a href="https://www.anthropic.com/legal/consumer-terms" target="_blank" rel="noopener">Claude</a> and <a href="https://cursor.com/terms-of-service" target="_blank" rel="noopener">Cursor</a> consumer plans require 18+. So does Google Play Console. <a href="https://itch.io/docs/legal/terms" target="_blank" rel="noopener">itch.io</a> publishers need to be 18 or have a parent&#8217;s consent, and users must be over 13. Under 13? Start with <a href="https://scratchfoundation.org/ai" target="_blank" rel="noopener">Scratch</a> and a parent. It has no AI route and isn&#8217;t for selling. Don&#8217;t post your real name, face or school on a game page.</p></div>



<h2 class="wp-block-heading" id="what-does-it-cost">What does it cost?</h2>



<p class="wp-block-paragraph">It costs little money and a lot of time. Prices are from vendor pages, checked November 1, 2026.</p>



<figure class="wp-block-table"><table><thead><tr><th>Route</th><th>Cost</th><th>The catch</th></tr></thead><tbody><tr><td>GDevelop</td><td>$7.99/mo Silver, maybe 1 to 2 months</td><td>40 free credits buy about 2 to 4 Build requests on the last rates GDevelop published. Free export works, with its logo</td></tr><tr><td>Godot + agent</td><td>$0 engine, about $20/mo agent</td><td>Free agent tiers have limits nobody publishes</td></tr><tr><td>Roblox</td><td>$0 to start</td><td>Assistant has a usage limit Roblox doesn&#8217;t publish. Reaching all ages needs a subscription or a 1,000 Robux refundable fee</td></tr><tr><td>Art and sound</td><td>$0</td><td>If you use free packs. Free AI output often can&#8217;t be sold</td></tr><tr><td>itch.io</td><td>$0</td><td>Takes a share only if you sell, default 10%</td></tr><tr><td>Steam</td><td>$100, recouped after $1,000</td><td><a href="https://partner.steamgames.com/doc/gettingstarted/onboarding" target="_blank" rel="noopener">21-day wait</a>, plus tax and ID checks</td></tr><tr><td>Google Play</td><td>$25</td><td><a href="https://support.google.com/googleplay/android-developer/answer/14151465" target="_blank" rel="noopener">12 testers for 14 days</a> on new personal accounts</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">The real totals I found are all self-reported. One first-timer <a href="https://www.reddit.com/comments/1x26drg" target="_blank" rel="noopener">spent $45</a> including the Google Play fee. A non-technical writer spent <a href="https://hjzhou.substack.com/p/learnings-from-vibe-coding" target="_blank" rel="noopener">about $106 and 40 hours</a> on one playable level.</p>



<p class="wp-block-paragraph">That first-timer also reported that &#8220;building took 3 days and fixing took 14.&#8221; Budget your time like that.</p>



<p class="wp-block-paragraph">No credit card? GDevelop Free plus a free itch.io game should work, though I haven&#8217;t confirmed the sign-up flow. Google Play won&#8217;t take a prepaid card. Our <a href="/free-ai-tools-for-indie-game-developers/">free AI tools list</a> has more options.</p>



<h2 class="wp-block-heading" id="how-do-you-set-up-an-undo-before-you-build">How do you set up an undo before you build?</h2>



<p class="wp-block-paragraph">Do this first, because AI agents break things that worked. <a href="https://www.reddit.com/comments/1rvv8kz" target="_blank" rel="noopener">One beginner</a> says breaking something with no way back &#8220;can happen often when you vibe code&#8221;, meaning when you <a href="/vibe-coding-games/">build by prompting</a> without reading the code.</p>



<ol class="wp-block-list">
<li><strong>Make one folder for this game.</strong> Keep passwords, API keys and personal files out of it.</li>



<li><strong>Save a checkpoint.</strong> On Godot or web, install <a href="https://docs.github.com/en/desktop/overview/getting-started-with-github-desktop" target="_blank" rel="noopener">GitHub Desktop</a> and commit (save a checkpoint) after every feature that works. On GDevelop&#8217;s free plan there&#8217;s no version history, so copy the project to a dated folder.</li>



<li><strong>Break it on purpose.</strong> Delete something, then go back. If you can recover in five minutes, you&#8217;ve learned the most useful skill in this guide.</li>



<li><strong>Put a blank game online on day one.</strong> Use gd.games or an itch.io Draft page. That way you meet publishing problems early.</li>
</ol>



<p class="wp-block-paragraph"><a href="https://dev.to/dererk_copeland_10ced0b89/github-desktop-the-undo-button-for-vibe-coders-2307" target="_blank" rel="noopener">Copeland&#8217;s free GitHub Desktop walkthrough</a> teaches this with no terminal, and it warns you that discard can&#8217;t be undone.</p>



<h3 class="wp-block-heading">Is it safe to let an AI agent run on your computer?</h3>



<p class="wp-block-paragraph">Mostly, if you set it up right. Claude Code <a href="https://code.claude.com/docs/en/permission-modes" target="_blank" rel="noopener">starts in auto mode</a>, where a classifier approves actions for you. On native Windows it <a href="https://code.claude.com/docs/en/sandboxing" target="_blank" rel="noopener">runs commands without a sandbox</a>, the wall that keeps a program inside one area of your computer. Codex has a <a href="https://learn.chatgpt.com/docs/windows/windows-sandbox" target="_blank" rel="noopener">native Windows sandbox</a>, and that&#8217;s a point in its favor.</p>



<ul class="wp-block-list">
<li>Start the agent inside the game folder, never your home folder.</li>



<li>Commit before every request.</li>



<li>Never use modes that skip permission checks, however many tutorials tell you to.</li>



<li>Decline any download, any <code>sudo</code> (admin) command, and any delete outside the folder.</li>



<li>Don&#8217;t let it read random README files from asset packs. Text in them can give it instructions.</li>
</ul>



<p class="wp-block-paragraph">We learned why the hard way. A Godot <code>--import</code> command during our test overwrote the real editor settings, and there was no backup. Some Godot commands change settings for your whole computer.</p>



<h2 class="wp-block-heading" id="what-should-your-first-game-be">What should your first game be?</h2>



<p class="wp-block-paragraph">Smaller than you want. Aim for one screen and under three minutes.</p>



<p class="wp-block-paragraph">Some people do ship big first projects with AI. A person who has <a href="https://www.reddit.com/comments/1xi6kw4" target="_blank" rel="noopener">never written code</a> reports a multiplayer pirate game in a month, still in beta. But most failures never post, so you mostly see survivors. A <a href="https://forum.godotengine.org/t/post-mortem-of-my-failed-attempt-to-vibe-code-a-metroidvania-game/137567" target="_blank" rel="noopener">vibe-coded metroidvania</a> is one that did. It died at about 40 hours once its systems started tangling.</p>



<p class="wp-block-paragraph">Tiny is my judgment, and I can&#8217;t prove it. But it gives you a finish, and the finish teaches you what a second game needs. Our <a href="/build-a-game-mvp-with-ai-2026-indie-dev-guide/">game MVP guide</a> goes deeper on starting small.</p>



<figure class="wp-block-table"><table><thead><tr><th>First game</th><th>Why it works</th><th>Rough hours (my estimate)</th></tr></thead><tbody><tr><td>One-screen collect and dodge</td><td>No levels to fill, each piece is testable</td><td>8 to 25</td></tr><tr><td>One-button arcade</td><td>Fewest systems, though it can look like a clone</td><td>5 to 15</td></tr><tr><td>Endless runner</td><td>Spawners and a score chase</td><td>8 to 20</td></tr><tr><td>Clicker</td><td>No physics, can be one HTML file</td><td>6 to 20</td></tr><tr><td>Short platformer</td><td>Most official tutorials cover it</td><td>15 to 40</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Avoid Sokoban and match-3 as &#8220;easy&#8221; starters.</strong> In <a href="https://inventwithpython.com/blog/vibe-arcade.html" target="_blank" rel="noopener">Al Sweigart&#8217;s test</a>, one model handled Asteroids and Tetris but failed Sokoban and Bejeweled. That&#8217;s one test of one model, but it runs against what you&#8217;d guess.</p>



<h3 class="wp-block-heading">Why won&#8217;t AI remake your favorite game?</h3>



<p class="wp-block-paragraph">Because of a new rule, and because it was a bad plan anyway. Anthropic <a href="https://www.gamedeveloper.com/programming/anthropic-appears-to-have-ordered-ai-tool-claude-to-stop-remaking-video-games" target="_blank" rel="noopener">confirmed</a> Claude Code on Opus 5.5 now steers away from &#8220;a recreation of a specific existing game, even if it is renamed or called original.&#8221; I found no equivalent rule in other tools. But switching tools doesn&#8217;t change your risk.</p>



<p class="wp-block-paragraph">itch.io <a href="https://itch.io/docs/creators/quality-guidelines" target="_blank" rel="noopener">prohibits</a> projects that &#8220;mimic the look, feel, or functionality of another creator&#8217;s work without permission.&#8221; Nintendo has taken down free fan projects for years, including <a href="https://www.pocketgamer.com/pokemon-sun-pokemon-moon/nintendo-moves-to-shut-down-pokemon-fan-game-creator/" target="_blank" rel="noopener">a fan-game tool</a>. <a href="https://www.copyright.gov/register/tx-games.html" target="_blank" rel="noopener">Game ideas aren&#8217;t protected</a>, but the specific way a game expresses them is.</p>



<p class="wp-block-paragraph">So don&#8217;t reword the prompt. Change the rules, write them down, then ask the AI to build your rules. A monster-collecting game is fine. Pokémon isn&#8217;t.</p>



<h3 class="wp-block-heading">What&#8217;s the game we&#8217;ll build?</h3>



<p class="wp-block-paragraph">Dry Kindling, the game at the top of this page. You tend the last campfire in a rainy forest. The theme is familiar, and <a href="https://bleronhamiti.itch.io/campfire" target="_blank" rel="noopener">Campfire</a> has a similar loop. Our rule mix is our own, as far as a quick search shows.</p>



<figure class="wp-block-table"><table><thead><tr><th>Design doc</th><th></th></tr></thead><tbody><tr><td>Loop</td><td>Spot a twig, carry it (slower), dodge rain warnings, feed the fire</td></tr><tr><td>Win</td><td>Fire survives 180 seconds: &#8220;Dawn&#8221;</td></tr><tr><td>Lose</td><td>Fire hits 0</td></tr><tr><td>Won&#8217;t have</td><td>Enemies, levels, inventory, upgrades, saves, online scores, story</td></tr><tr><td>Done means</td><td>A stranger opens the link, gets it without help, and reaches win or lose in two browsers</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">That &#8220;won&#8217;t have&#8221; row is the most useful line in the doc. Write yours first, then point to it whenever the AI wants to add more.</p>



<h2 class="wp-block-heading" id="how-do-you-talk-to-ai-so-it-works">How do you talk to AI so it works?</h2>



<p class="wp-block-paragraph">Tell it what it can&#8217;t see, and give it a way to check its work. <a href="https://code.claude.com/docs/en/best-practices" target="_blank" rel="noopener">Anthropic&#8217;s guidance</a> comes down to that, and the same idea shows up in <a href="https://learn.chatgpt.com/docs/prompting" target="_blank" rel="noopener">OpenAI&#8217;s</a>. Seven habits do most of the work:</p>



<ol class="wp-block-list">
<li><strong>Name the engine and version.</strong> &#8220;Godot 4.7.2&#8221;, every session. It mixes up old versions otherwise.</li>



<li><strong>Ask for one thing.</strong> One mechanic per request.</li>



<li><strong>Ask for a plan first.</strong> &#8220;List the nodes and files, then wait for my OK.&#8221;</li>



<li><strong>Say what not to touch.</strong> &#8220;Change nothing else.&#8221;</li>



<li><strong>Ask how to test it.</strong> &#8220;Tell me how to check this in 30 seconds.&#8221;</li>



<li><strong>Paste exact errors, with your steps.</strong> Say what you did and what you expected.</li>



<li><strong>Restart after two failed fixes.</strong> A third correction adds to a conversation already full of failed attempts.</li>
</ol>



<div class="gdh gdh-compare"><div class="gdh-card"><p class="gdh-kicker">Vague: the AI guesses</p><p>Make the player move and add some enemies and a score.</p></div><div class="gdh-card gdh-good"><p class="gdh-kicker">Specific: you can test it</p><p>Godot 4.7.2, GDScript. Add a Keeper scene using CharacterBody2D with a visible colored shape. Use input actions for arrow keys and WASD. Keep the whole body on screen at 1280&#215;720. List the nodes, wait for my OK, then build. Change nothing else.</p></div></div>



<p class="wp-block-paragraph">Write in your own language if that&#8217;s easier. Use its normal writing system, and keep error text exact.</p>



<p class="wp-block-paragraph">You can also write down what it forgets. <a href="https://www.reddit.com/comments/1xkcy7a" target="_blank" rel="noopener">The accountant from earlier</a> keeps &#8220;One main document with every decision and change. The AI forgets, the document doesn&#8217;t.&#8221; More prompts are in our <a href="/best-prompts-for-vibe-coding-games-40-copy-paste-prompts-2026/">prompt library</a>.</p>



<h2 class="wp-block-heading" id="how-do-you-build-it-step-by-step">How do you build it, step by step?</h2>



<p class="wp-block-paragraph">Tick off these seven milestones as you go, and your progress saves in this browser. Hours are my estimate for a first-timer, with no allowance for bad days.</p>



<p class="wp-block-paragraph">The browser prompts are the tested ones. A fresh AI agent, running on Claude, got them one at a time in an empty folder, and we tested the finished build in Chrome with scripted key presses. An earlier run exposed gaps, such as no instructions for new players, so we fixed the wording and ran it again from scratch. The zip and the itch.io upload weren&#8217;t part of that test.</p>



<p class="wp-block-paragraph">The Godot prompts carry fixes that passed when an agent ran them, but the final wording hasn&#8217;t been re-run from scratch. The GDevelop prompts have never been run. No beginner has tried any of them, so you may be the one finding the next bug. Tell me.</p>



<div class="gdh gdh-ms" data-ms><div class="gdh-bar-wrap"><p class="gdh-q" data-ms-label>0 of 7 done</p><div class="gdh-bar"><span data-ms-bar></span></div></div><div class="gdh-m"><label class="gdh-check"><input type="checkbox" data-m="M1"> <span>M1: Get a skeleton online</span></label>
<details class="gdh-details"><summary>Prompts and test (1 to 3 hours)</summary><p><strong>Goal:</strong> A live link before any game exists.</p><p class="gdh-kicker">Browser prompt (an agent ran this from scratch)</p><div class="gdh-prompt"><pre><code>Create index.html in this folder as one file: plain HTML, CSS and JavaScript, no libraries and no build step. Draw a 1280x720 canvas that scales to fit the browser window and keeps its shape. Show a dark background and a small title, &#x27;Dry Kindling&#x27;, at the top. Write AGENTS.md saying: one file, no libraries, every gameplay number lives in a settings object at the top. Save the design document below as GDD.md: [PASTE]. Tell me how to open the game, and how to zip it for itch.io. Say which steps you could not verify.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p class="gdh-kicker">GDevelop prompt (never run)</p><div class="gdh-prompt"><pre><code>I am new. Before I build anything, explain in 5 short bullets what a scene, an object and an event are in my empty project. Change nothing.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p class="gdh-kicker">Godot prompt (fixes passed, final wording not re-run)</p><div class="gdh-prompt"><pre><code>Godot 4.7.2 Standard, GDScript, Compatibility renderer, web target, no C#. If no project exists, create one. Set the viewport to 1280x720, stretch mode canvas_items, aspect keep. Create one scene with a dark background and a Label reading &#x27;Dry Kindling&#x27;. Set it as the main scene. Write AGENTS.md recording these facts, and save the design document below as GDD.md: [PASTE]. Check whether 4.7.2 export templates are installed. Give me the exact clicks to install them and to export for web. Say which steps you could not verify.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p><strong>Test it:</strong> Open your gd.games link or itch.io Draft page in a private window. You see the title.</p></details></div><div class="gdh-m"><label class="gdh-check"><input type="checkbox" data-m="M2"> <span>M2: Move the keeper</span></label>
<details class="gdh-details"><summary>Prompts and test (30 to 90 minutes)</summary><p><strong>Goal:</strong> Eight-way movement that stays on screen.</p><p class="gdh-kicker">Browser prompt (an agent ran this from scratch)</p><div class="gdh-prompt"><pre><code>Add a Keeper, a small colored square that starts to the left of the screen center. Arrow keys and WASD move it in 8 directions at a speed from settings, using delta time, and diagonals must not be faster. Keep the whole square on screen at 1280x720. Stop the arrow keys from scrolling the page, and release all held keys if the window loses focus. List what you will add, wait for my OK, then build. Change nothing else.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p class="gdh-kicker">GDevelop prompt (never run)</p><div class="gdh-prompt"><pre><code>Add object Keeper using a placeholder sprite. Use top-down movement so arrow keys and WASD move it in 8 directions, and keep it inside the 1280x720 screen. Change nothing else.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p class="gdh-kicker">Godot prompt (fixes passed, final wording not re-run)</p><div class="gdh-prompt"><pre><code>Add a Keeper scene using CharacterBody2D in floating motion mode, with a collision shape and a visible colored Polygon2D. Use input actions for arrow keys and WASD. Speed lives in settings.gd. Keep the whole body on screen at 1280x720. List the nodes, wait for my OK, then build.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p><strong>Test it:</strong> Walk into all four walls and corners. You can&#x27;t leave the screen, and diagonals aren&#x27;t faster.</p></details></div><div class="gdh-m"><label class="gdh-check"><input type="checkbox" data-m="M3"> <span>M3: Carry a twig</span></label>
<details class="gdh-details"><summary>Prompts and test (1 to 2 hours)</summary><p><strong>Goal:</strong> The game&#x27;s first state: carrying or not.</p><p class="gdh-kicker">Browser prompt (an agent ran this from scratch)</p><div class="gdh-prompt"><pre><code>Add a twig, a small brown bar, at a random spot, staying out of the top 100 pixels. Each frame, check whether the Keeper overlaps it, so a change of state while touching still counts. If the Keeper isn&#x27;t carrying: remove the twig, set carrying to true, drop speed to 70%, and draw a small twig above the Keeper. Tell me how it detects the touch.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p class="gdh-kicker">GDevelop prompt (never run)</p><div class="gdh-prompt"><pre><code>Add object Twig placed at a random spot. Add boolean variable Carrying on Keeper. When Keeper touches Twig and Carrying is false: delete Twig, set Carrying true, reduce speed to 70%. Show me the events you made and explain each.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p class="gdh-kicker">Godot prompt (fixes passed, final wording not re-run)</p><div class="gdh-prompt"><pre><code>Add a Twig scene with Area2D at a random spot. Each physics frame, check get_overlapping_bodies(), not only body_entered, so a change of state while touching still counts. If the Keeper is not carrying: free the twig, set carrying true, use carry speed from settings, show a small colored Polygon2D above the Keeper (no images exist yet). Tell me how it detects the touch.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p><strong>Test it:</strong> Touch the twig: it vanishes and you slow down. Restart or reload, and repeat three times.</p></details></div><div class="gdh-m"><label class="gdh-check"><input type="checkbox" data-m="M4"> <span>M4: Feed the fire</span></label>
<details class="gdh-details"><summary>Prompts and test (1 to 2 hours)</summary><p><strong>Goal:</strong> The loop works and gives a score.</p><p class="gdh-kicker">Browser prompt (an agent ran this from scratch)</p><div class="gdh-prompt"><pre><code>Add a fire at the center of the screen, plus fireHealth (start 60, max 100) and twigs delivered. When the Keeper touches the fire while carrying: add 10 to fireHealth up to 100, add 1 to twigs delivered, stop carrying, restore speed, and create a new twig at a random spot. Start with 3 twigs on screen, and never spawn one on top of the fire. Show fireHealth and twigs delivered as plain text.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p class="gdh-kicker">GDevelop prompt (never run)</p><div class="gdh-prompt"><pre><code>Add object Fire at screen center, scene variables FireHealth (start 60, max 100) and Twigs. When Keeper touches Fire and Carrying is true: add 10 to FireHealth up to 100, add 1 to Twigs, set Carrying false, restore speed, and create a new Twig. Keep 3 twigs on screen. Show FireHealth and Twigs as debug text.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p class="gdh-kicker">Godot prompt (fixes passed, final wording not re-run)</p><div class="gdh-prompt"><pre><code>Add a Fire Area2D at the center and a GameState script with fire_health (start 60, max 100) and twigs. When the Keeper touches the Fire while carrying: add 10 up to 100, add 1 to twigs, stop carrying, restore speed, create a new twig at a random spot. Start with 3 twigs. Show fire_health and twigs as debug text. Add a plain test, a script extending SceneTree, for the health cap. Use load(), not preload. It must quit with a non-zero code on failure and have a watchdog. Give me the exact command to run it.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p><strong>Test it:</strong> Deliver 5 twigs: score shows 5, health never passes 100. A second twig does nothing while you&#x27;re carrying.</p></details></div><div class="gdh-m"><label class="gdh-check"><input type="checkbox" data-m="M5"> <span>M5: Make a game that ends</span></label>
<details class="gdh-details"><summary>Prompts and test (90 minutes to 3 hours)</summary><p><strong>Goal:</strong> Win, lose and restart. This is your first shippable build.</p><p class="gdh-kicker">Browser prompt (an agent ran this from scratch)</p><div class="gdh-prompt"><pre><code>The fire loses 1.2 health per second using delta time. Add a 180-second countdown, a fire bar labeled &#x27;Fire&#x27; and a result screen: &#x27;Dawn&#x27; with twigs delivered, or &#x27;The fire went out&#x27; with twigs and time survived. Enter restarts. Before the first round, show a start screen with these rules: move with arrow keys or WASD, carry twigs to the fire, keep the fire alive for 3 minutes. The round starts on Enter or a click. Every value must reset on restart. Decay must not depend on framerate. Explain delta in one sentence.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p class="gdh-kicker">GDevelop prompt (never run)</p><div class="gdh-prompt"><pre><code>Reduce FireHealth by 1.2 per second using TimeDelta. Add a 180-second countdown. If FireHealth reaches 0, go to a Lose scene; at 0 seconds go to a Win scene. Each shows Twigs and restarts on Enter. Add a fire health bar and a timer as text.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p class="gdh-kicker">Godot prompt (fixes passed, final wording not re-run)</p><div class="gdh-prompt"><pre><code>Fire loses 1.2 per second using delta. Add a 180-second timer, a HUD with a bar and text, and a result screen: &#x27;Dawn&#x27; with twigs delivered, or &#x27;The fire went out&#x27; with twigs and time survived. Add Enter as an input action to restart. Every value must reset on restart, including anything in an autoload. Decay must not depend on framerate. Explain delta in one sentence.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p><strong>Test it:</strong> Do nothing and lose. Set the timer to 10 seconds and win. Restart five times in a row: nothing left over.</p></details></div><div class="gdh-m"><label class="gdh-check"><input type="checkbox" data-m="M6"> <span>M6: Add rain</span></label>
<details class="gdh-details"><summary>Prompts and test (2 to 4 hours)</summary><p><strong>Goal:</strong> The one real hazard. Expect this to be the hardest step.</p><p class="gdh-kicker">Browser prompt (an agent ran this from scratch)</p><div class="gdh-prompt"><pre><code>Plan only. I want rain columns: pick one of 5 screen columns; show a warning stripe for 1.5 s; then pour for 1.0 s; if the Keeper is inside while carrying, the twig is lost; if the Fire is in the column, Fire loses 8. First rain at 6 s, then one every 6 s. The fire loses 8 once per pour. The Keeper is inside if its center is in the column. A lost twig is replaced at a random spot, and the Keeper&#x27;s speed is restored, so the map can never run out of twigs. Rain must reset on restart. Add one line about rain to the start screen. List the state, timers and order of events. Wait for approval.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p class="gdh-kicker">GDevelop prompt (never run)</p><div class="gdh-prompt"><pre><code>Plan only. I want rain columns: pick one of 5 screen columns; show a warning stripe for 1.5 s; then pour for 1.0 s; if the Keeper is inside while carrying, the twig is lost; if the Fire is in the column, Fire loses 8. First rain at 6 s. The fire loses 8 once per pour. A lost twig is replaced at a random spot, so the map can never run out of twigs. List objects, variables, timers and order of events. Wait for approval.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p class="gdh-kicker">Godot prompt (fixes passed, final wording not re-run)</p><div class="gdh-prompt"><pre><code>Plan only. I want rain columns: pick one of 5 screen columns; show a warning stripe for 1.5 s; then pour for 1.0 s; if the Keeper is inside while carrying, the twig is lost; if the Fire is in the column, Fire loses 8. First rain at 6 s. The fire loses 8 once per pour. The Keeper is inside if its center is in the column. A lost twig is replaced at a random spot, so the map can never run out of twigs. List nodes, scripts, timers and order of events. Wait for approval.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p><strong>Test it:</strong> Stand in a column carrying: you lose the twig. Stand empty-handed: nothing. It never rains without a warning. Then build one step at a time: stripe, then pour, then effects.</p></details></div><div class="gdh-m"><label class="gdh-check"><input type="checkbox" data-m="M7"> <span>M7: Ramp the difficulty</span></label>
<details class="gdh-details"><summary>Prompts and test (1 to 2 hours)</summary><p><strong>Goal:</strong> Starts easy, ends hard, and you can tune it by hand.</p><p class="gdh-kicker">Browser prompt (an agent ran this from scratch)</p><div class="gdh-prompt"><pre><code>Move every gameplay number to the settings object, with comments. Rain interval goes from 6 to 2.5 s and decay from 1.2 to 2.4 across 180 s, by elapsed time. Replace the plain debug text with &#x27;Twigs: N&#x27;, and keep the fire bar and a countdown on screen.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p class="gdh-kicker">GDevelop prompt (never run)</p><div class="gdh-prompt"><pre><code>Rain interval should go from 6 s to 2.5 s across 180 s, and decay from 1.2 to 2.4. Put the start and end numbers in clearly named variables so I can edit them by hand.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p class="gdh-kicker">Godot prompt (fixes passed, final wording not re-run)</p><div class="gdh-prompt"><pre><code>Move every gameplay number to settings.gd as named constants with comments. Rain interval goes from 6 to 2.5 s and decay from 1.2 to 2.4 across 180 s, by elapsed time. Remove or hide debug text outside debug builds.</code></pre><button type="button" class="gdh-copy">Copy</button></div><p><strong>Test it:</strong> Get a few people to play at least 10 runs between them, and write down wins. Change a number yourself at least twice.</p></details></div><p class="gdh-small">Commit or copy your project after every milestone. After M5, you have a complete, ugly game. If rain defeats you, ship that: no rain, and the fire burns down faster.</p></div>



<figure class="gdh gdh-shots"><div class="gdh-shots-grid"><img decoding="async" src="https://gamedevaihub.com/wp-content/uploads/2026/11/dry-kindling-start.png" alt="Dry Kindling start screen listing the rules: move with arrow keys or WASD, carry twigs to the fire, keep it alive for 3 minutes, and watch for yellow rain stripes." width="874" height="491" loading="lazy"><img decoding="async" src="https://gamedevaihub.com/wp-content/uploads/2026/11/dry-kindling-play.png" alt="Dry Kindling during play: a yellow rain warning fills the left column while the Keeper carries a twig toward the fire." width="874" height="491" loading="lazy"><img decoding="async" src="https://gamedevaihub.com/wp-content/uploads/2026/11/dry-kindling-result.png" alt="Dry Kindling result screen reading The fire went out, with twigs delivered and time survived." width="874" height="491" loading="lazy"></div><figcaption class="gdh-small">What the browser prompts built, with no human touching the code. We set the on-screen values by hand to show each screen. Your colors and layout will differ.</figcaption></figure>



<p class="wp-block-paragraph">You now have roughly the game at the top of this page, with no sound. Don&#8217;t polish yet. The next two sections will save you more time than any feature.</p>



<h2 class="wp-block-heading" id="how-do-you-know-it-works">How do you know it works?</h2>



<p class="wp-block-paragraph">You play it. Don&#8217;t take the AI&#8217;s word for it, because &#8220;Claude stops when the work looks done&#8221;, in <a href="https://code.claude.com/docs/en/best-practices" target="_blank" rel="noopener">Anthropic&#8217;s own words</a>. If it has nothing to run, &#8220;looks done&#8221; is all it has.</p>



<p class="wp-block-paragraph">That&#8217;s why it keeps saying it&#8217;s fixed. So never accept the word &#8220;fixed&#8221;. Ask what it ran, then replay the steps yourself. In one <a href="https://www.youtube.com/watch?v=QPZCMd5REP8" target="_blank" rel="noopener">video tutorial</a>, an AI&#8217;s test passes on screen while the feature is broken.</p>



<h3 class="wp-block-heading">Use a test card</h3>



<p class="wp-block-paragraph"><a href="https://create.roblox.com/docs/ai/build-with-assistant" target="_blank" rel="noopener">Roblox&#8217;s guide</a> tests each round against named parts of the game, like Hazards and Win zone. Copy that with this card for any feature:</p>



<ol class="wp-block-list">
<li>Do the action once, then try it again immediately.</li>



<li>Try everything it touches. Add a twig, then check the score and the fire.</li>



<li>Restart five times. That&#8217;s where our fire-health bug hid.</li>



<li>Close it and reopen it.</li>



<li>Run the exported build as well as the preview.</li>



<li>Watch one person play without helping.</li>
</ol>



<p class="wp-block-paragraph">If you don&#8217;t code, ask the AI for a <strong>cheat menu</strong> that jumps to any moment, so you can test the end without playing for three minutes. And ask it to write tests for rules like &#8220;health never goes over 100&#8221;, then break the rule on purpose to prove the test can fail. GDevelop&#8217;s AI can <a href="https://wiki.gdevelop.io/gdevelop5/interface/gameplay-tests/" target="_blank" rel="noopener">write and run gameplay tests</a>, though that feature is experimental.</p>



<h3 class="wp-block-heading">Is the code any good?</h3>



<p class="wp-block-paragraph">You can&#8217;t fully tell, and for a tiny game you don&#8217;t need to. The warning sign is each fix taking longer than the last. These checks may help, but we haven&#8217;t proven them:</p>



<ul class="wp-block-list">
<li>Open a fresh session. Can it make a small change without breaking anything?</li>



<li>Ask it to explain the layout. Does that match your design doc?</li>



<li>Ask a second AI to list only problems a player would notice.</li>
</ul>



<p class="wp-block-paragraph">Fix those and ignore style complaints. A reviewer asked to find problems will always find some.</p>



<h2 class="wp-block-heading" id="what-do-you-do-when-it-breaks">What do you do when it breaks?</h2>



<p class="wp-block-paragraph">First work out what happened. Either the game runs but does the wrong thing, a script crashed, or it&#8217;s stuck waiting. Then read the message. Most guides say to paste it back to the AI, and that does work. But try reading it first.</p>



<p class="wp-block-paragraph">These are real errors from our test build. Guess before you open each one.</p>



<div class="gdh gdh-err" data-err><p class="gdh-q" data-err-score>Score: 0 of 5</p><div class="gdh-e"><pre><code>The &quot;onready&quot; keyword was removed in Godot 4. Use the &quot;@onready&quot; annotation instead.</code></pre><div class="gdh-opts"><button type="button" class="gdh-opt" data-right="1">The AI wrote old Godot 3 code</button><button type="button" class="gdh-opt" data-right="0">You need to reinstall Godot</button><button type="button" class="gdh-opt" data-right="0">Your project file is corrupted</button></div><details class="gdh-details"><summary>Show the answer</summary><p><strong>The AI wrote old Godot 3 code.</strong> Godot usually names the fix. Tell the AI your exact version and paste the line. Not all old-code errors are this clear: an old <code>.instance()</code> call gives a much vaguer one.</p></details></div><div class="gdh-e"><pre><code>Invalid assignment of property or key &#x27;visiblee&#x27; with value of type &#x27;bool&#x27; on a base object of type &#x27;Polygon2D&#x27;.</code></pre><div class="gdh-opts"><button type="button" class="gdh-opt" data-right="0">Polygons can&#x27;t be hidden</button><button type="button" class="gdh-opt" data-right="1">The AI invented or misspelled a name</button><button type="button" class="gdh-opt" data-right="0">Your PC can&#x27;t draw this</button></div><details class="gdh-details"><summary>Show the answer</summary><p><strong>The AI invented or misspelled a name.</strong> Note the extra e. Godot&#8217;s <code>--check-only</code> check missed this: it only failed when that line ran. So a clean check doesn&#8217;t prove the AI&#8217;s names are real.</p></details></div><div class="gdh-e"><pre><code>ERROR: Can&#x27;t change this state while flushing queries. Use call_deferred() or set_deferred() to change monitoring state instead.</code></pre><div class="gdh-opts"><button type="button" class="gdh-opt" data-right="1">Something changed in the middle of a physics step</button><button type="button" class="gdh-opt" data-right="0">The game file is too big</button><button type="button" class="gdh-opt" data-right="0">Your internet dropped</button></div><details class="gdh-details"><summary>Show the answer</summary><p><strong>Something changed in the middle of a physics step.</strong> Our twig spawned from inside a collision signal. Godot tells you the fix: do it a moment later with <code>call_deferred()</code>. The game kept running, so this one is easy to ignore.</p></details></div><div class="gdh-e"><pre><code>SCRIPT ERROR: Compile Error: Identifier not found: GameState</code></pre><div class="gdh-opts"><button type="button" class="gdh-opt" data-right="0">GameState was deleted</button><button type="button" class="gdh-opt" data-right="1">Maybe nothing: the checker doesn&#x27;t load your global scripts</button><button type="button" class="gdh-opt" data-right="0">You must delete the project</button></div><details class="gdh-details"><summary>Show the answer</summary><p><strong>Maybe nothing: the checker doesn&#x27;t load your global scripts.</strong> In our test this was a false alarm. The game ran fine, but <code>--check-only</code> fails on autoload variables. Run the game before you let the AI &#8220;fix&#8221; working code.</p></details></div><div class="gdh-e"><pre><code>No export template found at the expected path:</code></pre><div class="gdh-opts"><button type="button" class="gdh-opt" data-right="1">You haven&#x27;t installed the export templates</button><button type="button" class="gdh-opt" data-right="0">Web games aren&#x27;t allowed</button><button type="button" class="gdh-opt" data-right="0">Your game has a bug</button></div><details class="gdh-details"><summary>Show the answer</summary><p><strong>You haven&#x27;t installed the export templates.</strong> Your game is fine. Install them through Editor, then Manage Export Templates. The error names the missing files but doesn&#8217;t say how to get them.</p></details></div></div>



<p class="wp-block-paragraph"><a href="https://www.gdquest.com/library/reading_godot_error_messages" target="_blank" rel="noopener">GDQuest&#8217;s error guide</a> teaches a proper five-step method, and it warns that the highlighted line may not be where the cause lives. It assumes you know basic GDScript.</p>



<h3 class="wp-block-heading">What if there&#8217;s no error at all?</h3>



<p class="wp-block-paragraph">Those were our worst bugs. For silent ones, say what you did and what you expected, and write &#8220;no error appeared&#8221;. Then ask for temporary print lines tagged <code>TEMP_DEBUG</code>. They write to the log so you can see inside the game, and the tag makes them easy to remove.</p>



<h3 class="wp-block-heading">When should you stop asking the AI?</h3>



<figure class="wp-block-table"><table><thead><tr><th>If this happens</th><th>Do this</th></tr></thead><tbody><tr><td>Two fixes failed</td><td>Clear the session. Rewrite the prompt with what you learned</td></tr><tr><td>It re-breaks something it fixed</td><td>Add the decision to your project doc</td></tr><tr><td>It stopped halfway (limit or outage)</td><td>Play the game first. If it&#8217;s broken, go back to your last commit</td></tr><tr><td>You can&#8217;t explain the last fix</td><td>Don&#8217;t stack another feature on it</td></tr><tr><td>You&#8217;ve been stuck two days</td><td>Cut the feature or ask a person</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Where can you ask for help without getting flamed?</h3>



<p class="wp-block-paragraph">Some places dislike AI projects. One r/godot post saying <a href="https://www.reddit.com/comments/1xarnog" target="_blank" rel="noopener">AI games &#8220;don&#8217;t belong&#8221;</a> hit 1,918 points, with replies split. That&#8217;s one member&#8217;s view, and I couldn&#8217;t read the current subreddit rules.</p>



<p class="wp-block-paragraph">The <a href="https://forum.gdevelop.io/" target="_blank" rel="noopener">GDevelop forum</a> and <a href="https://forum.godotengine.org/" target="_blank" rel="noopener">Godot forum</a> have no AI rule in their FAQs. Write in your own words and say AI wrote the code. Paste the small part that&#8217;s failing and the error, so people can see you tried.</p>



<h2 class="wp-block-heading" id="how-hard-should-your-game-be">How hard should your game be?</h2>



<p class="wp-block-paragraph">Harder to judge than you think. We had bots play the Godot build 4,000 times, because that&#8217;s what you can do when nobody can play it. These skill levels are my assumptions.</p>



<figure class="wp-block-table"><table><thead><tr><th>Fire loses per second</th><th>Perfect bot</th><th>Careful</th><th>Decent</th><th>Slow</th><th>First-timer</th></tr></thead><tbody><tr><td><strong>1.20 to 2.40 (this guide&#8217;s setting)</strong></td><td>100%</td><td>99%</td><td>99%</td><td>54%</td><td>0%</td></tr><tr><td>1.35 to 2.70</td><td>100%</td><td>95%</td><td>76%</td><td>6%</td><td>0%</td></tr><tr><td>1.50 to 3.00</td><td>99%</td><td>81%</td><td>43%</td><td>1%</td><td>0%</td></tr><tr><td>1.65 to 3.30</td><td>99%</td><td>44%</td><td>7%</td><td>0%</td><td>0%</td></tr><tr><td>1.75 to 3.50</td><td>95%</td><td>16%</td><td>1%</td><td>0%</td><td>0%</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">In the Careful column, going from 1.50 to 1.65 takes wins from 81% to 44%, so no single setting suits everyone. Rain barely moved the numbers. A perfect bot ignoring rain still won 95%, so for skilled play the fire&#8217;s burn rate decides this game.</p>



<p class="wp-block-paragraph">The game above and the prompts use the easiest row. The First-timer bot still loses at every setting, so you might too. If you do, tell me how far you got.</p>



<p class="wp-block-paragraph">So keep your numbers in one settings file, change them by small steps, and test with more than three plays. Three plays can&#8217;t tell 1 in 3 from 1 in 2. And AI can&#8217;t tune this for you, because it doesn&#8217;t know how the game feels. <a href="https://www.gdcvault.com/play/1016487/Juice-It-or-Lose" target="_blank" rel="noopener">&#8220;Juice It or Lose It&#8221;</a> and &#8220;The Art of Screenshake&#8221; are the classic talks on making actions feel good, and I haven&#8217;t watched them yet.</p>



<h2 class="wp-block-heading" id="can-you-use-ai-art-and-music-in-your-game">Can you use AI art and music in your game?</h2>



<p class="wp-block-paragraph">Yes, but read your plan&#8217;s terms first. Free AI output is often not yours to sell. For a first game, use human-made packs. They&#8217;re free and they match.</p>



<p class="wp-block-paragraph">Type a tool name below to check it. Terms change, so save a copy of them on the day you generate anything.</p>



<div class="gdh gdh-rights" data-rights><label class="gdh-q" for="gdh-rights-q">Can I ship free output from&#8230;</label><input id="gdh-rights-q" type="search" placeholder="Try music, Meshy or fonts" autocomplete="off"><div class="gdh-scroll"><table><thead><tr><th>Tool</th><th>Free output in a sold game?</th><th>The catch</th></tr></thead><tbody><tr data-row="kenney art, audio, fonts"><td><strong>Kenney</strong><br><span class="gdh-small">Art, audio, fonts</span></td><td><span class="gdh-v gdh-v-yes">Yes, CC0</span></td><td>No credit needed. <a href="https://kenney.nl/support" target="_blank" rel="noopener">Terms</a></td></tr><tr data-row="poly haven, ambientcg textures, models"><td><strong>Poly Haven, ambientCG</strong><br><span class="gdh-small">Textures, models</span></td><td><span class="gdh-v gdh-v-yes">Yes, CC0</span></td><td>Realistic style</td></tr><tr data-row="chiptone, jsfxr retro sound effects"><td><strong>ChipTone, jsfxr</strong><br><span class="gdh-small">Retro sound effects</span></td><td><span class="gdh-v gdh-v-yes">Yes</span></td><td><a href="https://sfbgames.itch.io/chiptone" target="_blank" rel="noopener">ChipTone</a> is CC0</td></tr><tr data-row="ofl fonts fonts"><td><strong>OFL fonts</strong><br><span class="gdh-small">Fonts</span></td><td><span class="gdh-v gdh-v-yes">Yes</span></td><td>Keep the license file. Can&#8217;t sell the font alone</td></tr><tr data-row="quaternius 3d models"><td><strong>Quaternius</strong><br><span class="gdh-small">3D models</span></td><td><span class="gdh-v gdh-v-yes">Yes, own license</span></td><td>No longer CC0. Don&#8217;t redistribute raw files</td></tr><tr data-row="pixabay music, sound"><td><strong>Pixabay</strong><br><span class="gdh-small">Music, sound</span></td><td><span class="gdh-v gdh-v-strings">Yes, check it</span></td><td>No attribution. Watch for third-party rights</td></tr><tr data-row="freesound sound"><td><strong>Freesound</strong><br><span class="gdh-small">Sound</span></td><td><span class="gdh-v gdh-v-strings">Per file</span></td><td>CC BY needs credit. BY-NC can&#8217;t be sold</td></tr><tr data-row="game-icons.net icons"><td><strong>game-icons.net</strong><br><span class="gdh-small">Icons</span></td><td><span class="gdh-v gdh-v-strings">Yes, with credit</span></td><td>CC BY 3.0</td></tr><tr data-row="mixamo rigging, animation"><td><strong>Mixamo</strong><br><span class="gdh-small">Rigging, animation</span></td><td><span class="gdh-v gdh-v-strings">Yes</span></td><td>Humanoids only. Rests on a 2022 staff post. Don&#8217;t redistribute raw files</td></tr><tr data-row="retro diffusion pixel art"><td><strong>Retro Diffusion</strong><br><span class="gdh-small">Pixel art</span></td><td><span class="gdh-v gdh-v-strings">Yes, per its FAQ</span></td><td>Pay per image. Full terms not read</td></tr><tr data-row="pixellab pixel art"><td><strong>PixelLab</strong><br><span class="gdh-small">Pixel art</span></td><td><span class="gdh-v gdh-v-strings">Yes, per its terms</span></td><td>Small trial. Price not confirmed</td></tr><tr data-row="meshy 3d models"><td><strong>Meshy</strong><br><span class="gdh-small">3D models</span></td><td><span class="gdh-v gdh-v-strings">Yes, with credit</span></td><td>On free, Meshy owns it, CC BY 4.0. Paid customers own output</td></tr><tr data-row="leonardo images"><td><strong>Leonardo</strong><br><span class="gdh-small">Images</span></td><td><span class="gdh-v gdh-v-strings">Yes, but public</span></td><td>Others may reuse free images. Terms blocked to us</td></tr><tr data-row="adobe firefly images"><td><strong>Adobe Firefly</strong><br><span class="gdh-small">Images</span></td><td><span class="gdh-v gdh-v-strings">Firefly models only</span></td><td>Partner models aren&#8217;t covered</td></tr><tr data-row="gemini images images"><td><strong>Gemini images</strong><br><span class="gdh-small">Images</span></td><td><span class="gdh-v gdh-v-unclear">Unclear</span></td><td>Google &#8220;won&#8217;t claim ownership&#8221;, but no explicit commercial grant found</td></tr><tr data-row="chatgpt images images"><td><strong>ChatGPT images</strong><br><span class="gdh-small">Images</span></td><td><span class="gdh-v gdh-v-unclear">Likely yes</span></td><td>From a third-party copy of the terms. Check it yourself</td></tr><tr data-row="tripo 3d models"><td><strong>Tripo</strong><br><span class="gdh-small">3D models</span></td><td><span class="gdh-v gdh-v-no">Treat as no</span></td><td>Sources conflict and official terms blocked to us</td></tr><tr data-row="sloyd 3d models"><td><strong>Sloyd</strong><br><span class="gdh-small">3D models</span></td><td><span class="gdh-v gdh-v-no">Treat as no</span></td><td>Pricing and terms disagree</td></tr><tr data-row="scenario 2d, textures"><td><strong>Scenario</strong><br><span class="gdh-small">2D, textures</span></td><td><span class="gdh-v gdh-v-no">No</span></td><td>Free is &#8220;personal and evaluation use only&#8221;. Paid is commercial</td></tr><tr data-row="suno music"><td><strong>Suno</strong><br><span class="gdh-small">Music</span></td><td><span class="gdh-v gdh-v-no">No</span></td><td>Paid assigns rights, but with no promise copyright exists. Live label lawsuits</td></tr><tr data-row="elevenlabs voice, music, sound"><td><strong>ElevenLabs</strong><br><span class="gdh-small">Voice, music, sound</span></td><td><span class="gdh-v gdh-v-no">No</span></td><td>Paid is commercial. Music has an indie game clause under $500,000 revenue. Never clone a voice without consent</td></tr><tr data-row="aiva music"><td><strong>AIVA</strong><br><span class="gdh-small">Music</span></td><td><span class="gdh-v gdh-v-no">No</span></td><td>Only Pro gives full monetization and copyright</td></tr><tr data-row="udio music"><td><strong>Udio</strong><br><span class="gdh-small">Music</span></td><td><span class="gdh-v gdh-v-no">No</span></td><td>Downloads are disabled, so you can&#8217;t put it in a game</td></tr><tr data-row="cascadeur, deepmotion animation"><td><strong>Cascadeur, DeepMotion</strong><br><span class="gdh-small">Animation</span></td><td><span class="gdh-v gdh-v-no">No</span></td><td>Commercial use needs a paid plan</td></tr><tr data-row="rosebud whole games"><td><strong>Rosebud</strong><br><span class="gdh-small">Whole games</span></td><td><span class="gdh-v gdh-v-no">No</span></td><td>Commercial from $30. Its terms say it owns prompt output</td></tr><tr data-row="hunyuan3d 3d models"><td><strong>Hunyuan3D</strong><br><span class="gdh-small">3D models</span></td><td><span class="gdh-v gdh-v-no">Not everywhere</span></td><td>License excludes EU, UK and South Korea</td></tr><tr data-row="dafont fonts"><td><strong>DaFont</strong><br><span class="gdh-small">Fonts</span></td><td><span class="gdh-v gdh-v-no">Check each</span></td><td>Its license label is &#8220;just an indication&#8221;</td></tr></tbody></table></div><p class="gdh-small">Checked November 1, 2026, mostly on vendor pages, and some through third parties. Not legal advice.</p></div>



<p class="wp-block-paragraph">Use AI art when no pack has what you need. Lock the style before your second asset, and test three pieces in the engine. <a href="https://www.reddit.com/comments/1w6uc1j" target="_blank" rel="noopener">One builder</a> reuses the same reference images and style text in every prompt. Our <a href="/best-ai-pixel-art-generators-for-2d-indie-games/">pixel art comparison</a>, <a href="/free-ai-art-tools-indie-game-developers/">free AI art tools guide</a> and <a href="/best-ai-music-generators-indie-games/">AI music comparison</a> go deeper.</p>



<p class="wp-block-paragraph"><strong>Do you own it?</strong> The US Copyright Office says &#8220;<a href="https://www.copyright.gov/ai/Copyright-and-Artificial-Intelligence-Part-2-Copyrightability-Report.pdf" target="_blank" rel="noopener">prompts alone do not provide sufficient human control</a>&#8221; to make you the author. So others may be able to reuse your raw AI sprites. Your edits, writing and arrangement are what you can protect. This isn&#8217;t legal advice, and that view isn&#8217;t binding law.</p>



<h3 class="wp-block-heading">What goes in your credits?</h3>



<p class="wp-block-paragraph">Whatever your licenses require, and it&#8217;s little work. <a href="https://docs.godotengine.org/en/stable/about/complying_with_licenses.html" target="_blank" rel="noopener">Godot needs its license text available</a>, and a link in your credits is enough. Open Font License fonts <a href="https://openfontlicense.org/ofl-faq/" target="_blank" rel="noopener">can be bundled but not sold alone</a>, so keep the license file. Skip fonts marked &#8220;free for personal use&#8221;. Keep one log with each file, source, license and date.</p>



<div class="gdh"><details class="gdh-details"><summary>Copy a credits template</summary><p class="gdh-small">Our wording, not reviewed by a lawyer. Adapt it, and keep a real copy of each license file in your build.</p><div class="gdh-prompt"><pre><code>[Game title], made by [you].
Built with [Godot Engine | GDevelop | Phaser].
[Godot] License: godotengine.org/license. Third-party notices in COPYRIGHT.txt.
[GDevelop] GDevelop runtime, MIT license: [paste notice].
[Phaser] Phaser, Copyright (c) [year] Richard Davey, Phaser Studio Inc. MIT license: [paste notice].

Art: &quot;[Pack]&quot; by Kenney (kenney.nl), CC0.
Model &quot;[name]&quot; generated with Meshy (meshy.ai), free plan. Owned by Meshy, CC BY 4.0. Modified: [what you changed].
Sound: &quot;[title]&quot; by [author], [URL], CC BY 4.0. Modified: trimmed.
Font: [Name], Copyright [holder]. SIL Open Font License 1.1, see OFL.txt.

AI tools used: [tool] for [code | text | images]. Designed, tuned and tested by [you].</code></pre><button type="button" class="gdh-copy">Copy</button></div></details></div>



<h2 class="wp-block-heading" id="how-do-you-publish-your-game">How do you publish your game?</h2>



<p class="wp-block-paragraph">Start with itch.io. It&#8217;s free, and a browser game avoids the scariest warning a beginner&#8217;s game can trigger.</p>



<ol class="wp-block-list">
<li><strong>Export for web.</strong> In Godot, install the export templates first, because both web templates are required. Leave the threads option off.</li>



<li><strong>Zip it</strong> with <code>index.html</code> at the top level. <a href="https://itch.io/docs/creators/html5" target="_blank" rel="noopener">itch.io allows</a> up to 1,000 files and 500 MB. Filenames are case-sensitive.</li>



<li><strong>Create the page as a Draft.</strong> Set kind to HTML and tick &#8220;played in browser&#8221;. Set viewport to 1280&#215;720.</li>



<li><strong>Fill in the AI Disclosure section.</strong> It covers code, graphics, sounds and text. Then say in your description what you designed and tuned.</li>



<li><strong>Decide on Mobile Friendly.</strong> If you only support keyboards, leave it unticked.</li>



<li><strong>Keep Click to play on,</strong> and add a Start button. Browsers <a href="https://developer.mozilla.org/en-US/docs/Web/Media/Guides/Autoplay" target="_blank" rel="noopener">block sound</a> until a click or key press.</li>



<li><strong>Test in a private window and a second browser.</strong> Then set it to Public.</li>
</ol>



<p class="wp-block-paragraph">Don&#8217;t go Public early. A public page &#8220;should be ready for everyone to see&#8221;, and it &#8220;can not be put on the top of the Most Recent page again.&#8221; You get one launch slot.</p>



<div class="gdh gdh-callout"><p class="gdh-q">Can itch.io hide your AI game?</p><p><a href="https://itch.io/docs/creators/quality-guidelines" target="_blank" rel="noopener">Its guidelines</a> say it may remove from browse and search &#8220;Games or projects that are predominantly created by algorithms or AI with minimal human intervention.&#8221; An admin <a href="https://itch.io/t/4309690/generative-ai-disclosure-tagging" target="_blank" rel="noopener">said in 2024</a> there&#8217;s &#8220;no top-level filtering or penalizing&#8221;, and I found no case against a single game. But tag honestly and show your work. Designing the rules and tuning the numbers yourself is your best defense.</p></div>



<h3 class="wp-block-heading">What about Steam, phones and Roblox?</h3>



<figure class="wp-block-table"><table><thead><tr><th>Store</th><th>Pay</th><th>What stops beginners</th></tr></thead><tbody><tr><td><a href="https://partner.steamgames.com/doc/gettingstarted/contentsurvey" target="_blank" rel="noopener">Steam</a></td><td>$100</td><td>Disclosure covers shipped content players consume. Its form says &#8220;Efficiency gains through the use of these tools is not the focus&#8221; and never mentions code. No ad-based models</td></tr><tr><td><a href="https://support.google.com/googleplay/android-developer/answer/9859455" target="_blank" rel="noopener">Google Play</a></td><td>$25</td><td>18+, ID checks, 12 testers for 14 days, and a privacy policy even if you collect nothing</td></tr><tr><td><a href="https://developer.apple.com/app-store/review/guidelines/" target="_blank" rel="noopener">App Store</a></td><td>$99/yr</td><td>Privacy policy required. Template-like games risk rejection as spam</td></tr><tr><td><a href="https://create.roblox.com/docs/production/publishing/publish-experiences-and-places" target="_blank" rel="noopener">Roblox</a></td><td>$0</td><td>Reach is 16+ until you pass age checks, 2FA, a fee or subscription, and an engaged-play threshold (250, announced to fall to 100)</td></tr><tr><td><a href="https://itch.io/jam/gmtk-2027" target="_blank" rel="noopener">Game jams</a></td><td>$0</td><td>Rules vary. GMTK bans AI art and audio, Brackeys bans AI content. Check first</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Avoid desktop downloads for now.</strong> Unsigned Windows games show &#8220;Windows protected your PC&#8221; and <a href="https://learn.microsoft.com/en-us/windows/apps/package-and-deploy/smartscreen-reputation" target="_blank" rel="noopener">must rebuild reputation with every update</a>. Unsigned Mac exports <a href="https://docs.godotengine.org/en/stable/tutorials/export/exporting_for_macos.html" target="_blank" rel="noopener">get blocked by Gatekeeper</a>. Web skips both.</p>



<p class="wp-block-paragraph"><strong>Skip ads too, both kinds.</strong> In-game ads bring consent and privacy duties, and <a href="https://www.reddit.com/comments/1xkcy7a" target="_blank" rel="noopener">the accountant&#8217;s players</a> said they hate forced ones. Paid ads may not pay back either. An <a href="https://www.reddit.com/comments/1xgy63t" target="_blank" rel="noopener">engineer with 10 years&#8217; experience</a> spent about $300 on Meta ads and got about $60 back.</p>



<p class="wp-block-paragraph"><strong>A free game on itch.io needs no forms.</strong> Your first sale brings a <a href="https://itch.io/docs/creators/payments" target="_blank" rel="noopener">tax interview and payout setup</a>. You don&#8217;t need a company. If real money arrives, ask a local accountant.</p>



<h3 class="wp-block-heading">How do you get your first players?</h3>



<p class="wp-block-paragraph">I found no good data on this, so here&#8217;s my judgment. Enter one jam that allows AI and post one devlog per milestone. Then make one honest post with a playable link, and say you used AI before someone else does.</p>



<h2 class="wp-block-heading" id="will-people-hate-your-game-because-you-used-ai">Will people hate your game because you used AI?</h2>



<p class="wp-block-paragraph">Some will. In <a href="https://arxiv.org/html/2608.11539v1" target="_blank" rel="noopener">one study of 508,192 Steam reviews</a>, AI-tagged games were recommended 68.4% of the time, against 86.3% for procedural-generation games. Reviews that mentioned AI were positive 49.5% of the time. But that comparison isn&#8217;t against games in general, and low-effort games may drag the number down.</p>



<p class="wp-block-paragraph">Attention is thin too. On <a href="https://itch.io/games/ai-assisted" target="_blank" rel="noopener">itch.io</a>, about 12% of AI-tagged games appear on its rated list, against about 19% of all games. On Steam, <a href="https://arxiv.org/html/2608.11539v1" target="_blank" rel="noopener">about 29% of AI-tagged games</a> have 10 or more reviews. Neither number says why, or how many people gave up before publishing.</p>



<p class="wp-block-paragraph">Replies to beginners can be brutal. <a href="https://www.reddit.com/comments/1wa8csn" target="_blank" rel="noopener">&#8220;You didnt make anything here&#8221;</a> is a real one. But one <a href="https://www.reddit.com/comments/1xarnog" target="_blank" rel="noopener">commenter</a> pushed back that most people they talk to &#8220;couldn&#8217;t care less about how the sausage is made as long the sausage is good.&#8221;</p>



<p class="wp-block-paragraph">You can&#8217;t control that, but you can disclose honestly and keep obvious AI out of your cover art. See our <a href="/will-players-punish-ai-art-in-games/">player reaction data</a> and <a href="/steam-ai-disclosure-guide/">Steam disclosure guide</a>.</p>



<p class="wp-block-paragraph">And expect no money. In mid-December 2025 about <a href="https://www.gamingonlinux.com/2025/12/over-19000-games-have-released-on-steam-in-2025-with-nearly-half-seeing-fewer-than-10-reviews/" target="_blank" rel="noopener">49% of that year&#8217;s Steam releases</a> had under 10 reviews, though late-year games had little time. By January 2026, <a href="https://howtomarketagame.com/2026/01/27/what-the-hell-happened-in-2025/" target="_blank" rel="noopener">2.99% had reached 1,000</a>. Ignore any book that promises non-coders $50K a month without evidence.</p>



<h2 class="wp-block-heading" id="what-should-you-do-after-your-first-game">What should you do after your first game?</h2>



<p class="wp-block-paragraph">Decide what you&#8217;re after, because it changes what you hand to the AI. In a <a href="https://arxiv.org/abs/2601.20245" target="_blank" rel="noopener">52-person experiment</a>, developers learning with AI scored about 17% lower on a quiz than those without it. The researchers&#8217; look at usage patterns hints that asking for concepts beats delegating, but those groups were tiny.</p>



<figure class="wp-block-table"><table><thead><tr><th>Task</th><th>If you want to ship</th><th>If you want to learn</th></tr></thead><tbody><tr><td>Writing code</td><td>Delegate</td><td>Write one small thing yourself each session</td></tr><tr><td>An error</td><td>Paste it, test the fix</td><td>Read it and explain it back first</td></tr><tr><td>Design and scope</td><td>Do it yourself</td><td>Do it yourself</td></tr><tr><td>Balance and feel</td><td>Do it yourself</td><td>Do it yourself</td></tr><tr><td>Testing</td><td>AI writes tests, you play</td><td>Same</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">To learn properly, try <a href="https://learn.unity.com/pathway/unity-essentials" target="_blank" rel="noopener">Unity Essentials</a>, which says no experience is needed, or <a href="https://school.gdquest.com/products/learn_2d_gamedev_godot_4" target="_blank" rel="noopener">GDQuest&#8217;s course</a>. Make game two one step bigger. A <a href="https://20_games_challenge.gitlab.io/" target="_blank" rel="noopener">20-hour limit per project</a> is a good rule from the 20 Games Challenge.</p>



<p class="wp-block-paragraph">Going deeper with AI? See our <a href="/how-to-vibe-code-a-game-the-step-by-step-guide-2026/">vibe coding walkthrough</a>, <a href="/how-to-use-ai-with-godot/">AI with Godot</a>, <a href="/claude-code-unity-mcp-setup/">Claude Code with Unity</a> and <a href="/best-godot-mcp-servers-claude-code/">Godot MCP servers</a>.</p>



<p class="wp-block-paragraph"><strong>Your next five minutes:</strong> <a href="#dry-kindling">play one round</a> and post your twig count in the comments. Then write your &#8220;won&#8217;t have&#8221; list.</p>



<h2 class="wp-block-heading" id="quick-answers-to-common-questions">Quick answers to common questions</h2>


<div id="rank-math-faq" class="rank-math-block">
<div class="rank-math-list ">
<div id="faq-question-gdh1" class="rank-math-list-item">
<h3 class="rank-math-question ">Can I make a game with AI for free?</h3>
<div class="rank-math-answer ">

<p>Yes, for a small one. Godot, itch.io and free asset packs cost nothing, and free AI tiers can write a one-file browser game. Limits are low and unpublished on most plans, so a bigger project usually needs about $8 to $20 a month. Free output from many AI art and music tools can&#8217;t be sold.</p>

</div>
</div>
<div id="faq-question-gdh2" class="rank-math-list-item">
<h3 class="rank-math-question ">How long does it take to make a game with AI?</h3>
<div class="rank-math-answer ">

<p>A toy takes hours. A small finished game likely takes 21 to 50 hours over 4 to 8 weeks, including learning. That&#8217;s my estimate, because nobody has measured beginners. Expect fixing to take longer than building. One first-timer reported 3 days building and 14 days fixing.</p>

</div>
</div>
<div id="faq-question-gdh3" class="rank-math-list-item">
<h3 class="rank-math-question ">Which AI is best for making a game?</h3>
<div class="rank-math-answer ">

<p>Pick your route first. No current test has compared the main agents building the same game, and benchmarks disagree. Start with a free tier such as Codex. If you&#8217;re under 18, avoid Claude and Cursor consumer plans, which require 18+.</p>

</div>
</div>
<div id="faq-question-gdh4" class="rank-math-list-item">
<h3 class="rank-math-question ">Can you make a Roblox game with only AI?</h3>
<div class="rank-math-answer ">

<p>You can get far with Roblox Assistant, and Roblox has an official guide for people with no experience. But expect to test and fix things, and Roblox doesn&#8217;t publish its usage limit. Your game stays on Roblox, and default release reaches age-checked users 16 and over.</p>

</div>
</div>
<div id="faq-question-gdh5" class="rank-math-list-item">
<h3 class="rank-math-question ">Can I sell a game I made with AI?</h3>
<div class="rank-math-answer ">

<p>Usually, if your AI tool&#8217;s plan allows commercial use, you meet your store&#8217;s rules, and the game doesn&#8217;t copy an existing one. Raw AI output may not be protected by US copyright, so others might reuse it. This isn&#8217;t legal advice.</p>

</div>
</div>
<div id="faq-question-gdh6" class="rank-math-list-item">
<h3 class="rank-math-question ">Can I make a game on a Chromebook or phone?</h3>
<div class="rank-math-answer ">

<p>GDevelop says its web app works on a Chromebook, and that&#8217;s the one full route I found. We haven&#8217;t tested it. Godot&#8217;s web editor can&#8217;t export, and Roblox Studio is Windows and Mac only. On a phone, prompt-toy apps are fun, but I found no verified full route. Borrow a computer to own the result.</p>

</div>
</div>
<div id="faq-question-gdh7" class="rank-math-list-item">
<h3 class="rank-math-question ">Is Google Genie a game maker?</h3>
<div class="rank-math-answer ">

<p>No. Project Genie is a research prototype that generates a short explorable world, for Google AI Ultra subscribers. A Google spokesperson reportedly said it isn&#8217;t a game engine. You can&#8217;t publish a game from it. For Google&#8217;s tools, AI Studio&#8217;s Build mode is closer.</p>

</div>
</div>
<div id="faq-question-gdh8" class="rank-math-list-item">
<h3 class="rank-math-question ">Do I have to tell people I used AI?</h3>
<div class="rank-math-answer ">

<p>On itch.io and Steam, yes for content in the game. itch.io asks you to tag AI use, including code. Steam&#8217;s form covers shipped content players consume, and doesn&#8217;t mention code. Many jams have their own rules. Tagging honestly also beats being called out later.</p>

</div>
</div>
</div>
</div>


<h2 class="wp-block-heading" id="how-was-this-guide-tested-and-what-wasn-t">How was this guide tested, and what wasn&#8217;t?</h2>



<p class="wp-block-paragraph"><strong>Checked November 1, 2026.</strong> Prices and rules change, so check the linked pages.</p>



<ul class="wp-block-list">
<li>An AI agent built Dry Kindling in Godot 4.7.2 and for the browser, and ran tests and bots on it. The version above is the browser build, tested only by a bot and scripts.</li>



<li>We didn&#8217;t run GDevelop, Roblox, Unity, web export from Godot, an itch.io upload or any paid plan. No human has played the game, and no beginner has followed this guide yet.</li>



<li>Numbers come from the linked sources, many of them vendors or self-reports. Hours and route picks are my judgment.</li>



<li>AI agents did the research and testing and drafted this page, running on Claude, which is why I&#8217;d have someone else check my Claude vs Codex call.</li>



<li>This page has no affiliate links, and no tool paid for a mention.</li>
</ul>



<figure class="wp-block-table"><table><thead><tr><th>Date</th><th>Who</th><th>What happened</th></tr></thead><tbody><tr><td>Nov 1, 2026</td><td>AI agent</td><td>Built the game in Godot 4.7.2 and for the browser. Bots played the Godot build 4,000 times</td></tr><tr><td>Nov 1, 2026</td><td>Two fresh AI agents</td><td>Ran the browser prompts from scratch. The first run exposed gaps, so we fixed the wording and ran it again. Movement, walls, carrying, rain and restart then passed scripted tests in Chrome</td></tr><tr><td>Next</td><td>You</td><td>Post your result in the comments, and I&#8217;ll add it here</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">If something here is wrong or out of date, say so in the comments and I&#8217;ll fix it.</p>



<script>new Function(atob("KGZ1bmN0aW9uKCl7CiBmdW5jdGlvbiAkJChzLHIpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCgocnx8ZG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3JBbGwocykpO30KIGZ1bmN0aW9uIHN0b3JlKGssdil7dHJ5e2lmKHY9PT11bmRlZmluZWQpe3JldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrKTt9bG9jYWxTdG9yYWdlLnNldEl0ZW0oayx2KTt9Y2F0Y2goZSl7cmV0dXJuIG51bGw7fX0KIC8vIGdhbWU6IGxvYWRzIG9ubHkgb24gY2xpY2ssIHNhbmRib3hlZAogJCQoJy5nZGgtZ2FtZScpLmZvckVhY2goZnVuY3Rpb24odyl7CiAgdmFyIGY9dy5xdWVyeVNlbGVjdG9yKCcuZ2RoLWZyYW1lJykscmVzPXcucXVlcnlTZWxlY3RvcignLmdkaC1yZXN1bHQnKSxvdXQ9dy5xdWVyeVNlbGVjdG9yKCdbZGF0YS1yZXN1bHRdJyk7CiAgJCQoJ1tkYXRhLXN0YXJ0XScsZikuZm9yRWFjaChmdW5jdGlvbihiKXtiLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpewogICB2YXIgYmluPWF0b2IoZi5nZXRBdHRyaWJ1dGUoJ2RhdGEtZ2FtZScpKSxieXRlcz1uZXcgVWludDhBcnJheShiaW4ubGVuZ3RoKTtmb3IodmFyIGk9MDtpPGJpbi5sZW5ndGg7aSsrKXtieXRlc1tpXT1iaW4uY2hhckNvZGVBdChpKTt9CiAgIHZhciBzcmM9bmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGJ5dGVzKS5yZXBsYWNlKCc8c2NyaXB0PicsJzxzY3JpcHQ+d2luZG93LkFVVE89IicrYi5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhcnQnKSsnIjsnKTsKICAgdmFyIGZyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO2ZyLnRpdGxlPSdEcnkgS2luZGxpbmcsIGEgc21hbGwgZ2FtZSBidWlsdCBieSBhbiBBSSBhZ2VudCc7ZnIuc2V0QXR0cmlidXRlKCdzYW5kYm94JywnYWxsb3ctc2NyaXB0cycpO2ZyLnNyY2RvYz1zcmM7CiAgIGYuaW5uZXJIVE1MPScnO2YuYXBwZW5kQ2hpbGQoZnIpO2ZyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLGZ1bmN0aW9uKCl7ZnIuZm9jdXMoKTt9KTsKICB9KTt9KTsKICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsZnVuY3Rpb24oZSl7dmFyIGQ9ZS5kYXRhO2lmKCFkfHwhZC5kcnlLaW5kbGluZ3x8ZC5ib3Qpe3JldHVybjt9CiAgIG91dC50ZXh0Q29udGVudD0oZC53b24/J0Rhd24uICc6J1RoZSBmaXJlIHdlbnQgb3V0IGF0ICcrZC5zZWNvbmRzKycgc2Vjb25kcy4gJykrJ1lvdSBkZWxpdmVyZWQgJytkLnR3aWdzKycgdHdpZ3MuJztyZXMuaGlkZGVuPWZhbHNlO30pOwogfSk7CiAvLyBjb3B5CiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsZnVuY3Rpb24oZSl7dmFyIGI9ZS50YXJnZXQuY2xvc2VzdCYmZS50YXJnZXQuY2xvc2VzdCgnLmdkaC1jb3B5Jyk7aWYoIWIpe3JldHVybjt9CiAgdmFyIHQ9Yi5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3IoJ2NvZGUnKS50ZXh0Q29udGVudCxkb25lPWZ1bmN0aW9uKCl7Yi50ZXh0Q29udGVudD0nQ29waWVkJztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yi50ZXh0Q29udGVudD0nQ29weSc7fSwxNTAwKTt9OwogIGlmKG5hdmlnYXRvci5jbGlwYm9hcmQmJm5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KXtuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0KS50aGVuKGRvbmUsZnVuY3Rpb24oKXtzZWwoYik7fSk7fWVsc2V7c2VsKGIpO30KIH0pOwogZnVuY3Rpb24gc2VsKGIpe3ZhciByPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7ci5zZWxlY3ROb2RlQ29udGVudHMoYi5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3IoJ2NvZGUnKSk7dmFyIHM9Z2V0U2VsZWN0aW9uKCk7cy5yZW1vdmVBbGxSYW5nZXMoKTtzLmFkZFJhbmdlKHIpO2IudGV4dENvbnRlbnQ9J1ByZXNzIEN0cmwrQyc7fQogLy8gcm91dGUgZmluZGVyCiAkJCgnW2RhdGEtcXVpel0nKS5mb3JFYWNoKGZ1bmN0aW9uKHEpewogIHZhciBhPXt9LHN0ZXBzPSQkKCdbZGF0YS1zdGVwXScscSksb3V0PXEucXVlcnlTZWxlY3RvcignW2RhdGEtb3V0XScpLHJlPXEucXVlcnlTZWxlY3RvcignW2RhdGEtcmVzZXRdJyk7CiAgZnVuY3Rpb24gYWdlTm90ZSgpewogICBpZihhLmFnZT09PSdhZHVsdCcpe3JldHVybiAnJzt9CiAgIGlmKGEuYWdlPT09JzE2J3x8YS5hZ2U9PT0nMTMnKXtyZXR1cm4gJzxwPjxzdHJvbmc+VW5kZXIgMTg6PC9zdHJvbmc+IENsYXVkZSBhbmQgQ3Vyc29yIGNvbnN1bWVyIHBsYW5zIHJlcXVpcmUgMTgrLiBDaGF0R1BUIGFuZCBSZXBsaXQgYWxsb3cgMTMrIHdpdGggYSBwYXJlbnRcJ3MgcGVybWlzc2lvbiwgc28gY2hlY2sgdGhlaXIgY3VycmVudCB0ZXJtcy4gaXRjaC5pbyBwdWJsaXNoZXJzIG5lZWQgYSBwYXJlbnRcJ3MgY29uc2VudC4gS2VlcCB5b3VyIHJlYWwgbmFtZSwgZmFjZSBhbmQgc2Nob29sIG9mZiB0aGUgcGFnZS48L3A+Jzt9CiAgIHJldHVybiAnJzsKICB9CiAgZnVuY3Rpb24gcm91dGUoKXsKICAgaWYoYS5hZ2U9PT0na2lkJyl7cmV0dXJuIFsnU2NyYXRjaCwgd2l0aCBhIHBhcmVudCcsJ0ZyZWUuIEEgcGFyZW50IHZlcmlmaWVzIHRoZSBhY2NvdW50LiBUaGVyZVwncyBubyBBSSByb3V0ZSwgc2hhcmVkIHByb2plY3RzIGFyZSBwdWJsaWMsIGFuZCBpdCBpc25cJ3QgZm9yIHNlbGxpbmcuIGl0Y2guaW8gaXNuXCd0IG9wZW4gdG8gdW5kZXItMTNzLiBBIHBhcmVudCBjYW4gdXNlIGEgY2hhdCBhc3Npc3RhbnQgdG8gcGxhbiBpZGVhcyB3aXRoIHlvdS4nLCdodHRwczovL3NjcmF0Y2gubWl0LmVkdS8nLCdPcGVuIFNjcmF0Y2ggd2l0aCBhIHBhcmVudCddO30KICAgaWYoYS5kZXZpY2U9PT0ncGhvbmUnKXtyZXR1cm4gWydObyB2ZXJpZmllZCBmdWxsIHJvdXRlIG9uIGEgcGhvbmUnLCdQcm9tcHQtdG95IGFwcHMgYXJlIGZ1biwgYnV0IHRoZXkgdXN1YWxseSBrZWVwIHlvdXIgZ2FtZSBpbnNpZGUgdGhlaXIgYXBwLiBUcmVhdCB0aGVtIGFzIHBsYXkuIFRvIG93biB0aGUgcmVzdWx0LCBib3Jyb3cgYSBjb21wdXRlciBhbmQgdXNlIEdEZXZlbG9wLicsJyNob3ctZG8teW91LWJ1aWxkLWl0LXN0ZXAtYnktc3RlcCcsJ1NlZSB0aGUgYnVpbGQgc3RlcHMnXTt9CiAgIGlmKGEuZ29hbD09PSdzdG9yeScpe3JldHVybiBbJ1R3aW5lLCBvciBSZW5cJ1B5IG9uIGEgY29tcHV0ZXInLCdGcmVlLiBEcmFmdCBpbiBhIGNoYXQgYXNzaXN0YW50LCByZXdyaXRlIGJ5IGhhbmQsIGFuZCBzaGlwIHN0YXRpYyB0ZXh0LiBObyBsaXZlIEFJIGluc2lkZSB0aGUgZ2FtZS4nLCdodHRwczovL3R3aW5lcnkub3JnLycsJ09wZW4gVHdpbmUnXTt9CiAgIGlmKGEuZGV2aWNlPT09J2Nocm9tZWJvb2snKXtyZXR1cm4gWydHRGV2ZWxvcCBpbiB0aGUgYnJvd3NlcicsJ0dEZXZlbG9wIHNheXMgYSBDaHJvbWVib29rIGlzIGVub3VnaC4gSSBoYXZlblwndCB0ZXN0ZWQgaXQuIEFib3V0ICQ4IGEgbW9udGggaWYgQUkgZG9lcyBtdWNoIG9mIHRoZSB3b3JrLiBSb2Jsb3ggU3R1ZGlvIHdvblwndCBydW4gaGVyZS4nLCcjaG93LWRvLXlvdS1idWlsZC1pdC1zdGVwLWJ5LXN0ZXAnLCdHbyB0byB0aGUgYnVpbGQgc3RlcHMnXTt9CiAgIGlmKGEuZ29hbD09PSdyb2Jsb3gnKXtyZXR1cm4gWydSb2Jsb3ggU3R1ZGlvIHdpdGggQXNzaXN0YW50JywnRnJlZSB0byBzdGFydCwgYW5kIHlvdSBjYW5cJ3QgdGFrZSB0aGUgZ2FtZSBlbHNld2hlcmUuIERlZmF1bHQgcmVsZWFzZSByZWFjaGVzIGFnZS1jaGVja2VkIHVzZXJzIDE2Kywgc28gZnJpZW5kcyB1bmRlciAxNiBtYXkgbm90IGJlIGFibGUgdG8gcGxheSBpdC4nLCdodHRwczovL2NyZWF0ZS5yb2Jsb3guY29tL2RvY3MvYWkvYnVpbGQtd2l0aC1hc3Npc3RhbnQnLCdPcGVuIFJvYmxveFwncyBndWlkZSddO30KICAgaWYoYS5nb2FsPT09JzNkJyl7aWYoYS5kZXZpY2U9PT0ncGMnJiZhLmFnZT09PSdhZHVsdCcpe3JldHVybiBbJ01ha2Ugb25lIDJEIGdhbWUgZmlyc3QsIHRoZW4gVW5yZWFsIG9yIFVuaXR5JywnT24gYSBzdHJvbmcgUEMsIFVucmVhbCBCbHVlcHJpbnRzIG5lZWQgbm8gY29kZSwgYnV0IEFJIGhlbHBzIGxpdHRsZSB0aGVyZSBhbmQgdGhlcmVcJ3Mgbm8gd2ViIGV4cG9ydC4gT24gYSB3ZWFrZXIgb25lLCB0cnkgVW5pdHlcJ3MgRXNzZW50aWFscyBjb3Vyc2UuIFlvdXIgZmlyc3QgZ2FtZSBzdGlsbCB0ZWFjaGVzIG1vcmUgaWYgaXRcJ3Mgc21hbGwuJywnI3doYXQtc2hvdWxkLXlvdXItZmlyc3QtZ2FtZS1iZScsJ1BpY2sgYSBmaXJzdCBnYW1lJ107fXJldHVybiBbJ1N0YXJ0IGluIDJELCBvciB1c2UgUm9ibG94IFN0dWRpbyBmb3IgM0QnLCczRCBtdWx0aXBsaWVzIHRoZSB3b3JrLiBSb2Jsb3ggaGFuZGxlcyB0aGUgd29ybGQgZm9yIHlvdSBvbiBXaW5kb3dzIGFuZCBNYWMuIE90aGVyd2lzZSwgc3RhcnQgd2l0aCBvbmUgc21hbGwgMkQgZ2FtZS4nLCcjd2hhdC1zaG91bGQteW91ci1maXJzdC1nYW1lLWJlJywnUGljayBhIGZpcnN0IGdhbWUnXTt9CiAgIGlmKGEuZml4PT09J3BsYXknKXtyZXR1cm4gWydPbmUgSFRNTCBmaWxlICsgb25lIGRlc2t0b3AgQUkgYWdlbnQnLCdOb3RoaW5nIHRvIGluc3RhbGwgZXhjZXB0IHRoZSBhZ2VudCwgYW5kIHlvdSB0ZXN0IGJ5IHBsYXlpbmcuIFRyeSBDb2RleFwncyBmcmVlIHRpZXIgZmlyc3QsIHRoZW4gcGF5IGFib3V0ICQyMCBhIG1vbnRoIGlmIGl0IHN0YWxscy4gVGhlc2UgYXJlIHRoZSBvbmx5IHByb21wdHMgaGVyZSB0aGF0IGFuIGFnZW50IHJhbiBmcm9tIHNjcmF0Y2gsIG9uIENsYXVkZS4gTm8gYmVnaW5uZXIgaGFzIHRyaWVkIHRoZW0geWV0LicsJyNob3ctZG8teW91LXNldC11cC1hbi11bmRvLWJlZm9yZS15b3UtYnVpbGQnLCdTZXQgdXAgeW91ciB1bmRvIGZpcnN0J107fQogICBpZihhLmZpeD09PSdydWxlcycpe3JldHVybiBbJ0dEZXZlbG9wIHdpdGggaXRzIEFJIGFnZW50JywnWW91IHJlYWQgYW5kIGZpeCB2aXN1YWwgcnVsZXMuIEZyZWUgY3JlZGl0cyBydW4gb3V0IGZhc3QsIHNvIHBsYW4gb24gYWJvdXQgJDggYSBtb250aC4gRnJlZSBleHBvcnQgY2FycmllcyBHRGV2ZWxvcFwncyBsb2dvLiBOb2JvZHkgaGFzIHJ1biBpdHMgcHJvbXB0cyB5ZXQsIGFuZCB0aGUgYnJvd3NlciByb3V0ZSBpcyB0aGUgb25lIHdob3NlIHByb21wdHMgYW4gYWdlbnQgcmFuIGZyb20gc2NyYXRjaC4nLCcjaG93LWRvLXlvdS1idWlsZC1pdC1zdGVwLWJ5LXN0ZXAnLCdHbyB0byB0aGUgYnVpbGQgc3RlcHMnXTt9CiAgIHJldHVybiBbJ0dvZG90ICsgb25lIGRlc2t0b3AgQUkgYWdlbnQnLCdHb2RvdCBpcyBmcmVlIGFuZCB5b3Vycy4gVHJ5IENvZGV4XCdzIGZyZWUgdGllciBmaXJzdCwgdGhlbiBwYXkgYWJvdXQgJDIwIGEgbW9udGggaWYgaXQgc3RhbGxzLiAnKyhhLmRldmljZT09PSdvbGQnPydHb2RvdFwncyBtaW5pbXVtIGlzIDQgR0IsIHNvIGtlZXAgb3RoZXIgYXBwcyBjbG9zZWQuICc6JycpKydFeHBlY3QgdG8gcmVhZCBlcnJvcnMuJywnI2hvdy1kby15b3Utc2V0LXVwLWFuLXVuZG8tYmVmb3JlLXlvdS1idWlsZCcsJ1NldCB1cCB5b3VyIHVuZG8gZmlyc3QnXTsKICB9CiAgZnVuY3Rpb24gc2hvdyhpKXtzdGVwcy5mb3JFYWNoKGZ1bmN0aW9uKHMsbil7cy5oaWRkZW49biE9PWk7fSk7fQogIHEuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGZ1bmN0aW9uKGUpe3ZhciBiPWUudGFyZ2V0LmNsb3Nlc3QmJmUudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLWtdJyk7CiAgIGlmKGIpe2FbYi5nZXRBdHRyaWJ1dGUoJ2RhdGEtaycpXT1iLmdldEF0dHJpYnV0ZSgnZGF0YS12Jyk7dmFyIG49c3RlcHMuaW5kZXhPZihiLmNsb3Nlc3QoJ1tkYXRhLXN0ZXBdJykpKzE7CiAgICBpZihuPHN0ZXBzLmxlbmd0aCYmIShuPT09MSYmYS5kZXZpY2U9PT0ncGhvbmUnKSYmIShuPT09MiYmYS5hZ2U9PT0na2lkJykmJiEobj09PTMmJmEuZ29hbCE9PSdhbnknKSl7c2hvdyhuKTtyZXR1cm47fQogICAgc3RlcHMuZm9yRWFjaChmdW5jdGlvbihzKXtzLmhpZGRlbj10cnVlO30pOwogICAgdmFyIHI9cm91dGUoKTtvdXQuaW5uZXJIVE1MPSc8cCBjbGFzcz0iZ2RoLWtpY2tlciI+WW91ciByb3V0ZTwvcD48cCBjbGFzcz0iZ2RoLXEiPicrclswXSsnPC9wPjxwPicrclsxXSsnPC9wPicrYWdlTm90ZSgpKyc8cD48YSBocmVmPSInK3JbMl0rJyI+JytyWzNdKyc8L2E+PC9wPic7b3V0LmhpZGRlbj1mYWxzZTtyZS5oaWRkZW49ZmFsc2U7cmV0dXJuO30KICAgaWYoZS50YXJnZXQuY2xvc2VzdCYmZS50YXJnZXQuY2xvc2VzdCgnW2RhdGEtcmVzZXRdJykpe2E9e307b3V0LmhpZGRlbj10cnVlO3JlLmhpZGRlbj10cnVlO3Nob3coMCk7fQogIH0pOwogfSk7CiAvLyBtaWxlc3RvbmVzCiAkJCgnW2RhdGEtbXNdJykuZm9yRWFjaChmdW5jdGlvbihtKXsKICB2YXIgYm94ZXM9JCQoJ1tkYXRhLW1dJyxtKSxsYWJlbD1tLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1zLWxhYmVsXScpLGJhcj1tLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1zLWJhcl0nKTsKICBmdW5jdGlvbiBzYXZlZCgpe3RyeXtyZXR1cm4gSlNPTi5wYXJzZShzdG9yZSgnZ2RoLWRyeS1raW5kbGluZycpfHwne30nKTt9Y2F0Y2goZSl7cmV0dXJuIHt9O319CiAgZnVuY3Rpb24gcGFpbnQoKXt2YXIgZD1ib3hlcy5maWx0ZXIoZnVuY3Rpb24oYil7cmV0dXJuIGIuY2hlY2tlZDt9KS5sZW5ndGg7bGFiZWwudGV4dENvbnRlbnQ9ZCsnIG9mICcrYm94ZXMubGVuZ3RoKycgZG9uZScrKGQ9PT01PycuIFlvdSBoYXZlIGFuIHVnbHksIGZpbmlzaGVkIGdhbWUuJzpkPT09Ym94ZXMubGVuZ3RoPycuIE5vdyBwb2xpc2gsIHRoZW4gcHVibGlzaC4nOicnKTtiYXIuc3R5bGUud2lkdGg9KGQvYm94ZXMubGVuZ3RoKjEwMCkrJyUnO30KICB2YXIgcz1zYXZlZCgpO2JveGVzLmZvckVhY2goZnVuY3Rpb24oYil7Yi5jaGVja2VkPSEhc1tiLmdldEF0dHJpYnV0ZSgnZGF0YS1tJyldO2IuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJyxmdW5jdGlvbigpe3ZhciB2PXNhdmVkKCk7dltiLmdldEF0dHJpYnV0ZSgnZGF0YS1tJyldPWIuY2hlY2tlZDtzdG9yZSgnZ2RoLWRyeS1raW5kbGluZycsSlNPTi5zdHJpbmdpZnkodikpO3BhaW50KCk7fSk7fSk7cGFpbnQoKTsKIH0pOwogLy8gZXJyb3JzCiAkJCgnW2RhdGEtZXJyXScpLmZvckVhY2goZnVuY3Rpb24ocSl7dmFyIHNjb3JlPTAsZG9uZT0wLGxhYj1xLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWVyci1zY29yZV0nKSxuPSQkKCcuZ2RoLWUnLHEpLmxlbmd0aDsKICAkJCgnLmdkaC1lJyxxKS5mb3JFYWNoKGZ1bmN0aW9uKGMpe3ZhciB1c2VkPWZhbHNlOyQkKCcuZ2RoLW9wdCcsYykuZm9yRWFjaChmdW5jdGlvbihiKXtiLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxmdW5jdGlvbigpe2lmKHVzZWQpe3JldHVybjt9dXNlZD10cnVlO2RvbmUrKzsKICAgdmFyIG9rPWIuZ2V0QXR0cmlidXRlKCdkYXRhLXJpZ2h0Jyk9PT0nMSc7aWYob2spe3Njb3JlKys7fSQkKCcuZ2RoLW9wdCcsYykuZm9yRWFjaChmdW5jdGlvbih4KXt4LmRpc2FibGVkPXRydWU7aWYoeC5nZXRBdHRyaWJ1dGUoJ2RhdGEtcmlnaHQnKT09PScxJyl7eC5jbGFzc0xpc3QuYWRkKCdpcy1yaWdodCcpO319KTtpZighb2spe2IuY2xhc3NMaXN0LmFkZCgnaXMtd3JvbmcnKTt9CiAgIGMucXVlcnlTZWxlY3RvcignZGV0YWlscycpLm9wZW49dHJ1ZTtsYWIudGV4dENvbnRlbnQ9J1Njb3JlOiAnK3Njb3JlKycgb2YgJytuKyhkb25lPT09bj8oc2NvcmU9PT1uPycuIFlvdSBjYW4gcmVhZCBlcnJvcnMgbm93Lic6Jy4gUmVhZGluZyBlcnJvcnMgaXMgYSBza2lsbCwgYW5kIHlvdSBqdXN0IHByYWN0aWNlZCBpdC4nKTonJyk7fSk7fSk7fSk7CiB9KTsKIC8vIHJpZ2h0cyBmaWx0ZXIKICQkKCdbZGF0YS1yaWdodHNdJykuZm9yRWFjaChmdW5jdGlvbihyKXt2YXIgaT1yLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jykscm93cz0kJCgnW2RhdGEtcm93XScscik7aS5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsZnVuY3Rpb24oKXt2YXIgdj1pLnZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO3Jvd3MuZm9yRWFjaChmdW5jdGlvbih0KXt0LmhpZGRlbj12JiZ0LmdldEF0dHJpYnV0ZSgnZGF0YS1yb3cnKS5pbmRleE9mKHYpPDA7fSk7fSk7fSk7Cn0pKCk7"))();</script>
]]></content:encoded>
					
					<wfw:commentRss>https://gamedevaihub.com/ai-game-development-for-beginners/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Claude Code for Game Development: What Works, What Breaks, What It Costs</title>
		<link>https://gamedevaihub.com/claude-code-game-development/</link>
					<comments>https://gamedevaihub.com/claude-code-game-development/#respond</comments>
		
		<dc:creator><![CDATA[Adrian]]></dc:creator>
		<pubDate>Sat, 31 Oct 2026 20:35:25 +0000</pubDate>
				<category><![CDATA[AI Coding & Engines]]></category>
		<guid isPermaLink="false">https://gamedevaihub.com/?p=20384</guid>

					<description><![CDATA[Can Claude Code make a real game? Engine-by-engine fit, the setup that works, real projects with costs, what breaks, and Steam's AI rules.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>A game jam sponsored by Cursor paid its $25,000 top prize to a game built with Claude Code.</strong></p>



<p class="wp-block-paragraph">The winner is an iOS developer called Leo. Leo ran two or three Claude Code sessions at once for about two weeks and describes the work as shifting &#8220;from coding to deciding.&#8221; Claude Code builds playable games, fastest in Godot or a browser engine, on a $20 to $200 plan. It can&#8217;t tell whether a game is fun, so that part of Claude Code game development stays with you.</p>



<p class="wp-block-paragraph"><em>Research-based guide, checked against Anthropic, Unity, Epic, Godot and Valve documentation and the developers&#8217; own posts.</em></p>



<h2 class="wp-block-heading">Can Claude Code make a complete game?</h2>



<p class="wp-block-paragraph">Yes, if the game is small. Claude Code has built a jam winner, a rebuilt 1992 online game, browser games with live players, and a port of a 1993 Amiga game. In each one, a person made the design calls and tuned the feel while Claude wrote most of the code.</p>



<ul class="wp-block-list">
<li><a href="https://levels.io/vibe-jam-2026-winners-quality" target="_blank" rel="noopener">A Game About Capybaras Delivering Food</a>: Three.js, Claude Code on Opus 4.7, Gold at Vibe Jam 2026. Leo tuned the feel and hand-built the map in an editor Claude wrote.</li>

<li><a href="https://meditations.metavert.io/p/resurrecting-a-1992-mud-with-agentic" target="_blank" rel="noopener">Legends of Future Past</a>: The engine source for Jon Radoff&#8217;s 1992 CompuServe game was lost. Claude Code rebuilt it in a weekend from old scripts and a 1998 game-master manual. It has 2,273 rooms and is <a href="https://github.com/jonradoff/lofp" target="_blank" rel="noopener">open source</a>.</li>

<li><a href="https://babyloniantwins.com/blog/porting-a-1993-amiga-game-to-godot/" target="_blank" rel="noopener">Babylonian Twins</a>: Rabah Shihab moved 72,758 lines of 68000 assembly to Godot with Claude Code and Fable 5. The first draft took an evening. Tuning took weeks.</li>

<li><a href="https://www.reddit.com/r/ClaudeAI/comments/1v00q2p/" target="_blank" rel="noopener">Slimeshot</a>: Phaser 3 and Fable 5, about 120 hours. Every sprite started as a grid of letters that a Claude-built tool turned into pixels.</li>
</ul>



<p class="wp-block-paragraph">Slimeshot and Babylonian Twins both have Steam pages, and both are still listed as coming soon. Most finished Claude Code games are short web games and small itch.io releases. Claude can carry a small game to release. A 40-hour RPG is still a team-sized job.</p>



<h2 class="wp-block-heading">Which engine works best with Claude Code?</h2>



<p class="wp-block-paragraph">Claude Code works in a loop. It edits a file, runs something, reads what came back and decides what to do next. So the useful engine question is how much of your game Claude can read and run from a terminal.</p>



<p class="wp-block-paragraph">Claude reads your project the way a new hire does on day one, through files. If a setting lives only in an editor window, Claude can&#8217;t see it unless a tool shows it.</p>



<figure class="wp-block-table"><table><thead><tr><th>Engine</th><th>What Claude can read</th><th>Can it run and check the game?</th><th>Main route for Claude Code</th><th>Best fit</th></tr></thead><tbody><tr><td>Godot 4</td><td>Scripts and scenes, all text</td><td>Yes, headless from the terminal</td><td>Community MCP servers</td><td>Solo 2D and small 3D</td></tr><tr><td>Web (Phaser, Three.js)</td><td>Everything, it&#8217;s all code</td><td>Yes, in a browser with Playwright screenshots</td><td>Playwright plugin</td><td>Jam games, browser games</td></tr><tr><td>Unity 6</td><td>Scripts, plus scenes saved as YAML text</td><td>Yes, through the Unity CLI (beta)</td><td>Unity CLI and Pipeline package</td><td>Teams already on Unity, mobile</td></tr><tr><td>Unreal 5.8</td><td>C++ only, assets are binary</td><td>Partly, through an editor MCP</td><td>Epic&#8217;s experimental Unreal MCP</td><td>C++ projects with an experienced dev</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Godot: the easiest engine for Claude</h3>



<p class="wp-block-paragraph">Godot saves scenes as <a href="https://docs.godotengine.org/en/stable/engine_details/file_formats/tscn.html" target="_blank" rel="noopener">.tscn text files</a> and runs without a window. The <a href="https://docs.godotengine.org/en/stable/tutorials/editor/command_line_tutorial.html" target="_blank" rel="noopener">command line</a> gives Claude <code>--headless</code> to run the game, <code>--check-only</code> to parse a script for errors and <code>--write-movie</code> to record frames. Claude can run the game, read the errors and fix them without you clicking anything.</p>



<p class="wp-block-paragraph">In a 2025 <a href="https://dev.classmethod.jp/articles/beginner-game-development-claude-code-engine-selection/" target="_blank" rel="noopener">test by Classmethod</a>, Claude Code finished a Godot Tetris in about 30 minutes and three prompts. The same game in Unity was still unfinished after two hours.</p>



<p class="wp-block-paragraph">The weak spot is model knowledge. Claude sometimes slips into Godot 3 syntax. Pin your Godot version in CLAUDE.md and the problem mostly goes away.</p>



<h3 class="wp-block-heading">Unity: text files, editor problems</h3>



<p class="wp-block-paragraph">You&#8217;ll read that Unity is hard for Claude because its scenes are binary. That&#8217;s wrong. Unity 6 saves assets in <a href="https://docs.unity.com/en-us/engine/6000.3/manual/unity-editor/editor-settings-reference/comp-manager-group/class-editor-manager" target="_blank" rel="noopener">Force Text mode by default</a>, so scenes and prefabs are YAML text.</p>



<p class="wp-block-paragraph">Unity&#8217;s friction is in the editor. In the Classmethod test, Unity stalled on two things. Someone had to attach scripts to objects by hand, and a lighting setting rendered every block in monochrome.</p>



<p class="wp-block-paragraph">Unity&#8217;s answer is the free <a href="https://docs.unity.com/en-us/unity-cli/replace-mcp-server-unity-cli" target="_blank" rel="noopener">Unity CLI</a>, still in beta. It drives a running editor from the terminal, runs headless builds and runs your test suites. Unity says its direct commands are &#8220;faster and use fewer tokens than MCP.&#8221;</p>



<p class="note warning wp-block-paragraph">Unity has deprecated the MCP server inside its AI Assistant package. Guides that tell you to switch it on are out of date. Use the Unity CLI, or a third-party package like <a href="https://github.com/IvanMurzak/Unity-MCP" target="_blank" rel="noopener">Unity-MCP</a>, which the deprecation doesn&#8217;t affect.</p>



<h3 class="wp-block-heading">Unreal: C++ yes, Blueprints barely</h3>



<p class="wp-block-paragraph">Unreal stores assets and Blueprints as binary .uasset files. Claude reads and writes C++ well. Visual scripting is where it struggles. An Unreal developer <a href="https://www.reddit.com/r/ClaudeCode/comments/1pqbu3l/" target="_blank" rel="noopener">on r/ClaudeCode</a> put it plainly: LLMs &#8220;still struggle with visual programming like Unreal blueprints.&#8221;</p>



<p class="wp-block-paragraph">Unreal Engine 5.8 added an official <a href="https://dev.epicgames.com/documentation/unreal-engine/unreal-mcp-in-unreal-editor?lang=en-US" target="_blank" rel="noopener">Unreal MCP</a> that lets Claude work inside the editor. Epic labels it experimental and says &#8220;many features are incomplete or missing.&#8221;</p>



<p class="wp-block-paragraph">One developer&#8217;s test of an Unreal MCP spent three minutes and about 45,000 tokens <a href="https://www.reddit.com/r/unrealengine/comments/1vtl6ip/" target="_blank" rel="noopener">making two red cubes</a>. Our <a href="https://gamedevaihub.com/unreal-engine-5-8-mcp-server/">Unreal 5.8 MCP guide</a> covers the setup.</p>



<h2 class="wp-block-heading">Can Claude Code run your game and read the errors?</h2>



<p class="wp-block-paragraph">Yes. Some older guides say Claude can&#8217;t press play, but with a terminal it can launch the game and read the output.</p>



<p class="wp-block-paragraph">Shihab&#8217;s Babylonian Twins port shows how. Claude Code built the game, launched it and read &#8220;what came back.&#8221; Then it added its own <code>--probe</code> and <code>--screenshot</code> flags.</p>



<p class="wp-block-paragraph">Your engine decides which tools Claude gets:</p>



<ul class="wp-block-list">
<li>Godot: <a href="https://github.com/Coding-Solo/godot-mcp" target="_blank" rel="noopener">godot-mcp</a> gives Claude <code>run_project</code> and <code>get_debug_output</code>.</li>

<li>Unity: the Unity CLI runs your test suites.</li>

<li>Web: Playwright screenshots the game in a browser.</li>
</ul>



<p class="wp-block-paragraph">What Claude can&#8217;t check is feel. Shihab played the build every night because feel was never checked by machine.</p>



<p class="wp-block-paragraph">Kyle Kukshtel, a developer on the Steam strategy game Cantata, puts it bluntly: &#8220;structurally, LLMs are bad at reading games.&#8221; A log tells Claude the jump fired. It can&#8217;t tell Claude the jump feels floaty.</p>



<h2 class="wp-block-heading">How to set up Claude Code for game development</h2>



<ol class="wp-block-list steps">
<li>Get Claude Pro or higher. The free plan doesn&#8217;t include Claude Code.</li>

<li>Open your project folder in a terminal, start <code>claude</code> and run <code>/init</code>. Claude scans the project and writes a first CLAUDE.md.</li>

<li>Edit CLAUDE.md so it names your exact engine version and the commands that run and test the game. Template below.</li>

<li>Connect the engine with the command in the table below.</li>

<li>Commit to git after every change that works. When Claude breaks something, you roll back in one command.</li>
</ol>



<figure class="wp-block-table"><table><thead><tr><th>Engine</th><th>Command</th><th>You need</th></tr></thead><tbody><tr><td>Godot</td><td><code>claude mcp add godot -- npx @coding-solo/godot-mcp</code></td><td>Node 18+, and Godot 4.4+ for the UID tools</td></tr><tr><td>Unity</td><td><code>unity pipeline install</code>, then <code>unity mcp configure claude</code></td><td>The Unity CLI and Unity 6.0 LTS or newer</td></tr><tr><td>Unreal</td><td><code>/plugin install unreal-engine-skills-for-claude-code@claude-plugins-official</code></td><td>Unreal 5.8 with the Unreal MCP and All Toolsets plugins on</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Here&#8217;s a lean CLAUDE.md for a Godot project. Every line gives Claude a fact or a command it would otherwise guess.</p>



<p class="code-file wp-block-paragraph"><span>CLAUDE.md</span></p>



<pre class="wp-block-code"><code># Game: &#91;name]
Engine: Godot 4.7, GDScript 2.0. Never use Godot 3 syntax.
Run: godot --headless --path . --quit-after 600
Check a script: godot --headless --check-only --script res://&#91;file].gd
Tests: &#91;your test command]. Run them after every change.

Rules
- One mechanic per task. Show me the plan before you code.
- Ask before adding a plugin or dependency.
- Keep HANDOVER.md current: systems, decisions, known bugs.</code></pre>



<p class="key-insight wp-block-paragraph">You don&#8217;t need to trim MCP tools to fit a limit. Claude Code loads tool definitions only when it needs them, and <a href="https://code.claude.com/docs/en/mcp" target="_blank" rel="noopener">Anthropic&#8217;s docs</a> say it has no fixed per-server tool cap.</p>



<p class="wp-block-paragraph"><a href="https://github.com/Donchitos/Claude-Code-Game-Studios" target="_blank" rel="noopener">Claude Code Game Studios</a> is the popular add-on. It gives Claude 49 agents and 74 skills that act like a small studio.</p>



<p class="wp-block-paragraph">That structure costs tokens. One <a href="https://aiparabellum.com/claude-code-game-studios-install-and-use/" target="_blank" rel="noopener">test on a tiny Godot game</a> measured about $5 of usage with the template and about $0.15 without it. Use it for a real project. Skip it for a weekend prototype.</p>



<p class="wp-block-paragraph">For more CLAUDE.md templates and copy-paste prompts, see our <a href="https://gamedevaihub.com/claude-game-development-guide/">Claude game development guide</a>.</p>



<h2 class="wp-block-heading">What breaks when you build a game with Claude Code?</h2>



<figure class="wp-block-table"><table><thead><tr><th>What breaks</th><th>What it looks like</th><th>Fix</th></tr></thead><tbody><tr><td>Feel and balance</td><td>Numbers that look fine and play badly</td><td>You play every build and own the tuning</td></tr><tr><td>Architecture</td><td>A change in one file breaks something three files away</td><td>Tests for every mechanic, plus a handover file</td></tr><tr><td>Editor-only work</td><td>Wiring components in Unity, painting landscapes in Unreal</td><td>Use the engine&#8217;s CLI or MCP, or do that step yourself</td></tr><tr><td>Art</td><td>AI images that need cropping, cleanup and resizing</td><td>Separate image tools, or sprites drawn in code</td></tr><tr><td>Version drift</td><td>Godot 3 code in a Godot 4 project</td><td>Pin the version in CLAUDE.md</td></tr><tr><td>Scope</td><td>A prototype that stalls when the game grows</td><td>One mechanic per session, small files</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Balance is the one people warn about most. The developer of <a href="https://www.reddit.com/r/ClaudeAI/comments/1uxi2wq/" target="_blank" rel="noopener">Cinderstead</a>, a Stacklands-style game, wrote: &#8220;do not trust AI to balance stuff that requires actual gameplay.&#8221; Claude can tune a number to a target. It can&#8217;t play 50 runs and get bored.</p>



<h2 class="wp-block-heading">Five habits from developers who finished a game</h2>



<p class="wp-block-paragraph">The developers who ship describe the same five habits. Most of them give Claude a way to check its own work.</p>



<ol class="wp-block-list steps">
<li><strong>Build the feel with plain shapes first.</strong> The developer of <a href="https://www.reddit.com/r/vibecoding/comments/1x55yeh/" target="_blank" rel="noopener">Hearthworks</a>, a 3D survivors game, built movement, three spells and a boss with capsules and spheres. Art came only after the developer beat their own game.</li>

<li><strong>Give every mechanic a test.</strong> One solo developer building a 2D RPG in Godot has <a href="https://www.reddit.com/r/aigamedev/comments/1xj5z85/" target="_blank" rel="noopener">more than 400 tests</a> and runs them headless after each change. They catch Claude breaking code it touched three files away.</li>

<li><strong>Let Claude check its own screenshots.</strong> Have it render the game to images and look before it shows you anything.</li>

<li><strong>Keep a handover file.</strong> Without one, a new session forgets why code is the way it is and &#8220;fixes&#8221; it back.</li>

<li><strong>Ask Claude to build tools.</strong> Leo calls Claude-built editors the &#8220;biggest multiplier&#8221; in the project. The <a href="https://github.com/Autinhorse/levelcraft" target="_blank" rel="noopener">LevelCraft</a> developer shipped a smaller game, Ricochet, with its own level editor and website in 11 days of part-time work.</li>
</ol>



<p class="wp-block-paragraph">Claude does its best work when it can prove a change worked. &#8220;Make combat feel better&#8221; gives it nothing to check. &#8220;Dash covers four tiles in 0.2 seconds and can&#8217;t pass through walls&#8221; gives it a test. The more of your game you turn into checkable facts, the more of it Claude can build alone.</p>



<h2 class="wp-block-heading">How much does Claude Code cost for game development?</h2>



<p class="wp-block-paragraph">Claude Code comes with Claude&#8217;s paid plans. Your Claude Code use and your chat use share the same limits.</p>



<figure class="wp-block-table"><table><thead><tr><th>Plan</th><th>Price</th><th>Claude Code</th><th>Usage</th></tr></thead><tbody><tr><td>Free</td><td>$0</td><td>No</td><td>None</td></tr><tr><td>Pro</td><td>$20 a month, or $17 a month billed yearly</td><td>Yes</td><td>Base limits, reset every 5 hours and weekly</td></tr><tr><td>Max</td><td>$100 a month</td><td>Yes</td><td>5x Pro</td></tr><tr><td>Ultra</td><td>$200 a month</td><td>Yes</td><td>10x Pro per week, no 5-hour limit for verified accounts</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Prices are from <a href="https://claude.com/pricing" target="_blank" rel="noopener">Claude&#8217;s pricing page</a>. On Pro, the Fable 5 and 5.1 models run only on paid <a href="https://support.claude.com/en/articles/15424964-claude-fable-models-on-your-plan" target="_blank" rel="noopener">usage credits</a>. Opus 5.5 and Sonnet 5.5 stay inside your plan. Type <code>/usage</code> in Claude Code to see where you stand.</p>



<p class="wp-block-paragraph">What real projects spent:</p>



<ul class="wp-block-list">
<li><strong>Capybara jam winner:</strong> Leo topped up $100 to move to the 20x plan. Leo&#8217;s total for every AI tool, art and music included, came to <a href="https://leocoout.medium.com/how-i-made-25k-in-15-days-with-a-game-built-entirely-by-claude-code-94b3b817f0ce" target="_blank" rel="noopener">$119.90</a>.</li>

<li><strong>Five small games in 50 days:</strong> a non-programmer spent <a href="https://dev.to/yurukusa/i-calculated-what-my-200month-ai-subscription-actually-produced-heres-the-math-1ohm" target="_blank" rel="noopener">$400 on AI and earned $4.99</a> in sales. Building a game got cheap. Selling one didn&#8217;t.</li>

<li><strong>Pro plan, daily use:</strong> one developer working on Opus 5.5 <a href="https://www.reddit.com/r/aigamedev/comments/1xdqpx4/" target="_blank" rel="noopener">budgets 14% of the weekly limit</a> per day and uses it all every week.</li>
</ul>



<p class="wp-block-paragraph">So Pro works if you plan your sessions. If you build for four or five hours a day, expect to hit the limit and move to Max.</p>



<h2 class="wp-block-heading">Claude Code vs Codex vs Cursor for games</h2>



<p class="wp-block-paragraph">The Vibe Jam is the cleanest data point. Cursor sponsored it, and a Claude Code game won it. Unity&#8217;s official <a href="https://github.com/Unity-Technologies/unity-agent-plugin" target="_blank" rel="noopener">agent plugin</a> lists Claude Code, Codex, Grok and Antigravity. Cursor isn&#8217;t on the list.</p>



<p class="wp-block-paragraph">Developers who pay for both Claude Code and Codex describe a split. They build fast in Claude Code, then hand performance work to Codex. One wrote that Opus 5.5 &#8220;ships lots of working code that isn&#8217;t well-optimized.&#8221; Several $20-plan users say Claude gives them more usage per dollar. If frame pacing matters in your game, budget a cleanup pass whichever tool you pick.</p>



<h2 class="wp-block-heading">Do you have to disclose AI when you sell your game?</h2>



<p class="wp-block-paragraph">Code written with Claude Code is the easy case on every store. AI-made art, audio or text is where the rules start.</p>



<figure class="wp-block-table"><table><thead><tr><th>Store</th><th>Do you disclose?</th><th>What counts</th></tr></thead><tbody><tr><td>Steam</td><td>Yes, in the Content Survey</td><td>AI content that &#8220;ships with your game and is consumed by players,&#8221; such as art, sound and text. Live AI generation needs a description of your guardrails.</td></tr><tr><td>itch.io</td><td>Required for asset packs, requested for games</td><td>Untagged AI assets drop out of browse listings</td></tr><tr><td>Google Play</td><td>No label for games made with AI tools</td><td>Apps that generate AI content need in-app reporting</td></tr><tr><td>Apple App Store</td><td>No label rule</td><td>You need permission before sending personal data to a third-party AI</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><a href="https://partner.steamgames.com/doc/gettingstarted/contentsurvey" target="_blank" rel="noopener">Valve&#8217;s page</a> says tools that make development more efficient are &#8220;not the focus.&#8221; Valve also took &#8220;code&#8221; out of its list of examples in January 2026. AI art still needs disclosing.</p>



<p class="wp-block-paragraph">Slimeshot shows the risk. Its Steam page discloses only AI help &#8220;with the codebase,&#8221; while its developer says Claude made the art too. Players screenshot gaps like that. If you&#8217;re worried about how players react, read our <a href="https://gamedevaihub.com/will-players-punish-ai-art-in-games/">data on AI art backlash</a>.</p>



<h2 class="wp-block-heading">Will Claude Code build a clone of an existing game?</h2>



<p class="wp-block-paragraph">It&#8217;s set up not to. In late October 2026, Anthropic added two sentences to Claude Code&#8217;s prompt on Opus 5.5, <a href="https://www.gamedeveloper.com/programming/anthropic-appears-to-have-ordered-ai-tool-claude-to-stop-remaking-video-games" target="_blank" rel="noopener">GameDeveloper.com reports</a>. Claude now declines to build &#8220;a recreation of a specific existing game,&#8221; even under a new name.</p>



<p class="wp-block-paragraph">Original games, games in an existing genre and games built from your own designs are fine.</p>



<h2 class="wp-block-heading">Who owns the code Claude writes?</h2>



<p class="wp-block-paragraph">You do, for the parts you shaped. US law draws the line like this:</p>



<ul class="wp-block-list">
<li>Purely AI-generated material can&#8217;t be copyrighted, and prompts alone don&#8217;t make you the author, per the <a href="https://www.copyright.gov/ai/Copyright-and-Artificial-Intelligence-Part-2-Copyrightability-Report.pdf" target="_blank" rel="noopener">Copyright Office&#8217;s 2025 report</a>.</li>

<li>Your own selection, arrangement and edits can be protected.</li>

<li>The Supreme Court declined to hear <em>Thaler v. Perlmutter</em> in March 2026, so the human-author rule stands.</li>
</ul>



<p class="wp-block-paragraph">Anthropic&#8217;s terms give you whatever rights exist in the output. If you plan to register a copyright, talk to a lawyer.</p>



<h2 class="wp-block-heading">Start your first Claude Code game this weekend</h2>



<ol class="wp-block-list steps">
<li>Install Godot 4.7 and create an empty project.</li>

<li>Paste the CLAUDE.md above and fill in the blanks.</li>

<li>Ask for one mechanic with a number attached, like &#8220;a player that jumps three tiles high, plus a test that proves it.&#8221;</li>

<li>Run the test, then play it yourself. Only then ask for the next mechanic.</li>
</ol>



<h2 class="wp-block-heading">FAQ</h2>



<h3 class="wp-block-heading">Do I need to know how to code to make a game with Claude Code?</h3>



<p class="wp-block-paragraph">No, to get a prototype. Yes, to finish something bigger. Non-programmers have shipped small games with Claude Code. Every larger success had someone who could read the code, spot bad structure and decide what to cut.</p>



<h3 class="wp-block-heading">Is Godot or Unity better for Claude Code?</h3>



<p class="wp-block-paragraph">Godot, for most solo developers. Its scenes are text, and it runs headless from one command, so Claude can check its own work. Unity is close behind now that the Unity CLI lets Claude drive the editor. Pick Unity if you already know it or need its mobile and console tools.</p>



<h3 class="wp-block-heading">Can Claude Code make game art?</h3>



<p class="wp-block-paragraph">Not on its own. Claude writes code, so it can draw sprites in code, generate sound from code or build tools that cut and fit images. Most Claude Code games pair it with an image or 3D generator, then clean up every asset by hand. See our guide to <a href="https://gamedevaihub.com/text-to-3d-game-assets/">text-to-3D game assets</a> for that side.</p>



<h3 class="wp-block-heading">Which Claude model should I use for game development?</h3>



<p class="wp-block-paragraph">Opus 5.5 is the common pick for daily building, and it runs inside Pro limits. Sonnet 5.5 is cheaper, and it wrote all 136,000 lines of <a href="https://www.reddit.com/r/ClaudeAI/comments/1xiks9w/" target="_blank" rel="noopener">one developer&#8217;s kids&#8217; game</a>. Fable 5.1 is Anthropic&#8217;s top-priced model, and on Pro it bills extra credits.</p>



<h3 class="wp-block-heading">Is the $20 Claude Pro plan enough to make a game?</h3>



<p class="wp-block-paragraph">For a small game, yes, if you plan sessions and use Sonnet for simple tasks. For daily multi-hour builds, plan on Max at $100.</p>



<h3 class="wp-block-heading">Can I sell a game made with Claude Code on Steam?</h3>



<p class="wp-block-paragraph">Yes. Fill in Steam&#8217;s Content Survey honestly, and disclose any AI-made art, sound or text that ships with the game. Valve no longer lists code among the AI content it asks about.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gamedevaihub.com/claude-code-game-development/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Unreal Engine 5.8 MCP Server: Setup Guide for Claude Code</title>
		<link>https://gamedevaihub.com/unreal-engine-5-8-mcp-server/</link>
					<comments>https://gamedevaihub.com/unreal-engine-5-8-mcp-server/#respond</comments>
		
		<dc:creator><![CDATA[Adrian]]></dc:creator>
		<pubDate>Sat, 31 Oct 2026 14:55:17 +0000</pubDate>
				<category><![CDATA[AI Coding & Engines]]></category>
		<guid isPermaLink="false">https://gamedevaihub.com/?p=20357</guid>

					<description><![CDATA[Set up Unreal Engine 5.8's official MCP server with Claude Code: exact plugins, console commands, port 8000 config, fixes, limits and costs.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Puget Systems&#8217; tester asked Claude to build a six-room level in Unreal Engine 5.8. It took a little over five minutes. Then they asked for walking controls, and the player couldn&#8217;t move at all.</strong></p>



<p class="wp-block-paragraph">That split tells you how to use Epic&#8217;s new MCP server. It handles setup work well and fails when it has to design a system alone. It&#8217;s experimental and has no password, and connecting takes six steps. Everything below comes from Epic&#8217;s docs or from named testers.</p>



<div style="border-left:4px solid #2563eb;background:rgba(37,99,235,0.08);border-radius:6px;padding:16px 20px;margin:24px 0;">
<p style="margin:0 0 8px;"><strong>Quick answer</strong></p>
<p style="margin:0;">Enable the <strong>Unreal MCP</strong> and <strong>All Toolsets</strong> plugins in Edit &gt; Plugins and restart. Run <code>ModelContextProtocol.StartServer</code> in the editor console, then <code>ModelContextProtocol.GenerateClientConfig ClaudeCode</code>. Open a terminal in your project root and start Claude Code. Run <code>/mcp</code> to confirm <code>unreal-mcp</code> is connected. The server listens on <code>http://127.0.0.1:8000/mcp</code>, accepts local connections only, and Epic labels it Experimental.</p>
</div>



<p class="wp-block-paragraph"><strong>Jump to:</strong> <a href="#setup">Setup</a> · <a href="#reference">Command reference</a> · <a href="#first-session">First safe session</a> · <a href="#can-and-cant">What works</a> · <a href="#fixes">Fixes</a> · <a href="#cost">Cost</a> · <a href="#security">Security</a> · <a href="#alternatives">Alternatives</a> · <a href="#faq">FAQ</a></p>



<h2 class="wp-block-heading" id="what-it-is">What the Unreal Engine 5.8 MCP server is</h2>



<p class="wp-block-paragraph">MCP (Model Context Protocol) is an open standard that lets an AI client call named functions in another program. Epic&#8217;s plugin, Unreal MCP, runs an MCP server inside the editor process. Claude Code connects over local HTTP and calls tools. Epic&#8217;s examples include spawning actors, configuring lighting, creating material instances, inspecting Slate widgets and running automation tests.</p>



<p class="wp-block-paragraph">Epic shipped it with UE 5.8 on June 17, 2026. The docs mark it Experimental, warn that many features are incomplete or missing, and say APIs and data formats can change at any time. The 5.8.1 hotfix already fixed MCP bugs, so stay on the latest 5.8.x release. For the wider workflow around it, read our guide to <a href="https://gamedevaihub.com/claude-game-development-guide/">Claude for game development</a>.</p>



<h2 class="wp-block-heading" id="requirements">What you need</h2>



<ul class="wp-block-list">

<li>Unreal Engine 5.8 (the plugin is part of that release).</li>



<li>Claude Code. Epic&#8217;s config generator also writes files for Cursor, VS Code, Gemini and Codex.</li>



<li>A project on its own Git branch, or a throwaway project.</li>

</ul>



<h2 class="wp-block-heading" id="setup">Set up the Unreal Engine 5.8 MCP server in 6 steps</h2>



<ol class="wp-block-list">

<li><strong>Enable the plugins.</strong> Open Edit &gt; Plugins, search &#8220;Unreal MCP&#8221; and tick Enabled, then do the same for &#8220;All Toolsets&#8221;. Restart when prompted.<br><em>You should see:</em> both plugins checked after the restart. Toolset Registry turns on by itself.<br>Skip All Toolsets and you get a server with almost nothing to call. Epic&#8217;s docs say the tools come from that plugin, and a forum user who skipped it reported seeing a single toolset.</li>



<li><strong>Start the server.</strong> Either turn on Edit &gt; Editor Preferences &gt; General &gt; Model Context Protocol &gt; Auto Start Server, or open the console (backtick key) and run:<br><code>ModelContextProtocol.StartServer</code><br><em>You should see:</em> the bind address, port and path in the Output Log. A failed bind shows up there too.</li>



<li><strong>Generate Claude&#8217;s config.</strong> In the same console:<br><code>ModelContextProtocol.GenerateClientConfig ClaudeCode</code><br><em>You should see:</em> a <code>.mcp.json</code> file in your project root. Run the command again if you change the port.</li>



<li><strong>Start Claude Code from the project root.</strong> Open a terminal in the folder that holds your <code>.uproject</code> and <code>.mcp.json</code>, then run <code>claude</code>. Do it after the editor is up. From any other folder, Claude won&#8217;t find the server.</li>



<li><strong>Approve and check the connection.</strong> Claude Code asks you to approve servers from a project&#8217;s <code>.mcp.json</code>. Approve it, then run <code>/mcp</code>.<br><em>You should see:</em> <code>unreal-mcp</code> listed as connected.</li>



<li><strong>Ask a read-only question.</strong> Epic&#8217;s own test: &#8220;What actors do I have selected?&#8221;<br><em>You should see:</em> an answer that matches your editor, which confirms Claude reads live editor state.</li>

</ol>



<p class="wp-block-paragraph">The generated file looks like this:</p>



<pre class="wp-block-code"><code>{
  "mcpServers": {
    "unreal-mcp": {
      "type": "http",
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}</code></pre>



<p class="wp-block-paragraph">Optional: Epic publishes a Claude Code plugin with usage guidance for the server. Install it inside Claude Code with <code>/plugin install unreal-engine-skills-for-claude-code@claude-plugins-official</code>. The <a href="https://github.com/EpicGames/unreal-engine-skills-for-claude-code-plugin" target="_blank" rel="noopener">repo</a> says its start-up hook needs <code>bash</code> on your PATH. On Windows that means Git Bash or WSL. The MCP tools work without it.</p>



<h2 class="wp-block-heading" id="reference">Commands, settings and defaults</h2>



<figure class="wp-block-table"><table><thead><tr><th>What</th><th>Value</th><th>Default</th></tr></thead><tbody>
<tr><td><strong>Plugins</strong></td><td>Unreal MCP (id <code>ModelContextProtocol</code>), All Toolsets, Toolset Registry</td><td>Registry auto-enables</td></tr>
<tr><td><strong>Auto Start Server</strong></td><td>Editor Preferences &gt; General &gt; Model Context Protocol</td><td>Off</td></tr>
<tr><td><strong>Port and path</strong></td><td>Set in the same panel</td><td>8000 and <code>/mcp</code></td></tr>
<tr><td><strong>Enable Tool Search</strong></td><td><code>tools/list</code> returns <code>list_toolsets</code>, <code>describe_toolset</code>, <code>call_tool</code></td><td>On</td></tr>
<tr><td><code>ModelContextProtocol.StartServer [port]</code></td><td>Starts the server</td><td></td></tr>
<tr><td><code>ModelContextProtocol.StopServer</code></td><td>Stops it and closes all sessions</td><td></td></tr>
<tr><td><code>ModelContextProtocol.RefreshTools</code></td><td>Re-reads registered toolsets</td><td></td></tr>
<tr><td><code>ModelContextProtocol.GenerateClientConfig</code></td><td>Takes ClaudeCode, Cursor, VSCode, Gemini, Codex or All</td><td></td></tr>
<tr><td><strong>Launch flags</strong></td><td><code>-ModelContextProtocolStartServer</code>, <code>-ModelContextProtocolPort=N</code></td><td></td></tr>
<tr><td><code>ModelContextProtocol.EnableAnalytics</code></td><td>Gates telemetry</td><td>true</td></tr>
<tr><td><strong>Transport</strong></td><td>HTTP and SSE only. No stdio, no WebSocket.</td><td></td></tr>
<tr><td><strong>Access</strong></td><td>Loopback only, no authentication</td><td></td></tr>
<tr><td><strong>Execution</strong></td><td>Tool calls run one at a time on the game thread</td><td></td></tr>
</tbody></table></figure>



<p class="wp-block-paragraph">Turn on logging with <code>Log LogModelContextProtocol Verbose</code>. To test the server without Claude, run <code>npx @modelcontextprotocol/inspector</code> and point it at the server URL over Streamable HTTP.</p>



<h2 class="wp-block-heading" id="first-session">Your first safe session</h2>



<p class="wp-block-paragraph">Epic&#8217;s plugin README says MCP tools edit live objects and can change, move or delete tracked assets in a single call. So you start small.</p>



<ol class="wp-block-list">

<li><strong>Commit or branch first.</strong> One clean commit gives you a way back.</li>



<li><strong>Read before you write.</strong> Ask Claude to list the actors in your level. Compare the count with your World Outliner. If they differ, stop and find out why.</li>



<li><strong>Make one reversible change.</strong> Spawn a single cube, or rename one actor.</li>



<li><strong>Test undo.</strong> Press Ctrl+Z. Epic&#8217;s 5.8.1 notes changed how transactions behave during tool scripts, so check that undo works for the kind of change you plan to make.</li>



<li><strong>Save, then read the diff.</strong> Look at what changed on disk. Blueprint edits need this most (see the fixes table).</li>

</ol>



<h2 class="wp-block-heading" id="can-and-cant">What it can and can&#8217;t do</h2>



<p class="wp-block-paragraph">Puget Systems published a detailed hands-on test. Their tester used Claude Opus 4.8 on the default Blank Game project and stayed hands-off on purpose across four tasks.</p>



<figure class="wp-block-table"><table><thead><tr><th>Task</th><th>Result</th></tr></thead><tbody>
<tr><td><strong>Remove the default landscape</strong></td><td>Worked without issue.</td></tr>
<tr><td><strong>Greybox level: hallway, 6 rooms, lights, windows</strong></td><td>Worked. A little over five minutes. Layout matched the prompt. It added hallway lights nobody asked for.</td></tr>
<tr><td><strong>Blueprint that lights each room when the player enters</strong></td><td>Worked in play. It also turned the light off on exit, which wasn&#8217;t requested.</td></tr>
<tr><td><strong>Change a free camera into a walking character</strong></td><td>Failed. The request ran over ten minutes and the player couldn&#8217;t move afterward, and a 15-minute fix attempt changed nothing.</td></tr>
<tr><td><strong>Procedural city with PCG</strong></td><td>Failed. Claude placed static meshes instead of building a PCG graph, then said it can&#8217;t create PCG graphs from scratch. After a couple of hours of iteration the tester ran out of tokens.</td></tr>
</tbody></table></figure>



<p class="wp-block-paragraph">The pattern is simple. It&#8217;s good at setup work and weak at architecture. Puget&#8217;s conclusion was to build a minimal structure by hand first, then let MCP extend it. The tester also admits the walking-controls prompt was vague, and results will shift with your model and prompt.</p>



<p class="wp-block-paragraph">Epic documents toolsets for the level and camera (SceneTools), actors and their components (ActorTools), materials and material instances, and Blueprints. It also lists Sequencer, automation tests and Slate inspection. It doesn&#8217;t publish individual tool names. Ask Claude to run <code>list_toolsets</code> and you&#8217;ll see what your build exposes.</p>



<h2 class="wp-block-heading" id="fixes">Troubleshooting: symptom, cause, fix</h2>



<figure class="wp-block-table"><table><thead><tr><th>Symptom</th><th>Cause</th><th>Fix</th></tr></thead><tbody>
<tr><td>Connected, almost no tools</td><td>All Toolsets is off</td><td>Enable it and restart. One forum user fixed it by adding <code>{"Name":"AllToolsets","Enabled":true}</code> to the Plugins list in the <code>.uproject</code>.</td></tr>
<tr><td>Claude doesn&#8217;t list <code>unreal-mcp</code></td><td>Agent started outside the project root, or before the editor</td><td>Start the editor first, launch Claude from the root, reconnect.</td></tr>
<tr><td>Claude Code skips the server entry</td><td>The entry has a <code>url</code> but no <code>type</code></td><td>Add <code>"type": "http"</code>. Anthropic&#8217;s docs treat a missing type as a stdio server.</td></tr>
<tr><td>Connection drops</td><td>URL ends at <code>:8000</code></td><td>Use the full <code>http://127.0.0.1:8000/mcp</code>. A forum user reported this.</td></tr>
<tr><td>Server won&#8217;t start</td><td>Port 8000 is taken</td><td>Check the Output Log. Change the port in Editor Preferences or with <code>-ModelContextProtocolPort=N</code>, then regenerate the config.</td></tr>
<tr><td>Tool schema looks stale</td><td>Cached toolset list</td><td>Run <code>ModelContextProtocol.RefreshTools</code> and reconnect.</td></tr>
<tr><td>New C++ tool missing</td><td>Live Coding doesn&#8217;t add new <code>UFUNCTION</code>s</td><td>Restart the editor.</td></tr>
<tr><td>Error lines in the log on connect</td><td>A new client probes <code>server/discover</code>. The 5.8.3 server answers MethodNotFound and the client falls back.</td><td>Ignore it. A forum reporter says the connection works normally.</td></tr>
<tr><td>Edit reported success, gone after save</td><td>Reported for <code>BlueprintTools.set_pin_value</code> in 5.8.3: the Blueprint isn&#8217;t marked dirty</td><td>Save, close and reopen the asset to confirm (inferred check).</td></tr>
</tbody></table></figure>



<h2 class="wp-block-heading" id="cost">Cost, speed and token use</h2>



<p class="wp-block-paragraph">Puget&#8217;s waits ran five to ten minutes per request, and some passed fifteen. You can&#8217;t keep working in the same project while Claude edits it, so attention drifts.</p>



<p class="wp-block-paragraph">On a Claude Pro Team plan, the tester used up their session limit before midday and about 15% of the weekly allocation across four small tests. Their estimate was that regular use would burn through every token within a couple of days. Your numbers depend on the model and how tight your prompts are.</p>



<h2 class="wp-block-heading" id="security">Security</h2>



<ul class="wp-block-list">

<li>Epic&#8217;s docs say the server is loopback-only, has no authentication and isn&#8217;t safe to expose. Epic&#8217;s README adds that any process running as your user can connect. Don&#8217;t forward the port.</li>



<li>Epic&#8217;s API page describes <code>ProgrammaticToolset</code> as a sandboxed script for chaining tools, while the plugin README says its <code>execute_tool_script</code> runs arbitrary Python in the editor. The two descriptions disagree, so plan for the stricter one.</li>



<li>Puget&#8217;s tester saw Claude capture level screenshots to check its own work, so images of unreleased art can reach the model. Keep sensitive art and keys out of the session if that matters to you.</li>



<li>Telemetry is on by default. The <code>EnableAnalytics</code> variable gates it, and Epic doesn&#8217;t document what it sends.</li>



<li>Epic&#8217;s README warns against <code>--dangerously-skip-permissions</code> with this plugin loaded, so keep Claude Code&#8217;s approvals on.</li>

</ul>



<h2 class="wp-block-heading" id="own-tools">Build your own tools</h2>



<p class="wp-block-paragraph">If Claude can&#8217;t do a job, you can add the tool yourself. Epic&#8217;s recommended route is a toolset class. In Python it derives from <code>unreal.ToolsetDefinition</code>, and each tool is a static method marked with <code>@toolset_registry.tool_call</code>. Type hints and Google-style docstrings become the schema Claude sees. In C++ you derive from <code>UToolsetDefinition</code> and mark functions <code>AICallable</code>.</p>



<p class="wp-block-paragraph">Python files live under a plugin&#8217;s <code>Content/Python/</code> folder. After a change, run <code>ModelContextProtocol.RefreshTools</code>. Epic&#8217;s Claude Code plugin includes a <code>create-toolset</code> skill that scaffolds one. The code samples are in <a href="https://dev.epicgames.com/documentation/unreal-engine/unreal-mcp-in-unreal-editor" target="_blank" rel="noopener">Epic&#8217;s Unreal MCP docs</a>.</p>



<h2 class="wp-block-heading" id="alternatives">Official plugin vs third-party servers vs Unity</h2>



<figure class="wp-block-table"><table><thead><tr><th>Option</th><th>Fits</th><th>Catch</th></tr></thead><tbody>
<tr><td><strong>Epic&#8217;s Unreal MCP</strong></td><td>Most people on UE 5.8</td><td>Experimental, no auth, tool list unpublished</td></tr>
<tr><td><a href="https://github.com/kevinpbuckley/VibeUE" target="_blank" rel="noopener">VibeUE</a></td><td>UE 5.8 users who want more tools</td><td>Extends Epic&#8217;s plugin, so you still need it</td></tr>
<tr><td><a href="https://github.com/db-lyon/ue-mcp" target="_blank" rel="noopener">ue-mcp</a></td><td>UE 5.4 to 5.8 (per its README)</td><td>On 5.8 it wraps Epic&#8217;s toolsets, so you still run Epic&#8217;s registry</td></tr>
<tr><td><a href="https://github.com/ChiR24/Unreal_mcp" target="_blank" rel="noopener">EngineWire (Unreal_mcp)</a></td><td>Older engines. Its README claims UE 5.0 to 5.8.</td><td>Also sold on Fab. Its own capability counts vary between pages.</td></tr>
<tr><td><a href="https://github.com/chongdashu/unreal-mcp" target="_blank" rel="noopener">chongdashu/unreal-mcp</a> and <a href="https://github.com/runreal/unreal-mcp" target="_blank" rel="noopener">runreal/unreal-mcp</a></td><td>UE 5.4 and 5.5 projects</td><td>Last commits April and June 2025</td></tr>
<tr><td><strong>No MCP</strong></td><td>Claude Code editing your C++ and Python only</td><td>No live editor access</td></tr>
</tbody></table></figure>



<p class="wp-block-paragraph">Unity is different. Its official route now runs through the Unity CLI, and our <a href="https://gamedevaihub.com/claude-code-unity-mcp-setup/">Claude Code Unity MCP setup</a> covers it. For how Unreal stacks up against Godot and Unity under Claude Code, see <a href="https://gamedevaihub.com/claude-code-game-development/">Claude Code for game development</a>.</p>



<h2 class="wp-block-heading" id="who">Who should use it</h2>



<p class="wp-block-paragraph"><strong>Use it now</strong> if you&#8217;re on UE 5.8, you know your project well, and you want help with greyboxing, repetitive setup and wiring simple Blueprints. Keep Git on and review every change.</p>



<p class="wp-block-paragraph"><strong>Wait</strong> if you&#8217;re new to Unreal and hoping the AI fills the gap. Puget&#8217;s tester lost track of what the AI had built and couldn&#8217;t repair it alone. Wait too if your studio restricts where project data can go, or if you need PCG graphs or player input built from scratch.</p>



<p class="wp-block-paragraph"><strong>Your next step</strong> is to run the <a href="#first-session">first safe session</a> on a branch. If the actor count matches your Outliner and undo works, you&#8217;re ready for real work.</p>



<h2 class="wp-block-heading" id="faq">FAQ</h2>



<h3 class="wp-block-heading">Does UE 5.8 include MCP by default?</h3>



<p class="wp-block-paragraph">The plugin ships with the engine, but you enable it yourself, and Auto Start Server is off until you turn it on.</p>



<h3 class="wp-block-heading">Is it free?</h3>



<p class="wp-block-paragraph">The plugin is part of the engine. The model side costs money. Claude Code needs a Claude plan or API credits, and Puget&#8217;s tester burned through plan limits fast.</p>



<h3 class="wp-block-heading">Does it work with Cursor, Gemini or Codex?</h3>



<p class="wp-block-paragraph">Epic&#8217;s config command writes files for Cursor, VS Code, Gemini and Codex as well as Claude Code, and its docs name Cursor and the MCP Inspector as example clients.</p>



<h3 class="wp-block-heading">Can it run on a remote machine?</h3>



<p class="wp-block-paragraph">Not safely. Epic says the server is built for local use, with no authentication and loopback binding.</p>



<h3 class="wp-block-heading">Does it replace Blueprint knowledge?</h3>



<p class="wp-block-paragraph">No. Puget&#8217;s tester says it cuts the effort of getting something in place, but you still need to understand what it built.</p>



<h2 class="wp-block-heading" id="sources">Sources</h2>



<ul class="wp-block-list">

<li><a href="https://dev.epicgames.com/documentation/unreal-engine/unreal-mcp-in-unreal-editor" target="_blank" rel="noopener">Epic: Unreal MCP in Unreal Editor</a></li>



<li><a href="https://www.unrealengine.com/news/unreal-engine-5-8-is-now-available" target="_blank" rel="noopener">Epic: Unreal Engine 5.8 announcement</a></li>



<li><a href="https://github.com/EpicGames/unreal-engine-skills-for-claude-code-plugin" target="_blank" rel="noopener">Epic: Claude Code plugin and README</a></li>



<li><a href="https://forums.unrealengine.com/t/5-8-1-hotfix-released/2738864" target="_blank" rel="noopener">Epic forums: 5.8.1 hotfix notes</a></li>



<li><a href="https://www.pugetsystems.com/blog/2026/07/09/unreal-engine-mcp-hands-on-testing-ai-inside-the-editor/" target="_blank" rel="noopener">Puget Systems: Unreal Engine MCP hands-on test</a></li>



<li><a href="https://code.claude.com/docs/en/mcp" target="_blank" rel="noopener">Anthropic: Claude Code MCP docs</a></li>

</ul>

]]></content:encoded>
					
					<wfw:commentRss>https://gamedevaihub.com/unreal-engine-5-8-mcp-server/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Text to 3D Game Assets: The AI Tools That Make Models You Can Ship</title>
		<link>https://gamedevaihub.com/text-to-3d-game-assets/</link>
					<comments>https://gamedevaihub.com/text-to-3d-game-assets/#respond</comments>
		
		<dc:creator><![CDATA[Adrian]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 20:50:04 +0000</pubDate>
				<category><![CDATA[3D & Audio]]></category>
		<guid isPermaLink="false">https://gamedevaihub.com/?p=20351</guid>

					<description><![CDATA[Most AI 3D tools turn your prompt into an image first. Here are the 8 that make shippable game assets, what a usable model really costs, and the cleanup steps.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>In a <a href="https://digitalcommons.lindenwood.edu/faculty-research-papers/813" target="_blank" rel="noopener">2026 Lindenwood University study</a>, AI built a tavern scene in 238 minutes. The human artist needed 716. The AI version also carried 32.78 million triangles. The human one had 293,828.</strong></p>



<p class="wp-block-paragraph">Text-to-3D gives you a fast first draft and a big cleanup bill. Below are the eight tools worth your money for game work, ranked. For each one: the settings that shrink that bill, the real cost per model, and the licence trap in its free tier. Meshy leads for textured props. Tripo leads for clean topology and rigs.</p>



<p class="wp-block-paragraph"><em>Research-based picks, checked against each tool&#8217;s docs, pricing pages, licence terms and published tests.</em></p>



<h2 class="wp-block-heading">Quick picks</h2>



<figure class="wp-block-table"><table><thead><tr><th>Tool</th><th>Best for</th><th>Text mode</th><th>Paid from</th><th>Free tier for commercial games?</th></tr></thead><tbody><tr><td><a href="https://www.meshy.ai/?via=gamedev" target="_blank" rel="sponsored nofollow noopener">Meshy</a></td><td>Textured props, beginners</td><td>Text or image</td><td>$20/mo</td><td>Yes, with credit to Meshy (CC BY 4.0)</td></tr><tr><td><a href="https://studio.tripo3d.ai?via=gamedev" target="_blank" rel="sponsored nofollow noopener">Tripo</a></td><td>Clean topology, quads, rigs</td><td>Text or image</td><td>$20/mo</td><td>No (non-commercial)</td></tr><tr><td>Hyper3D Rodin</td><td>Buildings, size-controlled props</td><td>Text becomes an image first</td><td>$30/mo</td><td>Pay as you go ($0.75 per kept model)</td></tr><tr><td>Tencent HY 3D</td><td>Clean geometry via API</td><td>Text or image</td><td>$15 per 1,000 credits</td><td>Yes, via the API (200 free credits)</td></tr><tr><td><a href="https://app.sloyd.ai?aff=1xpY0Iu2KO4M" target="_blank" rel="sponsored nofollow noopener">Sloyd</a></td><td>Lots of simple props, flat fee</td><td>Text or image</td><td>$15/mo</td><td>No (personal use)</td></tr><tr><td>Unity 3D Object Generator</td><td>Static props inside Unity</td><td>Text becomes an image first</td><td>$10/mo (Personal)</td><td>Trial only</td></tr><tr><td>Autodesk Wonder 3D</td><td>Free experiments</td><td>Text, image or sketch</td><td>Free tier</td><td>Free credits, Autodesk terms apply</td></tr><tr><td>TRELLIS.2 / Pixal3D</td><td>Free, local, commercially clean</td><td>Image only</td><td>Free (your GPU)</td><td>Yes (MIT)</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">How text-to-3D works (and why it changes what you buy)</h2>



<p class="key-insight wp-block-paragraph">Most text-to-3D tools turn your prompt into a picture first. Then they turn the picture into a mesh.</p>



<p class="wp-block-paragraph">Rodin&#8217;s API docs say it outright: &#8220;The prompt is first rendered to an image.&#8221; Spline, Ludo, Kaedim and Unity&#8217;s generator document the same two-step route. Even Microsoft&#8217;s TRELLIS team says its text models are &#8220;less creative and detailed due to data limitation&#8221; than its image models.</p>



<p class="wp-block-paragraph">So when you compare tools, compare how well they turn a reference image into a clean mesh. It&#8217;s also why the strongest game workflow is image-to-3D with concept art you control, so every asset keeps the same style and proportions.</p>



<p class="wp-block-paragraph">The output also needs work. Generators extract a dense, triangulated shell with one texture set. Static props survive that, but characters don&#8217;t, because anything that bends needs edge loops at the joints and no tool reliably builds them yet.</p>



<h2 class="wp-block-heading">The 8 best text-to-3D tools for game assets</h2>



<h3 class="wp-block-heading">1. Meshy: best for textured props and fast iteration</h3>



<figure class="wp-block-image size-medium_large"><img fetchpriority="high" decoding="async" width="768" height="480" src="https://gamedevaihub.com/wp-content/uploads/2026/10/meshy-homepage-768x480.webp" alt="Meshy homepage" class="wp-image-20343" srcset="https://gamedevaihub.com/wp-content/uploads/2026/10/meshy-homepage-768x480.webp 768w, https://gamedevaihub.com/wp-content/uploads/2026/10/meshy-homepage-300x187.webp 300w, https://gamedevaihub.com/wp-content/uploads/2026/10/meshy-homepage.webp 900w" sizes="(max-width: 768px) 100vw, 768px" /></figure>



<p class="wp-block-paragraph">Meshy&#8217;s strength is texture. In a three-tool test written by a Meshy technical artist, Meshy led on textured output but came last on raw shape. Meshy 6 sits third on <a href="https://huggingface.co/spaces/3d-arena/3d-arena" target="_blank" rel="noopener">3D Arena</a>, a public leaderboard of human votes on image-to-3D results.</p>



<ul class="wp-block-list">
<li><strong>Game settings:</strong> Remesh to a target between 100 and 300,000 faces (default 30,000). In the web app, remesh, rigging and animation cost 0 credits. The free plan only offers a 10K remesh target.</li>

<li><strong>Textures:</strong> PBR maps (base colour, metallic, roughness, normal) up to 8K. Turn on lighting removal, but note it only works on the meshy-6 model.</li>

<li><strong>Rigging:</strong> humanoid bipeds only, with 500+ animations.</li>

<li><strong>Engines:</strong> DCC Bridge to Blender, Unity, Unreal, Godot, Roblox, Maya and 3ds Max on Pro and up.</li>

<li><strong>Price:</strong> Pro $20, Premium $40, Ultra $100 per month. A textured model costs 30 credits, about $0.60 on Pro, and Pro gives you 4 free retries per task.</li>

<li><strong>Licence:</strong> paid users own their output. Free output belongs to Meshy, licensed to you under CC BY 4.0, so you must credit Meshy. Meshy trains on non-Enterprise inputs and outputs unless you email support to opt out.</li>

<li><strong>Watch out:</strong> geometry is the weak spot. In a small <a href="https://www.top3d.ai/learn/retopology-comparison-2025" target="_blank" rel="noopener">Top3D.ai</a> retopology test, Meshy meshes still had non-manifold edges after a merge pass. Raw Meshy 7.1 meshes can reach 80 million triangles before simplification, so always remesh. Look-alike &#8220;Meshy&#8221; apps from other developers sell weekly plans on iOS, so download from meshy.ai only.</li>
</ul>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://www.meshy.ai/?via=gamedev" target="_blank" rel="sponsored nofollow noopener">Try Meshy free</a></div>
</div>



<h3 class="wp-block-heading">2. Tripo: best for clean topology, quads and rigs</h3>



<figure class="wp-block-image size-medium_large"><img decoding="async" width="768" height="480" src="https://gamedevaihub.com/wp-content/uploads/2026/10/tripo-homepage-768x480.webp" alt="Tripo homepage" class="wp-image-20344" srcset="https://gamedevaihub.com/wp-content/uploads/2026/10/tripo-homepage-768x480.webp 768w, https://gamedevaihub.com/wp-content/uploads/2026/10/tripo-homepage-300x187.webp 300w, https://gamedevaihub.com/wp-content/uploads/2026/10/tripo-homepage.webp 900w" sizes="(max-width: 768px) 100vw, 768px" /></figure>



<p class="wp-block-paragraph">Tripo is built around topology. Its P2.0 model generates quad meshes directly, and its smart low-poly mode targets 1,000 to 20,000 faces. Even in that test written by a Meshy technical artist, Tripo came first on geometry and topology.</p>



<ul class="wp-block-list">
<li><strong>Game settings:</strong> quad output, smart low-poly, a face limit, pivot to centre-bottom, forced symmetry and UV export by default.</li>

<li><strong>Rigging:</strong> biped, quadruped, hexapod, octopod, avian, serpentine and aquatic skeletons, with a Mixamo-compatible spec.</li>

<li><strong>Engines:</strong> plugins for Blender, Unity, Unreal, Godot, Maya, 3ds Max, ZBrush and Roblox.</li>

<li><strong>Price:</strong> Pro $20 per month for 3,000 credits, Max $90. A textured PBR model costs about $0.20 on Pro, and Pro lists unlimited free retries.</li>

<li><strong>Licence:</strong> paid users keep their rights, and Tripo&#8217;s terms say it won&#8217;t use paid users&#8217; inputs or outputs as training data. Free output is public and non-commercial.</li>

<li><strong>Watch out:</strong> the convert step bakes normal and AO detail into the base colour by default, so switch baking off if you want clean PBR maps. Remeshing a rigged model deletes the rig, so fix topology first. API users should set the model version, because the API otherwise uses v2.5, a model from January 2025.</li>
</ul>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://studio.tripo3d.ai?via=gamedev" target="_blank" rel="sponsored nofollow noopener">Try Tripo free</a></div>
</div>



<p class="wp-block-paragraph">Comparing just these two? Read the full <a href="https://gamedevaihub.com/meshy-vs-tripo/">Meshy vs Tripo breakdown</a>.</p>



<h3 class="wp-block-heading">3. Hyper3D Rodin: best for buildings and size-controlled props</h3>



<figure class="wp-block-image size-medium_large"><img decoding="async" width="768" height="480" src="https://gamedevaihub.com/wp-content/uploads/2026/10/rodin-homepage-768x480.webp" alt="Hyper3D Rodin homepage" class="wp-image-20345" srcset="https://gamedevaihub.com/wp-content/uploads/2026/10/rodin-homepage-768x480.webp 768w, https://gamedevaihub.com/wp-content/uploads/2026/10/rodin-homepage-300x187.webp 300w, https://gamedevaihub.com/wp-content/uploads/2026/10/rodin-homepage.webp 900w" sizes="(max-width: 768px) 100vw, 768px" /></figure>



<p class="wp-block-paragraph">Rodin gives you the tightest size and polygon control. You can pick quad presets of 50K, 18K, 8K or 4K faces, lock the bounding box so a prop fits its space, and force a T or A pose for characters. One developer who couldn&#8217;t get Meshy or Tripo buildings under budget put it plainly: &#8220;Rodin was used for all buildings.&#8221;</p>



<ul class="wp-block-list">
<li><strong>Engines:</strong> plugins for Blender, Unity, Unreal and Godot, plus ComfyUI and an MCP server.</li>

<li><strong>Rigging:</strong> templates for UE humans, Unity humans, ActorCore, quadrupeds, birds, dragons and custom skeletons up to 256 nodes.</li>

<li><strong>Price:</strong> Creator $30 per month (about 60 models), Business $120 (about 416 models, with API access). You preview each result before credits are spent, so you don&#8217;t pay for rejects.</li>

<li><strong>Watch out:</strong> pick the PBR material mode. The Shaded and Hybrid modes deliberately bake lighting into the colour map, and delighting is off by default. Its Trustpilot score is 2.8 from 57 reviews, with complaints about quality and refunds.</li>
</ul>



<h3 class="wp-block-heading">4. Tencent HY 3D: best for clean geometry through an API</h3>



<figure class="wp-block-image size-medium_large"><img loading="lazy" decoding="async" width="768" height="480" src="https://gamedevaihub.com/wp-content/uploads/2026/10/hunyuan-homepage-768x480.webp" alt="Tencent HY 3D homepage" class="wp-image-20346" srcset="https://gamedevaihub.com/wp-content/uploads/2026/10/hunyuan-homepage-768x480.webp 768w, https://gamedevaihub.com/wp-content/uploads/2026/10/hunyuan-homepage-300x187.webp 300w, https://gamedevaihub.com/wp-content/uploads/2026/10/hunyuan-homepage.webp 900w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<p class="wp-block-paragraph">HY 3D is the hosted version of Hunyuan3D 3.x. In the same small Top3D.ai test, it produced the cleanest geometry, with zero non-manifold edges and no manual fixes. It&#8217;s also the default model inside Unity&#8217;s own 3D generator.</p>



<ul class="wp-block-list">
<li><strong>Game settings:</strong> face count from 3,000 to 1.5 million (default 500,000, so set it), plus add-ons for smart topology (50 credits), UV unwrap (10) and auto-rigging (10).</li>

<li><strong>Price:</strong> prepaid packs from $15 for 1,000 credits. A textured PBR model costs 35 credits, about $0.53.</li>

<li><strong>Licence:</strong> the API terms assign output rights to you, so use the API for commercial work.</li>

<li><strong>Watch out:</strong> the default concurrency is 3 jobs, and each extra slot costs $5,000 a month. That&#8217;s fine solo and a wall for batch pipelines.</li>
</ul>



<h3 class="wp-block-heading">5. Sloyd: best for lots of simple props on a flat fee</h3>



<figure class="wp-block-image size-medium_large"><img loading="lazy" decoding="async" width="768" height="480" src="https://gamedevaihub.com/wp-content/uploads/2026/10/sloyd-homepage-768x480.webp" alt="Sloyd homepage" class="wp-image-20347" srcset="https://gamedevaihub.com/wp-content/uploads/2026/10/sloyd-homepage-768x480.webp 768w, https://gamedevaihub.com/wp-content/uploads/2026/10/sloyd-homepage-300x187.webp 300w, https://gamedevaihub.com/wp-content/uploads/2026/10/sloyd-homepage.webp 900w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<p class="wp-block-paragraph">Sloyd charges a flat fee instead of per-model credits. It also has a parametric template editor that builds models from adjustable parts, which suits clean low-poly furniture and props.</p>



<ul class="wp-block-list">
<li><strong>Price:</strong> Plus is $15 per month ($12.50 billed yearly) for &#8220;unlimited&#8221; text and image generations under fair-use limits. Pro is $50 and adds the right to resell assets on marketplaces. The free guest tier allows 1 generation per day for personal use.</li>

<li><strong>Engines:</strong> free plugins for Roblox, Blender, Godot, Maya, Unity and Unreal.</li>

<li><strong>Watch out:</strong> users report a polygon floor around 5,000, and one reviewer waited up to four days for a support reply.</li>
</ul>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://app.sloyd.ai?aff=1xpY0Iu2KO4M" target="_blank" rel="sponsored nofollow noopener">Try Sloyd free</a></div>
</div>



<h3 class="wp-block-heading">6. Unity 3D Object Generator: best for static props inside Unity</h3>



<figure class="wp-block-image size-medium_large"><img loading="lazy" decoding="async" width="768" height="480" src="https://gamedevaihub.com/wp-content/uploads/2026/10/unity-ai-homepage-768x480.webp" alt="Unity AI homepage" class="wp-image-20348" srcset="https://gamedevaihub.com/wp-content/uploads/2026/10/unity-ai-homepage-768x480.webp 768w, https://gamedevaihub.com/wp-content/uploads/2026/10/unity-ai-homepage-300x187.webp 300w, https://gamedevaihub.com/wp-content/uploads/2026/10/unity-ai-homepage.webp 900w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<p class="wp-block-paragraph">Unity&#8217;s in-editor generator, in open beta since May 2026, drops a prefab with mesh and materials straight into your project. Its default model is Hunyuan 3D 3.0 Pro, and a text generation costs about 8 Unity credits.</p>



<ul class="wp-block-list">
<li><strong>Limits:</strong> simple single-part props only. No rigging, no animation. Text prompts make a reference image first.</li>

<li><strong>Price:</strong> included on Unity Pro. Personal users get a trial, then pay $10 per month.</li>

<li><strong>Useful detail:</strong> every asset carries embedded metadata that flags it as AI-generated, which helps when you fill in Steam&#8217;s AI disclosure.</li>
</ul>



<h3 class="wp-block-heading">7. Autodesk Wonder 3D: best for free experiments</h3>



<figure class="wp-block-image size-medium_large"><img loading="lazy" decoding="async" width="768" height="480" src="https://gamedevaihub.com/wp-content/uploads/2026/10/wonder3d-homepage-768x480.webp" alt="Autodesk Flow Studio homepage" class="wp-image-20349" srcset="https://gamedevaihub.com/wp-content/uploads/2026/10/wonder3d-homepage-768x480.webp 768w, https://gamedevaihub.com/wp-content/uploads/2026/10/wonder3d-homepage-300x187.webp 300w, https://gamedevaihub.com/wp-content/uploads/2026/10/wonder3d-homepage.webp 900w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<p class="wp-block-paragraph">Autodesk added Wonder 3D to Flow Studio in March 2026. It turns text, images or sketches into 3D, then offers remesh and texture passes. Each generation costs 20 credits on every plan, including the free one.</p>



<ul class="wp-block-list">
<li><strong>Watch out:</strong> its launch post lists no export formats or PBR details, and says generated assets &#8220;should be reviewed before production use.&#8221; Treat it as a sandbox until you&#8217;ve checked the output.</li>
</ul>



<h3 class="wp-block-heading">8. Free and open source: TRELLIS.2 and Pixal3D in ComfyUI</h3>



<figure class="wp-block-image size-medium_large"><img loading="lazy" decoding="async" width="768" height="480" src="https://gamedevaihub.com/wp-content/uploads/2026/10/trellis2-homepage-768x480.webp" alt="TRELLIS.2 on GitHub" class="wp-image-20350" srcset="https://gamedevaihub.com/wp-content/uploads/2026/10/trellis2-homepage-768x480.webp 768w, https://gamedevaihub.com/wp-content/uploads/2026/10/trellis2-homepage-300x187.webp 300w, https://gamedevaihub.com/wp-content/uploads/2026/10/trellis2-homepage.webp 900w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<p class="wp-block-paragraph">If you have a GPU, you can generate locally for the cost of electricity. The cleanest route is ComfyUI&#8217;s native TRELLIS.2 and Pixal3D nodes. ComfyUI rebuilt them without NVIDIA&#8217;s non-commercial rendering libraries and calls the result &#8220;free to use, including commercially.&#8221;</p>



<ul class="wp-block-list">
<li><strong>Hardware:</strong> official TRELLIS.2 needs 24 GB of VRAM on Linux. The trellis.cpp port runs it on 16 GB cards, AMD and Apple Silicon. Stable Fast 3D runs on about 6 GB.</li>

<li><strong>Cloud option:</strong> a rented RTX 4090 costs about $0.34 an hour. At roughly 3 minutes per model, that&#8217;s a few cents of GPU time each.</li>

<li><strong>Licence trap:</strong> Hunyuan3D 2.1 ranks higher on 3D Arena than TRELLIS.2, but its licence &#8220;DOES NOT APPLY IN THE EUROPEAN UNION, UNITED KINGDOM AND SOUTH KOREA&#8221; and covers outputs. Any game sold there is exposed, wherever you live.</li>

<li><strong>Watch out:</strong> these models take images, not text, so pair them with an image generator. Installs on Windows can take days.</li>
</ul>



<h3 class="wp-block-heading">Tools you&#8217;ll still see recommended that no longer work</h3>



<p class="note warning wp-block-paragraph">Skip these three if a list recommends them. None of them generates anything today.</p>



<ul class="wp-block-list">
<li><strong>Luma Genie</strong> shut down on January 1, 2026, yet 2026 &#8220;best of&#8221; lists still recommend it as the best free option.</li>

<li><strong>CSM Cube</strong> went offline after Google bought Common Sense Machines in January 2026. Its old model, listed as &#8220;PicGen3D&#8221;, still sits first on 3D Arena.</li>

<li><strong>Masterpiece X Generate</strong> is now a legacy app that no longer loads.</li>
</ul>



<h2 class="wp-block-heading">What a usable asset really costs</h2>



<p class="wp-block-paragraph">Credits are the cheap part of a usable asset. Per textured model, they cost cents:</p>



<figure class="wp-block-table"><table><thead><tr><th>Tool and plan</th><th>Cost per textured model</th><th>With retopology and rig</th><th>Rejected attempts</th></tr></thead><tbody><tr><td>Tripo Pro</td><td>~$0.20</td><td>~$0.40</td><td>Unlimited free retries</td></tr><tr><td>Rodin Business</td><td>~$0.29</td><td>~$0.58</td><td>You only pay for kept results</td></tr><tr><td>Rodin Creator</td><td>~$0.50</td><td>~$1.00</td><td>You only pay for kept results</td></tr><tr><td>HY 3D API</td><td>~$0.53</td><td>~$1.58</td><td>Failed jobs are free</td></tr><tr><td>Meshy Pro</td><td>~$0.60</td><td>~$0.80</td><td>4 free retries per task</td></tr><tr><td>Sloyd Plus</td><td>~$0 (flat fee)</td><td>~$0</td><td>Fair-use limits</td></tr><tr><td>Local TRELLIS.2</td><td>Cents of GPU time</td><td>Plus your own retopology</td><td>Free</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Now add the human time. One independent review timed 25 minutes of retopology and UV cleanup on a single 42,000-triangle Meshy helmet. A US special-effects artist&#8217;s median wage is $49.06 an hour (<a href="https://www.bls.gov/ooh/arts-and-design/multimedia-artists-and-animators.htm" target="_blank" rel="noopener">BLS</a>), so that one cleanup costs about $20 of labour against $0.60 of credits. Outsourcing studio Pixune quotes $500 to $2,500 for one hand-made 3D prop, so AI plus an hour of your own cleanup still costs a fraction of a commission.</p>



<p class="wp-block-paragraph">So pick the tool whose output needs the least fixing for your asset type, even if its credits cost a little more.</p>



<h2 class="wp-block-heading">The game-ready checklist</h2>



<p class="wp-block-paragraph">A model is game-ready when it passes these ten checks:</p>



<ol class="wp-block-list steps">
<li>Triangle count fits your budget (Quest 2 targets under 750,000 triangles per frame in total, per <a href="https://developers.meta.com/horizon/resources/device-optimization-comparison/" target="_blank" rel="noopener">Meta</a>).</li>

<li>No holes, floating parts or non-manifold edges.</li>

<li>Clean UVs without overlaps.</li>

<li>PBR maps with no lighting painted into the colour.</li>

<li>Real-world scale in metres.</li>

<li>Pivot at the base, or at the hinge for doors and lids.</li>

<li>A simple collision mesh.</li>

<li>LODs for distance.</li>

<li>Imports without errors or wrong materials.</li>

<li>A rig that deforms cleanly, if it moves.</li>
</ol>



<p class="wp-block-paragraph">Static props usually pass after decimation, LODs and a scale fix. Characters fail at step 10 most often. In a Meshy technical artist&#8217;s 50-asset Unity project, 10 of 15 AI humanoids failed auto-rigging &#8220;due to irregular topology.&#8221;</p>



<h2 class="wp-block-heading">From generated mesh to engine: the cleanup pipeline</h2>



<ol class="wp-block-list steps">
<li><strong>Generate with game limits on.</strong> Set a face target, quads or low-poly, and PBR before you generate.</li>

<li><strong>Clean.</strong> Merge vertices by distance, delete loose parts and recalculate normals in Blender.</li>

<li><strong>Fix scale and pivot.</strong> Size it in metres and put the origin where the object rotates or rests.</li>

<li><strong>Fix topology.</strong> Decimate static props. Retopologise anything that deforms, with Blender&#8217;s QuadriFlow or Quad Remesher. Quad Remesher&#8217;s $59.90 Indie licence is &#8220;NOT usable for commercial purpose&#8221;, so buy Pro at $109.90 if you sell your game.</li>

<li><strong>Unwrap and bake.</strong> Treat the AI mesh as your high-poly. Bake normals and the base colour onto your clean low-poly. In Blender, tick only &#8220;Color&#8221; in the Diffuse bake so you don&#8217;t bake light into it.</li>

<li><strong>Shrink textures.</strong> Four 4K maps eat about 85 MB of VRAM with mips in BC7. Most props look the same at 1K or 2K.</li>

<li><strong>Add LODs and collision.</strong> Then import.</li>
</ol>



<p class="wp-block-paragraph">Batch steps 2, 6 and 7 with the free <a href="https://gltf-transform.dev/cli" target="_blank" rel="noopener">glTF-Transform</a> command line. Pass flags on purpose, because its optimize command simplifies geometry by default.</p>



<h3 class="wp-block-heading">Import notes for Unity, Unreal and Godot</h3>



<ul class="wp-block-list">
<li><strong>Unity:</strong> import GLB with the glTFast package. glTF packs roughness in the green channel and metal in blue, while URP&#8217;s packed map wants metal in red and smoothness (1 minus roughness) in alpha. Repack once with a script. Unity 6.2 and later can generate LODs at import with one checkbox (<a href="https://docs.unity3d.com/6000.2/Documentation/Manual/lod/mesh-lod-introduction.html" target="_blank" rel="noopener">Mesh LOD</a>). It ignores skin weights, so use it for props, not characters.</li>

<li><strong>Unreal Engine 5:</strong> Nanite renders dense static meshes well on PC and console, but it doesn&#8217;t support VR stereo rendering or translucency, and it stores about 14.4 bytes per triangle on disk (<a href="https://dev.epicgames.com/documentation/en-us/unreal-engine/nanite-virtualized-geometry-in-unreal-engine" target="_blank" rel="noopener">Epic</a>). FBX import only connects colour and normal maps automatically. Name collision meshes UCX_ so Unreal picks them up.</li>

<li><strong>Godot:</strong> glTF is the recommended format. Blender exports materials with backface culling off by default, so turn it on before export. Add &#8220;-colonly&#8221; to a mesh name to import it as collision. More in our guide to <a href="https://gamedevaihub.com/how-to-use-ai-with-godot/">using AI with Godot</a>.</li>
</ul>



<p class="wp-block-paragraph">Making a 2D game? Render your 3D models into sprite sheets. Our <a href="https://gamedevaihub.com/best-ai-sprite-sheet-generators/">sprite sheet generator guide</a> covers the tools.</p>



<h2 class="wp-block-heading">Rights, Steam disclosure and how players react</h2>



<h3 class="wp-block-heading">Who owns AI-generated 3D models</h3>



<p class="wp-block-paragraph">&#8220;Commercial use allowed&#8221; doesn&#8217;t mean you own a copyright. The US Copyright Office says &#8220;the mere provision of prompts&#8221; isn&#8217;t enough for protection, but your human edits and arrangements can be protected (<a href="https://www.copyright.gov/newsnet/2025/1060.html" target="_blank" rel="noopener">USCO</a>). Meshy&#8217;s own terms warn that output &#8220;MAY NOT QUALIFY FOR INTELLECTUAL PROPERTY PROTECTION.&#8221;</p>



<h3 class="wp-block-heading">Steam&#8217;s AI disclosure</h3>



<p class="wp-block-paragraph">Since Valve rewrote its rules in January 2026, code helpers fall outside the disclosure, but AI content in your game or on your store page still counts. One developer&#8217;s disclosure shows the honest format: Tripo models &#8220;are used as a base for some 3D assets. The developer performs mesh editing, scaling, texture and normal map adjustments.&#8221; Full rules in our <a href="https://gamedevaihub.com/steam-ai-disclosure-guide/">Steam AI disclosure guide</a>.</p>



<h3 class="wp-block-heading">How players react</h3>



<p class="wp-block-paragraph">In a Quantic Foundry survey of 1,799 gamers, 85% rated generative AI in games below neutral (<a href="https://quanticfoundry.com/2025/12/18/gen-ai/" target="_blank" rel="noopener">source</a>). Yet AI-disclosed games made up 30.8% of Steam releases in 2026 through July, by Sulka Haro&#8217;s count of 53,597 games. Art drew more negativity than other uses, so keep AI models in the background and hand-finish your hero assets. More data in <a href="https://gamedevaihub.com/will-players-punish-ai-art-in-games/">will players punish AI art</a>.</p>



<h3 class="wp-block-heading">Game jams and asset stores</h3>



<p class="wp-block-paragraph">GMTK Game Jam disqualifies AI-generated art. TurboSquid bans AI models. Fab, Sketchfab and the Unity Asset Store accept them with an AI tag.</p>



<h2 class="wp-block-heading">FAQ</h2>


<div id="rank-math-faq" class="rank-math-block">
<div class="rank-math-list ">
<div id="faq-question-1" class="rank-math-list-item">
<h3 class="rank-math-question ">Can AI generate game-ready 3D models?</h3>
<div class="rank-math-answer ">

<p>Yes for static props, after you decimate, add LODs and fix scale. Not yet for animated characters without retopology and rig fixes. Generators still output dense triangle meshes with no edge loops at the joints.</p>

</div>
</div>
<div id="faq-question-2" class="rank-math-list-item">
<h3 class="rank-math-question ">Is text-to-3D or image-to-3D better for games?</h3>
<div class="rank-math-answer ">

<p>Image-to-3D. Most text modes generate an image first anyway, so feeding your own concept art keeps style and proportions consistent across a whole set.</p>

</div>
</div>
<div id="faq-question-3" class="rank-math-list-item">
<h3 class="rank-math-question ">What&#8217;s the best free text-to-3D tool for games?</h3>
<div class="rank-math-answer ">

<p>For commercial games, the best free route is TRELLIS.2 or Pixal3D in ComfyUI on your own GPU. Meshy&#8217;s free tier works if you credit Meshy under CC BY 4.0. Tripo&#8217;s free tier is non-commercial.</p>

</div>
</div>
<div id="faq-question-4" class="rank-math-list-item">
<h3 class="rank-math-question ">Can I sell a game made with AI-generated 3D models?</h3>
<div class="rank-math-answer ">

<p>Yes. Use a paid plan or a commercially licensed open model, disclose the AI content on Steam, and edit the assets. Your edits are what copyright can protect.</p>

</div>
</div>
<div id="faq-question-5" class="rank-math-list-item">
<h3 class="rank-math-question ">Which AI tool is best for rigged characters?</h3>
<div class="rank-math-answer ">

<p>Tripo and Rodin. Tripo rigs seven skeleton types with a Mixamo-compatible spec. Rodin offers Unreal, Unity and ActorCore human templates plus custom skeletons. Meshy only rigs humanoids.</p>

</div>
</div>
<div id="faq-question-6" class="rank-math-list-item">
<h3 class="rank-math-question ">How many polygons should a game asset have?</h3>
<div class="rank-math-answer ">

<p>It depends on your platform&#8217;s frame budget. Quest 2 targets under 750,000 triangles per frame in total, so a scene of 100 visible objects averages 7,500 each. Background props usually need far fewer than heroes.</p>

</div>
</div>
</div>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://gamedevaihub.com/text-to-3d-game-assets/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Best Godot MCP Servers for Claude Code (2026): Free vs Paid</title>
		<link>https://gamedevaihub.com/best-godot-mcp-servers-claude-code/</link>
					<comments>https://gamedevaihub.com/best-godot-mcp-servers-claude-code/#respond</comments>
		
		<dc:creator><![CDATA[Adrian]]></dc:creator>
		<pubDate>Mon, 19 Oct 2026 10:39:19 +0000</pubDate>
				<category><![CDATA[AI Coding & Engines]]></category>
		<guid isPermaLink="false">https://gamedevaihub.com/?p=20334</guid>

					<description><![CDATA[Eight Godot MCP servers compared for Claude Code: tool counts verified in source, price, license, Godot versions, safety, and setup.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">The most popular Godot MCP server has 6,154 stars, 14 tools, and no commit since April 16.</p>



<p class="wp-block-paragraph">That&#8217;s <a href="https://github.com/Coding-Solo/godot-mcp" target="_blank" rel="noopener">Coding-Solo/godot-mcp</a>. The star count comes from GitHub&#8217;s API, and the tool count comes from counting tool registrations in its source. Both were checked.</p>



<p class="wp-block-paragraph">A high star count shows attention. It says little about which server will read your scene tree and run your game without damaging your project files, and the directories that list these servers add no testing.</p>



<p class="wp-block-paragraph">This page sorts by fit. It compares eight servers in one table and walks through a setup for Claude Code.</p>



<p class="wp-block-paragraph">Jump to: <a href="#compare">comparison table</a> | <a href="#setup">setup</a> | <a href="#reviews">reviews</a> | <a href="#safety">safety</a> | <a href="#faq">FAQ</a></p>



<h2 class="wp-block-heading">Which Godot MCP server should you install for Claude Code?</h2>



<p class="wp-block-paragraph">For Godot 4.7 or newer, install <strong><a href="https://github.com/hi-godot/godot-ai" target="_blank" rel="noopener">hi-godot/godot-ai</a></strong>. It&#8217;s free and MIT licensed, has 47 tools by our count, and shipped v4.3.0 on October 3. On an older Godot 4.x, use <strong><a href="https://github.com/Erodenn/godot-mcp-runtime" target="_blank" rel="noopener">Erodenn/godot-mcp-runtime</a></strong>, which installs with one npx command and needs Node 20 or newer. If you only edit scripts, skip MCP and let Claude Code use the terminal.</p>



<p class="wp-block-paragraph">MCP lets Claude read your scene tree and run the editor as well as edit files.</p>



<p class="wp-block-paragraph"> We checked specs, source code, and docs but did not run the servers.</p>



<h2 class="wp-block-heading">How did we check these servers?</h2>



<p class="wp-block-paragraph">We sell no engine, plugin, or MCP server, and this page has no affiliate links.</p>



<p class="wp-block-paragraph">The numbers come from GitHub&#8217;s API, each repo&#8217;s README and source, vendor pages, and the Claude Code docs. &#8220;Counted&#8221; means we counted tool registrations in the source. &#8220;README&#8221; and &#8220;vendor&#8221; mean we took the project&#8217;s word for it.</p>



<p class="wp-block-paragraph">We did not install or run any server, so this page has no setup times, token counts, or pass and fail scores. The section on testing a server gives you five prompts to check any of them yourself. This page also does not cover:</p>



<ul class="wp-block-list">
<li>How an install behaves on Windows, macOS, or Linux</li>

<li>Token use per server</li>

<li>Whether the paid servers deliver the tool counts their vendors claim</li>

<li>Any Godot version below the minimum each project states</li>

<li>Whether any server can finish a real game</li>
</ul>



<h2 class="wp-block-heading">What is Godot MCP?</h2>



<p class="wp-block-paragraph">MCP is a standard that lets an AI client call tools on a server. A Godot MCP server gives Claude tools like <code>add_node</code> and <code>run_project</code>, so it can act on your project directly.</p>



<p class="wp-block-paragraph">Servers come in three architectures, and many mix two.</p>



<figure class="wp-block-table"><table><thead><tr><th>Architecture</th><th>How it works</th><th>What Claude can touch</th><th>Examples</th></tr></thead><tbody><tr><td>Headless (file-level)</td><td>Launches Godot from the command line and edits scene and script files</td><td>Files in your project, a launched game</td><td>Coding-Solo</td></tr><tr><td>Editor-live</td><td>A plugin inside the open editor talks to the server</td><td>Scene tree, open scenes, editor errors</td><td>godot-ai, Godlink, satelliteoflove</td></tr><tr><td>Game-runtime</td><td>A helper script runs inside the running game</td><td>Live nodes, screenshots, input, code run in the game</td><td>Godot MCP Runtime, tugcantopaloglu</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">The chain runs from Claude Code to the MCP server to Godot, which is either headless, the open editor, or the running game.</p>



<p class="wp-block-paragraph">A successful tool call proves the command ran. It doesn&#8217;t prove the game plays right, so you still have to play it.</p>



<h2 class="wp-block-heading">Do you need MCP at all?</h2>



<p class="wp-block-paragraph">Maybe not. Claude Code already runs shell commands, so it can call Godot itself.</p>



<pre class="wp-block-code"><code>godot --version
godot --headless --path . --quit
godot --headless --check-only --script res://player.gd</code></pre>



<p class="wp-block-paragraph">The first command prints the version. The second loads the project without a window and exits. The third parses one script and reports errors. If Godot isn&#8217;t on your PATH, use the full path to its executable, and run <code>godot --help</code> to confirm the flags on your version.</p>



<p class="wp-block-paragraph">That covers script edits and syntax checks. MCP adds what the terminal can&#8217;t see: the live scene tree, editor errors, running-game state, and screenshots.</p>



<figure class="wp-block-table"><table><thead><tr><th>If you want to&#8230;</th><th>Use</th></tr></thead><tbody><tr><td>Edit scripts and fix parse errors</td><td>Terminal only</td></tr><tr><td>Build or edit scenes and nodes without opening the editor</td><td>File-level MCP</td></tr><tr><td>Have Claude see the open editor, the scene tree, and errors</td><td>Editor MCP</td></tr><tr><td>Check the running game with screenshots and input</td><td>Runtime MCP</td></tr></tbody></table></figure>



<h2 class="wp-block-heading" id="compare">How do the eight Godot MCP servers compare?</h2>



<p class="wp-block-paragraph">Sorted by our pick for Claude Code. Stars and dates move weekly.</p>



<figure class="wp-block-table"><table><thead><tr><th>Server</th><th>Architecture</th><th>Price</th><th>License</th><th>Tools</th><th>Godot</th><th>Stars</th><th>Last commit</th><th>Best for</th></tr></thead><tbody><tr><td><a href="https://github.com/hi-godot/godot-ai" target="_blank" rel="noopener">hi-godot/godot-ai</a></td><td>Editor-live plus game helper</td><td>Free</td><td>MIT</td><td>47 counted (README says 46)</td><td>4.7+</td><td>3,071</td><td>Oct 3</td><td>Live editor work on Godot 4.7+</td></tr><tr><td><a href="https://github.com/Erodenn/godot-mcp-runtime" target="_blank" rel="noopener">Erodenn/godot-mcp-runtime</a></td><td>Headless plus runtime bridge</td><td>Free</td><td>MIT</td><td>39 counted</td><td>4.x</td><td>93</td><td>Sep 30</td><td>Older 4.x, runtime checks, one-command install</td></tr><tr><td><a href="https://github.com/Coding-Solo/godot-mcp" target="_blank" rel="noopener">Coding-Solo/godot-mcp</a></td><td>Headless</td><td>Free</td><td>MIT</td><td>14 counted</td><td>Not stated</td><td>6,154</td><td>Apr 16</td><td>Small scene tasks, installed from source</td></tr><tr><td><a href="https://github.com/tugcantopaloglu/godot-mcp" target="_blank" rel="noopener">tugcantopaloglu/godot-mcp</a></td><td>Headless plus runtime TCP</td><td>Free</td><td>MIT</td><td>157 counted</td><td>4.4+</td><td>493</td><td>Oct 9</td><td>Maximum coverage, largest permission surface</td></tr><tr><td><a href="https://github.com/IvanMurzak/Godot-MCP" target="_blank" rel="noopener">IvanMurzak/Godot-MCP</a></td><td>Editor, C# addon</td><td>Free (hosted backend by default)</td><td>Apache-2.0</td><td>23 counted</td><td>4.3+, mono build only</td><td>295</td><td>Oct 19</td><td>C# projects</td></tr><tr><td>Godot MCP Pro</td><td>Editor plugin</td><td>$15 once</td><td>Proprietary</td><td>163 vendor-claimed</td><td>4.4+ (vendor)</td><td>627 (repo)</td><td>Sep 24</td><td>Paying once instead of assembling a free stack</td></tr><tr><td>GDAI MCP</td><td>Editor plugin</td><td>$19 once (vendor)</td><td>Closed, binary only</td><td>31 documented</td><td>4.2+ (vendor)</td><td>n/a</td><td>n/a</td><td>A closed plugin you install once</td></tr><tr><td><a href="https://github.com/yurineko73/Godot-MCP-Native" target="_blank" rel="noopener">yurineko73/Godot-MCP-Native</a></td><td>Editor, pure GDScript</td><td>Free</td><td>MIT</td><td>155 README-claimed</td><td>Not checked</td><td>859</td><td>Aug 3</td><td>No Node or Python on your machine</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Also on our list: <a href="https://github.com/tomyud1/godot-mcp" target="_blank" rel="noopener">Godlink (tomyud1)</a> with 438 stars and Godot 4.4+, <a href="https://github.com/satelliteoflove/godot-mcp" target="_blank" rel="noopener">satelliteoflove</a> with 21 tools and Godot 4.5+, <a href="https://github.com/HaD0Yun/Doyunha-Gopeak" target="_blank" rel="noopener">GoPeak</a> on Bun, and <a href="https://github.com/fennaraOfficial/fennara-godot-ai" target="_blank" rel="noopener">Fennara</a> written in Rust. We did not verify their full tool counts.</p>



<h2 class="wp-block-heading" id="setup">How do you set up Godot MCP with Claude Code?</h2>



<p class="wp-block-paragraph">You need Claude Code and a Godot 4.x build that meets your server&#8217;s minimum. Runtime needs Node 20 or newer, Coding-Solo needs Node 18 or newer, and godot-ai needs <code>uv</code>.</p>



<p class="wp-block-paragraph">Make a Git checkpoint first, because an MCP server edits files and some edit <code>project.godot</code>.</p>



<pre class="wp-block-code"><code>git init
git add -A
git commit -m "before MCP"</code></pre>



<h3 class="wp-block-heading">Option A: godot-ai (Godot 4.7+)</h3>



<p class="wp-block-paragraph">The README gives no single command, so you install it by hand:</p>



<ol class="wp-block-list">
<li>Download a release from the <a href="https://github.com/hi-godot/godot-ai/releases" target="_blank" rel="noopener">godot-ai releases page</a>.</li>

<li>Put the add-on in <code>your-project/addons/godot_ai/</code>.</li>

<li>Enable it in Project Settings, Plugins.</li>

<li>Press Configure in the Godot AI dock. It writes the client config.</li>
</ol>



<h3 class="wp-block-heading">Option B: Godot MCP Runtime (any Godot 4.x, Node 20+)</h3>



<pre class="wp-block-code"><code>claude mcp add godot -e GODOT_PATH=/path/to/godot -- npx -y godot-mcp-runtime</code></pre>



<p class="wp-block-paragraph">Everything after the double hyphen is the server command. Everything before it is Claude Code&#8217;s own flags. The Runtime README shows the same setup as a JSON config. Add <code>--scope project</code> to write a shared <code>.mcp.json</code>, or <code>--scope user</code> to use the server in every project. The default scope is local to you and this project. The <a href="https://code.claude.com/docs/en/mcp" target="_blank" rel="noopener">Claude Code MCP docs</a> list these flags.</p>



<h3 class="wp-block-heading">Check that it works</h3>



<pre class="wp-block-code"><code>claude mcp list</code></pre>



<p class="wp-block-paragraph">A working server shows <code>&#x2714; Connected</code>. Start a session and run <code>/mcp</code> to see its tools. Then give Claude a read-only first task:</p>



<pre class="wp-block-code"><code>List every node in res://main.tscn. Do not change any file.</code></pre>



<p class="wp-block-paragraph">If Claude answers from the file instead of calling a tool, ask which MCP tool it used. No tool means the server isn&#8217;t connected. Our guide on <a href="https://gamedevaihub.com/how-to-use-ai-with-godot/">using AI with Godot 4</a> covers the &#8220;Connection closed&#8221; error.</p>



<h3 class="wp-block-heading">Windows, macOS, and Linux snags</h3>



<ul class="wp-block-list">
<li>On Windows, <code>GODOT_PATH</code> must point to the executable, not the folder. Escape backslashes or use forward slashes (Runtime README). If an npx server won&#8217;t start, wrap it as <code>-- cmd /c npx -y package-name</code>, the form the Godlink README uses.</li>

<li>godot-ai has two open Windows issues: <a href="https://github.com/hi-godot/godot-ai/issues/1105" target="_blank" rel="noopener">#1105</a> (self-update intermittently blocks) and <a href="https://github.com/hi-godot/godot-ai/issues/1089" target="_blank" rel="noopener">#1089</a> (editor startup took 193 seconds before the server attached).</li>

<li>On macOS, point <code>GODOT_PATH</code> at the binary inside the app bundle, not at the .app.</li>

<li>On Linux, the godot-ai README has notes for Bazzite and Fedora Atomic, and for Steam and Flatpak installs.</li>
</ul>



<h2 class="wp-block-heading" id="reviews">What should you know about each server?</h2>



<h3 class="wp-block-heading">hi-godot/godot-ai: best free pick for Godot 4.7+</h3>



<p class="wp-block-paragraph">An editor plugin plus a Python server started with <code>uvx</code>. It&#8217;s MIT licensed, has 3,071 stars, and shipped v4.3.0 on October 3. We counted 47 tools against the README&#8217;s 46, and 28 of them are <code>&lt;domain&gt;_manage</code> tools that hide many operations behind an <code>op</code> argument, so the count understates what it does.</p>



<p class="wp-block-paragraph">It needs Godot 4.7 or newer, and the open issues lean Windows. It sends opt-out anonymous usage telemetry (set <code>GODOT_AI_DISABLE_TELEMETRY=true</code> to turn it off), and <code>editor_manage</code> includes <code>game_eval</code>, which runs code in the running game.</p>



<p class="wp-block-paragraph">It suits Godot 4.7+ projects where you want live editor control. Pass if you&#8217;re on an older 4.x or dislike opt-out telemetry.</p>



<h3 class="wp-block-heading">Godot MCP Runtime: easiest free install</h3>



<p class="wp-block-paragraph">It edits headless and checks the running game through a temporary bridge it injects when you run the project and removes when it stops. It&#8217;s MIT licensed with 93 stars, and v3.8.1 shipped September 25. We counted 39 tools, and it needs Node 20+.</p>



<p class="wp-block-paragraph"><code>run_script</code> executes GDScript in the live game, and the project&#8217;s own security doc calls its guard best-effort and &#8220;not a sandbox&#8221;. A hard kill can leave the bridge autoload in <code>project.godot</code> (<a href="https://github.com/Erodenn/godot-mcp-runtime/issues/71" target="_blank" rel="noopener">issue #71</a>), so commit first.</p>



<p class="wp-block-paragraph">The repo&#8217;s author also wrote the comparison table that ranks it, so we don&#8217;t use that table&#8217;s verdicts.</p>



<p class="wp-block-paragraph">Choose it for one-command setup on any 4.x. Skip it if you can&#8217;t accept edits to <code>project.godot</code>.</p>



<h3 class="wp-block-heading">Coding-Solo/godot-mcp: most stars, fewest tools</h3>



<p class="wp-block-paragraph">It&#8217;s MIT licensed, with 6,154 stars and 14 tools by our count: launch the editor, run a project, read debug output, create a scene, add a node, save, and handle UIDs. The repo has no release or tag, and the only npm version is 0.1.1 from February 3.</p>



<p class="wp-block-paragraph">Pull request <a href="https://github.com/Coding-Solo/godot-mcp/pull/99" target="_blank" rel="noopener">#99</a>, merged April 16, says <code>add_node</code> and <code>create_scene</code> could load an arbitrary script through the node-type parameter. npm hasn&#8217;t published since, so <code>npx</code> likely serves the build from before that fix. We did not diff the package. To check, run <code>npm pack @coding-solo/godot-mcp</code> and look at the node-type handling. The repo has 40 open issues and 35 open pull requests.</p>



<p class="wp-block-paragraph">It fits a small surface if you install from source. Skip it if you want an actively maintained server.</p>



<h3 class="wp-block-heading">tugcantopaloglu/godot-mcp: most tools, most risk</h3>



<p class="wp-block-paragraph">A fork of Coding-Solo, MIT licensed, with 493 stars and v3.1.0 from July 13. Our count of 157 tools matches the README, and it needs Godot 4.4+. You install it with <code>git clone</code>, <code>npm install</code>, and <code>npm run build</code>, not npx, because the npm package is stuck at 1.0.0.</p>



<p class="wp-block-paragraph">Its tools include <code>game_eval</code>, <code>write_file</code>, <code>delete_file</code>, and <code>game_http_request</code>, the largest permission surface of the servers here. <code>GODOT_MCP_ALLOWED_DIRS</code> restricts project roots, and the README recommends a separate account or container for untrusted projects.</p>



<p class="wp-block-paragraph">Open issues: <a href="https://github.com/tugcantopaloglu/godot-mcp/issues/25" target="_blank" rel="noopener">#25</a> says <code>get_debug_output</code> returns all accumulated output on every call, so it grows each run. <a href="https://github.com/tugcantopaloglu/godot-mcp/issues/22" target="_blank" rel="noopener">#22</a> reports Windows shell-escaping failures, and <a href="https://github.com/tugcantopaloglu/godot-mcp/issues/31" target="_blank" rel="noopener">#31</a> says VS Code Copilot rejects some of its schemas.</p>



<p class="wp-block-paragraph">Take it if you want the widest toolset and will scope it. Skip it if you want a small tool surface.</p>



<h3 class="wp-block-heading">IvanMurzak/Godot-MCP: the C# pick</h3>



<p class="wp-block-paragraph">It&#8217;s a C# editor addon, and nothing else here needs the mono build. It&#8217;s Apache-2.0 licensed with 295 stars, and v0.30.0 shipped October 19. Our count of 23 tools matches the README, and four of them are hidden system tools. Most editing goes through three query tools.</p>



<p class="wp-block-paragraph">It needs the mono build of Godot 4.3+, the .NET 8 SDK, and Node for its <code>godot-cli</code> installer. The standard Godot build can&#8217;t compile the addon.</p>



<p class="wp-block-paragraph">By default it connects to a hosted backend, ai-game.dev, through an OAuth login, though you can self-host. <code>script-execute</code> compiles and runs arbitrary C# in the editor. The repo was created June 4 and ships fast, so expect churn. One issue is open.</p>



<p class="wp-block-paragraph">It&#8217;s the pick for a C# project. If you use GDScript or don&#8217;t want a hosted backend, skip it.</p>



<h3 class="wp-block-heading">Godot MCP Pro: $15, closed, and its pages disagree</h3>



<p class="wp-block-paragraph">The <a href="https://y1uda.itch.io/godot-mcp-pro" target="_blank" rel="noopener">itch.io page</a> sells it for $15 once and claims 163 tools. The <a href="https://forum.godotengine.org/t/godot-mcp-pro-162-tools-for-ai-powered-godot-development/135467" target="_blank" rel="noopener">Godot forum launch thread</a> quoted $5 and 162 tools, and other vendor pages say 187. The Asset Library lists the license as proprietary, while a vendor page calls the plugin open source. We found no refund policy.</p>



<p class="wp-block-paragraph">All three counts are vendor-claimed, and we haven&#8217;t installed it. One forum reply says MCP &#8220;consumes a lot of token&#8221;, but nobody in that thread measured anything.</p>



<p class="wp-block-paragraph">It makes sense if you want to pay once and accept the counts until someone verifies them. If a free server already covers your task, skip it.</p>



<h3 class="wp-block-heading">GDAI MCP: $19, closed source</h3>



<p class="wp-block-paragraph"><a href="https://gdaimcp.com/license" target="_blank" rel="noopener">The license page</a> says the plugin is distributed in binary form only. Summer Engine&#8217;s <a href="https://www.summerengine.com/blog/gdai-mcp-alternative" target="_blank" rel="noopener">GDAI alternative post</a> gets this wrong and calls it open source. The vendor lists $19 once and 31 tools on its docs page, though the changelog names tools that list omits, so the real count may be higher. Minimum Godot is 4.2 on the site and 4.1 on GitHub.</p>



<p class="wp-block-paragraph">Choose it if you want a closed plugin you install once. You should skip it if you need to read the source before you trust it.</p>



<h3 class="wp-block-heading">Godot-MCP-Native: no Node or Python, least verified</h3>



<p class="wp-block-paragraph">It runs as pure GDScript inside the editor. It&#8217;s MIT licensed with 859 stars since its May 4 creation, and v1.0.8 shipped July 26. It serves HTTP on port 9080 by default, or stdio. The README claims 155 tools (30 core, 125 extra), and we did not count them. Two open issues report it failing to load in Codex CLI.</p>



<p class="wp-block-paragraph">It&#8217;s for people who don&#8217;t want Node or Python installed. Anyone who needs verified claims should look elsewhere.</p>



<h3 class="wp-block-heading">Ziva and Summer Engine: vendors with their own roundups</h3>



<p class="wp-block-paragraph">Both sell products, and both publish roundups that rank themselves. Ziva is an in-editor agent with a free Hobby tier, then $20, $50, and $200 a month, and a vendor-claimed 163 tools. Summer Engine is a standalone engine app built on Godot, with plans from free to $200 a month. Its MCP server is MIT.</p>



<p class="wp-block-paragraph"><a href="https://ziva.sh/blogs/best-ai-tools-for-godot-game-engine" target="_blank" rel="noopener">Ziva&#8217;s 21-tool roundup</a> counts 21 AI tools, and only 7 are MCP bridges. Its authors say they did not install every paid plugin. <a href="https://www.summerengine.com/blog/godot-mcp-servers-guide" target="_blank" rel="noopener">Summer&#8217;s MCP guide</a> uses a placeholder repo, <code>github.com/example/godot-mcp</code>.</p>



<h2 class="wp-block-heading">How do you test a server yourself?</h2>



<p class="wp-block-paragraph">Use one project, one model, and a fresh session per server, starting with a scene named <code>res://main.tscn</code>. Put this line first in every prompt so Godot 3 code doesn&#8217;t creep in:</p>



<pre class="wp-block-code"><code>This is a Godot 4.x project. Use GDScript 2.0 only: @export, @onready, await, signal.connect(callable), CharacterBody2D. Never use yield, KinematicBody2D, or the string form of connect.</code></pre>



<ol class="wp-block-list">
<li>Read: List every node and script in res://main.tscn. Give node name, type, and script path. Do not change any file.</li>

<li>Create: Add a Player (CharacterBody2D) to res://main.tscn that moves with the arrow keys at 200 pixels per second. Add a Pickup (Area2D) that emits a collected signal, and show the count in a Label.</li>

<li>Debug: res://player.gd fails to load. Find the cause and fix it. Change only what is broken. (Seed a wrong node path and one Godot 3 line in that file.)</li>

<li>Runtime: Run the game, take a screenshot, and tell me what is on screen.</li>

<li>Scope: Refactor res://enemy.gd to use a state enum. Do not touch any other file. List every file you changed.</li>
</ol>



<p class="wp-block-paragraph">Record setup minutes, tokens used, wall time, and pass, partial, or fail for each task. For tokens, run <code>/context</code> before the first prompt and after the last.</p>



<h2 class="wp-block-heading">How many tokens does Godot MCP use?</h2>



<p class="wp-block-paragraph">Tool count matters less than it looks, as long as tool search is on. Claude Code defers MCP tool definitions by default: only tool names load at session start, and full definitions load when Claude needs them. A server with 157 tools doesn&#8217;t put 157 schemas in your context on a default setup. Tool search turns off with <code>ENABLE_TOOL_SEARCH=false</code>, behind a proxy that isn&#8217;t first-party, and on models before Claude 4. Source: the <a href="https://code.claude.com/docs/en/mcp" target="_blank" rel="noopener">Claude Code MCP docs</a>.</p>



<p class="wp-block-paragraph">Most tokens come from tool output. Claude Code warns when one MCP result passes 10,000 tokens and caps results at 25,000 by default. Raise the cap with <code>MAX_MCP_OUTPUT_TOKENS</code>. Screenshots count too.</p>



<p class="wp-block-paragraph">Some servers return a lot by default. The tugcantopaloglu issue above is one example: debug output that grows on every call.</p>



<p class="wp-block-paragraph">To keep usage down:</p>



<ul class="wp-block-list">
<li>Ask for scoped reads, such as &#8220;list the children of Player&#8221; instead of &#8220;list the project&#8221;.</li>

<li>Run one task per session and use <code>/clear</code> between tasks.</li>

<li>Remove servers you aren&#8217;t using with <code>claude mcp remove</code>.</li>

<li>Check <code>/context</code> after your first task and compare servers.</li>
</ul>



<p class="wp-block-paragraph">A forum reply says MCP uses a lot of tokens. We found no per-server measurement anywhere, so measure your own with <code>/context</code>.</p>



<h2 class="wp-block-heading">What breaks when Claude writes Godot code?</h2>



<h3 class="wp-block-heading">Godot 3 syntax in a Godot 4 project</h3>



<p class="wp-block-paragraph">Claude can slip into Godot 3 syntax, usually in these forms.</p>



<figure class="wp-block-table"><table><thead><tr><th>Godot 3</th><th>Godot 4</th></tr></thead><tbody><tr><td><code>export var speed = 200</code></td><td><code>@export var speed = 200</code></td></tr><tr><td><code>onready var sprite = $Sprite</code></td><td><code>@onready var sprite = $Sprite2D</code></td></tr><tr><td><code>yield(get_tree().create_timer(1), "timeout")</code></td><td><code>await get_tree().create_timer(1).timeout</code></td></tr><tr><td><code>button.connect("pressed", self, "_on_pressed")</code></td><td><code>button.pressed.connect(_on_pressed)</code></td></tr><tr><td><code>KinematicBody2D</code></td><td><code>CharacterBody2D</code></td></tr><tr><td><code>velocity = move_and_slide(velocity)</code></td><td><code>move_and_slide()</code> using the built-in <code>velocity</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Add the Godot 4 line from the testing section to your prompt. Our <a href="https://gamedevaihub.com/how-to-use-ai-with-godot/">Godot 4 AI guide</a> has the full translation table.</p>



<h3 class="wp-block-heading">Hand-edited .tscn files</h3>



<p class="wp-block-paragraph">A scene won&#8217;t load, or a node vanishes after an edit. The likely cause is that Claude edited the scene text and broke a resource ID. Let the MCP tools edit scenes, and revert with Git if one breaks. Godot 4.4 added <code>.uid</code> files next to scripts, so don&#8217;t let Claude delete them. Prompt line: <em>Edit scenes with the MCP tools. Never edit .tscn text directly.</em></p>



<h3 class="wp-block-heading">Signals and node paths</h3>



<p class="wp-block-paragraph">A signal never fires, or you get a null instance. The likely cause is a guessed path like <code>$Player</code> that doesn&#8217;t match the real tree. Read the scene tree first and use unique-name nodes (<code>%Player</code>). Prompt line: <em>List the scene tree before you write any node path.</em></p>



<h3 class="wp-block-heading">Game feel</h3>



<p class="wp-block-paragraph">Code that follows the camera correctly can still lurch. Claude can&#8217;t feel the game, and a success response doesn&#8217;t mean it plays well. Use a runtime server for screenshots, then play it yourself. Prompt line: <em>Run the game and describe what moves on screen. Don&#8217;t say it works until you&#8217;ve seen it.</em></p>



<h2 class="wp-block-heading" id="safety">Is Godot MCP safe to run?</h2>



<p class="wp-block-paragraph">An MCP server runs with your user account&#8217;s permissions, so scope it. This table comes from the READMEs, docs, and source of the five open-source servers we read.</p>



<figure class="wp-block-table"><table><thead><tr><th>Server</th><th>Can run code</th><th>Can write files</th><th>Network</th></tr></thead><tbody><tr><td>Coding-Solo</td><td>No eval tool. It launches Godot and runs the project&#8217;s scripts</td><td>.tscn and .tres in the project path, checked only for &#8220;..&#8221;</td><td>None (stdio)</td></tr><tr><td>godot-ai</td><td><code>game_eval</code> runs code in the running game</td><td>Write, move, delete. Deletes go to the OS trash by default</td><td>Loopback HTTP 8000 and WebSocket 9500 with auth tokens. Opt-out telemetry</td></tr><tr><td>IvanMurzak</td><td><code>script-execute</code> runs C# in the editor</td><td>Script and resource edits</td><td>Hosted ai-game.dev by default</td></tr><tr><td>tugcantopaloglu</td><td><code>game_eval</code>, <code>game_call_method</code></td><td><code>write_file</code>, <code>delete_file</code> inside the project, with an allow-list option</td><td>TCP on 127.0.0.1:9090, plus <code>game_http_request</code></td></tr><tr><td>Godot MCP Runtime</td><td><code>run_script</code>, behind a best-effort scan that is &#8220;not a sandbox&#8221;</td><td>Scene and script edits inside the project root</td><td>Loopback TCP with a per-session token</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">We did not assess Godot MCP Pro, GDAI, or Godot-MCP-Native. The first two are closed source.</p>



<ol class="wp-block-list">
<li>Commit before you let any server edit files.</li>

<li>Open <code>/mcp</code> and read the tool list. If you see <code>game_eval</code> or <code>run_script</code>, know what they do.</li>

<li>Start with a read-only task.</li>

<li>Scope paths. For tugcantopaloglu, set <code>GODOT_MCP_ALLOWED_DIRS</code>.</li>

<li>Keep untrusted projects in a separate account or container. The tugcantopaloglu README advises this because eval and generated scripts run with your account&#8217;s rights.</li>

<li>Don&#8217;t switch Claude Code to a bypass-permissions mode with these servers. The Runtime docs say its confirmation prompts are auto-answered in those modes.</li>

<li>Keep API keys out of prompts and out of the project folder.</li>
</ol>



<h2 class="wp-block-heading">Claude Code, Cursor, Copilot, or an in-editor plugin?</h2>



<figure class="wp-block-table"><table><thead><tr><th>Option</th><th>What it is</th><th>What we verified</th></tr></thead><tbody><tr><td>Claude Code plus MCP</td><td>Terminal agent that loads any server above</td><td>The setup path on this page</td></tr><tr><td>Cursor</td><td>Editor that loads MCP servers</td><td>The Coding-Solo README has Cursor setup notes</td></tr><tr><td>VS Code Copilot</td><td>Editor assistant that loads MCP servers</td><td>It rejected some tugcantopaloglu schemas (issue #31)</td></tr><tr><td>In-editor plugins</td><td>Chat inside Godot, not MCP</td><td>AI Assistant Hub is MIT, free, Godot 4.3+. Fuku is MIT. Ziva has a free Hobby tier</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">We found no independent benchmark that compares these on the same Godot project. If you work in Unity, we wrote the same comparison there: <a href="https://gamedevaihub.com/claude-code-vs-cursor-for-unity/">Claude Code vs Cursor for Unity</a>. For how Godot compares with Unity and Unreal under Claude Code, see <a href="https://gamedevaihub.com/claude-code-game-development/">Claude Code for game development</a>.</p>



<h2 class="wp-block-heading" id="faq">Godot MCP FAQ</h2>


<div id="rank-math-faq" class="rank-math-block">
<div class="rank-math-list ">
<div id="faq-question-1761100000" class="rank-math-list-item">
<h3 class="rank-math-question ">Is there a free Godot MCP server?</h3>
<div class="rank-math-answer ">

<p>Yes. godot-ai, Godot MCP Runtime, Coding-Solo, and tugcantopaloglu are all MIT licensed and free. Godot MCP Pro costs $15 once and GDAI costs $19 once, per their vendors. We read their code but did not run them.</p>

</div>
</div>
<div id="faq-question-1761100001" class="rank-math-list-item">
<h3 class="rank-math-question ">Does Godot MCP work with Godot 4.4 and newer?</h3>
<div class="rank-math-answer ">

<p>It depends on the server. The minimums we found range from 4.2 to 4.7. godot-ai needs 4.7. tugcantopaloglu and Godlink need 4.4. IvanMurzak needs 4.3 on the mono build. Check your server&#8217;s README against your Godot version.</p>

</div>
</div>
<div id="faq-question-1761100002" class="rank-math-list-item">
<h3 class="rank-math-question ">Is Claude Code or Cursor better for Godot?</h3>
<div class="rank-math-answer ">

<p>No independent test exists that we could find. Both can load MCP servers, so you can reuse the same servers in either. The setup here uses Claude Code.</p>

</div>
</div>
<div id="faq-question-1761100003" class="rank-math-list-item">
<h3 class="rank-math-question ">Can Godot MCP build a whole game?</h3>
<div class="rank-math-answer ">

<p>Nothing we verified shows it can. It handles scenes, scripts, and signals, but a success response doesn&#8217;t prove the game plays well, so you still play-test every change. See our guide to <a href="https://gamedevaihub.com/vibe-coding-games/">vibe coding games</a>.</p>

</div>
</div>
<div id="faq-question-1761100004" class="rank-math-list-item">
<h3 class="rank-math-question ">Is Godot MCP safe?</h3>
<div class="rank-math-answer ">

<p>It runs with your account&#8217;s permissions, and some servers include tools that run code in your game or write files. Commit first, scope the project path, read the tool list in /mcp, and use a separate account for untrusted projects.</p>

</div>
</div>
<div id="faq-question-1761100005" class="rank-math-list-item">
<h3 class="rank-math-question ">How many tokens does Godot MCP use?</h3>
<div class="rank-math-answer ">

<p>No per-server measurement exists that we could find. Claude Code defers MCP tool definitions by default, so output size matters more than tool count. It warns at 10,000 tokens per tool result and caps results at 25,000 by default.</p>

</div>
</div>
<div id="faq-question-1761100006" class="rank-math-list-item">
<h3 class="rank-math-question ">Does Godot MCP work on a Godot 3 project?</h3>
<div class="rank-math-answer ">

<p>No server on this page lists Godot 3 support, and every minimum is a Godot 4.x version. The common bug runs the other way: Claude writes Godot 3 syntax in a Godot 4 project.</p>

</div>
</div>
<div id="faq-question-1761100007" class="rank-math-list-item">
<h3 class="rank-math-question ">What about Unity or Unreal?</h3>
<div class="rank-math-answer ">

<p>Unity has its own MCP servers and its own setup. We cover it in our <a href="https://gamedevaihub.com/claude-code-unity-mcp-setup/">Claude Code Unity MCP setup</a> guide. Unreal Engine 5.8 ships an official experimental MCP plugin, covered in our <a href="https://gamedevaihub.com/unreal-engine-5-8-mcp-server/">Unreal Engine 5.8 MCP server guide</a>.</p>

</div>
</div>
</div>
</div>


<h2 class="wp-block-heading">Which one should you pick?</h2>



<ul class="wp-block-list">
<li>On Godot 4.7+ with live editor work, use godot-ai.</li>

<li>On an older Godot 4.x, use Godot MCP Runtime for one-command setup.</li>

<li>For a C# project, use IvanMurzak/Godot-MCP.</li>

<li>For the most tools, use tugcantopaloglu/godot-mcp and scope it.</li>

<li>If you only edit scripts, skip MCP and use the terminal.</li>
</ul>



<p class="wp-block-paragraph">These picks come from specs, source counts, and open issues. We did not run the servers.</p>



<h3 class="wp-block-heading">Changelog</h3>



<ul class="wp-block-list">
<li>October 19, 2026: first version. Specs, prices, licenses, tool counts, and issues checked against GitHub, vendor pages, and the Claude Code docs.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://gamedevaihub.com/best-godot-mcp-servers-claude-code/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Claude Code vs Cursor for Unity: Which Fits Your Project?</title>
		<link>https://gamedevaihub.com/claude-code-vs-cursor-for-unity/</link>
					<comments>https://gamedevaihub.com/claude-code-vs-cursor-for-unity/#respond</comments>
		
		<dc:creator><![CDATA[Adrian]]></dc:creator>
		<pubDate>Sat, 10 Oct 2026 14:50:07 +0000</pubDate>
				<category><![CDATA[AI Coding & Engines]]></category>
		<guid isPermaLink="false">https://gamedevaihub.com/?p=20297</guid>

					<description><![CDATA[Both cost $20 a month. Cursor can't legally run Microsoft's Unity tools. Here's who should pick which, with setup steps, costs and traps.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Unity&#8217;s own Claude Code plugin doesn&#8217;t list Cursor.</strong></p>



<p class="wp-block-paragraph">Claude Code is the better agent for most Unity 6 projects. Cursor is the better editor for code-heavy apps. Both cost $20 a month. Cursor&#8217;s catch: Microsoft&#8217;s C# and Unity extensions are licensed out of it. Claude Code&#8217;s catch: its checkpoints skip anything done through the shell, so Git is your undo button.</p>



<p class="wp-block-paragraph"><em>Prices and limits checked on vendor pages. Unity details from Unity&#8217;s manual, GitHub repos and developer threads.</em></p>



<h2 class="wp-block-heading" id="the-short-answer">The short answer</h2>



<p class="wp-block-paragraph">Pick by how you work. A wrong pick costs a month&#8217;s fee plus the setup time. Find your row.</p>



<figure class="wp-block-table"><table><thead><tr><th>Your situation</th><th>Pick</th><th>Why</th></tr></thead><tbody><tr><td>Solo dev on Unity 6. You want an agent that builds features and drives the Editor</td><td><strong>Claude Code</strong></td><td>Unity&#8217;s own plugin, MCP bridges, headless tests, 1M-token context on the $20 plan</td></tr><tr><td>You review every diff inline and want Tab completion, on a code-heavy app</td><td><strong>Cursor</strong></td><td>Best inline editing. Devs report using it on UI-heavy business apps</td></tr><tr><td>You debug with breakpoints every day</td><td><strong>Claude Code</strong> beside Visual Studio, VS Code or Rider</td><td>Microsoft&#8217;s Unity debugger can&#8217;t legally run in Cursor</td></tr><tr><td>Legacy project on Unity 2021.3 or 2022.3 LTS</td><td>Either, with the CoplayDev MCP</td><td>Unity&#8217;s official plugin and MCP need Unity 6</td></tr><tr><td>Tight budget, heavy daily use</td><td>Test both</td><td>Neither tool publishes its limits</td></tr><tr><td>You can&#8217;t read C# yet</td><td>Neither, yet</td><td>Slop risk is highest here. Start with the <a href="https://gamedevaihub.com/best-ai-code-assistants-for-unity-c-sharp-beginners/">beginner guide to AI code assistants for Unity</a></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Not sure which row is yours? Run the 20-minute test at the end before you pay for a second month.</p>



<h2 class="wp-block-heading" id="the-real-problem-is-the-editor">The real problem is the Editor</h2>



<p class="wp-block-paragraph">Both tools write competent C#. Neither can see your scene.</p>



<p class="wp-block-paragraph">One solo dev wrote, <a href="https://www.reddit.com/r/ClaudeAI/comments/1vti3nw/" target="_blank" rel="noopener">&#8220;It writes solid C#, but the friction is everything that lives in the Editor: scenes, prefabs, serialized fields, animation setup.&#8221;</a></p>



<p class="wp-block-paragraph">Scenes and prefabs are serialized YAML. Unity&#8217;s manual says <a href="https://docs.unity3d.com/6000.2/Documentation/Manual/UnityYAML.html" target="_blank" rel="noopener">&#8220;You cannot externally produce or edit UnityYAML files.&#8221;</a> One developer who tried anyway said editing .unity text <a href="https://www.reddit.com/r/Unity3D/comments/1mf6mhg/" target="_blank" rel="noopener">&#8220;will eat all of your quota and it will take forever.&#8221;</a></p>



<p class="wp-block-paragraph">A bridge fixes part of it. That means an MCP server or Unity&#8217;s CLI that lets the agent act inside the open Editor. These still break:</p>



<ul class="wp-block-list">

<li>Moving or renaming an asset outside Unity breaks its .meta references, and a terminal <code>mv</code> counts. <a href="https://docs.unity3d.com/6000.2/Documentation/Manual/AssetMetadata.html" target="_blank" rel="noopener">Unity&#8217;s manual</a> says &#8220;If an asset loses its .meta file, any reference to that asset is broken in your project.&#8221;</li>


<li>Every script change triggers a domain reload, and a reload can drop the bridge. The <a href="https://github.com/CoderGamester/mcp-unity" target="_blank" rel="noopener">mcp-unity README</a> documents connection failures in Play Mode tests for this reason.</li>


<li>A broken script puts the Editor in Safe Mode, where Unity&#8217;s pipeline package never loads. The agent loses its connection until you fix the code.</li>


<li>Unity won&#8217;t open a project in batch mode while the Editor has it open, so headless test runs need the Editor closed.</li>


<li><code>FindObjectOfType</code> is deprecated in Unity 6 in favor of <code>FindFirstObjectByType</code>. Developers disagree on how often models still suggest the old call, so scan for it.</li>

</ul>



<p class="wp-block-paragraph key-insight">Unity developers settle on one workaround. Ask the AI to write an Editor script, then run it yourself. One dev on Unity Discussions called it <a href="https://discussions.unity.com/t/cli-mcp-ai-ide-chatgpt-codex-cursor-antigravity-claude-code-windsurf-next-steps-for-unity-workflow-automation/1705679" target="_blank" rel="noopener">&#8220;the only deterministic interface Unity reliably accepts.&#8221;</a></p>



<p class="wp-block-paragraph note warning">Letting the agent move, rename or delete assets with shell commands. Unity can&#8217;t update the .meta files, and Claude Code&#8217;s checkpoints don&#8217;t track shell changes.</p>



<h2 class="wp-block-heading" id="claude-code-vs-cursor-at-a-glance">Claude Code vs Cursor at a glance</h2>



<p class="wp-block-paragraph">Claude Code is a terminal agent and Cursor is an AI editor. That difference explains most of the table.</p>



<figure class="wp-block-table"><table><thead><tr><th></th><th>Claude Code</th><th>Cursor</th></tr></thead><tbody><tr><td>What it is</td><td>Terminal agent, also in VS Code, JetBrains, desktop and web</td><td>AI code editor with Agent mode, Tab completion and a CLI</td></tr><tr><td>Unity IDE support</td><td>Runs beside the IDE you already use</td><td>Microsoft&#8217;s C# and Unity extensions don&#8217;t run in it. Community packages fill the gap</td></tr><tr><td>Official Unity plugin</td><td>Yes, 32 skills, Unity 6+</td><td>Not listed</td></tr><tr><td>MCP bridges</td><td>The four MCP servers below</td><td>The same four. Cursor lists MCP as a paid-plan feature</td></tr><tr><td>Breakpoint debugging</td><td>Not built in. Use your IDE&#8217;s debugger</td><td>Community debuggers only, mainly DotRush</td></tr><tr><td>Models</td><td>Opus 5.5 by default, 1M-token context</td><td>Auto, plus Composer 2.5 and Grok models. Claude models bill at API rates</td></tr><tr><td>Entry price</td><td>Pro $20/mo ($17/mo billed annually)</td><td>Pro $20/mo</td></tr><tr><td>Free tier</td><td>None for Claude Code</td><td>Hobby, but Cursor lists MCP, skills and hooks as paid features</td></tr><tr><td>When you hit the limit</td><td>5-hour window plus weekly limits. Buy usage credits to continue</td><td>Monthly pools. A July 2026 forum reply says access is blocked until reset unless you enable on-demand spend</td></tr><tr><td>Owner</td><td>Anthropic</td><td>SpaceX, since 14 Aug 2026</td></tr></tbody></table></figure>



<h2 class="wp-block-heading" id="cursor-for-unity-strong-ai-awkward-ide">Cursor for Unity: strong AI, awkward IDE</h2>



<p class="wp-block-paragraph">Cursor&#8217;s AI handles Unity C# fine. The IDE side is where you pay.</p>



<p class="wp-block-paragraph">Microsoft licenses C# Dev Kit <a href="https://marketplace.visualstudio.com/items/ms-dotnettools.csdevkit/license" target="_blank" rel="noopener">&#8220;only with Microsoft Visual Studio Code, vscode.dev, GitHub Codespaces … and successor Microsoft, GitHub, and other Microsoft affiliates&#8217; products and services.&#8221;</a> The official Unity extension sits in the same <a href="https://code.visualstudio.com/docs/csharp/cs-dev-kit-faq" target="_blank" rel="noopener">license family</a>.</p>



<p class="wp-block-paragraph">Cursor says so itself. On its <a href="https://cursor.com/for/csharp" target="_blank" rel="noopener">C# page</a>, Microsoft&#8217;s extensions &#8220;are licensed for use only in VS Code, so they don&#8217;t run in Cursor.&#8221; It recommends ReSharper or DotRush and never mentions Unity.</p>



<p class="wp-block-paragraph">A Cursor staffer was blunter in May 2025: <a href="https://forum.cursor.com/t/unity-extension-does-not-support-anysphere-c-language-server/94361" target="_blank" rel="noopener">&#8220;the official unity extension is closed-source so it is not supported in Cursor.&#8221;</a> Unity&#8217;s <a href="https://docs.unity.com/en-us/engine/6000.3/manual/programming-environment/environment-and-tools/scripting-ide-support.md" target="_blank" rel="noopener">manual</a> lists three supported IDEs: Visual Studio, VS Code and Rider.</p>



<p class="wp-block-paragraph">Quality reports conflict. One dev called the C# extensions <a href="https://forum.cursor.com/t/using-cursor-for-unity-development-has-been-a-disastrous-experience/132997" target="_blank" rel="noopener">&#8220;fundamentally broken&#8221;</a> with &#8220;extraordinarily high&#8221; memory use on a 64 GB machine. Another found DotRush with its Unity debugger &#8220;much lighter and more stable than using Microsoft&#8217;s C# and Unity extensions together.&#8221; Expect to try both.</p>



<p class="wp-block-paragraph">The C# 14 gap in Cursor&#8217;s bundled extension sounds scary and doesn&#8217;t matter here. Unity 6.3 compiles <a href="https://docs.unity3d.com/6000.3/Documentation/Manual/csharp-compiler.html" target="_blank" rel="noopener">C# 9.0</a>.</p>



<h3 class="wp-block-heading" id="set-up-cursor-for-unity">Set up Cursor for Unity</h3>



<ul class="wp-block-list requires">

<li>DotRush or ReSharper</li>


<li>.NET Install Tool</li>


<li>com.unity.ide.cursor</li>


<li>Paid plan (for MCP)</li>

</ul>



<ol class="wp-block-list steps">

<li>Remove Microsoft&#8217;s C#, C# Dev Kit and Unity extensions if they came over from VS Code.</li>


<li>Install DotRush (<code>nromanov.dotrush</code> on Open VSX) or ReSharper from its VSIX, plus the .NET Install Tool.</li>


<li>In Unity, open Package Manager, choose Add package from git URL, and paste the community package URL below.</li>


<li>Go to Edit &gt; Preferences &gt; External Tools, set External Script Editor to Cursor, then click Regenerate project files.</li>


<li>To debug, press F5 and pick Unity Debugger (DotRush). Use launch type <code>unity</code> and request <code>attach</code>.</li>


<li>Add the .cursorignore below so the index skips generated folders.</li>


<li>Put project rules in <code>.cursor/rules/*.mdc</code>, because plain .md files there are ignored. AGENTS.md also works.</li>


<li>Optional: in mcp-unity, click Configure Cursor (Project). It writes <code>.cursor/mcp.json</code>.</li>

</ol>



<p class="wp-block-paragraph code-file"><span>Package Manager URL</span></p>



<pre class="wp-block-code"><code>https://github.com/boxqkrtm/com.unity.ide.cursor.git</code></pre>



<p class="wp-block-paragraph">The <a href="https://github.com/boxqkrtm/com.unity.ide.cursor" target="_blank" rel="noopener">boxqkrtm package</a> is a community project (MIT, 1,689 stars). Since v2.0.24 its package name is <code>com.boxqkrtm.ide.cursor</code>. Without it, pointing Unity at Cursor.exe opens files but doesn&#8217;t generate .csproj files, so IntelliSense breaks.</p>



<p class="wp-block-paragraph code-file"><span>.cursorignore</span></p>



<pre class="wp-block-code"><code>Library/
Temp/
Logs/
Build/
obj/
*.meta</code></pre>



<p class="wp-block-paragraph">A standard Unity .gitignore already covers Library, Temp, Logs and obj, and Cursor honors .gitignore. The extra lines are Build and .meta.</p>



<p class="wp-block-paragraph note warning">Installing Zlorn.vstuc from Open VSX. It&#8217;s a third-party copy of Microsoft&#8217;s Unity extension, and running it in Cursor still breaks the license terms above.</p>



<h3 class="wp-block-heading" id="where-cursor-wins">Where Cursor wins</h3>



<ul class="wp-block-list">

<li>Inline review shows each change in the editor before it lands.</li>


<li>Tab completion is unlimited on Pro, so everyday typing never costs extra.</li>


<li>The index is local. Cursor&#8217;s docs say it doesn&#8217;t upload your code to build its search index. It also &#8220;does not store embeddings of your codebase for search.&#8221; That matters if your studio worries about IP.</li>


<li>Code-heavy Unity apps work well. A dev at a Unity day job writes, <a href="https://www.reddit.com/r/Unity3D/comments/1ucooqx/" target="_blank" rel="noopener">&#8220;I use cursor almost exclusively. Although our software is UI heavy and has very little to do with 3D stuff in the scene.&#8221;</a> An AA studio dev says <a href="https://www.reddit.com/r/gamedev/comments/1qbq6zu/" target="_blank" rel="noopener">&#8220;everyone has cursor licences.&#8221;</a></li>


<li>Cursor&#8217;s agent runs inside JetBrains IDEs through ACP since March 2026. Cursor&#8217;s post doesn&#8217;t name Rider, so check before you count on it.</li>

</ul>



<p class="wp-block-paragraph">Two gotchas. MCP tools and the terminal ignore <code>.cursorignore</code>, so it isn&#8217;t a lock. And Cursor documents no way for Cloud Agents to run the Unity Editor.</p>



<h2 class="wp-block-heading" id="claude-code-for-unity-an-agent-that-can-drive-the-editor">Claude Code for Unity: an agent that can drive the Editor</h2>



<p class="wp-block-paragraph">Claude Code runs next to whichever IDE you already use. It reads the whole project and edits across files. With Unity&#8217;s plugin or an MCP bridge it can also act inside the Editor.</p>



<h3 class="wp-block-heading" id="install-unity-s-plugin">Install Unity&#8217;s plugin</h3>



<p class="wp-block-paragraph code-file"><span>Claude Code session</span></p>



<pre class="wp-block-code"><code>/plugin marketplace add Unity-Technologies/unity-agent-plugin
/plugin install unity@unity-agent-plugin</code></pre>



<p class="wp-block-paragraph">The <a href="https://github.com/Unity-Technologies/unity-agent-plugin" target="_blank" rel="noopener">plugin</a> needs Unity 6 and ships 32 skills, including <code>ui-uitk</code>, <code>migrate-birp-to-urp</code>, <code>implement-in-app-purchases</code>, <code>localization</code> and <code>setup-multiplayer-services</code>. It drives the open Editor through Unity&#8217;s experimental CLI instead of MCP. It can &#8220;create and modify GameObjects, edit scenes and assets, inspect the hierarchy, and run arbitrary C#.&#8221;</p>



<p class="wp-block-paragraph">It&#8217;s version 0.1.8-beta, so expect changes. Unity also lists Codex and Grok as supported agents. Cursor isn&#8217;t on the list.</p>



<h3 class="wp-block-heading" id="run-tests-headless">Run tests headless</h3>



<p class="wp-block-paragraph code-file"><span>PowerShell</span></p>



<pre class="wp-block-code"><code>Unity.exe -runTests -batchmode -projectPath &lt;path&gt; -testResults results.xml -testPlatform EditMode</code></pre>



<p class="wp-block-paragraph">Don&#8217;t add <code>-quit</code>. Unity&#8217;s <a href="https://docs.unity3d.com/Packages/com.unity.test-framework@1.4/manual/reference-command-line.html" target="_blank" rel="noopener">test docs</a> say it makes the Editor quit &#8220;before in-progress tests have chance to complete.&#8221; Close the Editor first, then let Claude read the results XML. Run <code>claude -p</code> with <code>--output-format json</code> and the output includes <code>total_cost_usd</code>, so you can log what each run cost.</p>



<p class="wp-block-paragraph note warning">Trusting /rewind. Anthropic&#8217;s docs say &#8220;Checkpointing does not track files modified by Bash commands.&#8221; Anything Unity changes through a bridge also happens outside Claude&#8217;s edit tools. Assume /rewind can&#8217;t undo it. Unity&#8217;s plugin README also tells you to commit before asking for larger changes.</p>



<h3 class="wp-block-heading" id="memory-plan-mode-and-limits">Memory, plan mode and limits</h3>



<ul class="wp-block-list">

<li>CLAUDE.md loads every session. Keep it under 200 lines and name your Unity version, render pipeline and input system. Templates are in the <a href="https://gamedevaihub.com/claude-game-development-guide/">Claude for game development guide</a>.</li>


<li>Plan mode (Shift+Tab) makes no edits until you approve the plan.</li>


<li>Subagents keep verbose test and log output out of your main context.</li>


<li>MCP output warns at 10,000 tokens and caps at 25,000 by default, so don&#8217;t ask a bridge to dump a whole hierarchy.</li>

</ul>



<h2 class="wp-block-heading" id="unity-bridges-side-by-side">Unity bridges, side by side</h2>



<p class="wp-block-paragraph">Every MCP bridge works with both tools, and only Unity&#8217;s own plugin picks a side. Stars are from the GitHub API. Install steps live in our <a href="https://gamedevaihub.com/claude-code-unity-mcp-setup/">Claude Code Unity MCP setup guide</a>.</p>



<figure class="wp-block-table"><table><thead><tr><th>Bridge</th><th>Stars</th><th>Unity versions</th><th>Claude Code</th><th>Cursor</th><th>The catch</th></tr></thead><tbody><tr><td><a href="https://github.com/CoplayDev/unity-mcp" target="_blank" rel="noopener">CoplayDev/unity-mcp</a></td><td>14,809</td><td>2021.3 LTS to 6.x</td><td>Yes</td><td>Yes</td><td>Needs Python 3.10+ via uv. 50 tool entrypoints</td></tr><tr><td><a href="https://github.com/IvanMurzak/Unity-MCP" target="_blank" rel="noopener">IvanMurzak/Unity-MCP</a></td><td>4,415</td><td>2022.3+</td><td>Yes</td><td>Yes</td><td>Project path can&#8217;t contain spaces. Also works in runtime builds</td></tr><tr><td><a href="https://github.com/CoderGamester/mcp-unity" target="_blank" rel="noopener">CoderGamester/mcp-unity</a></td><td>1,924</td><td>Unity 6+</td><td>Yes</td><td>Yes</td><td>Needs Node 18+. Bridge drops on domain reload in Play Mode tests</td></tr><tr><td><a href="https://unity.com/blog/unity-ai-mcp-how-to-get-started" target="_blank" rel="noopener">Unity official MCP</a></td><td>n/a</td><td>Unity 6+</td><td>Yes</td><td>Yes</td><td>Open beta. Needs a Unity AI subscription ($10/mo on Personal) even with your own model key</td></tr><tr><td><a href="https://github.com/Unity-Technologies/unity-agent-plugin" target="_blank" rel="noopener">Unity agent plugin</a></td><td>402</td><td>Unity 6+</td><td>Yes</td><td>Not listed</td><td>Version 0.1.8-beta. Uses the experimental Unity CLI</td></tr><tr><td><a href="https://docs.unity3d.com/Packages/com.unity.ai.assistant@1.7/manual/ai-gateway-landing.html" target="_blank" rel="noopener">Unity AI Gateway</a></td><td>n/a</td><td>Unity 6</td><td>Yes</td><td>Yes</td><td>Docs show API-key sign-in only, so it bills per token</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Bridges break in documented ways. Claude Code&#8217;s tracker has a closed report of Coplay tool calls timing out after about four conversation compactions. Unity closed a bug as <a href="https://issuetracker.unity.com/issues/11122/unity-ai-mcp-connection-resets-when-multiple-unity-instances-are-opened" target="_blank" rel="noopener">Won&#8217;t Fix</a>. With two Editors open, the official MCP connection can reset.</p>



<p class="wp-block-paragraph">Unity&#8217;s <a href="https://unity.com/blog/meet-the-unity-cli" target="_blank" rel="noopener">CLI</a> (July 2026) is the newer layer underneath. In Unity&#8217;s words, &#8220;Unity&#8217;s AI is one consumer of it, not a replacement for it.&#8221; Unity hasn&#8217;t called MCP deprecated.</p>



<h2 class="wp-block-heading" id="what-each-one-costs">What each one costs</h2>



<p class="wp-block-paragraph">Both start at $20 and both throttle heavy agent use. They meter it differently.</p>



<figure class="wp-block-table"><table><thead><tr><th></th><th>Claude Code</th><th>Cursor</th></tr></thead><tbody><tr><td>Entry</td><td>Pro $20/mo, or $17/mo billed annually</td><td>Pro $20/mo</td></tr><tr><td>Mid</td><td>Max 5x $100/mo</td><td>Pro Plus $60/mo</td></tr><tr><td>Top individual</td><td>Max 20x $200/mo</td><td>Ultra $200/mo</td></tr><tr><td>Teams</td><td>Standard $20/seat annual. Premium $100/seat annual</td><td>Standard $40/user. Premium $120/user</td></tr><tr><td>How it meters</td><td>Rolling 5-hour window plus weekly limits, shared with Claude chat</td><td>Two monthly pools: Cursor&#8217;s own models get &#8220;significantly more included usage.&#8221; Claude, GPT and Gemini bill at API price</td></tr><tr><td>Vendor&#8217;s spend guide</td><td>About $13 per developer per active day (enterprise average, not indie)</td><td>Daily Agent users &#8220;typically $60-$100/mo&#8221;</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Neither vendor publishes absolute limits. Unity developers report hitting both:</p>



<ul class="wp-block-list">

<li>One Cursor user on a co-op Unity game wrote, <a href="https://www.reddit.com/r/cursor/comments/1vbrmdu/" target="_blank" rel="noopener">&#8220;I&#8217;ve used 34% of my usage on cursor models, and 65% on other models.&#8221;</a></li>


<li>A reply in the same thread says, <a href="https://www.reddit.com/r/cursor/comments/1vbrmdu/" target="_blank" rel="noopener">&#8220;Using anything but Grok and Composer in cursor for game dev will eat all your monthly usage in a few prompts.&#8221;</a></li>


<li>A Claude Code user running Fable to plan, Opus to orchestrate and Sonnet workers wrote that it <a href="https://www.reddit.com/r/ClaudeCode/comments/1upbtkm/" target="_blank" rel="noopener">&#8220;burned through my weekly limit in just 2 days.&#8221;</a></li>

</ul>



<p class="wp-block-paragraph">So the sticker price tells you little, and cost per task tells you more. The test near the end measures it.</p>



<h2 class="wp-block-heading" id="which-fits-your-project">Which fits your project</h2>



<p class="wp-block-paragraph">Match the row to your project.</p>



<figure class="wp-block-table"><table><thead><tr><th>Project</th><th>Pick</th><th>Why</th></tr></thead><tbody><tr><td>2D mobile, solo, Unity 6</td><td>Claude Code + VS Code or Rider</td><td>Plugin skills cover in-app purchases and localization. Editor wiring still needs you</td></tr><tr><td>3D action, physics-heavy</td><td>Either. You own the feel</td><td>A dev on r/Unity3D: <a href="https://www.reddit.com/r/Unity3D/comments/1uijkq9/" target="_blank" rel="noopener">&#8220;anything touching the physics system, still all manual&#8221;</a></td></tr><tr><td>Multiplayer</td><td>Claude Code</td><td>The plugin has a <code>setup-multiplayer-services</code> skill. Test it before you rely on it</td></tr><tr><td>Editor tools and pipeline scripts</td><td>Claude Code</td><td>Editor scripts are what Unity accepts reliably, and headless tests run from the shell</td></tr><tr><td>UI-heavy, business or XR training app with tests</td><td>Cursor</td><td>Studio devs in the threads above use it on code-only Unity apps</td></tr><tr><td>Legacy 2021.3 or 2022.3 LTS</td><td>Either, with the CoplayDev MCP</td><td>It supports 2021.3 LTS and up. Unity&#8217;s plugin and MCP don&#8217;t</td></tr><tr><td>Team already on Rider</td><td>Claude Code, or Cursor&#8217;s agent via ACP</td><td>Rider is Unity-supported, and its users rate it higher than Cursor users rate Cursor in Stack Overflow&#8217;s 2026 survey (56.9% vs 33% admired)</td></tr><tr><td>Team on Cursor licences</td><td>Cursor + boxqkrtm package + DotRush</td><td>Setup steps above</td></tr></tbody></table></figure>



<h2 class="wp-block-heading" id="use-both">Use both</h2>



<p class="wp-block-paragraph">You don&#8217;t have to pick. These setups show up in real Unity threads:</p>



<ul class="wp-block-list">

<li>Claude Code in Rider. One dev says <a href="https://www.reddit.com/r/Unity3D/comments/1sw6wiz/" target="_blank" rel="noopener">&#8220;The integration in Rider with CC Beta has been great.&#8221;</a></li>


<li>Visual Studio or VS Code with Claude Code in the terminal keeps Microsoft&#8217;s Unity tools licensed and working.</li>


<li>Cursor for code with Claude as planner. One reply says <a href="https://www.reddit.com/r/cursor/comments/1vbrmdu/" target="_blank" rel="noopener">&#8220;Get a Claude subscription, use Opus as your planner.&#8221;</a></li>


<li>Claude Code works inside Cursor because Anthropic&#8217;s extension installs there. You still need Cursor&#8217;s C# setup and two subscriptions.</li>

</ul>



<h2 class="wp-block-heading" id="unity-ai-codex-copilot-and-bezi">Unity AI, Codex, Copilot and Bezi</h2>



<ul class="wp-block-list">

<li>Unity AI has been in open beta since May 2026, at $10/mo on Personal after a 14-day, 1,000-credit trial. One subscriber reported being <a href="https://www.reddit.com/r/Unity3D/comments/1t52jwq/" target="_blank" rel="noopener">&#8220;stuck in a CapacityLimit loop&#8221;</a> on its MCP server.</li>


<li>Unity&#8217;s plugin supports Codex alongside Claude Code.</li>


<li>Copilot works in Rider and Visual Studio. One dev wrote, <a href="https://discussions.unity.com/t/cli-mcp-ai-ide-chatgpt-codex-cursor-antigravity-claude-code-windsurf-next-steps-for-unity-workflow-automation/1705679" target="_blank" rel="noopener">&#8220;I set it up with Rider + Copilot and it&#8217;s pretty great so far.&#8221;</a></li>


<li>Bezi is an in-engine assistant that users say runs on Claude models.</li>

</ul>



<h2 class="wp-block-heading" id="guardrails-that-stop-ai-slop-in-a-unity-project">Guardrails that stop AI slop in a Unity project</h2>



<ol class="wp-block-list steps">

<li>Commit before every session. Unity&#8217;s plugin README says so, and /rewind can&#8217;t be trusted with Unity changes.</li>


<li>Start in plan mode. The agent proposes and you approve.</li>


<li>Write the rules down. List your Unity version, render pipeline, input system, and &#8220;use FindFirstObjectByType instead of FindObjectOfType.&#8221; Say what architecture you want too. One dev says <a href="https://www.reddit.com/r/ClaudeAI/comments/1r5fz4t/" target="_blank" rel="noopener">&#8220;It loves singletons and tends to couple everything together.&#8221;</a></li>


<li>Lock the Editor state. A dev&#8217;s AGENTS.md rule reads <a href="https://discussions.unity.com/t/cli-mcp-ai-ide-chatgpt-codex-cursor-antigravity-claude-code-windsurf-next-steps-for-unity-workflow-automation/1705679" target="_blank" rel="noopener">&#8220;Do not modify scenes, prefabs, or serialized Unity assets when the Unity editor state is unsafe or dirty.&#8221;</a></li>


<li>Ask for an Editor script when you need scene changes, and run it yourself.</li>


<li>Play it yourself. As one Claude Code user put it, <a href="https://www.reddit.com/r/ClaudeCode/comments/1vy9yoz/" target="_blank" rel="noopener">&#8220;The only reliable loop was to test it myself, capture exactly what happened, then send Claude back into that narrow problem.&#8221;</a></li>

</ol>



<p class="wp-block-paragraph note success">Start every new bridge with a read-only prompt, like &#8220;list the GameObjects in the open scene.&#8221; If it can&#8217;t answer, don&#8217;t let it write.</p>



<h2 class="wp-block-heading" id="what-developers-and-the-data-say">What developers and the data say</h2>



<p class="wp-block-paragraph">Skepticism is common in this industry, and the numbers back it.</p>



<ul class="wp-block-list">

<li><a href="https://gdconf.com/article/gdc-2026-state-of-the-game-industry-reveals-impact-of-layoffs-generative-ai-and-more/" target="_blank" rel="noopener">GDC 2026</a> (2,300+ game professionals): 52% say generative AI is having a negative impact, up from 18% in 2024. 59% of game programmers are unfavorable.</li>


<li><a href="https://survey.stackoverflow.co/2026/ai/data" target="_blank" rel="noopener">Stack Overflow 2026</a> (12,255 developers who used a coding agent): 65.5% had used Claude Code and 25.5% Cursor. That&#8217;s all developers, so don&#8217;t read it as Unity data.</li>


<li>No poll splits Claude Code and Cursor users among Unity developers, and no public benchmark compares the tools on C# or Unity. Terminal-Bench 4.0 ranks model and harness pairs on terminal tasks, and Cursor has no entry.</li>


<li>Unity&#8217;s own survey (vendor, 300 respondents) lists coding assistance at 62%.</li>

</ul>



<h2 class="wp-block-heading" id="test-both-on-your-project-in-20-minutes">Test both on your project in 20 minutes</h2>



<p class="wp-block-paragraph">Specs only go so far. Put both tools on one small project and compare.</p>



<ol class="wp-block-list steps">

<li>Commit a clean branch of a small project.</li>


<li>Give both tools the same three prompts: add a feature across four scripts, fix a NullReferenceException from the console log, and write EditMode tests.</li>


<li>Record time, usage consumed, compile errors and anything you fixed by hand. Claude Code shows cost with <code>--output-format json</code>. Cursor shows a usage percentage in its dashboard.</li>


<li>Check <code>git diff</code> for changed .meta files and touched scenes.</li>


<li>Repeat on the task you dread most.</li>

</ol>



<h2 class="wp-block-heading" id="faq">FAQ</h2>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>Does Cursor work with Unity?</summary>

<p class="wp-block-paragraph">Yes, with setup. Cursor&#8217;s AI works on Unity C#, but Microsoft&#8217;s C# and Unity extensions don&#8217;t run in it. You need DotRush or ReSharper, plus the boxqkrtm package for project files.</p>
</details>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>Is Claude Code good for Unity?</summary>

<p class="wp-block-paragraph">For code, yes. For scenes and prefabs, only through Unity&#8217;s plugin or an MCP bridge. Treat it as an accelerator. Don&#8217;t hand it the whole game.</p>
</details>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>Can I use Claude Code inside Cursor?</summary>

<p class="wp-block-paragraph">Yes. Anthropic&#8217;s VS Code extension installs in Cursor. Claude Code needs a paid Claude plan or an API key.</p>
</details>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>Which is cheaper for Unity?</summary>

<p class="wp-block-paragraph">Both start at $20 a month. Neither publishes usage limits, so measure cost per task on your own project.</p>
</details>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>Do I need MCP?</summary>

<p class="wp-block-paragraph">Only if you want the agent to read the console, change scenes or run tests in the open Editor. For plain code, no. Cursor lists MCP as a paid-plan feature.</p>
</details>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>Does Unity officially support Cursor?</summary>

<p class="wp-block-paragraph">No. Unity&#8217;s manual lists Visual Studio, VS Code and Rider as supported IDEs.</p>
</details>



<details class="wp-block-details is-layout-flow wp-block-details-is-layout-flow"><summary>Can either tool edit scenes and prefabs?</summary>

<p class="wp-block-paragraph">Through a bridge, yes. By editing the files directly, no. Unity says you cannot externally produce or edit UnityYAML files.</p>
</details>



<h2 class="wp-block-heading" id="final-verdict">Final verdict</h2>



<p class="wp-block-paragraph">Choose Claude Code if you want an agent that builds across files and drives the Editor, and you&#8217;re fine with Git as your undo button. Choose Cursor if you review every change in an editor and your project is mostly code.</p>



<p class="wp-block-paragraph">If you already work in Rider or Visual Studio, keep it and add Claude Code beside it. Whatever you pick, commit before every session.</p>



<p class="wp-block-paragraph">Not sure yet? Run the 20-minute test above before you pay for a second month. Then grab the CLAUDE.md templates in the <a href="https://gamedevaihub.com/claude-game-development-guide/">Claude for game development guide</a> and the install commands in the <a href="https://gamedevaihub.com/claude-code-unity-mcp-setup/">Claude Code Unity MCP setup guide</a>.</p>



<p class="wp-block-paragraph"><em>Prices and limits change often, so confirm them on the vendor pages before you pay.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://gamedevaihub.com/claude-code-vs-cursor-for-unity/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Will Players Punish You for Using AI Art? (2026 Data)</title>
		<link>https://gamedevaihub.com/will-players-punish-ai-art-in-games/</link>
					<comments>https://gamedevaihub.com/will-players-punish-ai-art-in-games/#respond</comments>
		
		<dc:creator><![CDATA[Adrian]]></dc:creator>
		<pubDate>Tue, 06 Oct 2026 09:59:56 +0000</pubDate>
				<category><![CDATA[AI Art & Sprites]]></category>
		<category><![CDATA[Steam & Publishing]]></category>
		<guid isPermaLink="false">https://gamedevaihub.com/?p=20248</guid>

					<description><![CDATA[We analysed 352,296 Steam reviews. Players punish the AI they catch. Here are five real cases, the Steam and itch.io rules, and a safe-use ladder.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Players punish the AI they catch.</strong></p>



<p class="wp-block-paragraph">We analysed 352,296 Steam reviews. On games caught using AI, 79% of reviews that mention it are negative. On games where AI is the selling point, it&#8217;s 26%, about the same as the rest of their reviews. Art and store images draw the fire. Code shows up in 2.4% of complaints. Below are five real cases and a ladder for using AI without paying for it.</p>



<h2 class="wp-block-heading">The short answer</h2>



<p class="wp-block-paragraph">Yes, sometimes. Visible AI is the trigger. If a player can see it or hear it, they will judge it. That means your capsule art, your cutscenes, your voices and your in-game art.</p>



<p class="wp-block-paragraph">Hidden AI mostly isn&#8217;t a problem, because players don&#8217;t review your code or your build pipeline.</p>



<p class="note wp-block-paragraph">Rule of thumb: if it ships where a player can see it, disclose it before someone finds it.</p>



<h2 class="wp-block-heading">What the sales data says</h2>



<p class="wp-block-paragraph">You&#8217;ve probably seen the claim that AI cuts sales by 53%. It comes from a <a href="https://www.game-oracle.com/blog/ai-part2" target="_blank" rel="noopener">Game Oracle analysis</a> published in December 2025.</p>



<p class="wp-block-paragraph">The study looked at 9,879 paid Steam games released between January and October 2025. Games with an AI disclosure got an estimated 52.6% fewer reviews in their first month than comparable games without one. Game Oracle used reviews as a stand-in for sales, so it&#8217;s a review count, not revenue.</p>



<p class="wp-block-paragraph">It&#8217;s also a correlation. The author says the results &#8220;could still be biased&#8221; because marketing, skill and budget are hard to measure. And the effect wasn&#8217;t even. For low-quality games, AI &#8220;makes no difference.&#8221; The penalty showed up for high-potential games from experienced developers.</p>



<p class="wp-block-paragraph">So the better your game, the more AI can cost you.</p>



<p class="wp-block-paragraph">Two other datasets point the same way:</p>



<ul class="wp-block-list">
<li>Sulka Haro counted <a href="https://fragwyz.substack.com/p/three-years-of-ai-on-steam" target="_blank" rel="noopener">53,597 Steam games</a> released between July 2023 and July 2026. About one in three new releases now discloses AI. Those games reach 100 reviews at 55% of the rate of games without AI. That gap hasn&#8217;t closed in two years.</li>



<li>A peer-reviewed study by Bazzaz and Cooper at Northeastern analysed <a href="https://arxiv.org/abs/2608.11539" target="_blank" rel="noopener">508,192 Steam reviews</a>. AI-disclosed games were recommended 68.4% of the time. Games tagged procedural generation got 86.3%.</li>
</ul>



<p class="wp-block-paragraph">GameDiscoverCo&#8217;s numbers point the other way. It <a href="https://newsletter.gamediscover.co/p/what-do-steam-fans-really-think-about" target="_blank" rel="noopener">surveyed about 3,800 Steam fans</a> in July 2026. Only 8% said they just won&#8217;t buy a game with AI. 43% said they have no big issue with it.</p>



<p class="wp-block-paragraph">So most players won&#8217;t boycott you. But the ones who care write reviews, and reviews are what the next buyer reads.</p>



<h2 class="wp-block-heading">What 352,296 Steam reviews told us</h2>



<p class="wp-block-paragraph">Surveys tell you what players say, but reviews show what they do, so we built our own dataset.</p>



<p class="wp-block-paragraph">We pulled English reviews for 49 games. Some had a documented AI controversy, some were built around AI, and some were popular games with no AI at all. We added 246,338 Reddit comments from threads about AI in games and 32,285 YouTube comments. That&#8217;s 284,462 comments in total.</p>



<p class="wp-block-paragraph">Then we flagged the ones that talk about generative AI. We hand-checked a random sample of 371 to make sure the filter worked. Between 97.7% and 99.3% were correct, depending on the platform.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1200" height="675" src="https://gamedevaihub.com/wp-content/uploads/2026/10/gamedevaihub-ai-review-punishment-by-game-type.webp" alt="Bar chart: on Steam games caught using AI, 78.9% of reviews that mention generative AI are negative versus 23.1% of all reviews; on games where AI is the product, 26.3% versus 23.1%." class="wp-image-20244" srcset="https://gamedevaihub.com/wp-content/uploads/2026/10/gamedevaihub-ai-review-punishment-by-game-type.webp 1200w, https://gamedevaihub.com/wp-content/uploads/2026/10/gamedevaihub-ai-review-punishment-by-game-type-300x169.webp 300w, https://gamedevaihub.com/wp-content/uploads/2026/10/gamedevaihub-ai-review-punishment-by-game-type-1024x576.webp 1024w, https://gamedevaihub.com/wp-content/uploads/2026/10/gamedevaihub-ai-review-punishment-by-game-type-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">Players punish AI they catch. Source: GameDevAIHub analysis of 352,296 English Steam reviews, October 2026.</figcaption></figure>



<p class="key-insight wp-block-paragraph"><strong>On games caught using AI, 78.9% of reviews that mention it are negative.</strong> Across all reviews of those same games, 23.1% are negative. That&#8217;s 3.4 times the normal rate.</p>



<p class="wp-block-paragraph">When AI is the product, players judge the game instead. Games like AI Roguelite, AI2U and Whispers from the Star are built on AI. On those games, reviews that mention AI are 26.3% negative. Across all their reviews it&#8217;s 23.1%, close enough to call even.</p>



<p class="wp-block-paragraph">Games with no AI almost never get AI reviews. Across 99,986 reviews of hits like Blue Prince, Hades II and PEAK, only 0.14% mention generative AI. That&#8217;s about one review in 700.</p>



<p class="wp-block-paragraph">AI complaints also carry more weight. Negative reviews that mention AI earned a median of 4 &#8220;helpful&#8221; votes. Other negative reviews earned 1. Steam shows the most helpful reviews by default, so AI complaints are more likely to sit where the next buyer looks.</p>



<p class="wp-block-paragraph">Most critics still play. Players who complain about AI wrote their review after a median of 11.3 hours of play. Only 18% wrote it inside Steam&#8217;s 2-hour refund window. And in Steam reviews, &#8220;wait for a sale&#8221; comes up almost as often as &#8220;I quit&#8221; (135 mentions against 160).</p>



<p class="wp-block-paragraph">So the typical punishment is a thumbs-down that warns the next buyer. Only 3.2% of these negative reviews carry Steam&#8217;s refunded flag.</p>



<h2 class="wp-block-heading">Case studies</h2>



<p class="wp-block-paragraph">In each of these four stories, what mattered was when players found the AI and what the studio did next.</p>



<p class="wp-block-paragraph"><strong>James Pond Legacy.</strong> Players spotted AI-looking art in the trailer and character work. The original creator, Chris Sorrell, said he hoped they &#8220;choke on an AI-generated fishbone.&#8221; Publisher System 3 denied using generative AI, blamed its developer&#8217;s assurances, and changed a caption from &#8220;3D Algorithm&#8221; to &#8220;3D Render.&#8221; Its boss Mark Cale admitted the controversy &#8220;has damaged confidence in System 3.&#8221; (<a href="https://www.timeextension.com/news/2026/09/james-pond-legacy-genai-controversy-has-damaged-confidence-in-system-3-admits-studio-boss" target="_blank" rel="noopener">Time Extension</a>)</p>



<p class="wp-block-paragraph"><strong>Vapor World: Over The Mind.</strong> The director swapped two cutscenes for AI video just before launch. Players noticed on day one. He posted an apology on Steam: &#8220;Using AI was entirely my own fault, and I am sorry.&#8221; The same day, a hotfix <a href="https://store.steampowered.com/news/app/1996090" target="_blank" rel="noopener">removed every AI cutscene</a>. Its Steam rating sits at Mixed, and AI comes up in 48% of its English reviews.</p>



<p class="wp-block-paragraph"><strong>Larian.</strong> In December 2025, CEO Swen Vincke said Larian used AI to explore ideas and write placeholder text for its next Divinity game. On 17 December, 22.5% of the Baldur&#8217;s Gate 3 reviews in our sample mentioned AI. Within weeks he reversed course and said &#8220;there is not going to be any GenAI art in Divinity.&#8221; (<a href="https://www.videogameschronicle.com/news/larian-backtracks-on-ai-use-for-divinity-concept-art-and-writing-but-says-generative-ai-can-help-some-areas-of-development/" target="_blank" rel="noopener">VGC</a>) BG3 stayed overwhelmingly positive.</p>



<p class="wp-block-paragraph"><strong>Sandfall and Clair Obscur: Expedition 33.</strong> AI placeholder textures slipped into the released game. Director Guillaume Broche said they were taken out &#8220;as soon as we saw it&#8221; and promised &#8220;everything will be made by humans from us&#8221; (<a href="https://www.pushsquare.com/news/2025/12/everything-will-be-made-by-humans-expedition-33-dev-says-no-more-ai-after-post-awards-heat" target="_blank" rel="noopener">Push Square</a>).</p>



<p class="wp-block-paragraph">The bigger problem was what Sandfall had said earlier. It had told the Indie Game Awards no generative AI was used, so when the placeholders came out, the awards <a href="https://www.dexerto.com/gaming/clair-obscur-expedition-33-indie-game-awards-wins-rescinded-over-gen-ai-assets-3296727/" target="_blank" rel="noopener">withdrew its Debut Game and Game of the Year wins</a>. AI mentions in its reviews peaked at 12% of our daily sample, then dropped back under 3% within about ten days. The game still <a href="https://www.gamedeveloper.com/business/clair-obscur-expedition-33-has-topped-8-million-sales-worldwide" target="_blank" rel="noopener">sold more than 8 million copies</a>.</p>



<figure class="wp-block-table"><table><thead><tr><th>Game</th><th>What players spotted</th><th>Outcome</th><th>What the studio did</th></tr></thead><tbody><tr><td>James Pond Legacy</td><td>AI-looking trailer and character art</td><td>Public anger from the series creator, trust damage</td><td>Denied, blamed the developer, changed a caption</td></tr><tr><td>Vapor World</td><td>AI video in two cutscenes</td><td>Mixed reviews, AI named in 48% of them</td><td>Apologised, removed the cutscenes on launch day</td></tr><tr><td>Larian (Divinity)</td><td>AI for concepts and placeholder text</td><td>BG3 review spike, 22.5% AI mentions on one day</td><td>Banned gen AI art from Divinity</td></tr><tr><td>Clair Obscur</td><td>AI placeholder textures that shipped</td><td>Indie Game Awards withdrawn, 8M+ sold</td><td>Confirmed the placeholders, removed them</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Party Animals shows how bad it can get. In May 2026, its developer announced a contest that required AI video. In our data, the game&#8217;s English reviews jumped from 159 in the second half of April to 2,132 in May. Of those, 91% were negative and 52% named AI. The developer <a href="https://www.notebookcheck.net/Party-Animals-cancels-AI-video-contest-after-community-vote.1301112.0.html" target="_blank" rel="noopener">cancelled the contest</a> after 57.3% of players voted to end it.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1200" height="675" src="https://gamedevaihub.com/wp-content/uploads/2026/10/gamedevaihub-party-animals-ai-review-bomb.webp" alt="Column chart of Party Animals English Steam reviews per month: 159 in late April, 2,132 in May 2026 when 91% were negative and 52% named generative AI, then under 210 per month after." class="wp-image-20247" srcset="https://gamedevaihub.com/wp-content/uploads/2026/10/gamedevaihub-party-animals-ai-review-bomb.webp 1200w, https://gamedevaihub.com/wp-content/uploads/2026/10/gamedevaihub-party-animals-ai-review-bomb-300x169.webp 300w, https://gamedevaihub.com/wp-content/uploads/2026/10/gamedevaihub-party-animals-ai-review-bomb-1024x576.webp 1024w, https://gamedevaihub.com/wp-content/uploads/2026/10/gamedevaihub-party-animals-ai-review-bomb-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">Party Animals&#8217; AI contest month. The studio cancelled the contest on 19 May.</figcaption></figure>



<p class="wp-block-paragraph">Big games survive this. ARC Raiders used text-to-speech voices and <a href="https://www.gamedeveloper.com/business/arc-raiders-branded-blockbuster-franchise-after-topping-14-million-sales" target="_blank" rel="noopener">sold 14 million copies</a>. Crimson Desert&#8217;s own Steam page says it used generative AI for some 2D props, and it <a href="https://www.gamedeveloper.com/business/crimson-desert-has-topped-2m-sales-within-a-day" target="_blank" rel="noopener">sold 2 million in a day</a>. An indie launch has no cushion like that.</p>



<h2 class="wp-block-heading">What players object to and what they ignore</h2>



<p class="wp-block-paragraph">Players object to the AI they can see.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1200" height="675" src="https://gamedevaihub.com/wp-content/uploads/2026/10/gamedevaihub-ai-thumbs-down-by-asset.webp" alt="Bar chart of the share of Steam reviews naming AI that do not recommend the game: store and marketing images 92%, cutscenes 78%, in-game art 66%, voice 61%, writing 57%, music 49%." class="wp-image-20246" srcset="https://gamedevaihub.com/wp-content/uploads/2026/10/gamedevaihub-ai-thumbs-down-by-asset.webp 1200w, https://gamedevaihub.com/wp-content/uploads/2026/10/gamedevaihub-ai-thumbs-down-by-asset-300x169.webp 300w, https://gamedevaihub.com/wp-content/uploads/2026/10/gamedevaihub-ai-thumbs-down-by-asset-1024x576.webp 1024w, https://gamedevaihub.com/wp-content/uploads/2026/10/gamedevaihub-ai-thumbs-down-by-asset-768x432.webp 768w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">Store art and cutscenes are where AI gets punished hardest.</figcaption></figure>



<p class="wp-block-paragraph">Among negative Steam reviews that mention AI and name what it was used for, visual art comes up in 49.1%. Writing and text appear in 26.8%, voice in 21.6%. Code appears in 2.4%.</p>



<p class="wp-block-paragraph">The riskiest place for AI is your store page. When a review names AI in store or marketing images, 92% are thumbs-down. Cutscenes come in at 78% and in-game art at 66%.</p>



<figure class="wp-block-table"><table><thead><tr><th>Draws fire</th><th>Mixed reaction</th><th>Rarely mentioned</th></tr></thead><tbody><tr><td>Store and capsule art (92% negative when named)</td><td>Writing and dialogue (57%)</td><td>Code (2.4% of AI complaints)</td></tr><tr><td>Cutscenes and animation (78%)</td><td>Voice and TTS (61%)</td><td>Translation (3.1% of AI complaints)</td></tr><tr><td>In-game art, portraits, cosmetics (66%)</td><td>Music (49%, few mentions)</td><td>Tools and testing (players can&#8217;t see them)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Surveys agree. <a href="https://quanticfoundry.com/2025/12/18/gen-ai/" target="_blank" rel="noopener">Quantic Foundry</a> found gamers most negative about AI artwork, music and dialogue, and least negative about AI for dynamic difficulty. In GameDiscoverCo&#8217;s survey, coding tools were the most accepted use.</p>



<p class="wp-block-paragraph">Players also told us how they catch it. The most cited clue in our data is the disclosure label itself, with 4,019 mentions. Then hands and fingers (2,938) and that glossy &#8220;AI look&#8221; (1,092). So if you use AI where players look, assume someone will check.</p>



<h2 class="wp-block-heading">Is AI placeholder art okay?</h2>



<p class="wp-block-paragraph">Both sides of this argument have a point.</p>



<p class="wp-block-paragraph">The case for it is simple. A placeholder lets you test a level before you pay an artist. And players in GameDiscoverCo&#8217;s survey named prototyping and placeholders as the second most acceptable use of AI.</p>



<p class="wp-block-paragraph">The case against it is that placeholders do ship. Clair Obscur proves it. And on The Alters, where AI text was found before it was disclosed, 69% of reviews that mention AI are negative. The game&#8217;s normal rate is 11%.</p>



<p class="wp-block-paragraph">Our rule:</p>



<ol class="wp-block-list steps">
<li>Mark every placeholder in the build itself. A visible &#8220;TEMP&#8221; stamp works.</li>



<li>Keep a list of every AI asset and who will replace it.</li>



<li>Never put a placeholder on your store page, trailer or capsule.</li>



<li>Check the list before launch. Disclose anything that stays.</li>
</ol>



<p class="wp-block-paragraph">If you need art you can actually ship, start with our guide to <a href="/best-ai-pixel-art-generators-for-2d-indie-games/">AI pixel art generators for 2D indie games</a> and read the licence terms before you commit.</p>



<h2 class="wp-block-heading">What you must disclose</h2>



<p class="wp-block-paragraph"><strong>Steam.</strong> Valve&#8217;s content survey covers AI content that &#8220;ships with your game, and is consumed by players,&#8221; like artwork, sound, narrative and localization. <a href="https://partner.steamgames.com/doc/gettingstarted/contentsurvey?l=english" target="_blank" rel="noopener">The current Steamworks text</a> says &#8220;efficiency gains through the use of these tools is not the focus.&#8221; So code assistants don&#8217;t need a label. Content generated live while the game runs needs a description of your guardrails. Players see your answer in an &#8220;AI Generated Content Disclosure&#8221; box on the store page.</p>



<p class="wp-block-paragraph">Our <a href="/steam-ai-disclosure-guide/">Steam AI disclosure guide</a> covers what to declare and what the label costs you.</p>



<p class="wp-block-paragraph"><strong>itch.io.</strong> Since November 2024, every project page has a <a href="https://itch.io/t/4309690/generative-ai-disclosure-tagging" target="_blank" rel="noopener">generative AI disclosure field</a>. Answer yes and your page gets the AI Generated tag, plus sub-tags for graphics, sound, text and code. Answer no and you get the No AI tag. It&#8217;s mandatory for asset pages. Untagged AI assets drop out of browse.</p>



<p class="wp-block-paragraph">Some devs use the disclosure box to say what they didn&#8217;t use, and you should copy them. AI2U&#8217;s Steam disclosure reads &#8220;None of the art assets in the game are AI-generated.&#8221; Only 17% of Steam fans believe developers fully disclose, so saying it plainly helps.</p>



<h2 class="wp-block-heading">Game jam AI rules</h2>



<p class="wp-block-paragraph">Jams don&#8217;t agree, so read the rules page every time. Most fall into one of three types.</p>



<figure class="wp-block-table"><table><thead><tr><th>Policy type</th><th>Example jam</th><th>What the rules say</th></tr></thead><tbody><tr><td>Full ban</td><td><a href="https://itch.io/jam/godot-wild-jam-98" target="_blank" rel="noopener">Godot Wild Jam</a></td><td>&#8220;No vibe code, no AI-generated art, no AI-composed music, no AI-written dialogue, no AI assets of any kind.&#8221;</td></tr><tr><td>Code only (no AI assets)</td><td><a href="https://itch.io/jam/gmtk-2027" target="_blank" rel="noopener">GMTK Game Jam</a></td><td>&#8220;Your game must not use AI generated art or audio assets,&#8221; including the itch.io thumbnail</td></tr><tr><td>Allowed with disclosure</td><td><a href="https://ludumdare.com/resources/questions/can-i-use-ai/" target="_blank" rel="noopener">Ludum Dare</a></td><td>AI tools are allowed, but &#8220;you should opt-out of categories where a content generation tool did most of the work&#8221;</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><a href="https://globalgamejam.org/news/global-game-jam-artificial-intelligence-policy" target="_blank" rel="noopener">Global Game Jam</a> goes further and allows AI with no restrictions. Its own survey of 3,578 jammers found 18% of teams used AI.</p>



<h2 class="wp-block-heading">What if you&#8217;re falsely accused of using AI?</h2>



<p class="wp-block-paragraph">It happens, and it costs real studios. Shrine&#8217;s Legacy was review-bombed as &#8220;100% AI generated.&#8221; The team said they &#8220;only worked with real human artists on everything,&#8221; and the reviews recovered (<a href="https://www.vice.com/en/article/steam-reviews-have-a-serious-ai-problem-that-needs-to-be-fixed/" target="_blank" rel="noopener">Vice</a>). The team behind Schrodinger&#8217;s Cat Burglar changed its capsule art because people kept calling it AI. It wasn&#8217;t. Axion 1986 says it lost press coverage over a trailer it made by hand (<a href="https://www.creativebloq.com/3d/video-game-design/how-should-game-developers-respond-to-ai-art-accusations" target="_blank" rel="noopener">Creative Bloq</a>).</p>



<p class="wp-block-paragraph">You can&#8217;t stop the accusation, but you can make proof easy. Keep this ready before launch.</p>



<ol class="wp-block-list">
<li>Layered source files: PSD, Krita or Blender files with their history.</li>



<li>A timelapse. Record your screen while you paint. The Little Droid team answered its accusers with a video showing the art being made.</li>



<li>Dated sketches, thumbnails and roughs.</li>



<li>A public devlog with work-in-progress images, posted as you go. Dates on the internet are hard to fake.</li>



<li>Credits that name your artists and link their portfolios.</li>



<li>Your AI policy on the store page, with a way for people to ask.</li>
</ol>



<h2 class="wp-block-heading">A safe-use framework</h2>



<p class="wp-block-paragraph">Use this ladder from safest to riskiest. Each step up raises the chance that players notice and care.</p>



<ol class="wp-block-list steps">
<li>Code, QA and tools. 2.4% of AI complaints. Steam doesn&#8217;t ask about it. See our list of <a href="/free-ai-tools-for-indie-game-developers/">free AI tools for indie game developers</a>.</li>



<li>Placeholders that never ship. Accepted by many players, if you follow the rule above.</li>



<li>Translation. Named in 3.1% of AI complaints, but Steam does require disclosure.</li>



<li>Writing and dialogue. Named in 26.8% of AI complaints.</li>



<li>Voice. Named in 21.6%. ARC Raiders survived it, and its CEO still said &#8220;a real professional actor is better than AI&#8221; (<a href="https://www.engadget.com/gaming/arc-raiders-replaced-some-of-its-ai-generated-voice-lines-with-professional-actors-184915627.html" target="_blank" rel="noopener">Engadget</a>).</li>



<li>In-game art. Named in 49.1%, the biggest single target.</li>



<li>Cutscenes and store art. 78% and 92% negative when named. Vapor World pulled its AI cutscenes on launch day.</li>
</ol>



<p class="wp-block-paragraph">The higher you go, the more you need disclosure, a plan to replace, and proof. For the full tool list, see our <a href="/best-ai-tools-for-indie-game-developers/">best AI tools for indie game developers</a>.</p>



<h2 class="wp-block-heading">FAQ</h2>


<div id="rank-math-faq" class="rank-math-block">
<div class="rank-math-list ">
<div id="faq-question-1791300000" class="rank-math-list-item">
<h3 class="rank-math-question ">Will AI art hurt my game sales?</h3>
<div class="rank-math-answer ">

<p>It can. Game Oracle estimated 52.6% fewer first-month reviews for AI-disclosed games, and Sulka Haro found they reach 100 reviews at 55% of the normal rate. Both are correlations. Visible AI art is where the risk sits.</p>

</div>
</div>
<div id="faq-question-1791300001" class="rank-math-list-item">
<h3 class="rank-math-question ">Do gamers hate AI games?</h3>
<div class="rank-math-answer ">

<p>Many do. Quantic Foundry found 85% of 1,799 core gamers rate gen AI below neutral. But only 8% of Steam fans told GameDiscoverCo they won&#8217;t buy a game with AI. In our data, games built around AI get normal reviews.</p>

</div>
</div>
<div id="faq-question-1791300002" class="rank-math-list-item">
<h3 class="rank-math-question ">Is AI placeholder art okay in an indie game?</h3>
<div class="rank-math-answer ">

<p>Yes, if it never ships. Mark it in the build, track it, keep it off your store page, and replace it before launch.</p>

</div>
</div>
<div id="faq-question-1791300003" class="rank-math-list-item">
<h3 class="rank-math-question ">Do I have to disclose AI code on Steam?</h3>
<div class="rank-math-answer ">

<p>No. Steam&#8217;s survey targets content players consume, like art, sound, narrative and localization. Efficiency tools aren&#8217;t the focus.</p>

</div>
</div>
<div id="faq-question-1791300004" class="rank-math-list-item">
<h3 class="rank-math-question ">What does the itch.io No AI tag mean?</h3>
<div class="rank-math-answer ">

<p>It&#8217;s added automatically when you answer no in the generative AI disclosure field on your project page.</p>

</div>
</div>
<div id="faq-question-1791300005" class="rank-math-list-item">
<h3 class="rank-math-question ">What should I do if I&#8217;m falsely accused of using AI?</h3>
<div class="rank-math-answer ">

<p>Show your process. Layered files, timelapses, sketches and a devlog are the fastest proof. Post a clear AI policy on your store page.</p>

</div>
</div>
</div>
</div>


<h2 class="wp-block-heading">How we did this research</h2>



<p class="wp-block-paragraph">We collected public comments on 5 and 6 October 2026 from Steam&#8217;s public review API, the Arctic Shift Reddit archive and 48 YouTube videos about AI in games. We flagged generative AI mentions with transparent keyword rules and hand-checked a random sample of 371. Every number here shows an association, not a cause. Commenters chose to write, so this isn&#8217;t a random sample of all gamers.</p>



<p class="wp-block-paragraph"><strong>How we use AI on this site:</strong> We used Claude to write the collection scripts and to help sort and check the comments. Every statistic in this article was checked against its original source before publishing.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gamedevaihub.com/will-players-punish-ai-art-in-games/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Best AI Sprite Sheet Generators (2026): 5 Compared</title>
		<link>https://gamedevaihub.com/best-ai-sprite-sheet-generators/</link>
					<comments>https://gamedevaihub.com/best-ai-sprite-sheet-generators/#respond</comments>
		
		<dc:creator><![CDATA[Adrian]]></dc:creator>
		<pubDate>Sun, 27 Sep 2026 18:51:27 +0000</pubDate>
				<category><![CDATA[AI Art & Sprites]]></category>
		<guid isPermaLink="false">https://gamedevaihub.com/?p=20206</guid>

					<description><![CDATA[PixelLab, SpriteCook, Ludo, AutoSprite and Retro Diffusion compared on animation, exports and real cost per animation.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">An AI sprite sheet generator should give you one character, animated, in frames your engine can play. Most of them promise that. Fewer of them show you what happens after the download.</p>



<p class="wp-block-paragraph">I picked 5 tools that animate a character and export a sheet. PixelLab, SpriteCook, Ludo, AutoSprite and Retro Diffusion. Each one solves a different problem, so the best one depends on what you already have and what you need out of it.</p>



<p class="wp-block-paragraph"><strong>How I made this page.</strong> I compared the 5 from their own product pages, docs, pricing pages and API examples. I have not run the benchmark yet. That comes next, and the full test plan is further down so you can check my work when the results go up. </p>



<p class="wp-block-paragraph">No tool on this page pays me.</p>



<h2 class="wp-block-heading">Which AI sprite sheet generator should you use?</h2>



<p class="wp-block-paragraph">Short version, by job.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>You want</th><th>Pick</th><th>Why</th></tr></thead><tbody><tr><td>Control over every pixel</td><td>PixelLab</td><td>Skeleton animation, 4 and 8 directions, inpainting</td></tr><tr><td>A full moveset with no learning curve</td><td>SpriteCook</td><td>Idle, walk, attack and run presets</td></tr><tr><td>To direct the motion and control the export</td><td>Ludo</td><td>Keyframes, reference video, PNG + JSON</td></tr><tr><td>To animate a character you already drew</td><td>AutoSprite</td><td>One image in, PNG sheets and JSON timing out</td></tr><tr><td>Real pixel art and a pay-per-use API</td><td>Retro Diffusion</td><td>Palette input, native pixel styles, no subscription</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">If you search &#8220;AI sprite sheet generator&#8221;, almost every result is a tool selling itself. That&#8217;s fine for a demo. It doesn&#8217;t tell you how many tries a walk cycle takes or how long the cleanup is.</p>



<p class="wp-block-paragraph">So read this as the map. The test results will be the verdict.</p>



<h2 class="wp-block-heading">AI sprite sheet generators compared</h2>



<p class="wp-block-paragraph">This is what each vendor documents. Prices change a lot in this category, so check the live checkout before you pay.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Tool</th><th>Input</th><th>Actions</th><th>Directions</th><th>Exports</th><th>Free allowance</th><th>Paid from</th></tr></thead><tbody><tr><td>PixelLab</td><td>Text, skeleton, reference image</td><td>Walk, run, attack, custom</td><td>4 and 8</td><td>PNG sheets</td><td>Free trial, no card</td><td>$12/month, drops to $9 over time</td></tr><tr><td>SpriteCook</td><td>Text or your own image</td><td>Idle, walk, attack, run</td><td>Not documented</td><td>Transparent PNG, sheets</td><td>40 credits every 30 days</td><td>$8/month + VAT, 800 credits</td></tr><tr><td>Ludo</td><td>Text, image, keyframes, reference video</td><td>Presets + custom motion</td><td>Not documented</td><td>PNG sheet, JSON, single frames</td><td>30-credit trial</td><td>$15/month billed yearly ($180)</td></tr><tr><td>AutoSprite</td><td>One character image</td><td>Idle, walk, run, jump, attack</td><td>8-direction isometric</td><td>PNG sheets + JSON positions and timing</td><td>15 credits + daily login bonus</td><td>$12/month, 500 credits</td></tr><tr><td>Retro Diffusion</td><td>Text, image, palette</td><td>Walking, idle, attack styles</td><td>Not documented</td><td>PNG sprite sheet, transparent</td><td>50 starter credits</td><td>API from $0.14 per animation</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Three things jump out.</p>



<p class="wp-block-paragraph">Only AutoSprite and Ludo export JSON next to the PNG. If you want the engine to read frame timing instead of typing it in, that matters.</p>



<p class="wp-block-paragraph">Only Retro Diffusion documents palette input. If your game has a fixed palette, that&#8217;s the feature that stops colors from drifting.</p>



<p class="wp-block-paragraph">And the billing models are all different. Monthly credits, yearly billing, one-time credits and per-call API pricing. A cheap sticker price tells you very little until you know how many credits one animation eats.</p>



<h2 class="wp-block-heading">The 5 best AI sprite sheet generators</h2>



<h3 class="wp-block-heading">PixelLab: best for pixel art control</h3>



<p class="wp-block-paragraph">PixelLab is the one I&#8217;d look at first if you care about the pixels themselves. It does text-driven animation and skeleton-based animation, so you can pose the character instead of hoping the prompt lands. It also makes 4- and 8-direction views, generates from a reference image and has inpainting for fixing one part of a frame. <a href="https://www.pixellab.ai/" target="_blank" rel="noopener">PixelLab</a></p>



<p class="wp-block-paragraph">It&#8217;s pixel art only. If you want HD or painted sprites, look elsewhere.</p>



<p class="wp-block-paragraph">Pricing looks confusing until you read the small print. Pixel Apprentice is $12/month, Pixel Artisan is $24/month and Pixel Architect is $50/month. The first two get cheaper the longer you stay. Apprentice drops from $12 to $10, then $9.50, then $9.</p>



<p class="wp-block-paragraph">That&#8217;s why SpriteCook&#8217;s comparison says PixelLab starts at $9. Both numbers are true, just not in the same month.</p>



<p class="wp-block-paragraph">The free trial needs no card, and paid plans include commercial use. Some PixelLab tools use more than one generation per image, so check what an animation costs in your plan. <a href="https://www.pixellab.ai/pricing" target="_blank" rel="noopener">PixelLab pricing</a></p>



<p class="wp-block-paragraph">What I&#8217;ll test: whether a small asymmetric detail like a shoulder pad survives every frame, and whether idle and walk line up when you switch between them. Feature depth doesn&#8217;t prove the first output is the best one.</p>



<p class="wp-block-paragraph">Skip it if you want HD art or you don&#8217;t want to touch an editor. If you&#8217;re deciding between PixelLab and a manual workflow, read <a href="https://gamedevaihub.com/pixellab-vs-aseprite/">PixelLab vs Aseprite</a>.</p>



<h3 class="wp-block-heading">SpriteCook: best for a full moveset with no learning curve</h3>



<p class="wp-block-paragraph">On paper, SpriteCook is the shortest path from nothing to a character that moves. The character creator has presets for idle, walk, attack and run. There&#8217;s also an animator that takes an image you already have. Exports are transparent PNGs and sprite sheets, and it offers API and MCP access if you work with Claude or Cursor. <a href="https://www.spritecook.ai/" target="_blank" rel="noopener">SpriteCook</a></p>



<p class="wp-block-paragraph">It does pixel art and more detailed HD art in one tool. That&#8217;s the main thing it has over PixelLab.</p>



<p class="wp-block-paragraph">Starter is $8/month plus VAT for 800 credits. You get 40 free credits every 30 days. SpriteCook lists about 20 credits per animation, so 800 credits is roughly 40 animations if nothing fails. Retries eat the same credits, so treat 40 as the ceiling. <a href="https://www.spritecook.ai/pricing" target="_blank" rel="noopener">SpriteCook pricing</a></p>



<p class="wp-block-paragraph">What I&#8217;ll test: whether the output sits on a real pixel grid, whether frames stay registered to the same spot and what the files contain. I&#8217;ll show the untouched output next to the cleaned one, because &#8220;game-ready&#8221; means nothing until it plays in an engine.</p>



<p class="wp-block-paragraph">Skip it if you need fine control over each pose.</p>



<h3 class="wp-block-heading">Ludo: best for directing motion and controlling exports</h3>



<p class="wp-block-paragraph">Ludo gives you the most ways to tell the animation what to do. You can write a motion prompt, set up to 3 keyframes, upload a reference video for the motion or use a preset. Ludo&#8217;s <a href="https://ludo.ai/tools/animation-presets/walk-cycle" target="_blank" rel="noopener">walk cycle page</a> lists 30 walk presets. <a href="https://ludo.ai/features/sprite-generator" target="_blank" rel="noopener">Ludo sprite generator</a></p>



<p class="wp-block-paragraph">Exports are PNG sheets, JSON and individual frames. The Animation Pack can normalize sizes and align characters to the ground, which saves you from characters that bob or shrink between animations.</p>



<p class="wp-block-paragraph">Indie is $15/month and Pro is $35/month when you pay for the year. That&#8217;s $180 or $420 up front. Ludo says yearly billing saves up to 35%, so month to month costs more. There&#8217;s a 30-credit trial on the feature page. <a href="https://ludo.ai/pricing" target="_blank" rel="noopener">Ludo pricing</a></p>



<p class="wp-block-paragraph">Ludo publishes its own &#8220;best AI sprite generators&#8221; list and puts itself first. They say so on the page, which is fair. It&#8217;s still a vendor ranking.</p>



<p class="wp-block-paragraph">What I&#8217;ll test: the loop seam on the walk, whether the attack has a clear windup, hit and recovery, and whether normalization keeps the body proportions. Ludo works in square grids from 4 to 64 frames, so I&#8217;ll report native frame counts and any resampling.</p>



<p class="wp-block-paragraph">Skip it if you don&#8217;t want to pay for a year up front.</p>



<h3 class="wp-block-heading">AutoSprite: best for animating a character you already have</h3>



<p class="wp-block-paragraph">AutoSprite starts from one image and turns it into a set. Idle, walk, run, jump and attack. You get PNG sheets plus JSON with positions and timing, and you can edit frames after. It also does 8-direction isometric animation. <a href="https://www.autosprite.io/docs/faq" target="_blank" rel="noopener">AutoSprite FAQ</a></p>



<p class="wp-block-paragraph">It lists export support for Unity, Unreal, Godot, GameMaker, Phaser and RPG Maker.</p>



<p class="wp-block-paragraph">Starter is $12/month for 500 credits and Pro is $29/month for 1,500. New accounts get 15 credits plus daily login bonuses. There&#8217;s a cheap 5-credit Turbo mode and more expensive generation modes above it, so the real cost depends on which mode you run. <a href="https://www.autosprite.io/pricing" target="_blank" rel="noopener">AutoSprite pricing</a></p>



<p class="wp-block-paragraph">One catch for pixel art. The FAQ recommends source images between 512 and 1024 px. A 64×64 sprite is way smaller than that. My plan is to enlarge it with nearest-neighbor scaling and say so. Then I check if the export still looks like pixel art.</p>



<p class="wp-block-paragraph">The pricing page and the FAQ also describe API and MCP access a bit differently. Check in the app which plan you need.</p>



<p class="wp-block-paragraph">Skip it if you start from text and have no character art yet.</p>



<h3 class="wp-block-heading">Retro Diffusion: best for real pixel art and pay-per-use</h3>



<p class="wp-block-paragraph">Retro Diffusion is built only for pixel art. It has dedicated styles for <a href="https://retrodiffusion.ai/styles/walking/" target="_blank" rel="noopener">walking</a>, <a href="https://retrodiffusion.ai/styles/idle/" target="_blank" rel="noopener">idle</a> and <a href="https://retrodiffusion.ai/styles/attack/" target="_blank" rel="noopener">attack</a> animations. The official API examples show palette input, transparent output and a full PNG sprite sheet from one request. <a href="https://github.com/Retro-Diffusion/api-examples" target="_blank" rel="noopener">Retro Diffusion API examples</a></p>



<p class="wp-block-paragraph">There&#8217;s no subscription. The website gives 50 starter credits and the credits don&#8217;t expire. On the API side, the examples list $0.14 for a standard animation and $0.25 for custom action or subtle motion. Website credits and API dollars are two separate things, so don&#8217;t mix them up. <a href="https://retrodiffusion.ai/tools/pixel-art-fixer/" target="_blank" rel="noopener">Retro Diffusion credits</a></p>



<p class="wp-block-paragraph">If you&#8217;ve used Sorceress Quick Sprites, Sorceress says it runs on Retro Diffusion. Same model, different interface.</p>



<p class="wp-block-paragraph">What I&#8217;ll test: which actions it covers, the source size limits per model and how much prep the export needs before it plays.</p>



<p class="wp-block-paragraph">Skip it if you want a big button that makes a whole moveset at once. I compared it head to head in <a href="https://gamedevaihub.com/retro-diffusion-vs-pixellab/">Retro Diffusion vs PixelLab</a>.</p>



<h3 class="wp-block-heading">Other AI sprite tools worth a look</h3>



<p class="wp-block-paragraph">Spritesheets.ai would be my sixth pick. It targets exactly this search and advertises JSON and XML atlas files with pivot points. Its Lite plan showed 1,000 tokens in one place and 1,500 in another, so ask before you buy. <a href="https://www.spritesheets.ai/pricing" target="_blank" rel="noopener">Spritesheets.ai pricing</a></p>



<p class="wp-block-paragraph"><a href="https://www.scenario.com/blog/ai-sprite-generator" target="_blank" rel="noopener">Scenario</a> and <a href="https://layer.ai/tools/layer--generate-a-sprite-sheet" target="_blank" rel="noopener">Layer</a> are bigger production platforms with sprite workflows. They make more sense for a studio than for one person shipping a small game.</p>



<h2 class="wp-block-heading">AI walk cycle generators: what a good walk looks like</h2>



<p class="wp-block-paragraph">Walk cycles are the first animation almost every game needs. Every moving character has one, and it&#8217;s where AI output breaks in the most visible way.</p>



<p class="note wp-block-paragraph">A usable walk cycle does 4 things. The feet don&#8217;t slide on the ground. The last frame flows back into the first without a jump. The character stays in the same spot in every frame. And the gait reads as a walk at game size, not only zoomed in.</p>



<p class="wp-block-paragraph">SpriteCook has a dedicated <a href="https://www.spritecook.ai/walk-cycle-generator" target="_blank" rel="noopener">walk cycle generator</a>. Ludo has the 30 walk presets. Retro Diffusion has a walking style. AutoSprite and PixelLab make walks as part of a full set.</p>



<p class="key-insight wp-block-paragraph">Idle is easier. The feet stay planted and only the chest moves. If a tool can&#8217;t hold the feet still during idle, it won&#8217;t hold them during a walk either.</p>



<p class="wp-block-paragraph">Attack is the hardest. You need a windup, a clear hit frame and a recovery, and the weapon has to stay the same shape the whole time. This is where I expect the most failures.</p>



<h2 class="wp-block-heading">Pixel art animation with AI: real pixels vs fake pixels</h2>



<p class="wp-block-paragraph">A lot of AI output looks like pixel art from far away. Zoom in and the pixels are different sizes, the edges are blurry and there are 40 shades of the same red.</p>



<p class="wp-block-paragraph">Those are pseudo-pixels. Your engine will show them exactly as they are, and they look wrong next to handmade sprites.</p>



<p class="wp-block-paragraph">Three checks take 1 minute. Zoom to 800% and see if every pixel is the same size. Count the colors against your palette. And put the sheet on a bright pink background to find edge halos and fake transparency.</p>



<p class="wp-block-paragraph">PixelLab and Retro Diffusion are the two built around native pixel art. Retro Diffusion also takes a palette. That doesn&#8217;t prove they need less cleanup. It just means they&#8217;re built for the problem.</p>



<h2 class="wp-block-heading">SpriteCook vs PixelLab: which one should you pay for?</h2>



<p class="wp-block-paragraph">Search &#8220;SpriteCook vs PixelLab&#8221; and the top result is written by SpriteCook. So here&#8217;s the neutral version.</p>



<p class="wp-block-paragraph">Pick SpriteCook if you want presets, a saved library of your assets and both pixel and HD art in one place. It&#8217;s cheaper to start at $8/month and it&#8217;s built for beginners.</p>



<p class="wp-block-paragraph">Pick PixelLab if you want skeleton control, 8 directions and inpainting to fix single frames. It&#8217;s pixel art only, and it pairs with Aseprite if you like to edit by hand.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th></th><th>SpriteCook</th><th>PixelLab</th></tr></thead><tbody><tr><td>Art styles</td><td>Pixel and HD</td><td>Pixel only</td></tr><tr><td>Animation</td><td>Presets + animate any image</td><td>Text + skeleton, 4 and 8 directions</td></tr><tr><td>Fix one frame</td><td>Not documented</td><td>Inpainting</td></tr><tr><td>Free</td><td>40 credits every 30 days</td><td>Free trial, no card</td></tr><tr><td>Paid from</td><td>$8/month + VAT</td><td>$12/month, drops to $9 the longer you stay</td></tr><tr><td>API and MCP</td><td>Yes</td><td>Yes</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Storage is the one difference people miss. PixelLab&#8217;s own FAQ says it doesn&#8217;t store the images you generate or upload. That&#8217;s good for privacy, but you have to save everything yourself. SpriteCook keeps your assets in your account. <a href="https://www.pixellab.ai/termsofservice" target="_blank" rel="noopener">PixelLab terms</a></p>



<p class="wp-block-paragraph">The same-character test will decide this one properly.</p>



<h2 class="wp-block-heading">What does an AI sprite animation really cost?</h2>



<p class="wp-block-paragraph">The sticker price is the wrong number. The real number is what you spend per animation you actually keep.</p>



<p class="wp-block-paragraph">Here&#8217;s the math from what vendors publish, before any failed attempts.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Tool</th><th>Published cost per animation</th></tr></thead><tbody><tr><td>SpriteCook</td><td>About 20 credits, so roughly $0.20 on Starter</td></tr><tr><td>Retro Diffusion API</td><td>$0.14 standard, $0.25 custom or subtle motion</td></tr><tr><td>AutoSprite</td><td>Depends on the tier, from 5 credits on Turbo</td></tr><tr><td>Ludo</td><td>Not listed per animation</td></tr><tr><td>PixelLab</td><td>Not listed per animation, some PixelLab tools use more than one generation</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Now add retries. If a walk cycle takes 3 tries to get right, the SpriteCook number triples. If it never passes, the cost per usable animation isn&#8217;t cheap. It doesn&#8217;t exist.</p>



<p class="wp-block-paragraph">That&#8217;s the number I&#8217;ll publish after testing. Total spend including failures, divided by animations that passed. Plus cleanup minutes.</p>



<h3 class="wp-block-heading">Can you test them all for free?</h3>



<p class="wp-block-paragraph">Mostly, yes. With the free allowances you can run one character through all 5 this weekend.</p>



<p class="wp-block-paragraph">SpriteCook gives 40 free credits, which is about 2 animations. Ludo has a 30-credit trial. AutoSprite gives 15 credits plus a daily bonus. Retro Diffusion gives 50 starter credits. PixelLab has a free trial with no card.</p>



<p class="wp-block-paragraph">Use the same character in all of them. Do one walk cycle each. You&#8217;ll learn more in 2 hours than from any comparison page, this one included.</p>



<p class="wp-block-paragraph">Free also doesn&#8217;t always mean commercial. Check each tool&#8217;s terms for what your plan allows, and remember that a vendor&#8217;s permission isn&#8217;t a legal guarantee. If you ship on Steam, read the <a href="https://gamedevaihub.com/steam-ai-disclosure-guide/">Steam AI disclosure guide</a> too.</p>



<h2 class="wp-block-heading">Does it import into Godot and Unity?</h2>



<p class="wp-block-paragraph">A sheet that doesn&#8217;t import cleanly is just a picture. Before you open the engine, check that every frame is the same size, the order is right and the background is actually transparent.</p>



<p class="wp-block-paragraph">In Godot 4, add an AnimatedSprite2D and make a new SpriteFrames resource. Click the button to add frames from a sprite sheet and set the horizontal and vertical frame counts. Set texture filtering to Nearest or your pixel art will blur.</p>



<p class="wp-block-paragraph">In Unity, set Texture Type to Sprite (2D and UI) and Sprite Mode to Multiple. Set Filter Mode to Point and Compression to None. Then slice it in the Sprite Editor by cell size or cell count.</p>



<p class="wp-block-paragraph">If the tool gives you JSON, check that the frame rectangles match the PNG before you write any import code.</p>



<p class="wp-block-paragraph">The full step-by-step setup is in my <a href="https://gamedevaihub.com/ai-sprite-generator-platformer-characters/">AI sprite generator guide for platformers</a>, with prompt templates and a checklist for the PNG.</p>



<h2 class="wp-block-heading">Why AI sprites jitter and how to fix it</h2>



<p class="wp-block-paragraph">Jitter is usually one of two problems. And they need different fixes.</p>



<p class="wp-block-paragraph">The first is registration. The character is fine, but it moves around inside the frame. The feet land 2 pixels higher in frame 3 than in frame 2, so the whole sprite bounces. Fix it by setting the pivot at the feet and padding every frame to the same canvas. Aseprite or Pixelorama can align frames by hand in a few minutes.</p>



<p class="wp-block-paragraph">The second is deformation. The character itself changes. The sword gets longer, the scarf changes color, the face shifts. No alignment fixes that. Regenerate the bad frame, inpaint it if the tool can, or cut the frame count so there are fewer chances to break.</p>



<p class="wp-block-paragraph">Palette drift and fake pixels are a third, smaller problem. Reduce the colors back to your source palette and scale down with nearest-neighbor.</p>



<p class="wp-block-paragraph">Onion skinning shows you which one you have in seconds. If the outline stays the same shape but moves, it&#8217;s registration. If the shape changes, it&#8217;s deformation.</p>



<h2 class="wp-block-heading">The test I&#8217;m running next</h2>



<p class="wp-block-paragraph">A comparison without outputs is only half the job. So here&#8217;s exactly how I&#8217;ll test the 5, published before I have results.</p>



<p class="wp-block-paragraph">One character. A 64×64 pixel art swordswoman with a navy tunic, red scarf, silver sword, gold buckle and one shoulder pad on one side only. Side view, facing right. The same file goes into every tool, and I&#8217;ll say whenever a tool forced me to resize it.</p>



<p class="wp-block-paragraph">Three actions. Idle with breathing and planted feet. One walk cycle in place. One sword slash with windup, hit and recovery. 8 frames where the tool allows it.</p>



<p class="wp-block-paragraph">Three attempts per action per tool. That&#8217;s 45 animations, and all 45 get published, failures included.</p>



<p class="wp-block-paragraph">Each one gets scored out of 100.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>What I score</th><th>Points</th></tr></thead><tbody><tr><td>Character stays the same</td><td>30</td></tr><tr><td>Motion reads clearly</td><td>20</td></tr><tr><td>Frames stay registered, clean loop</td><td>15</td></tr><tr><td>Real pixels and clean transparency</td><td>15</td></tr><tr><td>Export imports into the engine</td><td>10</td></tr><tr><td>Cost and cleanup time</td><td>10</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">A pass means the character is recognizable, the action reads, nothing is cropped, the frames are in order, the transparency works and it plays in Godot. I allow 10 minutes of cleanup, max, and report before and after separately.</p>



<p class="wp-block-paragraph">The source character, palette, native outputs and a results CSV will be downloadable here. Then you can run the same test yourself and argue with my scores.</p>



<p class="wp-block-paragraph">Want a ping when the results go up? Subscribe to the comments at the bottom of this page.</p>



<h2 class="wp-block-heading">FAQ</h2>



<h3 class="wp-block-heading">Can ChatGPT make sprite sheets?</h3>



<p class="wp-block-paragraph">ChatGPT can draw an image that looks like a sprite sheet. It doesn&#8217;t give you an even frame grid, a fixed pivot, JSON timing or a guarantee the character stays the same across frames. For a prototype it&#8217;s fine. For a game you&#8217;d slice and fix it by hand, so a dedicated tool is usually faster.</p>



<h3 class="wp-block-heading">Is there a free AI sprite sheet generator?</h3>



<p class="wp-block-paragraph">All 5 have a free way in. SpriteCook gives 40 credits every 30 days, Ludo has a 30-credit trial, AutoSprite gives 15 credits plus daily bonuses, Retro Diffusion gives 50 starter credits and PixelLab has a free trial with no card. Free plans may limit exports or commercial use, so read the terms.</p>



<h3 class="wp-block-heading">Can AI animate a sprite I already drew?</h3>



<p class="wp-block-paragraph">Yes. SpriteCook&#8217;s animator, AutoSprite and Ludo all take an existing image. AutoSprite recommends 512 to 1024 px sources, so small pixel art may need a clean nearest-neighbor upscale first.</p>



<h3 class="wp-block-heading">Can AI make 8-direction sprites?</h3>



<p class="wp-block-paragraph">PixelLab documents 4- and 8-direction views and AutoSprite documents 8-direction isometric animation. I haven&#8217;t tested either for 8 directions yet, so treat those as vendor claims for now.</p>



<h3 class="wp-block-heading">Can I use AI sprites in a commercial game?</h3>



<p class="wp-block-paragraph">Usually on paid plans, but it depends on the tool and the plan. Read the terms for the plan you actually buy. On Steam you also have to <a href="https://gamedevaihub.com/steam-ai-disclosure-guide/">disclose AI-generated content</a>.</p>



<h2 class="wp-block-heading">Sources and updates</h2>



<p class="wp-block-paragraph">Everything above comes from vendor pages. That covers product pages, docs, pricing pages and API examples. Vendor docs prove what a tool claims to do, not how well it does it. The test results will replace the &#8220;What I&#8217;ll test&#8221; notes when they&#8217;re done.</p>



<p class="wp-block-paragraph">If you want more tools for static sprites, tiles and backgrounds, the bigger list is in <a href="https://gamedevaihub.com/best-ai-pixel-art-generators-for-2d-indie-games/">best AI pixel art generators for 2D indie games</a>. If you still need the base character, start with the <a href="https://gamedevaihub.com/ai-character-generator-for-games/">AI character generator guide</a>.</p>



<p class="wp-block-paragraph">Which tool are you using for walk cycles right now?</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gamedevaihub.com/best-ai-sprite-sheet-generators/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Claude Code Unity MCP Setup: Connect Claude to Unity in 2026</title>
		<link>https://gamedevaihub.com/claude-code-unity-mcp-setup/</link>
					<comments>https://gamedevaihub.com/claude-code-unity-mcp-setup/#respond</comments>
		
		<dc:creator><![CDATA[Adrian]]></dc:creator>
		<pubDate>Tue, 22 Sep 2026 12:32:54 +0000</pubDate>
				<category><![CDATA[AI Coding & Engines]]></category>
		<guid isPermaLink="false">https://gamedevaihub.com/?p=20152</guid>

					<description><![CDATA[Connect Claude Code to Unity with MCP. Official (now free), Coplay and open-source routes compared step by step, plus fixes for every connection error.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Your Unity MCP setup is &#8220;finished.&#8221; Then Unity lists Claude under Other Connections, never Connected Clients, and Claude Code says it has no Unity tools.</strong></p>



<p class="wp-block-paragraph">The short answer: on Unity 6 or newer, use Unity&#8217;s official MCP server through the Unity CLI. It&#8217;s free, and it replaces the older server inside the AI Assistant package, which Unity has deprecated. On Unity 2021.3 or 2022.3, use CoplayDev&#8217;s MCP for Unity. And before you debug anything, check the prerequisites that break most setups, like a missing uv install that kills the server without a useful error.</p>



<p class="wp-block-paragraph">Below: exact setup commands for all three servers worth using, plus fixes by symptom for when it still won&#8217;t connect.</p>



<p class="wp-block-paragraph"><em> Commands, versions and pricing checked against Unity&#8217;s docs and each project&#8217;s GitHub repo.</em></p>



<h2 class="wp-block-heading">Which Unity MCP server should you use?</h2>



<p class="wp-block-paragraph">A Unity MCP server is a bridge. One half runs inside the Unity Editor. The other half speaks the Model Context Protocol to Claude Code, so Claude can read your real scene hierarchy, create GameObjects, edit C# and read the Console instead of guessing. Three servers matter right now:</p>



<figure class="wp-block-table"><table><thead><tr><th></th><th>Unity official MCP</th><th>MCP for Unity (CoplayDev)</th><th>Unity-MCP (IvanMurzak)</th></tr></thead><tbody><tr><td><strong>Unity version</strong></td><td>Unity 6 (6000.0)+ only</td><td>2021.3 LTS → 6.x</td><td>2022.3+</td></tr><tr><td><strong>Runtime needed</strong></td><td>None (the Unity CLI and Unity Pipeline package)</td><td>Python 3.10+ with <code>uv</code></td><td>None (self-contained server binary)</td></tr><tr><td><strong>Cost</strong></td><td>Free, with no concurrency limits and no Unity credits used</td><td>Free, MIT licence</td><td>Free, Apache-2.0 licence</td></tr><tr><td><strong>Edits scenes</strong></td><td>Yes</td><td>Yes</td><td>Yes</td></tr><tr><td><strong>Runs tests</strong></td><td>Yes, through the Unity CLI</td><td>Yes (testing tool group)</td><td>Yes (<code>tests-run</code>, EditMode and PlayMode)</td></tr><tr><td><strong>Tools</strong></td><td>Scene, GameObject, scripts, Console, build settings, plus custom C# tools</td><td>47 tool entry points (v10 README)</td><td>70+ tools</td></tr><tr><td><strong>Current version*</strong></td><td>Ships with the Unity CLI (beta). The AI Assistant package server is deprecated</td><td>v10.2.0 (1 Sep 2026)</td><td>0.91.0 (17 Sep 2026)</td></tr><tr><td><strong>Best for</strong></td><td>Any Unity 6+ project</td><td>Older LTS projects; the largest community (≈14.4k GitHub stars)</td><td>2022.3 projects, in-game (runtime) AI, no Python</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><em>*Versions and star counts taken from the GitHub releases pages. These packages ship often, so check the release you install.</em></p>



<p class="wp-block-paragraph">Sources: <a href="https://unity.com/features/ai" target="_blank" rel="noopener">Unity AI FAQ and pricing</a>, <a href="https://docs.unity3d.com/Packages/com.unity.ai.assistant@2.7/manual/integration/unity-mcp-get-started.html" target="_blank" rel="noopener">Unity MCP docs</a>, <a href="https://github.com/CoplayDev/unity-mcp" target="_blank" rel="noopener">CoplayDev/unity-mcp</a> and <a href="https://github.com/IvanMurzak/Unity-MCP" target="_blank" rel="noopener">IvanMurzak/Unity-MCP</a>.</p>



<h3 class="wp-block-heading">Is Unity’s official MCP server free now?</h3>



<p class="wp-block-paragraph">Yes. If you read an older guide, this is the part that changed. When Unity AI entered open beta in May 2026, Unity staff confirmed on the forums that “a subscription is required for an MCP connection”, so Personal users needed the $10/month Unity AI plan just to connect Claude Code. At <a href="https://unity.com/news/unity-7-roadmap-revealed-at-unite-seoul" target="_blank" rel="noopener">Unite Seoul in July 2026</a>, Unity announced “a free-to-use MCP” alongside its new Unity CLI. Unity’s <a href="https://unity.com/features/ai" target="_blank" rel="noopener">AI FAQ</a> now says the MCP server “is free, with no concurrency limits” and doesn’t consume Unity credits. The same goes for the AI Gateway, which runs third-party agents inside the Editor.</p>



<p class="wp-block-paragraph">What still costs money is Unity’s own in-Editor <strong>AI Assistant</strong>: a 14-day trial for Personal users, then $10/month for 1,000 credits, or included with Pro, Enterprise and Industry. You don’t need it to use Claude Code over MCP. You do still need your own Claude plan.</p>



<h3 class="wp-block-heading">Two things the table can’t show</h3>



<ul class="wp-block-list">
<li><strong>Don’t stack routes in one project.</strong> On Unity 6.3+, the AI Assistant package and MCP for Unity ship conflicting versions of <code>System.Collections.Immutable</code>, and the project stops compiling. Pick one server per project.</li>


<li><strong>Skills are not MCP.</strong> On 9 September 2026, Unity released an <a href="https://unity.com/blog/unity-plugin-for-claude-code" target="_blank" rel="noopener">official Unity plugin for Claude Code</a> with 29 skills (UI Toolkit, 2D and tilemaps, localization, multiplayer, Shader Graph and more). Skills teach Claude how current Unity works. MCP is what lets it act on your open Editor. Use both.</li>
</ul>



<h2 class="wp-block-heading">Before you start: the 3 things that break setup</h2>



<p class="wp-block-paragraph">Most failed setups are missing a prerequisite. Check these first so you’re not debugging the wrong layer later.</p>



<p class="wp-block-paragraph"><strong>1. Claude Code is installed and on your PATH.</strong></p>



<p class="wp-block-paragraph code-file"><span>Terminal</span></p>



<pre class="wp-block-code"><code>claude --version</code></pre>



<p class="wp-block-paragraph">If the command isn’t found, install Claude Code with the native installer (<code>irm https://claude.ai/install.ps1 | iex</code> in PowerShell, or <code>curl -fsSL https://claude.ai/install.sh | bash</code> on macOS/Linux). Restart your terminal and run <code>claude doctor</code>. Every route below ends with Claude Code launching an MCP server, so nothing works without the CLI. On macOS, apps launched from Finder don’t always inherit your shell PATH, which is why Unity-side configurators sometimes report “Claude not found” even though it works in Terminal.</p>



<p class="wp-block-paragraph"><strong>2. The runtime your server needs actually exists.</strong> For MCP for Unity, that means Python 3.10+ and <code>uv</code>:</p>



<p class="wp-block-paragraph code-file"><span>Terminal</span></p>



<pre class="wp-block-code"><code>python --version
uv --version</code></pre>



<p class="wp-block-paragraph">If <code>uv</code> is missing, the server can never start. Claude Code reports a closed connection and gives no useful hint why. It’s the Unity version of the Node.js problem in our <a href="https://gamedevaihub.com/how-to-use-ai-with-godot/">guide to using AI with Godot 4</a>. The official route and Unity-MCP don’t need an extra runtime, but Unity-MCP fails if your project path contains spaces.</p>



<p class="wp-block-paragraph"><strong>3. You have a git commit to go back to.</strong> MCP gives Claude write access to your project. Commit before your first session:</p>



<p class="wp-block-paragraph code-file"><span>Terminal</span></p>



<pre class="wp-block-code"><code>git add -A
git commit -m "checkpoint: before Claude session"</code></pre>



<p class="wp-block-paragraph">You’ll want that commit. An agent that “tidies up” a scene can remove a component you needed, and Unity’s undo won’t always save you. If the project isn’t under version control yet, first set <strong>Asset Serialization Mode</strong> to <strong>Force Text</strong> and <strong>Version Control Mode</strong> to <strong>Visible Meta Files</strong> (Edit → Project Settings → Editor). With those settings, scene and prefab changes show up as readable YAML diffs instead of binary blobs.</p>



<h2 class="wp-block-heading">Route 1: Unity’s official MCP server with Claude Code</h2>



<p class="wp-block-paragraph">Unity’s official server gives Claude Code live access to the scene hierarchy, GameObjects, component values, Console output and build settings. It requires <strong>Unity 6 (6000.0) or later</strong> and isn’t backwards compatible. Use the <strong>Unity CLI</strong>, which ships its own MCP server built on the Unity Pipeline package. Unity has <a href="https://docs.unity.com/en-us/unity-cli/replace-mcp-server-unity-cli" target="_blank" rel="noopener">deprecated the MCP server inside the AI Assistant package</a>, so the package route below is only for projects that already depend on it.</p>



<h3 class="wp-block-heading">Option A: the Unity CLI (recommended)</h3>



<p class="wp-block-paragraph">The Unity CLI launched at Unite Seoul. It’s a terminal tool for the Editor, Hub, builds and cloud services, and it includes an MCP server. It’s still on a <strong>beta channel</strong>, so try it on a branch before your main project. Install:</p>



<p class="wp-block-paragraph code-file"><span>Terminal</span></p>



<pre class="wp-block-code"><code># macOS / Linux
curl -fsSL https://public-cdn.cloud.unity3d.com/hub/prod/cli/install.sh | UNITY_CLI_CHANNEL=beta bash

# Windows (PowerShell)
$env:UNITY_CLI_CHANNEL='beta'; irm https://public-cdn.cloud.unity3d.com/hub/prod/cli/install.ps1 | iex</code></pre>



<p class="wp-block-paragraph">Open a new terminal and confirm <code>unity --version</code> works. Then install the Pipeline package, which the CLI&#8217;s MCP server is built on, and register the server with Claude Code:</p>



<p class="wp-block-paragraph code-file"><span>Terminal</span></p>



<pre class="wp-block-code"><code>unity pipeline install            # Unity 6.0 LTS or newer
unity mcp configure --list        # see supported clients and their names
unity mcp configure claude        # points Claude Code at the CLI's MCP server
claude mcp list                   # confirm it's there</code></pre>



<p class="wp-block-paragraph">Unity&#8217;s docs use <code>claude</code> as the client name. If <code>--list</code> shows a different name in your CLI build, use that one. The command updates Claude Code&#8217;s MCP config for you. If Claude can run shell commands, <code>unity command</code> and <code>unity eval</code> drive the Editor directly, and Unity says they&#8217;re faster and use fewer tokens than MCP. Run <code>unity skill install</code> with your agent&#8217;s name to add Unity&#8217;s agent skills. Keep the Editor open while you work, because the server talks to a live Editor session. The CLI changes quickly during beta, so if a subcommand has moved, <code>unity mcp --help</code> shows the current syntax.</p>



<h3 class="wp-block-heading">Option B (deprecated): the AI Assistant package</h3>



<p class="note warning wp-block-paragraph">Unity has <a href="https://docs.unity.com/en-us/unity-cli/replace-mcp-server-unity-cli" target="_blank" rel="noopener">deprecated this server</a>. Use it only if your project already depends on it. To move, install the Unity CLI, run <code>unity pipeline install</code>, then run <code>unity mcp configure claude</code>. Third-party servers like MCP for Unity and Unity-MCP are not affected.</p>



<p class="wp-block-paragraph"><strong>Step 1: Install the package and check the bridge.</strong></p>



<ol class="wp-block-list steps">
<li>In <strong>Window → Package Manager</strong>, install the <strong>AI Assistant</strong> package (<code>com.unity.ai.assistant</code>).</li>


<li>Open <strong>Edit → Project Settings → AI → Unity MCP</strong>.</li>


<li>Confirm <strong>Unity Bridge</strong> shows a green <strong>Running</strong> indicator. It starts when the Editor loads. If it says <strong>Stopped</strong>, clear any Console compile errors and click <strong>Start</strong>.</li>
</ol>



<p class="wp-block-paragraph">When the Editor starts, Unity installs a small relay binary to <code>~/.unity/relay/</code> (<code>%USERPROFILE%\.unity\relay\</code> on Windows). That relay is the process Claude Code launches.</p>



<p class="wp-block-paragraph"><strong>Step 2: Register Claude Code.</strong> In the same settings page, expand <strong>Integrations</strong>, select <strong>Claude Code</strong> and click <strong>Configure</strong>.</p>



<p class="wp-block-paragraph">If Configure fails, or you want control over scope, register the relay yourself. The <code>--mcp</code> flag is mandatory, and the <code>--</code> separator makes sure Claude Code passes it through to the relay:</p>



<p class="wp-block-paragraph code-file"><span>Terminal</span></p>



<pre class="wp-block-code"><code># Windows (PowerShell)
claude mcp add --scope user unity-mcp -- "$env:USERPROFILE\.unity\relay\relay_win.exe" --mcp

# macOS (Apple Silicon)
claude mcp add --scope user unity-mcp -- ~/.unity/relay/relay_mac_arm64.app/Contents/MacOS/relay_mac_arm64 --mcp

# macOS (Intel)
claude mcp add --scope user unity-mcp -- ~/.unity/relay/relay_mac_x64.app/Contents/MacOS/relay_mac_x64 --mcp

# Linux
claude mcp add --scope user unity-mcp -- ~/.unity/relay/relay_linux --mcp</code></pre>



<p class="wp-block-paragraph">If you have more than one Editor open, append <code>--project-path "C:/Path/To/Project"</code> after <code>--mcp</code> so the relay targets the right one.</p>



<p class="note warning wp-block-paragraph"><strong>Step 3: Approve the pending connection. This is the step people miss.</strong> Start Claude Code in your project folder and ask it anything that touches Unity. The first time, Unity doesn’t let it straight in. It holds the request as a <strong>Pending Connection</strong>, with no pop-up to tell you.</p>



<ol class="wp-block-list steps">
<li>Go back to <strong>Edit → Project Settings → AI → Unity MCP</strong>.</li>


<li>Under <strong>Pending Connections</strong>, check that the client is Claude Code.</li>


<li>Click <strong>Accept</strong>. Unity remembers the approval and reconnects automatically from then on.</li>
</ol>



<p class="wp-block-paragraph">Until you accept, Claude can see that the server exists but can’t use it, which looks exactly like a broken setup. <strong>Don’t click Deny or Revoke</strong> “just to reset it”. Forum users report that a stored rejection leaves the connection stuck until they clear cached state (see the fixes below). Connections made through Unity’s AI Gateway are approved automatically.</p>



<h3 class="wp-block-heading">Optional: add Unity’s official skills</h3>



<p class="wp-block-paragraph">To give Claude current Unity know-how on top of Editor access, install Unity’s plugin from inside Claude Code:</p>



<p class="wp-block-paragraph code-file"><span>Claude Code session</span></p>



<pre class="wp-block-code"><code>/plugin marketplace add Unity-Technologies/unity-agent-plugin
/plugin install unity@unity-agent-plugin</code></pre>



<p class="wp-block-paragraph">Type <code>/unity:</code> to see the skills it added. If they don’t appear, Unity’s <a href="https://docs.unity.com/en-us/ai/unity-plugin/claude-code" target="_blank" rel="noopener">plugin docs</a> suggest clearing <code>~/.claude/plugins/cache</code> and reinstalling.</p>



<h2 class="wp-block-heading">Route 2: MCP for Unity (Coplay) with Claude Code</h2>



<p class="wp-block-paragraph">MCP for Unity from CoplayDev is the community favourite. It’s MIT-licensed, supports Unity 2021.3 LTS through 6.x, and works with Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, Gemini CLI and other MCP clients. It exposes 47 tool entry points covering scenes, GameObjects, scripts, assets, tests, profiling and builds. It uses a Python server launched through <code>uv</code>, which talks to Claude Code over HTTP on <code>localhost:8080</code> by default.</p>



<h3 class="wp-block-heading">Step 1: Install uv</h3>



<p class="wp-block-paragraph code-file"><span>Terminal</span></p>



<pre class="wp-block-code"><code># Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# then, in a NEW terminal
uv --version</code></pre>



<h3 class="wp-block-heading">Step 2: Add the package from a pinned git URL</h3>



<p class="wp-block-paragraph">In Unity, open <strong>Window → Package Manager</strong>, click <strong>+</strong> and choose <strong>Add package from git URL</strong>. The README’s default URL ends in <code>#main</code>, and <code>#main</code> moves: a Monday update can break a Friday setup. Pin a release tag for real projects:</p>



<p class="wp-block-paragraph code-file"><span>Package URL</span></p>



<pre class="wp-block-code"><code>https://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity#v10.2.0</code></pre>



<p class="wp-block-paragraph">Swap in whatever tag is current on the <a href="https://github.com/CoplayDev/unity-mcp/releases" target="_blank" rel="noopener">releases page</a>. Git must be installed for git URLs to work. If Unity says “Error when executing git command”, install Git, restart Unity and, if needed, run <code>git config --global --add safe.directory "C:/Path/To/Project"</code>. If you prefer registries, <code>openupm add com.coplaydev.unity-mcp</code> also works.</p>



<h3 class="wp-block-heading">Step 3: Let it configure Claude Code</h3>



<p class="wp-block-paragraph">A setup wizard opens after import and checks for Python and <code>uv</code>. Then open <strong>Window → MCP for Unity</strong> and click <strong>Configure All Detected Clients</strong>, or tick Claude Code and choose <strong>Configure Selected</strong>. Restart Claude Code afterwards.</p>



<h3 class="wp-block-heading">Step 4 (fallback): add the server by hand</h3>



<p class="wp-block-paragraph">If the window can’t find your <code>claude</code> binary, which is common with NVM installs and on macOS, register the HTTP endpoint yourself:</p>



<p class="wp-block-paragraph code-file"><span>Terminal</span></p>



<pre class="wp-block-code"><code>claude mcp add --transport http --scope user UnityMCP http://localhost:8080/mcp</code></pre>



<p class="wp-block-paragraph">You can also point the window at the binary with <strong>Choose Claude Location</strong>. For NVM, that’s typically <code>~/.nvm/versions/node/&lt;version&gt;/bin/claude</code>. Claude Desktop only supports stdio, so the configurator writes a different entry for it. If you ever switch transports, restart Claude Code.</p>



<p class="note warning wp-block-paragraph"><strong>Don’t mix this up with Coplay’s other product.</strong> Coplay also makes its own Unity AI assistant, and its docs describe a separate server called <code>coplay-mcp-server</code> (Python 3.11+), installed with <code>uvx … coplay-mcp-server@latest</code>. That command connects Claude Code to the <em>Coplay assistant</em>, not to the free MCP for Unity package. Plenty of setups fail because someone followed one product’s instructions for the other.</p>



<h2 class="wp-block-heading">Route 3: Unity-MCP (IvanMurzak), free and open source</h2>



<p class="wp-block-paragraph">IvanMurzak’s Unity-MCP connects AI clients to both the Unity Editor and a running game. Its in-Editor window is called <strong>AI Game Developer</strong>, and it’s Apache-2.0 licensed. Your client talks to a .NET MCP server over stdio or streamable HTTP, and that server talks to Unity. The server is a self-contained binary, so you don’t need Python or Node.</p>



<p class="wp-block-paragraph"><strong>Pick this one if:</strong></p>



<ul class="wp-block-list">
<li>you’re on <strong>Unity 2022.3</strong>, so the official server is closed to you, and you want the most tools. It has 70+, including <code>tests-run</code> for EditMode and PlayMode tests, plus profiler control</li>


<li>you don’t want a Python toolchain on your machine</li>


<li>you want AI <strong>inside the shipped game</strong>, not just the Editor. It’s the only one of the three with a runtime API, for things like LLM-driven NPCs or in-game debugging</li>
</ul>



<p class="wp-block-paragraph"><strong>Setup:</strong></p>



<ol class="wp-block-list steps">
<li>Install the <code>.unitypackage</code> installer from the <a href="https://github.com/IvanMurzak/Unity-MCP/releases" target="_blank" rel="noopener">GitHub releases page</a>, or run <code>openupm add com.ivanmurzak.unity.mcp</code>.</li>


<li>Wait for the plugin to download its server binary to <code>Library/mcp-server/</code>.</li>


<li>Open <strong>Window → AI Game Developer</strong> and use the <strong>Claude Code</strong> configurator. It has built-in configurators for 14 clients.</li>
</ol>



<p class="wp-block-paragraph">To register it by hand, copy the command for your platform from the README and pass it to Claude Code. Use the port shown in the AI Game Developer window:</p>



<p class="wp-block-paragraph code-file"><span>Terminal</span></p>



<pre class="wp-block-code"><code># Windows x64 example
claude mcp add ai-game-developer -- "C:/Path/To/Project/Library/mcp-server/win-x64/gamedev-mcp-server.exe" port=&lt;port&gt; client-transport=stdio</code></pre>



<p class="wp-block-paragraph">Two gotchas are specific to this route. The project path <strong>cannot contain spaces</strong>. And ports are derived from your project path, in the 20000–29999 range, so two projects get two different ports. That’s handy for multi-project work, but it means you can’t copy one project’s config to another.</p>



<h2 class="wp-block-heading">Verify the connection with a read-only prompt</h2>



<p class="wp-block-paragraph">Don’t start with “build me a player controller”. Start with something that can’t break anything.</p>



<ol class="wp-block-list steps">
<li>In a terminal, run <code>claude mcp list</code>. Your Unity server should be listed and reported as connected.</li>


<li>Open Claude Code in your project folder and type <code>/mcp</code>. The Unity server should show a tool count greater than zero.</li>


<li>Run a read-only prompt:</li>
</ol>



<p class="wp-block-paragraph code-file"><span>Prompt</span></p>



<pre class="wp-block-code"><code>List the full scene hierarchy of the open scene, including inactive
objects. Don't change anything.</code></pre>



<p class="wp-block-paragraph">If Claude returns your real GameObjects with the names you gave them, the connection is live. If it invents a hierarchy (“Main Camera, Directional Light, Player…”) for a scene that doesn’t contain those objects, it isn’t reading Unity at all. It’s guessing. Go to the fixes section.</p>



<p class="wp-block-paragraph">Unity’s docs suggest a second check for the official route: <em>“Read the Unity console messages and summarize any warnings or errors.”</em> A real answer quotes your actual Console.</p>



<h2 class="wp-block-heading">Your first 5 prompts (safe → powerful)</h2>



<p class="wp-block-paragraph">Work up the ladder. Each step tests one more permission before you trust the next, so if something’s wrong you find out on a harmless prompt.</p>



<p class="wp-block-paragraph"><strong>1. Read</strong></p>



<p class="wp-block-paragraph code-file"><span>Prompt</span></p>



<pre class="wp-block-code"><code>Read the Unity Console and summarise any errors or warnings. Then
describe the components on the GameObject named "Player".
Don't modify anything.</code></pre>



<p class="wp-block-paragraph"><strong>2. Create</strong></p>



<p class="wp-block-paragraph code-file"><span>Prompt</span></p>



<pre class="wp-block-code"><code>Create an empty GameObject named "Enemy" at position (5, 0, 0).
Don't modify any existing objects.</code></pre>



<p class="wp-block-paragraph"><strong>3. Modify</strong></p>



<p class="wp-block-paragraph code-file"><span>Prompt</span></p>



<pre class="wp-block-code"><code>Add a Rigidbody to "Enemy". Set mass to 2 and freeze rotation on X and Z.
Tell me the exact values you set.</code></pre>



<p class="wp-block-paragraph"><strong>4. Write code</strong></p>



<p class="wp-block-paragraph code-file"><span>Prompt</span></p>



<pre class="wp-block-code"><code>Create Assets/Scripts/EnemyChase.cs. Move toward the GameObject tagged
"Player" at speed 3 using Rigidbody.MovePosition in FixedUpdate.
Wait for compilation, then read the Console and fix any errors
before attaching it to "Enemy".</code></pre>



<p class="wp-block-paragraph">The last line matters most. An agent that reads the Console fixes its own compile errors. One that doesn’t will announce success on code that doesn’t build. Waiting for compilation also stops the agent from calling the next tool while Unity is still reloading the domain, which fails and gets misread as a broken script.</p>



<p class="wp-block-paragraph"><strong>5. Verify with tests</strong></p>



<p class="wp-block-paragraph code-file"><span>Prompt</span></p>



<pre class="wp-block-code"><code>Create an EditMode test in Assets/Tests/EditMode that checks EnemyChase
exposes a public speed field greater than zero. Run the EditMode tests
and report pass/fail with the output of any failures.</code></pre>



<p class="wp-block-paragraph">Prompt 5 needs a server with a test tool. MCP for Unity and Unity-MCP have one. On the official route, check your tools list first.</p>



<h2 class="wp-block-heading">Unity MCP not connecting? Fixes by symptom</h2>



<p class="wp-block-paragraph">These come from the Unity Discussions AI Assistant threads, the CoplayDev and IvanMurzak troubleshooting docs, and <a href="https://docs.unity3d.com/Packages/com.unity.ai.assistant@2.0/manual/unity-mcp-troubleshooting.html" target="_blank" rel="noopener">Unity’s own troubleshooting page</a>. Find your symptom and work through the fixes in order. The first fix listed is the most common cause.</p>



<h3 class="wp-block-heading">Claude only appears in “Other Connections”, never “Connected Clients”</h3>



<p class="wp-block-paragraph"><strong>Route:</strong> official (package). This is the symptom in the <a href="https://discussions.unity.com/t/cant-connect-claude-to-the-mcp/1718846" target="_blank" rel="noopener">“Can’t connect Claude to the MCP” thread</a>, reported on Windows 11 and macOS between May and July 2026. Work through these in order:</p>



<ol class="wp-block-list steps">
<li><strong>Approve the pending connection</strong> (Route 1, Option B, Step 3). An unapproved client looks exactly like this.</li>


<li><strong>Change the AI Assistant package version.</strong> Thread participants reported 2.7.0-pre.3, 2.9.0-pre.2, 2.12.0-pre.1 and 2.13.0-pre.2 as broken, and 2.6.0-pre.1 and 2.17.0-pre.1 as working. Not everyone was fixed by switching. In Package Manager, move to a version reported as working, restart the Editor and re-approve.</li>


<li><strong>Clear a stored rejection.</strong> If you ever clicked Deny or Revoke, that state persists. Close Unity and any relay processes, delete the project’s <code>Library/AI.MCP</code> folder, then reopen and accept the new pending connection.</li>


<li><strong>Close other connected clients.</strong> Package versions from the beta period allowed one direct connection at a time. Opening a second Claude Code session, or Cursor alongside it, dropped the first (see the <a href="https://discussions.unity.com/t/connection-revoked/1722838" target="_blank" rel="noopener">“Connection revoked” thread</a>). Unity now advertises no concurrency limits, but if you’re on an older package, close Claude Desktop, Cursor and other MCP clients and reconnect Claude Code alone.</li>


<li><strong>Move to the Unity CLI route</strong> (Route 1, Option A). Unity has deprecated the package server, and the CLI bypasses its Project Settings approval flow entirely.</li>
</ol>



<h3 class="wp-block-heading">“Connection closed” or the server never starts</h3>



<p class="wp-block-paragraph">Claude Code launched the server and it died immediately. Check in this order:</p>



<ul class="wp-block-list">
<li><strong>MCP for Unity:</strong> <code>uv</code> is missing or not on the PATH that Claude Code sees. Run <code>uv --version</code> in a fresh terminal. On Windows, if the WinGet install isn’t found, point the config at <code>%LOCALAPPDATA%\Microsoft\WinGet\Links\uv.exe</code>. Then use <strong>Window → MCP for Unity → Restart Server</strong>.</li>


<li><strong>Official (package, deprecated):</strong> the relay isn’t in <code>~/.unity/relay/</code>. It only appears after the Editor has started at least once. Also check that your config includes <code>--mcp</code>. Restart the Editor to reinstall the relay, or use <strong>Locate Server</strong> in the Unity MCP settings.</li>


<li><strong>Official (CLI):</strong> <code>unity</code> isn’t on your PATH yet. Open a new terminal or refresh PATH after installing.</li>


<li><strong>Unity-MCP:</strong> the server binary didn’t download to <code>Library/mcp-server/</code>. Antivirus blocking and network failures are the usual causes, along with spaces in the project path. Its wiki’s “nuclear option” is to delete <code>Library/mcp-server/</code>, restart Unity and reconfigure.</li>


<li><strong>Port conflict (HTTP routes):</strong> something else already owns port 8080. Tailscale and local dev servers are common culprits. Check with <code>netstat -ano | findstr :8080</code> (Windows) or <code>lsof -i :8080</code> (macOS/Linux). Change the port in the MCP for Unity window, then re-register the new URL in Claude Code.</li>


<li><strong>Any route:</strong> did you restart Claude Code after changing config? Config is read at launch.</li>
</ul>



<p class="wp-block-paragraph">To see the real error, run <code>claude mcp get &lt;name&gt;</code> to show the exact command Claude Code launches, then run that command yourself in a terminal. Whatever it prints is your actual problem.</p>



<h3 class="wp-block-heading">The tools list is empty</h3>



<p class="wp-block-paragraph">The server shows up, but <code>/mcp</code> reports zero tools, or the server isn’t listed at all.</p>



<ol class="wp-block-list steps">
<li><strong>Check it’s registered where you are.</strong> Run <code>claude mcp list</code> from the project folder. If your Unity server is missing, it was registered in a different scope or a different folder (see “Works in Claude Desktop, not in Claude Code” below).</li>


<li><strong>Validate the JSON.</strong> A single trailing comma in <code>.mcp.json</code> silently breaks the whole file.</li>


<li><strong>Clear Console compile errors.</strong> All three servers discover tools through Editor scripts, and Unity won’t load new Editor code while <em>any</em> script fails to compile.</li>


<li><strong>Check tools are enabled.</strong> The official route has a Tools section in its settings, plus a <strong>Show Debug Logs</strong> option for discovery details. MCP for Unity has toggleable tool groups.</li>


<li><strong>Restart the session.</strong> Claude Code loads the tool list when a session starts. Exit and relaunch <code>claude</code> after fixing the Unity side.</li>


<li><strong>Check for the DLL conflict (Unity 6.3+).</strong> If the AI Assistant package and MCP for Unity are both installed, <code>System.Collections.Immutable</code> version errors block compilation. Remove one of them.</li>
</ol>



<h3 class="wp-block-heading">It connects, then drops after Play Mode or a recompile</h3>



<p class="wp-block-paragraph">Every script change and every Play Mode entry triggers a <strong>domain reload</strong>. Unity tears down and rebuilds all Editor C#, including the MCP bridge, so some disconnection is expected. Unity-MCP’s wiki calls it normal and reconnects automatically. It only becomes a problem when the bridge doesn’t come back.</p>



<ul class="wp-block-list">
<li><strong>Quick fix:</strong> wait for compilation to finish, then retry the prompt. Most servers reconnect on their own.</li>


<li><strong>If it doesn’t reconnect:</strong> restart the bridge. On the deprecated package route, that’s <strong>Start</strong> in the Unity MCP settings. On MCP for Unity, it’s <strong>Restart Server</strong>. Then restart Claude Code.</li>


<li><strong>Prevention:</strong> put a “wait for compilation, then read the Console” rule in CLAUDE.md (below), and don’t ask for “write a script and immediately run it” in one breath on slow machines.</li>


<li><strong>Play Mode option:</strong> in <strong>Edit → Project Settings → Editor → Enter Play Mode Settings</strong>, you can skip the domain reload. Play Mode gets faster and the bridge survives, but static fields no longer reset between runs, so only do this if your code handles it.</li>


<li><strong>Unity 6.5 editor hang:</strong> if the Editor sits at around 100% CPU and the bridge never connects, Coplay’s troubleshooting guide traces it to pre-release AI packages (<code>com.unity.ai.assistant</code>, <code>com.unity.ai.inference</code>) livelocking the asset database. Remove them from <code>Packages/manifest.json</code>, delete <code>packages-lock.json</code> and clear <code>Library/</code>.</li>
</ul>



<h3 class="wp-block-heading">Works in Claude Desktop, not in Claude Code</h3>



<p class="wp-block-paragraph">They’re different clients with different config files. Configuring one does nothing for the other, and within Claude Code, <strong>scope</strong> decides where a server is visible:</p>



<figure class="wp-block-table"><table><thead><tr><th>Where it’s configured</th><th>Who sees it</th></tr></thead><tbody><tr><td><code>claude_desktop_config.json</code> (<code>~/Library/Application Support/Claude/</code> on Mac, <code>%APPDATA%\Claude\</code> on Windows)</td><td>Claude Desktop only</td></tr><tr><td><code>claude mcp add</code> (default <code>--scope local</code>)</td><td>Claude Code, <em>only in the folder where you ran the command</em></td></tr><tr><td><code>claude mcp add --scope user</code></td><td>Claude Code, in every folder</td></tr><tr><td><code>.mcp.json</code> in the project root (<code>--scope project</code>)</td><td>Everyone who opens the repo in Claude Code, after they approve it</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">The classic mistake is running <code>claude mcp add</code> from your home directory, then launching <code>claude</code> inside the Unity project, where the server doesn’t exist. Re-add it with <code>--scope user</code>, or add it from the project root. Only use <code>--scope project</code> if the whole team uses the same route, because relay paths are machine-specific.</p>



<h3 class="wp-block-heading">WSL2: Claude Code in Linux, Unity on Windows</h3>



<p class="wp-block-paragraph">Stdio can’t cross that boundary. Either run Claude Code natively on Windows (simplest) or use MCP for Unity over HTTP. Coplay’s guide moves the port to 8090, forwards it with <code>netsh interface portproxy</code>, opens the firewall, then registers <code>claude mcp add --transport http UnityMCP http://&lt;windows-host-ip&gt;:8090/mcp</code>.</p>



<h2 class="wp-block-heading">Keep Claude from wrecking your project</h2>



<p class="wp-block-paragraph">MCP is a write-access tool. Treat it like handing a keen junior developer your editor for an hour. Three rules hold up:</p>



<ul class="wp-block-list">
<li><strong>Commit before, diff after.</strong> Every session. Run <code>git diff --stat</code> when Claude finishes. If a scene diff is bigger than you expected, revert it with <code>git checkout -- Assets/Scenes/YourScene.unity</code> and ask for the change through a script instead.</li>


<li><strong>Gate scene and prefab edits.</strong> Scripts are plain C# that diffs cleanly. Serialized scenes and prefabs are large YAML that nobody reviews well. Let Claude write code freely, and make it ask before it edits scenes.</li>


<li><strong>One task per prompt.</strong> “Refactor the inventory and fix the UI and add save/load” is how you lose an afternoon.</li>
</ul>



<p class="wp-block-paragraph">Put the rules where Claude will read them. Claude Code loads a <code>CLAUDE.md</code> file from your project root at the start of every session. Copy this and edit the first section:</p>



<p class="wp-block-paragraph code-file"><span>CLAUDE.md</span></p>



<pre class="wp-block-code"><code># CLAUDE.md: Unity project rules

## Project
- Unity [YOUR VERSION], [URP/HDRP/Built-in], [new Input System / old].
- Use only APIs available in this Unity version.
- Scripts live in Assets/Scripts/&lt;Feature&gt;/. Tests in Assets/Tests/EditMode.

## You MAY edit freely
- Assets/Scripts/**, Assets/Tests/**
- ScriptableObject assets you created in this session

## Ask before touching
- Any .unity scene or .prefab file (describe the change, wait for "yes")
- ProjectSettings/**, Packages/manifest.json
- Deleting or renaming ANY asset (breaks GUID references)

## Never touch
- Library/, Temp/, Logs/, UserSettings/
- .meta files by hand

## After every script change
1. Wait for Unity to finish compiling.
2. Read the Console. Fix errors before any other tool call.
3. Do not enter Play Mode unless asked.

## Code rules
- Rigidbody physics in FixedUpdate, never Update.
- No FindObjectOfType in Update loops.

## Before finishing
- Run EditMode tests (if a test tool is available) and report results.
- Summarise every file you changed.</code></pre>



<h2 class="wp-block-heading">Claude Code vs Unity AI Assistant: do you need both?</h2>



<p class="wp-block-paragraph">They overlap less than the names suggest. <strong>Unity’s AI Assistant</strong> lives inside the Editor, knows Unity’s own documentation and adds Unity-native generation features. It runs on Unity AI credits: $10/month for 1,000 on Personal after the trial, or included with Pro and Enterprise. <strong>Claude Code</strong> lives in your terminal and codebase, runs on your Claude plan, and is stronger at multi-file refactors, test suites and reasoning across the whole project.</p>



<p class="wp-block-paragraph">Since the MCP server became free, you don’t need the Assistant subscription to connect Claude Code on Unity 6. The Unity CLI doesn’t need the package at all. If you keep the package for the Assistant itself, use version 2.13 or later, which fixes a conflict with the CLI. A practical split:</p>



<ul class="wp-block-list">
<li><strong>Quick Editor questions and asset generation:</strong> the Assistant.</li>


<li><strong>Anything touching three or more scripts:</strong> Claude Code over MCP.</li>
</ul>



<p class="wp-block-paragraph">To compare other coding tools, see our guide to <a href="https://gamedevaihub.com/best-ai-code-assistants-for-unity-c-sharp-beginners/">AI code assistants for Unity</a>.</p>



<h2 class="wp-block-heading">Versions this guide is based on</h2>



<p class="wp-block-paragraph">Unity MCP tooling changes almost weekly, so here’s exactly what the commands and menu paths above were checked against. If your version is newer and something doesn’t match, the linked docs are the source of truth.</p>



<figure class="wp-block-table"><table><thead><tr><th>Component</th><th>Version / source</th></tr></thead><tbody><tr><td>Unity CLI (official MCP route)</td><td><a href="https://docs.unity.com/en-us/unity-cli/replace-mcp-server-unity-cli" target="_blank" rel="noopener">Unity CLI docs</a> (beta); Unity 6.0 LTS+ for the Pipeline package</td></tr><tr><td>Unity official MCP (package route, deprecated)</td><td><a href="https://docs.unity3d.com/Packages/com.unity.ai.assistant@2.7/manual/integration/unity-mcp-get-started.html" target="_blank" rel="noopener">AI Assistant 2.7 docs</a>; Unity 6.0+</td></tr><tr><td>Unity MCP pricing</td><td><a href="https://unity.com/features/ai" target="_blank" rel="noopener">Unity AI FAQ</a> (free, no concurrency limits)</td></tr><tr><td>Unity plugin for Claude Code</td><td><a href="https://docs.unity.com/en-us/ai/unity-plugin/claude-code" target="_blank" rel="noopener">Unity docs</a> (released 9 Sep 2026)</td></tr><tr><td>MCP for Unity (CoplayDev)</td><td>v10.2.0</td></tr><tr><td>Unity-MCP (IvanMurzak)</td><td>0.91.0</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">FAQ</h2>


<div id="rank-math-faq" class="rank-math-block">
<div class="rank-math-list ">
<div id="faq-question-1758500000" class="rank-math-list-item">
<h3 class="rank-math-question ">Is Unity MCP free?</h3>
<div class="rank-math-answer ">

<p>Yes, on every route. Unity’s official MCP server became free after Unite Seoul in July 2026: Unity’s AI FAQ says it is free, has no concurrency limits and uses no Unity credits. Before that, Personal users needed a Unity AI subscription to connect. MCP for Unity (MIT) and Unity-MCP (Apache-2.0) have always been free. Unity’s in-Editor AI Assistant is still a paid add-on for Personal users, and Claude Code needs your own Claude plan.</p>

</div>
</div>
<div id="faq-question-1758500001" class="rank-math-list-item">
<h3 class="rank-math-question ">Does Unity MCP work with Unity 2022?</h3>
<div class="rank-math-answer ">

<p>Not the official server, which strictly requires Unity 6.0 or newer. Both community routes work: MCP for Unity supports 2021.3 LTS onwards and Unity-MCP supports 2022.3 onwards.</p>

</div>
</div>
<div id="faq-question-1758500002" class="rank-math-list-item">
<h3 class="rank-math-question ">Can Claude Code edit scenes and prefabs?</h3>
<div class="rank-math-answer ">

<p>Yes. All three servers can create GameObjects, change components and save scenes. Whether you should let it is a separate question. Serialized scene and prefab changes are hard to review in a diff, so let Claude edit scripts freely and use a CLAUDE.md rule that makes it ask before touching .unity or .prefab files.</p>

</div>
</div>
<div id="faq-question-1758500003" class="rank-math-list-item">
<h3 class="rank-math-question ">Why does Claude show in Other Connections but not connect?</h3>
<div class="rank-math-answer ">

<p>Move to the Unity CLI route: Unity has deprecated the package’s MCP server, and the CLI skips the approval flow. If you must stay on the package, approve the pending connection in Project Settings → AI → Unity MCP first. If that isn’t it, forum users traced the problem to specific AI Assistant pre-release versions (2.6.0-pre.1 and 2.17.0-pre.1 were reported working), to a stored rejection from clicking Deny (fixed by closing Unity and deleting the project’s Library/AI.MCP folder), or to a second MCP client competing for the connection.</p>

</div>
</div>
<div id="faq-question-1758500004" class="rank-math-list-item">
<h3 class="rank-math-question ">Unity official MCP vs Coplay: which is better?</h3>
<div class="rank-math-answer ">

<p>On Unity 6 or newer, the official server through the Unity CLI is the default choice: it’s free, needs no Python and is maintained by Unity. MCP for Unity (Coplay) is the better choice on Unity 2021.3 or 2022.3, or if you want its built-in test and profiling tools and large community. Don’t install both in one Unity 6.3+ project because of a DLL conflict.</p>

</div>
</div>
<div id="faq-question-1758500005" class="rank-math-list-item">
<h3 class="rank-math-question ">Does it work on Mac and Windows?</h3>
<div class="rank-math-answer ">

<p>Yes, all three routes support both, plus Linux. The Unity CLI installs on Windows, macOS and Linux. MCP for Unity runs anywhere Python and uv run. Unity-MCP downloads a platform-specific server binary. If you run Claude Code in WSL2 with Unity on Windows, use MCP for Unity over HTTP with port forwarding.</p>

</div>
</div>
<div id="faq-question-1758500006" class="rank-math-list-item">
<h3 class="rank-math-question ">Can I use a local LLM instead of Claude?</h3>
<div class="rank-math-answer ">

<p>Yes, with any MCP client that supports local models, and MCP for Unity explicitly lists local LLMs. Expect weaker results on multi-step Editor tasks: smaller models are worse at tool calling and lose track of which tools they have already called.</p>

</div>
</div>
</div>
</div>


<h2 class="wp-block-heading">Where to start</h2>



<ul class="wp-block-list">
<li><strong>On Unity 6 or newer:</strong> use the official server through the Unity CLI. It’s in beta, so try it on a branch first. Unity has deprecated the older package route.</li>


<li><strong>On 2021.3 or 2022.3 LTS:</strong> use Coplay’s MCP for Unity, pinned to a release tag.</li>


<li><strong>If you don’t want Python on your machine, or you want AI in the shipped game:</strong> use IvanMurzak’s Unity-MCP.</li>


<li><strong>Stuck on “Other Connections”:</strong> move to the Unity CLI. If you must stay on the package, approve the connection first and change the package version second.</li>
</ul>



<p class="wp-block-paragraph">Whichever route you pick: commit before, read the diff after, and start every session with a read-only prompt.</p>



<p class="wp-block-paragraph"><strong>Related guides:</strong></p>



<ul class="wp-block-list">
<li><a href="https://gamedevaihub.com/claude-game-development-guide/">Claude game development guide</a>: the full picture across Unity, Godot and Unreal</li>


<li><a href="https://gamedevaihub.com/claude-code-game-development/">Claude Code for game development</a>: which engine Claude handles best, real projects and what they cost</li>


<li><a href="https://gamedevaihub.com/how-to-use-ai-with-godot/">How to use AI with Godot 4</a>: the Godot version of this setup</li>


<li><a href="https://gamedevaihub.com/unreal-engine-5-8-mcp-server/">Unreal Engine 5.8 MCP server guide</a>: the Unreal version of this setup</li>


<li><a href="https://gamedevaihub.com/ai-game-prototyping-tools/">AI game prototyping tools</a></li>


<li><a href="https://gamedevaihub.com/how-to-vibe-code-a-game-the-step-by-step-guide-2026/">How to vibe code a game</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://gamedevaihub.com/claude-code-unity-mcp-setup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Use AI With Godot 4 in 2026 (Without Getting Godot 3 Code)</title>
		<link>https://gamedevaihub.com/how-to-use-ai-with-godot/</link>
					<comments>https://gamedevaihub.com/how-to-use-ai-with-godot/#respond</comments>
		
		<dc:creator><![CDATA[Adrian]]></dc:creator>
		<pubDate>Mon, 21 Sep 2026 06:08:39 +0000</pubDate>
				<category><![CDATA[AI Coding & Engines]]></category>
		<guid isPermaLink="false">https://gamedevaihub.com/?p=20104</guid>

					<description><![CDATA[AI keeps handing you Godot 3 code that will not compile. Here is the prompt that stops it, plus MCP setup, local LLMs in your game, and enemy AI that works. Tested on Godot 4.7.2.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Ask any AI for a Godot character controller and there&#8217;s a strong chance you&#8217;ll get <code>KinematicBody2D</code>. That hasn&#8217;t compiled since Godot 4.0 shipped in March 2023.</strong></p>



<p class="wp-block-paragraph">Every model learned from a decade of Godot 3 tutorials, and it can&#8217;t tell which era it&#8217;s quoting. The fix is in the prompt: state your exact version (Godot 4.7, GDScript), paste your scene tree, and tell it what NOT to use.</p>



<p class="wp-block-paragraph">Below: that prompt in full, a Godot 3 to 4 translation table, and the four real ways to use AI with Godot: chat models, MCP servers, AI inside the editor, and AI inside your shipped game.</p>



<p class="wp-block-paragraph"><em>Every code sample was run on Godot 4.7.2-stable before publishing.</em></p>



<h2 class="wp-block-heading">Which kind of “AI with Godot” do you actually mean?</h2>



<p class="wp-block-paragraph">The phrase covers four unrelated jobs. Pick your row before reading further.</p>



<figure class="wp-block-table"><table><thead><tr><th>What you want</th><th>Where to go</th><th>Time to a working result</th></tr></thead><tbody><tr><td>AI writes GDScript for me</td><td>Option 1: Chat models</td><td>5 minutes</td></tr><tr><td>AI reads and edits my actual project</td><td>Option 2: MCP servers</td><td>20–40 minutes</td></tr><tr><td>AI lives inside the Godot editor</td><td>Option 3: Editor plugins</td><td>10 minutes</td></tr><tr><td>AI runs inside my shipped game</td><td>Option 4: AI in the game</td><td>1–2 hours</td></tr><tr><td>My enemies need to chase the player</td><td>Classic game AI</td><td>30 minutes</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">That last row is the one people misfile most often. “Enemy AI” and “LLM” are different technologies solving different problems. A patrolling skeleton does not need a language model. More on that below.</p>



<h2 class="wp-block-heading">Fix this first: the Godot 3 contamination problem</h2>



<p class="key-insight wp-block-paragraph">Before any tool, any plugin, any workflow — understand what the model is getting wrong, because it fails silently. The code looks right. It’s structured correctly. It just references an engine that no longer exists.</p>



<h3 class="wp-block-heading">The translation table</h3>



<p class="wp-block-paragraph">These are the substitutions that account for most broken AI output in Godot 4.x. Keep this open while you review generated code.</p>



<figure class="wp-block-table"><table><thead><tr><th>Godot 3 (what AI gives you)</th><th>Godot 4.x (what actually works)</th></tr></thead><tbody><tr><td><code>KinematicBody2D</code> / <code>KinematicBody</code></td><td><code>CharacterBody2D</code> / <code>CharacterBody3D</code></td></tr><tr><td><code>move_and_slide(velocity, Vector2.UP)</code></td><td>Set <code>velocity</code> property, then call <code>move_and_slide()</code> with no arguments</td></tr><tr><td><code>Spatial</code></td><td><code>Node3D</code></td></tr><tr><td><code>yield(get_tree().create_timer(1.0), "timeout")</code></td><td><code>await get_tree().create_timer(1.0).timeout</code></td></tr><tr><td><code>connect("pressed", self, "_on_pressed")</code></td><td><code>button.pressed.connect(_on_pressed)</code></td></tr><tr><td><code>export var speed = 200</code></td><td><code>@export var speed: float = 200.0</code></td></tr><tr><td><code>onready var sprite = $Sprite</code></td><td><code>@onready var sprite: Sprite2D = $Sprite2D</code></td></tr><tr><td><code>Sprite</code></td><td><code>Sprite2D</code></td></tr><tr><td>Tween as a child node</td><td><code>create_tween()</code> called in code</td></tr><tr><td><code>get_tree().change_scene("res://x.tscn")</code></td><td><code>get_tree().change_scene_to_file("res://x.tscn")</code></td></tr><tr><td><code>setget</code></td><td><code>set</code>/<code>get</code> blocks on the variable</td></tr><tr><td><code>OS.get_ticks_msec()</code> for delta timing</td><td><code>Time.get_ticks_msec()</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">If you see any left-column item in AI output, stop and re-prompt rather than patching by hand. One Godot 3 reference usually means the model has locked onto a Godot 3 mental model for the whole response, and the rest of the architecture will be subtly wrong too.</p>



<h3 class="wp-block-heading">The prompt that prevents it</h3>



<p class="wp-block-paragraph">Four elements, every time. Skip any one and accuracy drops sharply.</p>



<p class="wp-block-paragraph code-file"><span>Prompt</span></p>



<pre class="wp-block-code"><code>Godot 4.7, GDScript, static typing.

Scene tree:
Player (CharacterBody2D)
├── AnimatedSprite2D
├── CollisionShape2D
└── Camera2D

Write top-down 8-direction movement using Input.get_vector with the
default ui_* actions. Speed 220. Use @export for tunables and @onready
for node references. Do not use KinematicBody2D or move_and_slide with
arguments — this is Godot 4.</code></pre>



<p class="wp-block-paragraph">The explicit negative instruction at the end is not paranoia. It measurably reduces Godot 3 leakage, because it puts the deprecated identifier in the context window as something to avoid rather than something to retrieve.</p>



<p class="wp-block-paragraph">Here’s the output that prompt should produce — statically reviewed against the 4.7 API:</p>



<p class="wp-block-paragraph code-file"><span>GDScript</span></p>



<pre class="wp-block-code"><code>extends CharacterBody2D

@export var speed: float = 220.0

@onready var sprite: AnimatedSprite2D = $AnimatedSprite2D

func _physics_process(_delta: float) -&gt; void:
	var direction := Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
	velocity = direction * speed
	move_and_slide()

	if direction != Vector2.ZERO:
		sprite.play("walk")
		sprite.flip_h = direction.x &lt; 0.0
	else:
		sprite.play("idle")</code></pre>



<p class="note wp-block-paragraph">Note what the prompt bought you: typed variables, <code>@export</code> for the designer-facing value, the correct <code>move_and_slide()</code> signature, and no invented node paths. That last one matters — without the scene tree in the prompt, models reliably hallucinate <code>$Sprite</code> or <code>$AnimationPlayer</code> and you’ll spend longer debugging node paths than writing the script yourself.</p>



<h2 class="wp-block-heading">Option 1: Chat models</h2>



<p class="wp-block-paragraph"><strong>Setup:</strong> none. <strong>Cost:</strong> free to ~$20/month. <strong>Best for:</strong> learning, one-off scripts, debugging errors.</p>



<p class="wp-block-paragraph">The zero-friction path is a browser tab. Open Claude or ChatGPT, paste your error, get an explanation. For a solo developer learning Godot, this is genuinely the highest-value-per-minute use of AI in the entire stack — not code generation, but error translation.</p>



<p class="wp-block-paragraph">Godot’s parser errors are terse. <code>Invalid call. Nonexistent function 'get_next_path_position' in base 'Nil'</code> tells an experienced developer that a node reference is null; it tells a beginner nothing. Paste it with the script and you get a diagnosis in seconds.</p>



<h3 class="wp-block-heading">Where chat models earn their keep</h3>



<ul class="wp-block-list">
<li>Explaining an unfamiliar error or engine concept</li>



<li>Writing shader math you’d otherwise spend an afternoon deriving</li>



<li>Converting a system from one pattern to another (callbacks to signals, for instance)</li>



<li>Generating boilerplate: save/load scaffolding, settings menus, object pools</li>



<li>Reviewing a script you wrote and flagging what you missed</li>
</ul>



<h3 class="wp-block-heading">Where they fail, structurally</h3>



<p class="wp-block-paragraph">A chat model cannot see your project. It cannot run your game. It cannot read the error it just caused. Every piece of context arrives by copy-paste, which means the model’s understanding of your codebase is always a partial, stale snapshot you constructed by hand.</p>



<p class="wp-block-paragraph">That ceiling is real and you hit it fast. The moment your question involves three scripts and an autoload, copy-pasting context costs more than writing the code. That’s the problem Option 2 exists to solve.</p>



<h2 class="wp-block-heading">Option 2: MCP servers</h2>



<p class="wp-block-paragraph"><strong>Setup:</strong> 20–40 minutes. <strong>Cost:</strong> free to ~$20/month for the client. <strong>Best for:</strong> multi-file work, refactoring, debugging with real runtime state.</p>



<p class="wp-block-paragraph">Model Context Protocol is a standard that lets an AI client call tools on your machine. A Godot MCP server exposes your project as those tools: read the scene tree, inspect a node, edit a script, launch the game, read the error output.</p>



<p class="wp-block-paragraph">The practical difference is that the model stops guessing. It queries your actual scene hierarchy instead of inventing one. When the game crashes, it reads the real stack trace. It’s the single largest quality jump available in AI-assisted Godot work, and it’s the part almost no guide covers properly.</p>



<h3 class="wp-block-heading">Install Node.js first</h3>



<p class="wp-block-paragraph">Nearly every Godot MCP server is a Node package launched through <code>npx</code>. If Node.js isn’t installed, <code>npx</code> doesn’t exist, the server can never start, and your client reports something unhelpful like <code>Connection closed</code>. This is the single most common reason a Godot MCP setup “doesn’t work”, and almost no guide mentions it.</p>



<p class="code-file wp-block-paragraph"><span>Check before you touch any config:</span></p>



<pre class="wp-block-code"><code>node --version
npx --version</code></pre>



<p class="wp-block-paragraph">If either command is not recognised, install the Node.js LTS build and restart your terminal and your AI client before going further. On Windows, <code>winget install OpenJS.NodeJS.LTS</code> does it in one line.</p>



<h3 class="wp-block-heading">Setup</h3>



<p class="wp-block-paragraph">Pick a server (comparison below) and add it to your MCP client config. For most Node-based servers this is a small JSON block:</p>



<p class="wp-block-paragraph code-file"><span>JSON config</span></p>



<pre class="wp-block-code"><code>{
  "mcpServers": {
    "godot": {
      "command": "npx",
      "args": &#91;"-y", "@coding-solo/godot-mcp"],
      "env": {
        "GODOT_PATH": "C:\\Godot\\Godot_v4.7.2-stable_win64.exe"
      }
    }
  }
}</code></pre>



<p class="wp-block-paragraph">Two details in that block do real work, and leaving either out is what breaks most first attempts:</p>



<ul class="wp-block-list">
<li><strong>The <code>-y</code> flag.</strong> Without it, <code>npx</code> stops on first run to ask whether you want to install the package. Nothing is there to answer, so the server hangs and the client eventually gives up.</li>



<li><strong><code>GODOT_PATH</code>.</strong> Servers try to auto-detect Godot by scanning standard install locations. Godot ships as a portable executable that most people unzip wherever, so auto-detection usually fails and the server falls back to a default path that does not exist. Point it at the real binary. Somewhere stable, not your Downloads folder — if the path changes, the server breaks again.</li>
</ul>



<p class="wp-block-paragraph">Install the companion addon into your project, if the server ships one, and enable it in Godot under <strong>Project → Project Settings → Plugins</strong>.</p>



<p class="wp-block-paragraph">Restart your AI client and confirm the Godot tools registered. You should see a list of tool names appear in the client’s MCP panel — scene-tree reads, node inspection, script editing, project launching. For reference, <code>@coding-solo/godot-mcp</code> registers 14: <code>launch_editor</code>, <code>run_project</code>, <code>get_debug_output</code>, <code>stop_project</code>, <code>get_godot_version</code>, <code>list_projects</code>, <code>get_project_info</code>, <code>create_scene</code>, <code>add_node</code>, <code>load_sprite</code>, <code>export_mesh_library</code>, <code>save_scene</code>, <code>get_uid</code> and <code>update_project_uids</code>.</p>



<p class="wp-block-paragraph">If that list is empty, the client never loaded your config — check the file path and restart again before touching anything else.</p>



<p class="wp-block-paragraph">Verify with a read-only prompt before letting it write: <em>“Show me the current scene hierarchy.”</em> If that returns your real nodes, the connection is live.</p>



<h3 class="wp-block-heading">Which server</h3>



<p class="wp-block-paragraph">The category is young and moves fast. Check the last-commit date on any of these before committing to it — an abandoned MCP server breaks the moment Godot changes a class reference.</p>



<figure class="wp-block-table"><table><thead><tr><th>Server</th><th>Reads project</th><th>Edits scenes/scripts</th><th>Runs the game</th><th>Runtime state</th><th>Cost</th></tr></thead><tbody><tr><td>satelliteoflove/godot-mcp</td><td>Yes</td><td>Yes</td><td>Yes, with time-stepping</td><td>Exact node positions and state, no screenshots needed</td><td>Free, MIT-style</td></tr><tr><td>coding-solo/godot-mcp</td><td>Yes</td><td>Scene and node creation</td><td>Yes, surfaces errors</td><td>Debug output</td><td>Free</td></tr><tr><td>GDAI MCP Plugin (3ddelano)</td><td>Yes</td><td>Yes, node-level scene editing</td><td>Yes</td><td>Yes</td><td>Paid, commercial use permitted</td></tr><tr><td>MPXXV/godot_AI</td><td>In-editor panel</td><td>Yes</td><td>—</td><td>—</td><td>Free, bring your own key</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">The runtime-state approach deserves a specific mention: instead of asking the model to read a screenshot and guess where things are, it hands over exact positions and node state as structured data. For debugging a physics bug or a broken state transition, that’s the difference between a useful answer and confident fiction.</p>



<h3 class="wp-block-heading">The honest caveat</h3>



<p class="note warning wp-block-paragraph">MCP gives the model write access to your project. Use version control. Commit before a session, review the diff after. This is not a hypothetical concern — an agent confidently refactoring six scripts at once will occasionally delete something you needed.</p>



<h2 class="wp-block-heading">Option 3: AI inside the editor</h2>



<p class="wp-block-paragraph"><strong>Setup:</strong> 10 minutes. <strong>Best for:</strong> developers who want AI in the same window as the scene view.</p>



<p class="wp-block-paragraph">Editor plugins add a chat panel to stock Godot. The workflow advantage is small but real: your current script and scene tree are injected automatically, so the context problem from Option 1 mostly disappears without the setup cost of Option 2.</p>



<p class="wp-block-paragraph">Install path is standard — AssetLib tab, or drop the folder into <code>addons/</code> and enable it under <strong>Project → Project Settings → Plugins</strong>.</p>



<p class="wp-block-paragraph">Two things to check before you install any of them:</p>



<p class="wp-block-paragraph"><strong>Where does the API key live?</strong> Well-built plugins store keys in Godot’s <code>EditorSettings</code>, which stays out of your project files and out of git. If a plugin asks you to paste a key into a project resource, don’t — you will commit it eventually.</p>



<p class="wp-block-paragraph"><strong>Can it run locally?</strong> Several plugins support Ollama pointed at <code>http://127.0.0.1:11434</code>. Pull a code-focused model and you get a fully offline assistant with no per-token cost and no code leaving your machine. Slower and less capable than a frontier model, but for boilerplate and syntax questions it’s more than adequate — and for anyone under NDA or working on contract code, it’s the only viable option.</p>



<h2 class="wp-block-heading">Option 4: AI inside your shipped game</h2>



<p class="wp-block-paragraph">This is a completely different engineering problem from everything above. Options 1–3 help you build. This ships to the player.</p>



<p class="wp-block-paragraph">Two architectures, and the choice determines your costs, your privacy exposure, and whether your game works offline.</p>



<h3 class="wp-block-heading">Route A: Local models (recommended for most indie games)</h3>



<p class="wp-block-paragraph">NobodyWho is a GDExtension plugin that runs GGUF-format language models directly inside your game. No API key, no network, no per-player cost. It’s built on llama.cpp with Vulkan and Metal GPU acceleration, ships drop-in nodes, and supports streaming, tool calling, and grammar-constrained output.</p>



<p class="wp-block-paragraph">The architecture is straightforward: a model node loads the GGUF file once, and chat nodes attached to individual NPCs share it. Responses arrive as signals, token by token, so inference never blocks your frame loop.</p>



<p class="wp-block-paragraph">Three gotchas that sink projects:</p>



<ol class="wp-block-list">
<li><strong>Export size.</strong> A 3B-parameter quantised model is roughly 2 GB. On mobile, keep it under ~1 GB or the device runs out of memory. Your 40 MB indie game becomes a 2 GB download — decide whether that’s acceptable before you build a story around it.</li>



<li><strong>Share the model node.</strong> Loading the same model once per NPC will consume gigabytes of RAM and freeze the game. One model node, many chat nodes.</li>



<li><strong>Licensing.</strong> NobodyWho is EUPL-1.2 — free for commercial games, with the obligation that modifications to the plugin itself get published. Check the terms yourself before you build a commercial release on it, and check the licence of the model separately. They are not the same licence.</li>
</ol>



<h3 class="wp-block-heading">Route B: Cloud APIs — and the security rule you cannot break</h3>



<p class="note warning wp-block-paragraph"><strong>Never ship an API key inside an exported Godot game.</strong> Not in a <code>.tres</code>, not in an autoload constant, not obfuscated. Exported PCK files are trivially unpackable. A key in your build is a key in a stranger’s terminal, billed to you.</p>



<p class="code-file wp-block-paragraph"><span>The correct architecture:</span></p>



<pre class="wp-block-code"><code>Godot client  →  your backend (holds the key, rate-limits per user)  →  AI provider</code></pre>



<p class="wp-block-paragraph">Your game sends the player’s input to a server you control. That server attaches the key, enforces per-user rate limits, and returns the response. Yes, it’s more work. It’s also the only version that survives contact with the public.</p>



<p class="wp-block-paragraph">Here’s a working <code>HTTPRequest</code> pattern — pointed at a local Ollama instance so you can run it today with no key and no backend, then swap the URL for your proxy when you ship:</p>



<p class="wp-block-paragraph code-file"><span>GDScript</span></p>



<pre class="wp-block-code"><code>extends Node

# Use 127.0.0.1, not "localhost" — see the note below this block.
const ENDPOINT := "http://127.0.0.1:11434/api/generate"

@onready var http: HTTPRequest = $HTTPRequest

signal reply_received(text: String)

func _ready() -&gt; void:
	http.request_completed.connect(_on_request_completed)
	http.timeout = 30.0

func ask(prompt: String) -&gt; void:
	var headers := PackedStringArray(&#91;"Content-Type: application/json"])
	var payload := {
		"model": "llama3.2",
		"prompt": prompt,
		"stream": false
	}
	var error := http.request(
		ENDPOINT,
		headers,
		HTTPClient.METHOD_POST,
		JSON.stringify(payload)
	)
	if error != OK:
		push_error("Request failed to start: %d" % error)

func _on_request_completed(
	result: int,
	response_code: int,
	_headers: PackedStringArray,
	body: PackedByteArray
) -&gt; void:
	if result != HTTPRequest.RESULT_SUCCESS:
		push_error("Transport failure: %d" % result)
		return
	if response_code != 200:
		push_error("HTTP %d" % response_code)
		return

	var parsed: Variant = JSON.parse_string(body.get_string_from_utf8())
	if parsed == null or not parsed is Dictionary:
		push_error("Malformed JSON response")
		return

	reply_received.emit(parsed.get("response", ""))</code></pre>



<h4 class="wp-block-heading">Use 127.0.0.1, not localhost — this one costs people hours</h4>



<p class="wp-block-paragraph">Almost every Ollama snippet on the internet uses <code>http://localhost:11434</code>. On Windows that fails, and it fails in the most confusing way possible.</p>



<p class="wp-block-paragraph">Windows resolves <code>localhost</code> to the IPv6 address <code>::1</code> first. Ollama binds IPv4 only — run <code>netstat -ano | findstr 11434</code> and you’ll see it listening on <code>127.0.0.1:11434</code> and nothing else. So Godot dials an address nothing is listening on, waits out the full 30-second timeout, and hands you <code>Transport failure: 13</code> with no further clue. Result code 13 is <code>RESULT_TIMEOUT</code>.</p>



<p class="wp-block-paragraph">The maddening part is that testing the same URL in PowerShell or a browser works fine, because those clients fall back to IPv4 automatically. Godot’s <code>HTTPRequest</code> does not. Hardcode <code>127.0.0.1</code> and it works immediately.</p>



<p class="wp-block-paragraph">Here’s that script running against a local Ollama instance, printing the model’s reply straight into the Godot Output panel:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1618" height="997" src="https://gamedevaihub.com/wp-content/uploads/2026/09/godot-ollama-httprequest-output-panel.png" alt="Godot 4.7 editor Output panel showing an HTTPRequest POST to a local Ollama endpoint at 127.0.0.1:11434 and the language model reply printed back in 773 milliseconds" class="wp-image-20102" srcset="https://gamedevaihub.com/wp-content/uploads/2026/09/godot-ollama-httprequest-output-panel.png 1618w, https://gamedevaihub.com/wp-content/uploads/2026/09/godot-ollama-httprequest-output-panel-300x185.png 300w, https://gamedevaihub.com/wp-content/uploads/2026/09/godot-ollama-httprequest-output-panel-1024x631.png 1024w, https://gamedevaihub.com/wp-content/uploads/2026/09/godot-ollama-httprequest-output-panel-768x473.png 768w, https://gamedevaihub.com/wp-content/uploads/2026/09/godot-ollama-httprequest-output-panel-1536x946.png 1536w" sizes="auto, (max-width: 1618px) 100vw, 1618px" /><figcaption class="wp-element-caption">The HTTPRequest script above, talking to a local Ollama instance from Godot 4.7.2-stable. No API key, no backend, 773 ms round trip.</figcaption></figure>



<p class="wp-block-paragraph">Three details worth noticing, because generated versions of this script usually get them wrong: <code>body</code> is a <code>PackedByteArray</code> and needs <code>get_string_from_utf8()</code> before parsing; <code>JSON.parse_string()</code> returns <code>null</code> on failure rather than throwing, so the null check is mandatory; and <code>result</code> and <code>response_code</code> are different failure modes — a connection that never opened and a server that returned 500 need different handling.</p>



<p class="wp-block-paragraph"><strong>Structure:</strong> put this on a dedicated node with an <code>HTTPRequest</code> child, expose the result as a signal, and let NPC scripts connect to it. Do not call it from <code>_process</code>.</p>



<h3 class="wp-block-heading">Costs and latency, honestly</h3>



<p class="wp-block-paragraph">Cloud inference costs money per player, per conversation, forever. A chatty NPC in a game with 10,000 players is a recurring bill with no ceiling.</p>



<p class="wp-block-paragraph">Latency has to be designed around either way. Four consecutive runs of the script above, against a warm local model on a laptop CPU, returned in <strong>773 ms, 1909 ms, 3116 ms and 5409 ms</strong>. That is a 0.5B model — about as small and fast as a usable model gets. Anything you would actually ship for dialogue is slower, and a cloud round trip adds network time on top. Budget for one to five seconds, and spend it: a typing animation, a thinking pose, something that makes the wait diegetic.</p>



<p class="wp-block-paragraph">Local inference removes the bill but costs you download size and requires a fallback path for weak hardware.</p>



<p class="wp-block-paragraph">Most shipped games that use LLMs for dialogue use them for flavour — barks, reactions, ambient chatter — and keep critical plot dialogue hand-written. There’s a reason for that. Generated text can’t be guaranteed to stay on-brand, on-rating, or on-plot.</p>



<h2 class="wp-block-heading">Classic game AI: what most people actually need</h2>



<p class="wp-block-paragraph">If you searched “AI in Godot” wanting enemies that chase the player, none of the above applies. You need a state machine and a navigation agent. This is deterministic, debuggable, free, and it’s what almost every shipped game uses.</p>



<p class="wp-block-paragraph">An enemy scene needs: a <code>CharacterBody2D</code> root, an <code>AnimatedSprite2D</code>, a <code>CollisionShape2D</code>, an <code>Area2D</code> with a larger shape for detection, and a <code>NavigationAgent2D</code>.</p>



<p class="wp-block-paragraph code-file"><span>GDScript</span></p>



<pre class="wp-block-code"><code>extends CharacterBody2D

enum State { IDLE, CHASE, ATTACK }

@export var move_speed: float = 120.0
@export var attack_range: float = 40.0

@onready var nav: NavigationAgent2D = $NavigationAgent2D

var state: State = State.IDLE
var player: Node2D = null

func _physics_process(_delta: float) -&gt; void:
	match state:
		State.IDLE:
			velocity = Vector2.ZERO
		State.CHASE:
			_chase()
		State.ATTACK:
			velocity = Vector2.ZERO
			_attack()
	move_and_slide()

func _chase() -&gt; void:
	if player == null:
		state = State.IDLE
		return
	if global_position.distance_to(player.global_position) &lt;= attack_range:
		state = State.ATTACK
		return
	nav.target_position = player.global_position
	var next_point := nav.get_next_path_position()
	velocity = global_position.direction_to(next_point) * move_speed

func _attack() -&gt; void:
	if player == null or global_position.distance_to(player.global_position) &gt; attack_range:
		state = State.CHASE

func _on_detection_area_body_entered(body: Node2D) -&gt; void:
	if body.is_in_group("player"):
		player = body
		state = State.CHASE</code></pre>



<p class="wp-block-paragraph">Connect the <code>Area2D</code>’s <code>body_entered</code> signal to <code>_on_detection_area_body_entered</code>, add the player to a <code>player</code> group, and bake a navigation mesh in your level. That’s a functioning enemy.</p>



<p class="wp-block-paragraph">Here it is running — that exact script, unmodified, in a Godot 4.7.2 project:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="960" height="600" src="https://gamedevaihub.com/wp-content/uploads/2026/09/godot-enemy-state-machine-running.png" alt="Godot 4.7 enemy AI in the CHASE state following a NavigationAgent2D path around a wall toward the player, with a HUD showing state, distance, attack range and move speed" class="wp-image-20101" srcset="https://gamedevaihub.com/wp-content/uploads/2026/09/godot-enemy-state-machine-running.png 960w, https://gamedevaihub.com/wp-content/uploads/2026/09/godot-enemy-state-machine-running-300x188.png 300w, https://gamedevaihub.com/wp-content/uploads/2026/09/godot-enemy-state-machine-running-768x480.png 768w" sizes="auto, (max-width: 960px) 100vw, 960px" /><figcaption class="wp-element-caption">The enemy has spotted the player and entered CHASE. The yellow line is the live NavigationAgent2D path, routing around the wall rather than through it.</figcaption></figure>



<p class="wp-block-paragraph">The HUD in that shot reads the state straight off the enum every frame, which is worth doing while you build one of these. A state machine that transitions wrongly looks identical to one that transitions correctly until you print the state.</p>



<h3 class="wp-block-heading">Three things that will bite you</h3>



<p class="note warning wp-block-paragraph"><strong>An unbaked navigation mesh.</strong> <code>NavigationAgent2D</code> returning <code>Vector2.ZERO</code> from <code>get_next_path_position()</code> almost always means the navigation mesh hasn’t been baked or the agent is outside it. It’s the most common failure here by a wide margin.</p>



<p class="note warning wp-block-paragraph"><strong>The enemy never goes back to IDLE.</strong> There’s no <code>body_exited</code> handler in the script above, so once the player is seen the enemy chases forever, across the whole level, through every room. That’s often what you want in a small game and it keeps the example short — but if you want the enemy to give up, connect <code>body_exited</code> too and set the state back to <code>IDLE</code> with <code>player = null</code>.</p>



<p class="note warning wp-block-paragraph"><strong>Collision layers.</strong> If the enemy and player physically block each other, they will jam against one another and the chase stops dead. Put them on separate collision layers, and mask the detection <code>Area2D</code> to the player’s layer only — otherwise the area detects walls, or the enemy detects itself.</p>



<p class="wp-block-paragraph">When this outgrows you — more than five or six states, or behaviours that need to share sub-trees — graduate to a behaviour tree via LimboAI or Beehave. Don’t start there. A three-state <code>match</code> statement is easier to debug than a tree, and most enemies never need more.</p>



<p class="wp-block-paragraph">AI coding assistants are genuinely good at generating this scaffolding, which is the neat convergence: use Option 1 or 2 to write your classic game AI, and skip the language model at runtime entirely.</p>



<h2 class="wp-block-heading">Download the demo project</h2>



<p class="wp-block-paragraph">Both screenshots above come from one small Godot 4.7.2 project, and you can have it. The enemy script in it is character-for-character the one printed on this page — the screenshot is evidence the published code runs, not a lookalike built separately.</p>



<p class="wp-block-paragraph">>>> DownZIP FILE HERE &lt;&lt;&lt;</p>



<p class="wp-block-paragraph">Open the folder in Godot 4.7.x and press F5 for the enemy state machine. The player walks a patrol loop on autopilot so you can watch the states change without touching the keyboard — press Space to take control. Run <code>ollama_demo.tscn</code> for the HTTPRequest demo; it needs Ollama running locally with a model pulled.</p>



<h2 class="wp-block-heading">A realistic workflow</h2>



<figure class="wp-block-table"><table><thead><tr><th>Task</th><th>Use AI?</th><th>Why</th></tr></thead><tbody><tr><td>Boilerplate: menus, save systems, object pools</td><td>Yes</td><td>Mechanical, verifiable, tedious</td></tr><tr><td>Shader math</td><td>Yes</td><td>Hard to derive, easy to test visually</td></tr><tr><td>Explaining an error</td><td>Yes</td><td>Highest value per minute</td></tr><tr><td>State machine scaffolding</td><td>Yes</td><td>Then tune the numbers by hand</td></tr><tr><td>Refactoring across files</td><td>With MCP</td><td>Needs real project context</td></tr><tr><td>Game feel: jump arcs, damping, camera lag</td><td>No</td><td>Requires playing it, which AI cannot do</td></tr><tr><td>Core architecture decisions</td><td>No</td><td>You’ll live with these for the project’s life</td></tr><tr><td>Anything touching physics tuning</td><td>No</td><td>Numerically plausible and completely wrong</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">The pattern: AI is strong where output is checkable and weak where quality is felt rather than measured.</p>



<h2 class="wp-block-heading">What AI still gets wrong in Godot 4.7</h2>



<p class="wp-block-paragraph">Beyond the version problem, these recur:</p>



<ul class="wp-block-list">
<li><strong>Signal connections</strong> written in the Godot 3 string style, or connected twice, producing double-fire bugs that look like physics problems.</li>



<li><strong><code>@onready</code> ordering.</strong> Models assume a node exists before <code>_ready()</code> runs. It doesn’t.</li>



<li><strong><code>_process</code> vs <code>_physics_process</code>.</strong> Movement put in <code>_process</code> will be frame-rate dependent, and the bug only appears on other people’s machines.</li>



<li><strong>Invented node paths.</strong> <code>$Sprite</code> instead of <code>$Sprite2D</code>, <code>$Player/Anim</code> for a node that was never in your tree.</li>



<li><strong>Autoload assumptions.</strong> The model assumes a <code>GameManager</code> singleton exists because most tutorials have one.</li>



<li><strong>Return-type drift.</strong> Godot 4 tightened typing; generated code often omits <code>-&gt; void</code> or returns a <code>Variant</code> where a typed value is required.</li>



<li><strong>Hostnames.</strong> As above — every local-inference snippet says <code>localhost</code>, and on Windows that breaks silently.</li>
</ul>



<h2 class="wp-block-heading">What this guide was tested on</h2>



<p class="wp-block-paragraph">Versions matter more than usual in this topic, so here is exactly what produced the screenshots and the timings, rather than numbers copied out of documentation:</p>



<figure class="wp-block-table"><table><tbody><tr><td>Godot</td><td>4.7.2-stable (official), build <code>ed1daf0bf</code></td></tr><tr><td>Renderer</td><td>OpenGL 3.3 Compatibility, AMD Radeon Graphics</td></tr><tr><td>Ollama</td><td>0.34.2</td></tr><tr><td>Local model</td><td><code>qwen2.5:0.5b</code> (397 MB)</td></tr><tr><td>Node.js / npm</td><td>v24.19.0 / 11.17.0</td></tr><tr><td>MCP server</td><td><code>@coding-solo/godot-mcp</code> 0.1.1 — 14 tools registered</td></tr><tr><td>Measured round trips</td><td>773 ms, 1909 ms, 3116 ms, 5409 ms</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">More guides</h3>



<ul class="wp-block-list">
<li><a href="https://gamedevaihub.com/claude-code-unity-mcp-setup/">Claude Code Unity MCP Setup: 3 Routes Compared</a></li>
</ul>



<h2 class="wp-block-heading gdah-related">Related guides</h2>



<ul class="wp-block-list"><li><a href="https://gamedevaihub.com/claude-game-development-guide/">Claude for Game Development: Build Smarter in Unity, Godot &#038; Unreal</a></li><li><a href="https://gamedevaihub.com/best-ai-code-assistants-for-unity-c-sharp-beginners/">Best AI Code Assistants for Unity C# Beginners: Write Scripts Faster</a></li><li><a href="https://gamedevaihub.com/how-to-vibe-code-a-game-the-step-by-step-guide-2026/">How to Vibe Code a Game: The Step-by-Step Guide (2026)</a></li></ul>



<h2 class="wp-block-heading">Frequently asked questions</h2>


<div id="rank-math-faq" class="rank-math-block">
<div class="rank-math-list ">
<div id="faq-question-1761000000" class="rank-math-list-item">
<h3 class="rank-math-question ">Can AI write a whole Godot game?</h3>
<div class="rank-math-answer ">

<p>For a small, finishable 2D game — a match-3, a simple platformer — an agentic setup with MCP access can produce a playable result. For anything with systems that interact, you will spend more time correcting architecture than you saved. Treat it as a fast collaborator, not an autonomous developer.</p>

</div>
</div>
<div id="faq-question-1761007919" class="rank-math-list-item">
<h3 class="rank-math-question ">Why does my Godot MCP server say Connection closed?</h3>
<div class="rank-math-answer ">

<p>Almost always because Node.js is not installed, so the npx command the server launches with does not exist. Run node &#8211;version to check. The second most common cause is a missing -y flag, which makes npx stall waiting for an install prompt nothing can answer, and the third is an unset GODOT_PATH, since Godot ships as a portable executable that auto-detection cannot find.</p>

</div>
</div>
<div id="faq-question-1761015838" class="rank-math-list-item">
<h3 class="rank-math-question ">Why does my HTTPRequest to Ollama time out in Godot?</h3>
<div class="rank-math-answer ">

<p>On Windows, localhost resolves to the IPv6 address ::1 first and Ollama binds IPv4 only, so Godot connects to nothing and fails with Transport failure: 13, which is RESULT_TIMEOUT, after the full timeout. Use http://127.0.0.1:11434 instead. The same URL works in a browser or PowerShell because those clients fall back to IPv4 automatically.</p>

</div>
</div>
<div id="faq-question-1761023757" class="rank-math-list-item">
<h3 class="rank-math-question ">Is AI-generated GDScript safe to ship?</h3>
<div class="rank-math-answer ">

<p>Only after you have read every line and run it. Generated code compiles more often than it is correct. The risky failures are the ones that run fine and behave subtly wrong.</p>

</div>
</div>
<div id="faq-question-1761031676" class="rank-math-list-item">
<h3 class="rank-math-question ">Does Godot have built-in AI features?</h3>
<div class="rank-math-answer ">

<p>No generative AI ships with the engine. Godot includes classic game-AI tools — NavigationAgent, NavigationRegion, pathfinding and AStarGrid2D — but no LLM integration. Everything generative comes from plugins.</p>

</div>
</div>
<div id="faq-question-1761039595" class="rank-math-list-item">
<h3 class="rank-math-question ">Which AI is best for GDScript?</h3>
<div class="rank-math-answer ">

<p>The frontier models are broadly comparable for GDScript. The bigger variable is context: any model with MCP access to your real project outperforms a better model working blind.</p>

</div>
</div>
<div id="faq-question-1761047514" class="rank-math-list-item">
<h3 class="rank-math-question ">Are there free options for AI with Godot?</h3>
<div class="rank-math-answer ">

<p>Yes. Ollama with a local code model is free and offline, and several Godot editor plugins support it directly. A 0.5B model is about 400 MB and answers in roughly one to five seconds on a laptop CPU.</p>

</div>
</div>
<div id="faq-question-1761055433" class="rank-math-list-item">
<h3 class="rank-math-question ">Does AI work with C# in Godot?</h3>
<div class="rank-math-answer ">

<p>Better than with GDScript, since C# training data is vastly larger. The Godot-specific API confusion remains identical — verify against the 4.x API either way.</p>

</div>
</div>
<div id="faq-question-1761063352" class="rank-math-list-item">
<h3 class="rank-math-question ">Will AI-generated code break when I upgrade Godot?</h3>
<div class="rank-math-answer ">

<p>No more than hand-written code. Godot 4.x maintenance releases preserve compatibility; feature releases occasionally deprecate things. The risk is generated code that was already targeting an older version.</p>

</div>
</div>
<div id="faq-question-1761071271" class="rank-math-list-item">
<h3 class="rank-math-question ">Can I run a language model offline inside my game?</h3>
<div class="rank-math-answer ">

<p>Yes. NobodyWho runs GGUF models locally with no network, no API key and no per-player cost. Budget for the download size — a 3B quantised model is roughly 2 GB — and check the licences of both the plugin and the model, because they are not the same licence.</p>

</div>
</div>
</div>
</div>


<h2 class="wp-block-heading">Where to start</h2>



<p class="wp-block-paragraph">Pick one:</p>



<ul class="wp-block-list">
<li><strong>Learning Godot?</strong> Option 1, plus the translation table. Cost: nothing.</li>



<li><strong>Building something real?</strong> Option 2. The setup pays for itself the first time you refactor across files — and check Node.js is installed before you blame the server.</li>



<li><strong>Want talking NPCs?</strong> Option 4, Route A, local. Prototype before you design a game around it.</li>



<li><strong>Want an enemy that chases the player?</strong> The state machine above. No language model required.</li>
</ul>



<p class="wp-block-paragraph">And whatever you generate — commit before, review after, read every line. The tools are genuinely good now. They are not, and are not close to, trustworthy without supervision.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gamedevaihub.com/how-to-use-ai-with-godot/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 

Served from: gamedevaihub.com @ 2026-11-02 11:56:26 by W3 Total Cache
-->