Getting to Work on Pinball Arcade

At the end of my last post, I hinted that I had a huge task ahead of me. That task was getting PS3, PS Vita, and PS4 up to date with all of Farsight’s other platforms. For you to understand this though, you’ll have to understand Pinball Arcade.

The way Pinball Arcade worked when I arrived at Farsight was that every month they were coming out with a table pack containing one or two new pinball tables.  This was a part of a season. A season was about 10 pinball packs. You could either buy a table pack individually, or you could buy the season pass and own all the tables when they eventually came out over the next few months. This was for Android based platforms, IOS, Mac, PC, Xbox One, Xbox 360, PS3, PS Vita, and PS4. We had one person in charge of Android, one in charge of IOS and Mac, one in charge of PC as well as actually programming the tables, one in charge of Microsoft’s consoles, and one in charge of Sony’s consoles. That person would be responsible for adding the monthly table as well fixing bugs for their platform.

The reason I had my work cut out for me was that there was years worth of missing content to add across all of my Sony platforms. Luckily for me, we were going to stop adding tables for PS3 and Vita as optimizing the tables for those platforms was a nightmare, as I would find out later as well, so I only had to worry about adding missing tables on PS4. There were 6 tables, which meant 6 months of work to catch up on. And this was all new to me. Adding tables is easy, but I had never done it. Finding where certain things go can be rough in a project of this size. Luckily, I had documentation that would help me out, but there was a lot missing from the documents that I would need to figure out myself. Why wouldn’t the table start when I pressed play? Why isn’t the table showing up? Why is this different when I make an actual release build? Why is this broken only on PS4? There’s so much to learn in the beginning.

The cool thing is that every month I took fixing everything was another month of tables I would have to add. When it was all said and done, I had taken around 4 months to finally get a patch out on PS4. These 4 months weren’t just to add tables and get used to the engine and submission process. I also added a bunch of needed stuff. I added six seasons worth of trophies—we were on season 7—and challenges, I added loading screens (only Switch had these), and I added some ball packs. This along with all the bugs I managed to fix was pretty good for 4 months. It certainly made the fans much happier. But the thing is that before I even started work on PS4, I had to focus on PS3 and Vita.

PS3 and Vita were so broken. There was a lot of crashing and a lot of tables that were unplayable, the leaderboards and tournaments were completely broken, and there were a bunch of other bugs. There was also some missing content on here as well that I decided to add. These two platforms being so buggy sucked because they were really hard to work on. PS3 was terrible. When you wanted to debug the damn thing, you had to press play in Visual Studio 2008, which would open up some weird Sony IDE that always opened up to disassembly right away—why yes, I love reading disassembly, why even bother reading C++. Once you got past those initial hurdles, there was still more waiting ahead. There were some weird optimizations that made stepping through the code a complete nightmare. You could at least, but it wasn’t as easy as it was on PS4.

In the end though, I made due. And that’s even considering that when I made builds for release, things were so different than what I was expecting. The documentation didn’t bring up any of the stuff needed to build for PS3 and Vita, and I had so much trouble just trying to get a proper build. It’s a super fun time making a build that is fine in development settings, but it’s completely broken in release. And trying to figure out what was wrong with a release build was just too much fun. Sprinkling in some logs throughout the code to see where it was all going wrong and then making build after build is as good as it gets when it comes to debugging. At least Vita was a lot better. Actually pretty similar to PS4 luckily.

Anyways, the four months of fixing and adding stuff leading up to my big PS4 patch was some great experience. Even though the experience I got from working on PS3 is useless now as it’s a dead system, it shows that I’ve weathered some bullshit. I came away from the experience with an OK understanding of PS3 and Vita and a pretty good understanding of PS4. But there was still a lot left to do for PS4.


You can see my change log through the game when you download it (1.18 was my first patch), or you can check it out on a forums that many of our fans frequent.