1. We live again. All extra functionality removed for now. Search may be broken as may be other things. With love, ASSEMbler.

Xbox One 20 Dollar Dev Guide

Discussion in 'Xbox One Development' started by PixelButts, Jun 16, 2017.

  1. PixelButts

    PixelButts Well Known Member

    Joined:
    Aug 19, 2014
    Messages:
    1,689
    Likes Received:
    1,179
    Version 1.03
    (Preservation purpose, V1.00 is here: http://puu.sh/wfHST/133fee4059.txt)

    First and foremost, I am not a skilled developer, I am brand new to the creating of things.
    This guide is made to aid those who wish to start exploring the development world for Xbox One in a single place since resources are scattered.
    Following this in order is helpful. You can skip to certain sections if you wish, but in order should be optimal. They are split into parts for consistency.

    Important notes
    Code:
    At the time of writing this, the current dash is May 2017 (kernel: 10.0.10011.16384, shell: 10.0.15063.3054 rs2_release_xbox_1705.170512-1759)
    -This is primarily for Windows 10. if you run MacOS or Linux please use appropriate software if you can.
    -No, you cannot install retail games, be it extracted or in an appx. Refer to this image http://puu.sh/wfFji/bbf187ddc2.png
    -Developed applications are not restricted to the PC or Xbox One if using UWP (Universal Windows Platform/Package). If the device can sideload apps, it can work as long as it's built to support it.
    -You are eligible to receive dev updates that may break the retail side. Proceed with caution.
    -You will not get access to GDN/Pnet/Devnet with this.
    -You are limited to 3 Dev activated consoles at any time. I do not know if deactivating one will give you back an activation. Use it wisely.
    -Your Xbox One does not magically become a Devkit. There are still limitations present in the hardware, so if you need a Devkit, I cant help you here.
    -You will not be able to publish your code to the store. This still requires an ID@Xbox account. You can however share with others who can sideload applications (within terms).
    -Xbox one SDK is NOT needed for this.
    -You cannot play retail games while in dev mode. You must switch between them if you wish to play games.
    -Unreal Engine 4 may have poorer than expected FPS. This is likely due to not being built with SDK.
    -Even with SDK, you will not be able to communicate with your Xbox One with it.
    

    Resources needed
    You will need the following
    Code:
    -Retail Xbox One
    -Dev Mode Activation app (found on the store, easy to get)
    -Windows 10 PC (Pro is suggested)
    -A Microsoft Dev Account (You can create a new account if you desire or use your pre-existing account)
    -20 Dollars from a credit/debit card or Paypal (equivalent amount based on region)
    -Visual Studio 2017 or 2015 (cost saver's route: Community edition is 100% free, make use of it)
        |- Universal Windows Platform Development
        |- Desktop Development with C++
        |- Game Development with Unity
            |- Unity Account
            |- Windows Store Module
        |- Game Development with C++
        |- Epic Games Launcher (Unreal 4) (Optional, proceed closer to the corresponding section)
            |- Github account
            |- Epic Games account
        |- any extra packages you may want
    
    Setup

    Xbox Side Part 1
    Code:
    First step, power on your Xbox One.
    On the home Dashboard, navigate to the store. Search the store for "Dev Mode Activation". Install it and run it.
    Once running, it will step you through the activation process.
    Eventually it will give you a code on screen to enter in your dev dashboard on your Dev PC. Keep this code up for the meantime.
    From here we will stop and move to our PC and come back to this soon.
    

    PC Side Part 1
    Code:
    A few things will need to be done first.
    Go to settings -> Updates & Security -> For Developers and click the bubble that reads "Developer Mode".
    Update anything that may need updating. If you need to restart, by all means.
    Go to http://developer.microsoft.com/xboxactivate and create your Microsoft developer account. You will have a 1 time fee of 20 dollars (if you are US based) when creating the account.
    Once created you can click this link again and be sent to the Xbox Dev Activation page.
    You should be greeted with a message asking for the code displayed on your Xbox One to enable Dev mode. Enter it in as shown.
    
    Xbox Side Part 2
    Code:
    Once your code has been entered into the Dev PC, you can continue with the Dev activation process.
    It will install the required software for dev mode, and then request a restart. From here it will be set to Development mode, so your retail games will not function until you switch back.
    Restart the system and it will bring you to the Dev Dash.
    From here note the following. You will need to know these for application deployment. (The IP may be incorrect, if so dont worry, just keep reading)
        |-Console IP
        |-Console Name
        |-OS Version
    On the bottom right of the home screen you will see "Connect with your browser". Navigate to this and select "Settings"
    Check the box labeled "Enable Xbox Device Portal". Note the 2 URLs given. It should be "https://<Console Name>:11443" and "https://<Console IP>:11443". The Console IP will change soon, but just remember both are an option.
    If you wish to enable authentication for connecting to the Xbox One, enable this setting and add your credentials as you wish.
    Save your settings and return to the home page.
    On your Controller, hit the Home button, navigate to the bottom and select "Settings" then go to "Network" and setup a Wired connection (wireless is okay as well but Wired is preferred).
    Once your network connection is setup, navigate to "System" then "Console Info". Here you will find the name of your Xbox One. If you wish to change it, now is the time. A restart will be required if you do.
    Under "System" go to "Updates". In this option, uncheck both boxes. This will give you more freedom to update the system if you choose to.
    Return to the Dev Dash and on your controller hit "Start" (I'm not sure what this button is called now) and a new menu will show up. Go to "Manage Dev Storage". Here you can allocate more space than the default if you need it.
    We'll stop here and return to the PC.
    
    PC Side Part 2
    Code:
    Now that your Xbox one is setup properly we'll cover the important aspects on the PC. First, installing the tools.
    Refer to the top of the list for the required software.
    Install Visual Studio Community Edition, and select the following packages when installing
        |- Universal Windows Platform Development
        |- Desktop Development with C++
        |- Game Development with Unity
        |- Game Development with C++
        |- Epic Games Launcher (Unreal 4) (Optional, proceed closer to the corresponding section)
    Setup will take some time. While it installs we will navigate to or web browser of choice (Firefox, Chrome, Opera, Edge, Probably not Safari in this case)
    In the URL type the following address: https://<Console Name>:11443 or https://<Console IP>:11443 (the console name by default is Xbox one). This will take you to the Xbox Device Portal.
    Familiarize yourself with the layout, change things as you feel the need to.
    Under "Home" you will see a section called "Xbox Live Test accounts". Here, enter in your Xbox Live/MS Dev account, or create a new account for testing purposes.
    By now, Visual Studio and other components should be done installing.
    
    Unity Engine
    Code:
    Open your PC's Start menu, and navigate to the Unity entry. Open Unity and Create an account (can be the same credentials as your dev account, but I HIGHLY suggest NOT doing this. Keep passwords different).
    Once you've created and verified your Unity account, create a new project. This project will be temporary.
    When all resources have been made and loaded, navigate to the top of Unity. Select File -> Build Settings. In the platform section, look for the "Windows Store" entry. Download and install the module (will require a Unity Restart).
    Once installed, open your temporary project once more. Select File -> Build Settings again. Select "Windows Store" for the platform. Change the following
    -SDK: Universal 10
    -Target device: Any device
    -UWP Build Type: D3D
    -UWP SDK: Latest Installed
    -Build and Run on: Local Machine
    -Development Build: Yes (Optional, adds watermark to the game when played)
    
    Unreal Engine 4
    Code:
    Unfortunately you must Build UE4. The precompiled builds from the Launcher you can install will not work.
    For this you will need the Unreal Launcher installed as well as an Epic Games account and a Github account. (You need the launcher as well, sorry)
    Once you have both accounts, proceed to your Epic Games account settings and add your Github name to your information (will be paired with name and address information). You will get an email allowing you to join the Epic Games Github page.
    Once joined, access this page https://github.com/MICROSOFT-XBOX-ATG/MICROSOFT_UWP_UNREAL and clone/download the corresponding version.
    Unpack it to a desired directory.
    Once unpacked, run "Setup.Bat" (for non-windows platforms, refer to README.MD). It will download ~4gb of data. This is required.
    Once done with Setup, run "GenerateProjectFiles.bat" (for non-windows platforms, refer to README.MD). This will generate the Visual Studio Solution file for UE4 (UE4.sln).
    When it is done, open "UE4.sln" in Visual Studio. Set the configuration to "Development Editor", "Win64", "UE4" (for non-windows platforms, refer to README.MD). Go to Build -> Project -> UE4. This will take a long time so sit back and relax.
    Once building is complete, you can launch the editor from Visual Studio by clicking "Local Windows Debugger". If it asks to update anything, select yes.
    A new window will appear to begin a project. Create one and make your game. If you are intimidated, use one of the samples they provide. They are very nice samples might I add.
    [CODE]
    
    This should complete the setup aspect of your Development PC and Xbox One. Below you will find the development aspect of it.
    
    
    Building, Deploying, Loading
    Most of the work here will be done from PC. I will not cover how to make a game here, only making it work on your systems of choice (except mobile).
    
    Unity Engine
    [CODE]
    Load up Unity, and make a new project (you can delete the one made when installing the module). Name it whatever you want. Set the project directory to somewhere simple and easy to access for yourself.
    Once it has loaded, make a game.
    Go to File -> Build Settings. Select Windows Store. Click "Build" and create a directory where you will place your built Unity data. (A folder named "Builds" should be okay)
    Once it has finished building it will show you the directory where it put the files. Enter that directory and you will see your game's data (game.sln, UnityCommon.props, some folders, ect)
    Open your game's .sln file. This is your main project's file that Visual Studio will handle. Give it time, it may be a bit slow opening this file. It will read "Ready" at the bottom of Visual Studio.
    Near the top of the window you will see 2 menu bars. By default it willbe set to "Debug" and "ARM". Select the menu with "ARM" and change it to x64 (the Xbox One is x64).
    When you ensure the settings for building are correct, select "Build" -> "Build <name of project>". If you wish to test it as well you can use the button with a green arrow labeled "Local Machine".
    Once it has been successfully built, go to "Project" -> "Store" -> "Create App Packages". From here follow the on screen prompts as you need. If you are not part of ID@Xbox, select "No" on the first question.
    On the page "Select and Configure Packages", Select where you wish to save the finalized package. For the architectures, for now select only "x64" with "Debug(x64)" for packing. You can have multiple in one package but it's not needed right now.
    When the package is finished, it will be located in whatever directory you chose when building.
    
    Unreal Engine 4
    Code:
    In your editor window with a project open, go to File -> Package Project and select "Universal Windows Platform". Select a directory where your built data will be saved to.
    It will begin creating the package. It may take some time.
    If it prompts you for a key for a cert. Select none. (Add something if  you wish)
    When complete navigate to the directory you chose for saving the package.
    
    NOTE
    If the build fails, or if on deployment it asks for a certificate, restart UE4 Editor from VS and make a new project.
    Build it immediately. It will generate a certificate called "SigningCertificate.pfx, .cer, .pvk" under "\<path to project>\Build\UWP" Copy these files to your main project and build your project again. It should work on deploying to the Xbox One.
    If that fails, restart and try again until it works.
    [CODE]
    
    Deploying to the Xbox One
    [CODE]
    Connect to your Xbox One's Device Portal (https://<Console Name>:11443 or https://<Console IP>:11443)
    On the "Home" tab you will see a green button labaled "Add". Select it. Drag and drop or browse for your appx file you packed (there are multiple extensions it accepts). Once selected, hit next.
    On the next screen, add in any dependencies it may have. These are located in the same area as your appx under "<project name>\Dependencies\<architecture>\*appx". Add them one at a time, you cannot select them all at once.
    Hit next and it will send the data to the Xbox One.
    
    Loading on the Xbox One
    Code:
    Once the package has been installed to the system, it will appear on your "Games & Apps" section of the Dev Dash. Select it and if all is well it will load the game. To exit the game, exit the app just like you would with a normal game.
    
    Todo
    -add images
    -more readable formatting
     
    nullChar, NovaFox, CodeAsm and 3 others like this.
  2. assembler_EX

    assembler_EX Administrator

    Joined:
    May 20, 2015
    Messages:
    309
    Likes Received:
    145
    Thanks for posting
     
  3. PixelButts

    PixelButts Well Known Member

    Joined:
    Aug 19, 2014
    Messages:
    1,689
    Likes Received:
    1,179
    I had no prior experience in this, and since the entry point is so low it only makes sense others may face the same issues I did.

    The information needed to do this is fairly scattered. Once you're good to go you're essentially left with no guidance on what you need or why you need it, or how to use your tools.
     
    CodeAsm likes this.
  4. nullChar

    nullChar Member

    Joined:
    Jan 12, 2012
    Messages:
    20
    Likes Received:
    9
    Very cool- thanks PixelButts for the nice guide.
    Doesn't come with the full SDK with PIX or all the developer tools? Not quite "the real thing," but very cool nonetheless. It's as close as you could hope to get for $20 in 2017! :D
     
  5. PixelButts

    PixelButts Well Known Member

    Joined:
    Aug 19, 2014
    Messages:
    1,689
    Likes Received:
    1,179
    Unfortunately the issue here is building to Xbox One and PS4 require things only given through devnet to authorized developers. It's nice to try things at the very least.

    Edit: need to specifically say for Xbox One building you need ID@Xbox level at minimum, of which this doesn't grant you. Hence why I say build as UWP
     
    Last edited: Jul 14, 2017 at 8:31 AM
    nullChar likes this.

Share This Page