Part 2 of our “WTF is wrong with my project?” series.
Continuing from last month, I set about trying to get the newer version of Unity and my project to be friends.
step 0: uninstall everything. it all went so well until it didn’t. Visual Studio 2015’s uninstaller was greyed out. Maybe because of how well the installation went.
Enter this bad boy right here The Visual Studio Uninstaller/Scorcher.
It worked, but took literally over 7 hours to complete. Welcome to indie game development.
With that done, it was time to try, try again.
step 1: download the ancient Visual Studio Community 2015 for some reason.
Questioning every choice in my life up until now, I decided to search the webs again and this time I found someone linking to this page: Check it out, you can get Visual Studio Enterprise 2015 with Update 3. It says it’s a trial, but “Get Key” says no key is needed. Will that work? I chose the bold path to find out.
Let’s play try this for the umpteenth time game
Step 0: uninstall everything. It didn’t take 7 hours this time! It was still time for bed.
Step 1: Try (Trial) Visual Studio 2015 Enterprise Edition
I ran the removal tool, again. Reinstalled, again. Civ V got a lot of attention while my computer filled progress bars.
Step 2: Install XDK no problem
Step 3: Install Unity
Step 4: What
Step 4: Uninstall Unity
Step 4: Really uninstall Unity
Step 4: Literally why does this exist still? C:\ProgramData\Unity
Step 5: Restart
Step 6: Re-re-re-re-re-reinstall Unity, and no, that didn’t work.
Step 6: Back to the Unity forums
Step 6: Apparently I *also* need VS2017. And VS2015. What the living heck.
Step 5: install VS 2017
Step 6: Reinstall Unity. Oh and Unity Hub.
Step 7: Try a blank project.
Build & Run works! Empty project running on Xbox!
Step 8: Try SSDT. Doesn’t build & run, has horrible “TLS Allocator” errors that mean nothing to me.
Step 8: Delete the project’s Library folder for some reason.
I’m gonna say “No” this time to whatever they are asking here.
Step 8: Change the platform back to Xbox (I guess deleting the Library folder is what makes it forget?).
Step 8: Build & Run!
Annnnnd…. It’s still broken
1 step forwards, 2 steps back
Given how much trouble all this was and knowing I had apparently not installed the random things using the correct arcane voodoo processes, I had a random idea to attempt the Unity 5 build again. I figured, best case even if I could figure out what was going on with the new version of Unity, there was no guarantee it wouldn’t have the same problem, or new problems. It wouldn’t cost anything but time to try and since my skull was turning to paste from smacking it into a brick wall I figured “why the hell not”.
I reinstalled the old version of unity and the correct XDK stuff, double checked everything and in doing so realized there was a way Unity would package the game up for me instead of me using the command line. I finagled the player settings until it created the package without problems and uploaded it, then waited an hour to download from the test store and install it onto my dev kit.
Dear balls it works.
The football/puck collision issues were back, which made no sense since I had blender installed. I exported the 3D models as FBX files, reassigned the mesh and collision mesh. It seemed fine at first, the balls correctly collide with the ground but for some reason I couldn’t pick them up with my player. Or rather, I could only pick them up while they were falling, once they stopped on the ground it no longer worked. Baffled, I reverted back to the previous files to reexamine the errors on import.
It looks like Unity was insisting I install a very specific version of Blender. I uninstalled the recent Blender app and installed the older one. Well, install is a strong word, I found the old blender version here: https://download.blender.org/release/Blender2.58/ then told Windows to open .blend files with the new exe I downloaded. Then I deleted my project’s Library folder forcing Unity to reimport everything. I must have goofed something the first time as I had to repeat this whole process twice before it looked good. However, once again the meshes weren’t working.
Looking more into the issue, several people suggested running Unity as an administrator. This didn’t seem like it would work but I deleted the Library folder again, reran Unity as an administrator and watched my favorite progress bar again. No luck. So I tried an older version of Blender. Except it doesn’t run.
The solution is supposedly to install Microsoft Visual C++ 2008 SP1 Redistributable Package (x64). Would this break yet more things? I’ll never find out because you can’t find this 13 year old package. I installed version 2.48 instead as it actually had an installer.
Delete the Library folder, run Unity as administrator, try this again. No, it fails. Still baffled, I tried recreating the ball from the mesh up, adding components to it and then renaming the old broken ones and tried the new football and puck build from the FBX meshes I made earlier. Weird behavior continued but they weren’t falling through the floor any more.
For whatever reason, these meshes were now scaled wrong, and for some unknown reason the sprite offset changed for the puck and football. A few tweaks later and they seemed to be okay again.
Had I known leaving those meshes in .blend format would cause me so much trouble 7 years down the road, I would have spent the last 7 years building a time machine to go back and look at dinosaurs because that’d be sweet.
BACK IN BIG BOOTY BUSINESS
The game is running. Testing is in high gear. Profiling is a thing.
Weird garbage issues
Having been a longtime fan of Enumerators, I was baffled to see that using this handy, simple type as a Dictionary key was causing garbage to stack up. What in the heck?
Apparently below the hood C# does something that needs to be overridden with a custom Comparer for each type of Enum I use as a Dictionary key in the entire project.
Regular garbage issues
Strings were next. I had fixed a lot of these before but there were a few more to fix.
I don’t know what could be lurking in the code that will fail me from cert, so I’m testing like crazy. I can say we are in the last half inch of this game’s development. With any luck the cert issues will be minor and I’ll have a release date for ya!