Pinball Arcade: Fixing the Lighting

One of the biggest things that I would get told about when I was first getting started was that the lighting sucked on PS4 compared to PC. Even though we had the same lighting system for PC and PS4, PS4 looked noticeably worse. This was because the lighting was just incredibly dim on the PS4.

It seems like forĀ Pinball ArcadeĀ our fans had been complaining about PS4 lighting for a couple years before I had arrived. So Farsight added a fix: you could change the bulb brightness and ambient lighting for each table. This was to compensate for the fact that some players wanted the table incredibly bright while others wanted the room pitch black but the table bright. Everyone would get it their way. At some point after though, something went wrong: some of the tables were incredibly dark. So for at least a year people were blowing up the forums asking for lighting to be fixed. This thread and this thread show one of the tables most affected by this change.

Like I said in my last post, I was going through the list of things that fans wanted. After getting friends leaderboards into the game, I decided that lighting would be something great to work on as I waited for the next monthly table to come out. After doing a dive into our code, I seen what the problem was. For some reason, the lighting values for a table on PS4 would look different than PC. So in code, someone made it where PS4’s lighting values would be multiplied by a magic number that would make up for the difference between the two platforms. From what I recall, I think those magic numbers were making the values higher, so the tables would be brighter. But that wasn’t enough as seen by the threads above.

I tried to increase these magic numbers, but it produced an inconsistent result. Some tables looked perfect while others looked completely blown out. I decided that I would just remove this piece of code and just go into every single table (we probably had around 100) and change the lighting values on a per table basis. This would take me over one full day of work, but it was worth it. I was able to get much more consistent lighting for every table. It was a subtle change for some tables but a more drastic change for others. Ultimately, though, the fans were happy with the results.

I also gave the fans one other lighting thing they were begging for: a brighter ball. And I didn’t even put the code in to do this. My neighbor, who was working on Switch pinball stuff, had added it to his product months ago. So I just added myself to the equation, tweaked the point light’s values, and the ball was now much more visible. This was a pretty important, yet subtle, change that would allow better concentration on hitting the damn ball.

And lastly, I also added presence. Presence tells other users something interesting about the game a user is playing. So if someone is playing Fortnite on PSN, you’ll see that underneath their name it tells you how many people are playing in their squad and how many people are left. It’s really cool seeing stuff like this, so I decided to add it for Pinball Arcade. Remember how I mentioned that because I got the Sony API in, I could add other cool features easily? Yep, I was referring to Presence. For Pinball Arcade, a user’s presence said what table they were playing, what challenge they were participating in, or it mentioned the tournament tier they were competing in (check out my patch notes link down below to see some photos.) It was something I thought would be cool to add, which would make our game look a lot more polished. Sony puts out these cool features on PS4 for a reason; the developers should take advantage of that.

Anyways, I’d done pretty much all the feature adding I intended on, and I’d fixed some of the biggest complaints about PS4. So back to bug fixing and monthly table releases I went.


Here’s the thread of me talking about patch 1.21, and here’s the thread where I talk about the lighting.

P.S. I even went through the process of going through all the tables and tuning their lighting one more time in the future as I seen that some tables could’ve been approved upon.