Making a Playstation 3 Game in 2024 - PS3 Unity SDK

 

The Playstation 3

The Sony Playstation 3 is a game console that released in 2006, and had its last disc release in 2020. I think 2024 is the perfect time to come back to making games for it. Let me introduce the game I'll be bringing over to the PS3, Ultimate Tic Tac Toe.




Ultimate Tic Tac Toe - Windows, Mac, iOS, Android

Ultimate Tic Tac Toe (which I've previously written about here) is a Unity game that my friend (who can be found on GitHub at AlteredNode) built around 2 years ago. It's a pretty simple game, it's tic tac toe, but each square of the main board is a smaller tic tac toe game. Depending on where you play in the small grid, your opponent will be locked to that same square of the main grid. It can be a little complicated to explain in text, but the game is playable in your browser if you'd like to see it in action.

When my friend was putting together the code for the game, I was adding small bonus features to it. I swapped out all the PNG textures for vector SVG files so that the game could look good at any resolution, I added a couple of UI buttons, and I worked on getting the game running on a handful of different devices I had lying around. 

Obviously, I built the game for MacOS and Windows, since that's sure easy. I got the game running on iOS and Android with a little more effort (the old android tablets I have are ancient and lack support for many modern graphics features, and iOS development is kind of generally just a pain). Lastly, I got the game running on an old Nexus tablet from my work so that my students could check it out.

That was about a year ago. What about the present?

The Playstation 3 Unity SDK

Being the big nerd I am, I modded my PS3 long ago and installed a custom firmware. With this done, my PS3 is a perfect development kit. I can install anything over the network, and even set up breakpoints and view the system memory. With that in mind, I began searching the web to see if I could make any cool software for it. I have a pretty good understanding of Unity from messing around with it over the years, as well as taking a few classes. 

After some light searching, I found references to a Unity SDK for the PS3. I was very intrigued by this. There was official support by Sony and Unity for making Unity games for the PS3, but there was one small hurdle. The public wasn't supposed to have access to it. Unless you were in the development program and had access to everything you needed, you needed to get the SDK somehow, get the Unity PS3 building support files, get the software license key, get a Unity Pro license, and a handful of other things.

Beyond that, even if you wanted to do all of that, that development program is definitely long gone. Going the less official way would be required. Fortunately, someone has made a zip file containing all the installers you need, as well as a bonus exe to patch the Unity Pro and license key requirement. I would link to it, but I worry about it being taken down, so I'll just suggest that you search up "Unity PS3 + SDK Full installer v1.8.zip" or perhaps just "Unity PS3" on archive.org. There will be a nice batch file that handles everything.


Playing the game
The effects of the next move

Downgrading the game to 2015

Small issue: my friend and I built the game in 2022. The Unity version with support for the PS3 dates back all the way to around 2015 (maybe 2016?). Unity 5.4.0b3 required for the PS3 is soooo old that it can't even open the scene file for the project without crashing. Additionally, all the prefabs are horked up, and really all that works are the C# files and some of the textures (all my fancy SVGs are broken!).

Rather than try to fix all of that, I figured that since it's a simple game, and I have the time consuming parts like the images and scripts already figured out, I'll just rebuild the game. I got the game functioning about equivalently with the modern version in around an hour or two.

I built the game, and it works! Fully functional. That is, if having controls is not required to have it be functional. The game was built with touch input, or maybe mouse input in mind. You may notice that the PS3 does not have either of those (and no, plugging a mouse in did not work. I did try!).

I fought with getting controller input working happily with both the UI buttons and actual gameplay, and after another couple of hours, I managed to get it fully playable on the PS3.


The XMB background for when you have 
Tic Tac Toe highlighted

Quality-of-life improvements

With the game working, I focused on getting little details like the thumbnail and backdrop images on the XMB, as well as changing the game title from the generic "Unity Player". 

I'm supposed to be able to change all 3 of those things within Unity, but the image changes don't actually make it into the final build, and changing the title requires selecting some XML file? There are no examples of this XML file anywhere online or in the SDK as far as I can tell, so I have no idea how to do that.

I was able to edit the PKG file Unity built with a modded version of PkgView (found here), but it was harder than expected. I was able to change the game title by extracting PARAM.SFO and using a tool to edit that. Inserting that file pack into the PKG was no problem.

However, images were much harder. I tried to replace the two existing images with my own, but PkgView wouldn't let me reinsert the images unless they had the exact same file size. I tried to change my export settings in photoshop to match it, but it wasn't possible. I eventually got it to work by exporting a smaller file, and then using a hex editor to add padding at the end so the files would have the same length. 

Conclusion

Was it worth the effort? No. Would I do it again? Oh absolutely. At this point, I intend to bring that game to many more strange devices, much like porting Doom to everything with a screen and processor. Now I have proper controller support, so it should be easy to get the game working with any input methods. We'll see where this game goes next.

Comments

Popular posts from this blog

Videopaks for the OP-Z

The Nautilus - A Group Project

Raspberry Pi Spotify Display - Nowify, Homebridge, and More!