Home Artists Posts Import Register

Content

Monday Update!


Hi Everyone!
It’s Monday! Yay!
Everything’s right on schedule, so far, so that’s great! I started a few days behind because last Monday’s post was late, but I hate being late so I poured it on and ended up getting ahead of where I was originally planning to be by today. Things also worked out in a pretty lucky way in that I only had to rewrite two major systems (VR loading and the universal cursor system) and one of them (VR loading) I knew ahead of time would require a rewrite so I put it in a little module all by itself that made it easy to do that. It’s up and running now along with everything else, and there are a few differences thus far even before the graphics upgrade:

  • #1 Performance is better/better framerates. Especially with things that use Nvidia PhysX which is where most of the performance gains come from.
  • #2 It loads scenes faster and starts faster.
  • #3 Instead of picking 2D, Oculus, or SteamVR, you’ll have a choice at startup of just 2D or VR. It will automatically select the correct VR mode for the type of headset you own if you want to do VR.
  • #4 You will be able to pick out of the in-game menu to switch from 2D to VR or from VR to 2D. If you go from 2D to VR and it can’t start for whatever reason (headset not plugged in, for example) it won’t shit the bed it will just switch itself back to 2D. I couldn’t do that on the previous version because of how VR worked deep inside of Unity, but the new VR system permits that type of thing so I’ve started programming it.
  • #5 Switching between Windows and Oculus mode is much faster for programming and running tests. That used to take about 2 hours, and now it takes about 5 minutes. That’s one of the significant benefits of the new Unity version aside from being compatible with the new graphics system going in this week.

The cursor system was a surprisingly annoying problem. They added some nanny behavior that prevented me from injecting my customized event system at runtime, causing it to break. That one thing ate up the most time at around 7 hours of just that. Blegh! Wasn’t documented anywhere that they changed that, or how they changed it, so I had to write experiments to figure out what to even do.
Overall I’m ahead of where I was expecting to be on Monday so that’s good! Let’s see if I can keep it up. Because there’s nothing visually different there’s no video this week, but I should have something interesting cooked up next week. I say that because all this week I’m working on the graphics upgrade, so hopefully I’ll have some visually interesting things to demonstrate from that.
I’m about 3 days behind on emails so if you’ve been waiting on me (skunkfrakker@gmail.com) I’ll get back with you tomorrow when I get caught up on those!
--Skunk <3 
 
Full Changelog of what I did since the last post:

  • Forked from main trunk. 24 is frozen in time for now. I'll put that out as a standalone entity.
  • Updated Unity to latest version.
  • Updated some aspects of Zinnia to compensate for differences in how Unity XR works.
  • Updated SteamVR runtime to latest version.
  • Updated the launcher interface to simplify the launcher-side aspect of making new builds, saving a ton of time/eliminating points where mistakes can be made.
  • Rewrote the initialization routine for VR headsets completely. The new version of Unity has a much better, but COMPLETELY INCOMPATIBLE way of addressing VR headsets. The consequence of that is that it needed a significant rewrite. Fortunately, I knew this was going to be a fucked-up process, and I wrote Besti X with an isolated VR startup routine so I could easily change it when I did this. Huzzah!
  • Updated the quick mode change tools I made to make it an easier process to change between Android and PC builds to work with the new version of Unity.
  • Updated the graphic raycaster system (the one that can hit Canvas objects) to work with the new version of Unity. Had a freaky incompatibility that took forever to resolve because Besti X uses its own event system that I wrote against the previous version of Unity. They changed the way this works so it needed a rewrite.
  • Updated the mirror system to be compatible with the new version of Unity. In this case it had a different way to call references to other shaders that the current way wasn't compatible with. This system will be replaced with a new one shortly but I had the goal of making it work with the new version of Unity first, then I'll do the graphic improvements once everything works.
  • Updated the time and weather system to be compatible with the new version of unity.
  • Added the weather system to Oculus Quest. This was previously incompatible with Oculus Quest, but thanks to the unity update it works now.
  • Made ~250 minor code changes to update the compatibility with the new version of .Net this build uses. The new code checker is way fucking pickier about how I write. Primarily it was bitching about how I was writing local variables and it's a behavior I've had for a long time. In the new version it creates a non-critical error that hides things I should actually be looking for, so I had to clear this list up. Making the code changes saves a little bit of RAM (a few MBs.) It might save CPU cycles but I'm not sure it seems like the machine language this generates during a compile would be the same.
  • Checked SDK for issues running in the new version. 

Comments

No comments found for this post.