Today was a bad day. Sometimes you can just tell. It all started with Unity deciding to ditch the lighting that I had worked so hard on in exchange for some half-baked (literally), dimly-lit, back-alley lookin' shit. Thankfully, that was resolved very quickly, which brings up another crucial tenet of programming: sometimes things just fail to work, even if you haven't changed anything (or insist that you haven't, as is often the case).
It's just how it is: programs just inexplicably fail to produce the behavior you expect. Maybe they did at one time. Maybe they never did. Sometimes you literally won't change a thing, run it again, and voila! It works just like you expect. In this particular case (This is 99.9% programmer error, btw. Programs don't really just spontaneously change, but we like to fool ourselves into thinking that they do), this seemed to stem from Unity's new global illumination model, which, while being very nice, also tends to do its own thing behind the scenes. So, that was issue #1.
As we wiped off the blood and tears, issue #2 came screaming through like a bat out of hell. Fortunately, this was something that Andy was working on at the time, so I just ducked outside for about six hours straight while he took care of it (I usually just take 5-hour breaks). From what I understand, (I couldn't really get him to talk about it--he just kept mumbling and cursing and kept insisting that "Unity would pay"), Unity decided to wipe out about half of the scripts that he had worked so hard setting up. Apparently this can happen when Unity inexplicably crashes in the middle of doing something else and when you fire that bad boy up again, you'll find that random things... just don't exist anymore.
Ultimately, fixing this involved some esoteric sequence of steps that Andy found in a 1893 version of the Encyclopedia Britannica (actually, that's probably worth quite a bit, now that I think about it). I'm not even going to try to describe them here, but it involved removing all of the errant scripts (funny that you have to remove something that has already been 'removed') and rebuilding them from scratch. Needless to say, much of his day was spent simply 'resurrecting' these fallen scripts.
Of course, why would that be everything? Issue #3 was pretty much the bastard son of issue #2, which involved fixing the destruction wrought by that initial crash, which involved figuring out why the GUI was so horribly fubar'd. I'm actually pretty sure this was a blessing in disguise as it caused him to rewrite much of the GUI system to account for different resolutions (I sabotaged it, actually, just to get this to happen). Yes, we were always going to do this, but, you know... some other day.
What was issue #4? Ah yes, another inexplicable Unity thing. I know it seems like I'm blaming Unity a lot, but I can assure you that it has messed something up way less than I have. With such a good track record, it was only a matter of time before it started hanging out with the wrong crowd. Anyhow, again, completely inexplicable, but it turns out that several objects within Cephaline had taken on some ridiculous proportions (think of a table as large as a house) and apparently, additionally gained the ability to levitate. Going to guess that this has something to do with how Unity decides to merge scenes (Yes, it is the golden rule of Unity never to work on the same scene as another team member, but sometimes... it happens). I suspect that there is a line of code buried deep within the bowels of Unity that reads something like "If table in scene, make table big as hell sometimes". That's all 100% valid C#, by the way.
Wednesday, June 24, 2015
Subscribe to:
Post Comments (Atom)

No comments:
Post a Comment