Certification Quest

There’s not much else to do. So I pulled the trigger and let Microsoft know the game is ready. Now what???

Unity Pro Woe

Once upon a time you paid money for software. What a wild time that was. Tipping Goat paid $1000 (or roughly 100 full price games sold on Steam) for the Unity 5 Pro license. The idea was I’d have the best version of Unity and not have my customers sit through a Unity logo while my game had to sit there waiting to load.

I even streamlined my whole loading process to get Xbox players to the title screen as quickly as possible because nobody likes progress bars, spinners and unskippable logos. Unity had other ideas and shortly thereafter switched to a Subscription model where the software is now a “service” and you have to pay $400 per year (minimum) to get rid of the Unity logo. I’m stubbornly principled so I’ve been on Unity 5 ever since.

Updating in general has always been a headache. Every time there was a new Unity 5 version, I would have to: Uninstall Unity, uninstall the Xbox XDK, install the new XDK for that version of Unity, install the new Unity version, install the Xbox addon, update all the plugins for things like controllers, storage, etc. And something would always break or go wrong. This would cost me days to weeks of head scratching and frustration just to get back to where things were before the update.

Even the process of figuring out how to do all that was a massive headache of trial and error and rebooting throughout, only to find that now there was some new unspecified requirement for Visual Studio add ons or game-breaking changes to the way Unity worked. For a solo indie dev, this is practically crippling. So long story short, I was on an older version of Unity and with the arcade project catastrophes, side gigs, personal problems, mental health and the Covid-19 pandemic it was waaay out of date by the time the game was “finished”.

Ripping the band-aid

So one of the first things I talked to Microsoft about was this issue, and they kindly suggested I update to the latest version I could. Once more into the breach. How bad could it be?

The cool part is Visual Studio 2017 is installed, and used to work perfectly with Unity.

After a few tries and a few reboots, I got as far as the above error message, nonsensically informing me I should have Visual Studio 2015 installed, because of course I should use an older version of Visual Studio than the one I was using before the more recent update. That’s how things work, right?

UPDATE 6/10: Unity did reply and they said the solution was to install Visual Studio 2015 or give them more money.

With absolutely no help from the Unity forums I sought out to solve it my way, with a hammer and a lot of different swears including “eff” and “aitch” and even the worst word of them all, I can’t type it here but it starts with an “‽”. I began to install Visual Studio 2015. No problem right? Just head on over to the convenient download page: https://my.visualstudio.com/Downloads?q=visual%20studio%202015&wt.mc_id=o~msft~vscom~older-downloads except…

None of these installers work correctly, I tried all 3

Go ahead and search the web for this phrase “please provide a location to search for the packages“. You’ll find lots of people having this problem because the installers are broken. Here’s the best part though, it asks you to provide a location, and you can try:

It’s literally right there

Except, no, it won’t accept it. It won’t download it from the internet. But it will, quite terrifyingly, let you “Skip package”!

Abort, retry, ignore? Always ignore.

I had little faith this would work, and after umpteen of these errors I was finally able to get Visual Studio 2015 installed. Except:

Remember me? I’m the error of your nightmares.

It turns out I also had to check “Visual C++” on the Visual Studio 2015 installer.

Again, again, deeper into the breach that I’m still in

No problems. I love babysitting installers and hitting skip dozens of times I’ll just

Hit a non-skippable error? Is that what you were going to say?

Fortunately for me and all of humankind the file Unity was complaining about (“cl.exe” in the VC/bin/amd64 folder if you’re into that sort of information) was actually where it should be! I was afraid to cancel the installer because it might delete all the files in that folder, so I just killed the installer. 9pm. Done.

This is me with a hammer folks. Now it compiles.

Out of the woods?

Not yet, there’s more things to do before final cert approval!

Still testing!

There’s so many different ways a modern game can break and I’ve been doing a lot of testing to try to find ways of breaking it. When something does break, it’s often baffling, hard to reproduce and I don’t have much information about it to work with.

How do

There’s a handy error log the Xbox provides, but it is often clogged up with information that does not help me at all, and makes finding the useful debug info in a time-consuming and error prone process. This is mostly Unity stuff, and it’s just telling me things like “You used the logger to log this log, dogg” so I created a javascript cleanup page.

Example debug info on the left, you can see the deleted lines on the right.

By stripping out the extraneous lines, I can quickly see only the parts I care about. Thanks RegEx!

Sometimes lines get interrupted and I can’t do much about that but it’s a big improvement.

The cleanup debug text page is here, but it probably won’t do you a lot of good as is. A clever indie dev however could scrape out the javascript and make it useful for their own indie purposes!

Cert-ainly

So my plan is to submit the game to cert once everything looks good, probably fail, fix and repeat until the game is certified and can finally, finally, finally be released on Xbox.

Not much else to say but:

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoHCBUVEhgSFRUYGBIYGBISEhgSGBIREhIYGBgZGRgYGBgcIS4lHB4rHxgYJjgmKy8xNTU1GiQ7QDs0Py40NTEBDAwMDw8QGBESGDEdGB0xMTExMTQxNDExNDExMT8/MTQxMTExPzE0ND80MTExMTE0MTExMTExMTExMTE0MTExMf/AABEIAMcA/gMBIgACEQEDEQH/xAAbAAACAwEBAQAAAAAAAAAAAAACAwABBAUGB//EAEUQAAIBAgMFBQUDBwoHAAAAAAECAAMRBBIhBTFBUWETInGBkQYyobHRB1LBFBVCYnSS8CMzNWRygrPD4fEmNDZTg6Ky/8QAFwEBAQEBAAAAAAAAAAAAAAAAAAECA//EABsRAQEBAQEBAQEAAAAAAAAAAAABEQISMSFB/9oADAMBAAIRAxEAPwDr5pBKkvMNCBhQBLgFeY8dhy1mT3hoQf0hymu8uFcLtiO4wKHhfnwIM9Hs/E56Ybjub+0N8yV6SuMrAETDgHNCr2bHuPYKevC/ykJXozLEEPJmMKxbY2smHQOwZ3dhTpU0GapVc7lURdLZ22aihlo4WgDqErVKr1B0bILSbNph9uYcMLinha9anfg7OEJHXKZ6D7RNu18FhErUApJrUqblxmVUa99OpAF+s1JGba8vi8djMHZsdh1FAkKcRhmNWmhJsM6nvKOsZj9slaiYbD0mxOKdcyIhAVV++7HRV8ec9ptrHYapha1Nq1Jg9KopXtKZvdD1njfsPwoOCq4lu9VqVeyLHVslNECLfkLnSXzE2m/mnbR72TBAb8hesT+9a15nwm16i1/yXF0Dh8UQWpgkPSrKN5puNCf1Z6bF7fqrtqjs8BewfDvWbS7ZgXtY8B3PjOd9sFAfm04hbirQqUalJxoyFnCGx5Wbd0EeYbXITauIxFV6GBoCsaZy1qrv2eGpt9zNvduYE0PsvbKjOaeDqAa5Kb1Uc9FZha/jPUewGCWlszDKosWpU6r8y9QB2YnibmI9l9v1MRi8fQfLlw1VKdKwscpDDvczdfjHmG14nE+1TCmQlErilrU8PUw9c5HR3NlNwNVPAzXtKttTD0nr1MHS7OmpdylfMwUe8QLa2EV9rWBVcfs+uosz1VpVLaZwlSmyX52zGfVcTQV0am4ujqyODuKsCCPQx5htfJ9ibXx2NV6mFwtJ6KVGpBnrdmxIAYaEcmE17H2lWbEYjDYiitOrQ7HMKb9oD2ilxrblb1nS+yHZxw+HxeHb3qeNrU9eIWnSAPmLHznHxGIVNr7TY88EABvY9gLASWTFluuhinzOF4L3j4nd/HWDeLpA2ud51PiYRmY0K8l4IMKVEvJBkvCCkvJBgFEYv3fMfIxt4nF+75j5GAyS8qXAl5JJYgQQrwZCYFzJtDDZ0IHvDVZpvITCkbL2kbBKmjDuhjuNufKdgNOAyFySBp8I6jSqL7psORN19JGl7Vd8PiKG0qSmoaPaU8RTT36lF/ey82U62nvtnbTw2Pw5amy1aLjJUVgDa+9XQ6g9DPm35rp4vamHw+IUlGw9diEZ6eZ1a4N1IO680+2ew6Ox8MuOwAelX7akjE1KtRKiEOSroxIINh+FpufHO/Sfaf7PaeFZsbhqC1qC97EYWoC7Kg1ZqDHW435Tw9J3/scZTs5ygshxOIKDdZTlyi3DS09xSIdASNGUEg8mGoPrPC/YzYbOdRuXFYhfglpUVtH/AKow37FU+dabvtc/obEf+H/FSYtoj/ijCn+pVPnVmz7XntsbEdTQHrVSB3vZP/kML+z4f/DWeW+z/wDpPa/7RT/zJ6b2PfNs7CsNxw+HI/cWeZ+z8H85bWP9Zp/5n1gYPtg/n9mftR/+qU+nmfLvtfcflOzF4/lJPlnpCey9uMYaGz61dfep9nUFuOWojW87WgdTCYJabVXUWNVxVf8AtBES/oiz5RjUB25jyd4ODt1/kVn1zC1ldFqKbq6q6nmGFx8DPje2saKe2ceOxrVCxwpH5PTaqUtRTVrbt4kvxZ9d2S85mztrrVd6QSqlRFVmWuhptZjYGx1nRBmGliSVeXeVKuVJKvAKUZLyoFxWK93zHyMbFYn3fMfIwDvIIMuAUgMqXAl5LyXkhUMgS/hLVb+EYBFWRSrbdDEoSxMtOZtOnWSrRxuHUNXw7OchOUVkcZXS/A23GeiT272XiEyYlhTIys9HGU2BVlNxoQVJB4iYZT0Vb3lVv7Sq3zm50xedadsfaFRZGpYANicSwKqUV1oUiRbM7kAWF72HLhPNey+KqbHYq6tWwdUI9Z6YzPh61rM2TeyH8Omvfp0rCyqAOSgKPQQ+zj0eW8e3GyCwxBxFLtFQorMjisqkgldVzAXA0nmvaHa52sUoU0ddnKwqValRTTbEsvuqinUICdT9J0GpUr3YJfmVS/raWcVS/wC4vqI9E5ZPZr2p/N1MYLGhxQS4wuJRS6FL3VKmXVWF7eA6XndPt1smlndK9MvUYM4oI7VKr2ABIVbsbAC5nNfFULfzim47wOnl1ikbDg3U0weahFPqI9F5eV9rsfVxVeltGsj0sPSq4dMPTYZqgTOGeq6jUE5R3eg8/Se23t5gcTs/EYek7tVqJlRTRrqCcyneVsNBNysDuYHwMsqY9Hlz/Yn7QMNh8DSw2Kd0r0Q1JlFKq4yqxCaqpHu2HlMOxPbTB09r47Fu7ihXXDLRbsqxLGmiq11C3GoO+dwkyo9HlxBteli9q4jEUCzUjQoIGZXS5VjfRgDOoyRxlSW61OchBk6xhEWViM2JeQSjJeExcl5V5AYFxOK93zHyMdM+ONkHiPkYDLy4MsQDEkEGXeFXeRddIJMfTXSKQQEkuSZbXLEqVUqBRc8IBMQBcmw6xH5WT7i3/Wbur5c5lZwTd7seCDhyzdfGNzueSj94ypppRzqz2HJAFHqYpkpfpNmPVmYyCgD71z4kn4Rq0wNwjAkGmN1Mn+79YYq8qZ/9RG2klxC+1P3Piso1V40z6KY2SRWRjSO9AP7pHxENEH6FQjpmzr6NHMkU9BTvAhFtinT31DL96nv81/3mmlVVxmUgjpMPZMvuuR0PeEyVs6HOq979LL7r+K8D1hddu0oxGCxS1EDKfLiOhmgyKEiARG2gMsoSy28IF5oC3mZhY2llZq5YgXhQzVzHtNu6PH8DNgmHae4eP1ga7yXglpAYUcl5V4JMBqC5mmZMM13PhNklaiSSSSNJMOJGd8t7Kuptpc8BN0yqupPG5hBU6QAsBaMlLLvNRElyoK1AZKCkkvJeVEkkEuFUYJEtnAgo4MamIRKIhmCRIOVW/kKoqL/NuQtQcAx3NO6DcXnOx9HPTZeYPrwmnZ1QtSRjvKgmK1D5JYhSBYicSu4+U0ARGL9w+XzlRnBl3iw0K55S6xgzOftFvmPkZt73KcmvVYrdgFbMQQNRpe3wtCuqBLvKCdflL7Mc4VJRhgCQgQFYKp/KETpziYbSo3lO4huLyVYlpUK0q0ipaZnFjNUB0v4wEQgYMsSoGq+VSx3AEzEcQQbjdv8AWacal6bDpOVSc9mh6BDy7ulzJW+Y6JxRAvbw4Tm1tquSbCw18ZudNLnf03HlMFemNDbUGceuq688wultGpzv4zTQ2i7nKdB+kRv8BAGHA8YdFbAaSeqvmHO5A0PjvvNmEHd68ZiqpdlVTvN2vutv1nRoDu/GduXHrMMlGXBM05hq7j4GMwtPLTVeQtBRLnpxmkCGokloVpdpAFpnxvu25mawJnqrmcDgJUZGNiRK7QxeKqAObkDdEHEr94esI1VnOU620nMxQuo53F/QwsbjVCixvdlXyJmepWsPP6wldYNLvOQdqfq/GX+cj90fGWVrHXBkJnI/ODchIcc/TyEaY1U2tVPUCdrDvbThPIJiGNZSTvuOU9XhDmXTeN3WQbivpKtLovwMYycRuhSbSssZaTLIEPTv4xBFpstBZL75RjYaEdJx8Iuj0yf0r+E7lek1u7v5GeUqJVSoWZSAb6nVfUTHV/GuXbprpYboaUgxABVmuNAQTa+uk52GYqQ7HMBwG60W+x1ZjVp1LaXUWuwtcgX56znJL9dLb/HWfBEVLX0zX8r3i8U9NGyM4D3ayjU77C9t3CNGPJs5HeAGbobTjrgEDDEuzFwXYKbWuTe1/Ieks5hfTWKwzWBudB1nVQaTz+GUVKobc1yzW3eBnowvKb5c+/2hhKl4aUuccqTbOAUWhi8MJCAkAgS7Qgt90bky79/CAip3R1iaaWBYx+QsenGZ8dUsCBCPJbYcmqeUxkgHXfGY9c1Q9LD+PjFJe1jv4GUU+oI4Q6VW69QbHygsh3mZa1bLrwPIX1/j5QlalXrGAyiZGEjYlh3mfSMbpARWfK6tyI/j4z1Gz6ugnlMXTuCTO1sbEZkHTQ+I0hK9Wlm1GjcesbTe2nrOfh6k6KVAwsfUb5WTTTDbtD8IpqZG8RwUjqOn0jabwusIEhWdA0kbhaLbBH9EyKwssQ9O86D4Vxw9IgoRvBhdYGwSb8ov0FpVPChfdFvlOgBJlEmQ2ua+z1JOvvb7fhLfBA2BGg3To5JeQS5D1XOp4JF1Ci/O00pTmgJyENKDHcpg0oJCAmpMG536eMcmEUbzfwhNYAI9MKTqdB8Zssq7hAZr7rnwhNKsFGnrElC3hz+k0mkN7egiK1XgJQuq4UWE42NfeZtrvOHtWtZD6Qjj1GBJPG5i3pwUbXUXjxUlgjLxP+0SxBXUDf8AWNLXia508/rCUUtNZRkXSRsRp8pAwEYHtJoZAp7EWMVsqtkqFDx1E0sthMWLSxDrwgevwzzfTeef2ZiswGs7NJ5YjqUas0qyneNeY0M5tN5pR5UbQh4EEehhZrbwR5aeoiEePWqZAaPyMaG6CJzA71EIIvUeBMBtlO9RK7NPuCCKY+8fgfwl5P1/gIBrTS3uC8EIv3R6Q0UWIJN+BFgIHZ/rH4QCBHIekpng5Bzb1+krIvK/jrCqap1v4awbMeFvHT4Rhflp4RbPIiFBxN+g0EBqltwtBd4h2lFu8yVXhVKkyVngIxLzz203zGw3DUzqY2tYGcJ8xGbhCkmWsYqXgkWhAk+UVUfu+f1hk3gVRp5wuNBEmWQyZoVEtDVukCnlGp1Pwl57npyjAebpF1qeYED0kYiRTAx4HEmm+VtAfhPV4TEXE8Zt3EBLd27mxHCw6zT7P7azns27rWuvUcvGMZ9Tce6pvNKPOTh63Wbqb3hXQR45XmJGjUeVGxXjFeZVaGrQNQaGGmYPDDyB4aXmmfPIXgOzQGaAXgloBM8Fni2aAzwLdoh3kd5nepAqo0xV6kOtUnI2hiwqk+nXpC4yY+vdsg8W8JCoItMtG9sx95jr06Rya8ZFqgTulOgEuHcW6wjOwA4RFcaef1mllMVWTTz+sqrd7eMDNe8Ntd++VaECNNYS7pRXpLpq0KNFueHnLdwo7upG9vpAZDymDa1XJTOvebujpzljPVxxsXXzuznnpfkIeAwjfzvDhz8ZmSmXZaY3nQ+HGeuw9AKgS2gAHoJa5cTbp2zNoX0O/wCc71CreePxOHKHMs6GzdpX7p0b5zLu9ZTePSrOTSxE1pViJjpLVjFqTAjxivKjoK8LPMIqQhUgbc8maYxUlGrA19pBaoJkNSA1SBparFPUiGeKepAa7zPUqxT1eswYrGAC5O6SqPF4oAGcR0ao2c+6PdHPrBztWa+6mPj1nQV7C0YMdtbeE9BhsAtt1z1+M4bgGdPD7RGWzaHmNxgpW0sKFN9wOkw9mOcfj8Zn7oGgN7njy/GYs9pFw+9uN4FaoCOWv1ic/GTEUzbz+sqGOuvjDUASoaiRcWAJCskuFDaeX21XzVSBuTQePGelxNTKhI320vznjzhXLhDvdtT46ma5c+3U9n8Le9Qj9VfDjPQZYrDUgihQLACwmlUi1eechTJcbtJz8Vs8r318bCdcp1kvMtseAxDZAWM6dDFxeGwqtcbt+sV2BGglR1kxE0LWnCBZRdgQOe8TRTrk7rEdDeNTHZFaF2k5IrmGMTLpjqdpKNSc0YnrL/KesaY3tVgNWmBsRANVjGmNr15nq4i0yNUJNgbnkveP+kt8I+UltOl7mTRkxu01XS9zwA3zFRpvVOZ9F3gQ8Ps4IAzd5iePCaz6SNCVAosNBKZYSvcdYABM1GQZeES95uFKLdJKMwpMf4tLGHPGPUQxIpCUukGvS08/rNIEGr7vmPxlGYVRz+BhmqOfzkkkVRqDn84nEY1VW+ttAd/GSSUc/G1HJuGFri2nz5ysK4DpmtcE7gbC43iSSWMO7nG6/wA5YqgcfnJJI0ta45/Awiw5/OSSAVGsFvY8+ctaq8/gZJIHWwtVbWuLdQfpBrYCg+vutzTMpkkkRmOziPcracnUt8YJwtUcabfvrf4SSSkLIcb0Xyb/AEkCudyr5sfwEkkKcuFY76iJf7qs59SI9Nn0t7uzn9bMF9BJJCNiMgFlsB0BH4TLiqykHX4GSSByTXW2/d0MQaoOt/nJJJFCao58dNDHLUHP5ySTUS/TM45/OAzjn85JIQPajn85QqDn85JIFiqOfziq9UW38Rz6ySQbX//Z
…ish

Add a Comment