I am throwing this in the gaming section because some of what I’m about to say, while not directly aimed at gaming, applies to game development and design.
This week I have been dealing with a Teradata upgrade at work. We upgraded our Development and Test environments a while back and are now about to move it to production. As part of my process for the upgrade, I went through the list of changes between the Teradata versions and made sure that either a) they would not impact our program or b) our code was prepared for the change. What I have been dealing with this week is a list of undocumented changes (at least not in the documentation I was provided) that are giving me headaches.
Now, realize that the errors I am getting are showing up in our Test system, and only the Test system, and only because we are adding a new feature to our application that involves getting a new group of people on the Test system. See, in the Development environment it is pretty much always the same people. It has probably been over a year since we added someone new to Development. Test had been the same until this week.
The error, once fully discovered is that Teradata changes the result from SQL that creates a new user from 1 indicating a success to -1. 0 still means a failure. After a user gets created, I have to execute some other commands to finalize their rights assignments, and as you can imagine the switch from 1 to -1 caused an issue. See, my code was set to check if the return value (the .NET return value on SQL is number of rows affected) was greater than 0. Greater than 0 was a success, less than 0 was a failure. So, with the undocumented change, all my successes were now failures.
The problem I have is two-fold. First, it was a seemingly undocumented change. Second, I don’t see a point to the change. Why switch from 1 to -1? Sadly, this isn’t the first time or place I have run into changes like this, and it will probably not be the last.
As it pertains to game design… well, honestly, how often has a game put out a patch message that didn’t list every single change? All the time… and how often do those changes affect the players? Almost as frequently. In games, or in any product design arena, changes than affect the users of your product should never go undocumented, especially if its an output that what will affect applications designed to work with your product.