Porting Space Drop to PlayStation® PSVR2
Our journey on porting the first game to PlayStation
The PlayStation is the second largest market for VR, making it a logical choice for us to port Space Drop to the PlayStation PSVR2. However, our journey began with a bit of naivety.
Initially, we ventured onto the PlayStation Partner website to register, only to discover that we needed a comprehensive Game Design Document. At that time, we didn’t have one for Space Drop, so we crafted a brief presentation instead. While it wasn’t the best document, we submitted it for registration—and to our relief, it was accepted!
Once officially registered, we dove into the development process for PSVR2. Using Unity, we anticipated a straightforward transition, only to learn that a Pro license was necessary. To get started, we accessed the PlayStation 5 Add-on available in the Forums of the PlayStation®5 DevNet. I easily found the relevant post, where the editor downloads were pinned at the top, along with instructions to ensure compatibility with our Unity version.
If you can’t find the PlayStation®5 DevNet, you might need to set it as a platform in the Content Pipeline.
Fortunately, our luck continued when PlayStation reached out with a generous offer of a DevKit & TestKit, specifically for indie developers like us. This offer was available for two years, whereas purchasing them outright would have been a significant expense. Testing without these kits is nearly impossible, as PlayStation requires developers to have the appropriate hardware to access certain features.
After eagerly awaiting the hardware’s arrival, we set it up, ensuring that we had a fixed IP address that Sony could recognize for activation purposes. Initially, I encountered some difficulties, as my tests indicated a fixed IP, yet activation was elusive. After reaching out to support, I learned that the hardware needed to be assigned to our company. Once that was done, activation occurred instantly—what a relief!
With our DevKit/TestKit now operational, we set to work on building Space Drop for PlayStation. We downloaded the necessary plugins for PlayStation VR2 and the Scriptable Render Pipelines, starting with a Development Build. Upon completion, a Windows Shell opened, allowing us to monitor upload progress while displaying logs and FPS statistics.
The best part? The PlayStation 5 handled Space Drop effortlessly, working right out of the box! We noticed that colors appeared brighter and shinier, but overall, the gameplay was smooth and exhilarating.
Next, we integrated additional packages for 3D Audio Spatializer & PlayStation Network. Setting everything up proved to be a lengthy process, particularly configuring the services in the PlayStation®5 DevNet under PSN Services.
Setting up the UDS Management to handle trophies seemed straightforward, though we faced challenges with required events and stat extractions for certain trophies. It was crucial to establish an activity marked as „Is Required for Completion,“ which we programmed to initiate at the start of any level and complete once all levels were finished.
We also enabled Cloud Storage to load and save current progress. Configuring this in Unity was somewhat tricky and involved considerable testing. We used an example as a foundation, merging it into our existing logic. Calls to the PlayStation Network needed to run on a separate thread due to the necessity for callbacks to be queued on the main thread, ensuring smooth UI updates.
In the GEMS Tool, we downloaded the latest npconfig.zip, which was then set in the PlayStation Publishing Settings in Unity. Additionally, we configured the ps-param.json with our title and concept ID.
Before moving to production, we had to enable services for production and promote them within the PlayStation®5 DevNet under PSN Services. Creating a NP Config Tag in the UDS Management was also essential. If using leaderboards, we had to enable both the QA and production environments and push the leaderboards within the Leaderboards Tool, mirroring the setup in the Title Cloud Storage Tool.
Once everything was primed for production, we built and uploaded the build. It was vital to set the build to Standard & Trinity; otherwise, PlayStation would flag it as missing Trinity support. For the upload, I opted for WinSCP for convenience.
After updating the build, I turned to the Certification Center and accessed the Submission Manager, diligently filling the MDT and selecting our build. For subsequent uploads, ensuring the version matched the MDT was crucial. Finally, we booked a slot and awaited PlayStation’s review of our build.
PlayStation’s testing team is exceptionally thorough, pinpointing issues and providing detailed feedback. While not all bugs need fixing, addressing required ones is critical.
We made necessary adjustments to scene transitions and corrected button naming translations to meet their standards. Unfortunately, we initially failed to set the leaderboards to production, which took us some time to resolve.
If all goes well, we get to celebrate a version that is accepted and ready for publication worldwide!
A heartfelt thank you to the PlayStation Testing & Support Team for their patience and comprehensive testing throughout this process!