{"id":114,"date":"2023-07-24T17:50:59","date_gmt":"2023-07-24T17:50:59","guid":{"rendered":"https:\/\/www.rawrlab.com\/blog\/?p=114"},"modified":"2023-11-21T14:07:04","modified_gmt":"2023-11-21T14:07:04","slug":"how-to-play-your-godot-3-x-game-on-your-xbox","status":"publish","type":"post","link":"https:\/\/www.rawrlab.com\/blog\/2023\/07\/24\/how-to-play-your-godot-3-x-game-on-your-xbox\/","title":{"rendered":"How to play your Godot 3.x game on your Xbox!"},"content":{"rendered":"\n<p>A few years ago, I read in the news that Microsoft stopped allowing games in UWP format in Xbox&#8217;s Microsoft Store. UWP is a very convenient and simple format to port Windows applications and videogames to Xbox: The same APIs that work on Windows will work right away on Xbox!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.rawrlab.com\/blog\/wp-content\/uploads\/2023\/07\/image-1-1024x576.png\" alt=\"\" class=\"wp-image-119\" srcset=\"https:\/\/www.rawrlab.com\/blog\/wp-content\/uploads\/2023\/07\/image-1-1024x576.png 1024w, https:\/\/www.rawrlab.com\/blog\/wp-content\/uploads\/2023\/07\/image-1-300x169.png 300w, https:\/\/www.rawrlab.com\/blog\/wp-content\/uploads\/2023\/07\/image-1-768x432.png 768w, https:\/\/www.rawrlab.com\/blog\/wp-content\/uploads\/2023\/07\/image-1.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>I haven&#8217;t had an Xbox until now, so I couldn&#8217;t tell if this was true, but the truth is that <strong>Microsoft still accepts games for Xbox Store and Windows Store in UWP format<\/strong>, they only stopped accepting 32-bit executables.<\/p>\n\n\n\n<p><strong>So\u2026 Can we export a Godot game to Xbox directly by simply pressing Export to UWP? <\/strong><\/p>\n\n\n\n<p>Well\u2026 Yes**! And it will work like a charm***!<\/p>\n\n\n\n<p>** mostly \ud83d\ude05.<br>*** at least all the 2D video games I have ported so far work flawlessly.<\/p>\n\n\n\n<p>This doesn&#8217;t mean that the game is ready to be published on consoles, but it&#8217;s a big step forward. We will still need to solve out many TRCs related to Xbox Live, achievements, Xbox application life-cycle, gamepad management, users, etc\u2026<\/p>\n\n\n\n<p>But if you just want to play your Godot 3.x games on your Xbox, just follow these steps!<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Download Godot 3.x and make a game<\/strong>. (Take your time, I&#8217;ll wait here)<\/li>\n\n\n\n<li>In Godot, go to the <strong>Project tab<\/strong> and click on <strong>Export<\/strong>.<\/li>\n\n\n\n<li>Press &#8220;<strong>Add&#8230;<\/strong>&#8221; and select <strong>UWP<\/strong>.<\/li>\n\n\n\n<li><strong>If you don&#8217;t have the export templates<\/strong> installed, a red message will appear below with a link: &#8220;<strong>Manage export templates<\/strong>&#8220;. If so, click on it and press &#8220;<strong>Download and install<\/strong>&#8220;.<\/li>\n\n\n\n<li>After that, get again to the <strong>Export window<\/strong> and fill those fields. <br>Target architecture should be <strong>x64<\/strong> and the publisher name must be the same as the one in the certificate you&#8217;ll create later. <strong>Those fields have many restrictions, so, for just testing, I would recommend just filling &#8220;test&#8221; in them and &#8220;CN=TEST&#8221; in the Publisher field.<\/strong> <br>For <strong>Product\/Publisher GUIDs<\/strong>, just use &#8220;<strong>3159a24f-700c-4c29-8c5b-27c962dba839<\/strong>&#8220;. It&#8217;s a random generated one. <figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"904\" height=\"725\" class=\"wp-image-115\" src=\"https:\/\/www.rawrlab.com\/blog\/wp-content\/uploads\/2023\/07\/image.png\" alt=\"\" srcset=\"https:\/\/www.rawrlab.com\/blog\/wp-content\/uploads\/2023\/07\/image.png 904w, https:\/\/www.rawrlab.com\/blog\/wp-content\/uploads\/2023\/07\/image-300x241.png 300w, https:\/\/www.rawrlab.com\/blog\/wp-content\/uploads\/2023\/07\/image-768x616.png 768w\" sizes=\"auto, (max-width: 904px) 100vw, 904px\" \/><\/figure> <\/li>\n\n\n\n<li>Click <strong>Export Project<\/strong>, uncheck &#8220;<strong>Export With Debug<\/strong>&#8221; and save the appx file wherever you prefer!<\/li>\n<\/ol>\n\n\n\n<p>&#8220;<strong>Congrats!!! You just exported your game for UWP<\/strong>, which is compatible with Windows 10\/11 and Xbox!&#8221;<\/p>\n\n\n\n<p>That&#8217;s what I would say if the exporter wasn&#8217;t currently broken&#8230; \ud83d\ude05<br>(PS: A fix is on the way! \ud83d\ude00 https:\/\/github.com\/godotengine\/godot\/pull\/79544 )<\/p>\n\n\n\n<p>In order to fix the exported APPX package, it must be repackaged and signed. <\/p>\n\n\n\n<p>How to do that? Well. First, you will need to install:<\/p>\n\n\n\n<p><s>\u00b7 Visual Studio Community 2019<br>\u00b7 Windows 10 SDK<br>\u00b7 A lot of stuff<\/s><\/p>\n\n\n\n<p>Nevermind. I just made a PowerShell script to make the process a lot easier! \ud83d\ude0e<\/p>\n\n\n\n<p>Download it from here \ud83d\udc49 <a href=\"https:\/\/github.com\/panreyes\/godot-appx-repackager\">https:\/\/github.com\/panreyes\/godot-appx-repackager<\/a><\/p>\n\n\n\n<p>It will take care of everything for you:<\/p>\n\n\n\n<p>\u00b7 Download the required tools (MS Build Tools, Angle DLLs).<br>\u00b7 Create a self-signed certificate.<br>\u00b7 Repackage and sign the APPX file.<\/p>\n\n\n\n<p>Enjoy! \ud83d\ude4c\ud83e\udd73<br>Send a video if you export something, feel free to hit me in <s>Twitter<\/s> &#8220;X&#8221; (@rawrlabgames)!<\/p>\n\n\n\n<p>PS: I totally forgot that you&#8217;ll also need to enable the Developer Mode in your Xbox \ud83d\ude05<br>Sorry, I don&#8217;t have a PowerShell script for that, but here are some instructions:<br>https:\/\/learn.microsoft.com\/en-us\/windows\/uwp\/xbox-apps\/devkit-activation<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A few years ago, I read in the news that Microsoft stopped allowing games in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":119,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,4],"tags":[],"class_list":["post-114","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-godot","category-rawr-stuff"],"_links":{"self":[{"href":"https:\/\/www.rawrlab.com\/blog\/wp-json\/wp\/v2\/posts\/114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rawrlab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rawrlab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rawrlab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rawrlab.com\/blog\/wp-json\/wp\/v2\/comments?post=114"}],"version-history":[{"count":5,"href":"https:\/\/www.rawrlab.com\/blog\/wp-json\/wp\/v2\/posts\/114\/revisions"}],"predecessor-version":[{"id":123,"href":"https:\/\/www.rawrlab.com\/blog\/wp-json\/wp\/v2\/posts\/114\/revisions\/123"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rawrlab.com\/blog\/wp-json\/wp\/v2\/media\/119"}],"wp:attachment":[{"href":"https:\/\/www.rawrlab.com\/blog\/wp-json\/wp\/v2\/media?parent=114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rawrlab.com\/blog\/wp-json\/wp\/v2\/categories?post=114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rawrlab.com\/blog\/wp-json\/wp\/v2\/tags?post=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}