Well, I was hoping to launch the game without a hitch, but it looks like there may be an issue that will be apparent for early buyers of the PSM version of the game. A fix cannot be applied until a few days after it launches on the store so I am powerless to stop it at the moment.
Players will experience some framerate drop in a few areas of the game. There is a minor dip in Swellsville, and major dips in framerate in the saloon and livery. This occurs about 30 minutes into the game. There may be other areas where the bug causes slowdown, but I rushed to fix so I could submit a new build. I believe that even with the slowdown, the game is still playable but it will definitely be annoying in those areas.
I have a build that fixes the issue. Unfortunately, I cannot submit the build to the PSM store until the game is launched, and at that point, it will take a few days before the review team accepts the new build. So some people are going to experience this issue and there’s nothing I can do about it. Except maybe hide in my closet and cry but that strategy has never seemed to work in the past.
Hopefully, the new build will be accepted before the issue is noticed by too many people.
Now, you might be wondering. How could you submit a game that had this issue? Didn’t anyone test it? What’s wrong with you?
Let me explain. The game was tested and it was approved, but that was BEFORE I made a small change that resulted in this issue.
When the game was originally submitted to the PSM store, a review team tested the game and only found a couple slight problems that needed to be fixed before it could be approved. I fixed those problems, but then I also made one more change (the one that causes the framerate drop). The review team, understandably not interested in scouring every detail of the game all over again, saw that the problems they pointed out were fixed and approved the game.
I should not have tampered with anything else in the game, but I believed the other change I made to be entirely innocuous. I was wrong.
So what change did I made and why did I make it? I’ll share it with you if you don’t mind some coding mumbo jumbo. It actually has to do with work on the Xbox Live Indie Games port of the game and it’s not very complicated.
See, certain events exist at certain times based on plot events. Plot points are described with an enum type. Ordinarily, when one of these events is on screen, the update method compares the plot conditions of the event with the current plot enum. It uses a library function for enums, GetNames, to convert them to strings for comparison.
Now, for whatever reason, the Xbox Live Indie Games library cannot use the GetNames function. So I had to write an alternative function for comparing plot events.
FieldInfo fiArray = enumType.GetFields(BindingFlags.Public | BindingFlags.Static);
foreach (FieldInfo fi in fiArray)
So this alternative function works on all devices. Unfortunately, it also creates slowdown on the Vita hardware. The more events on the screen that check plot events, the slower it’s going to get. That’s why the saloon and the livery are the major choke points that I found.
I fixed it the easiest way possible. I wrote a small check to see if the game was building on PSM, and if it was, it used the old reliable method.
So there you have it. Sorry about the bug but maybe you’ll find the explanation somewhat interesting?
I’ll be sure to get the get the fix up as soon as I can on my end and notify everyone once it is available. Hopefully there isn’t anything else that somehow escaped my attention!