Vol. III · 2026 · 본문 Entry

(🔒) PS 개발문서

해당글은 개인 기억 리마인드를 위한 글이며,

저작권 관련 사항 발생시 바로 삭제될 수 있습니다.

공개 및 공유를 절대 원하지 않습니다.


자세한 설명 및 기술적인 부분은 모두 생략했으며, 대략적인 출시 흐름만을 기술합니다.

해당 글은 SDK 9.5부터 11.5까지의 마이그레이션을 포함한 전 과정을 겪었습니다.

따라서 작성시기에 따라 명칭이 조금씩 다를 수 있습니다.

  • 4월17일 글로벌 출시항목이 변경되었습니다.

TRC의 경우 너무많은 분량을 말하기때문에, 스킵합니다.

성능은 대략 메타 퀘스트2의 약 1.x배, 대신 로딩이 정말 느리다는 가정을하면 적절합니다.

기본 보안

계정

PS4는 여러개의 계정을 필요로 하며, 90일마다 강제로 변경된다.

즉 아이디와 비밀번호를 미리 저장하는 것이 좋으며,

비밀번호의 조건은 다음과 같다.

at least 12 characters, a lowercase letter, an uppercase letter, a number, no parts of your username.

라이센스

라이센스는 2가지타입 개발용과 퍼블리싱 라이센스로 분류되며,

퍼블리싱 라이센스가 있어야 추후 업로드해야할 서브미션머테리얼을 빌드과정에서 얻을 수 있다.

없다면 데브넷에서 요청하도록 하자.

다음과 같은 내용을 작성하여 요청해야함.

- Game Title: 게임이름
- Publisher : 퍼블리셔/회사이름
- Developer : 회사이름
- PlayStation Platform(s) : PS4
- Unity Version : 유니티버전
- Number of license seats : 라이센스 사용 pc 수
- Estimated title release date : 202x.x.xx - 대충 출시일
- Master submission date : 202x.x.xx - QA 슬롯부킹 및 시작날짜
- Title ID : 타이틀ID. 콘텐츠파이프라인이나 데브넷타이틀에서 확인할 수 있다.

아이피

cert ops, content pipeline,codes등은 화이트리스트가 아니여도 접근이 가능하지만

devnet, devnet에서 접근가능한 gems는 화이트리스트가 아니면 접근이 불가하다.

고정아이피를 획득후, 외부작업을 자주한다면 vpn서버를 두도록 하자.

패스코드

빌드에 사용되는 키다.

keystore와 비슷한개념이지만, 단순 32글자 대소문자와 숫자로 구성되어있다.

잃어버리지 않게 잘 백업하자.

의존성패키지

다음 패키지는 내부적으로 수정이 필요할 수 있으므로, 사본을 만들어

임베드 패키지로 구성하는 것을 추천한다.

NPToolKit과 savedata는 언제부터인가 tarball로 변경되었다.

Untitled

XR Interaction Toolkit

잘 동작하지 않는다. 수작업해야한다.

Action-based-Input

위의 임베드 패키지를 통해 따로 event를 추가해서 내부적으로 사용하는 input state의 데이터를 덮어씌우는 방식으로 사용할 수 있다.

Build

PS4 Devkit에 관련된 사항은 모두 Neighborhood for ps4 앱을 사용하여 작업할 수 있다.

이는 SDK manager를 설치할때 모두 설치된다.

SDK

SDKManager를 통해 몇가지 프로그램과 버전등을 다운받을 수 있다.

트로피관련 퍼블리싱툴, skeed sliver bullet uploader는 잊지말고 다운로드하자.

빌드 제출할때 필수다.

Activation

https://ps4.siedev.net/resources/documents/SDK/9.500/Neighborhood_and_Utilities-Users_Guide/0002.html#0Activating_DevKits

이를 위해선 Activation이 필요한데,DevNet의 하드웨어 관리 페이지에서 수동활동화를 할 수 있다

Untitled

Untitled

Untitled

PC 호스트 빌드의 경우 eboot.self 파일을,

패키지파일의 경우 pkg,submission material, spec 파일 및 기타 파일이 나온다.이 세 파일은 출시에 꼭 필요하므로 아카이빙해두자.

Build-Known issue

Provider Initializer Issue

Untitled

일부 버전에서 Awake에서 Initialize하면 문제가 발생한다.

따라서 start에서 수동으로 initialize하는걸 추천한다.

VR의경우 Hall - in - Mirror 효과가 발생할수도 있으므로,

로딩이 완료된 다음 VR모드로 넘어가는것이 좋다.

Provider build Issue

빌드 파이프라인에 문제 존재.

ps4빌드인데 android 빌드 옵션(provider)을 가져오는 이슈가 존재한다.

XRGenenral settings에서 정상적인 값을 사용하는지 확인이 필요하다.

Untitled

구현

이부분은 각 프로젝트마다 다를테니 TRC를 참조하여 직접 구현하도록 하자.

퍼블리싱

전체흐름은 다음과 같다

Untitled

Global FQA는 CertOps로 이름이 바뀌었다.

콘텐츠 파이프라인

https://ps4.scedev.net/resources/documents/Misc/current/Publishing_Tools-Overview/__document_toc.html

https://publish.playstation.net/concepts/10005892/products/10029073

https://ps4.siedev.net/titlemanagement/titles/product/add/

프로덕트 그룹을 생성하고, 프로덕트 그룹 내 프로덕트를 추가한다.

이때 보통 SIEA만 추가될텐데, 오른쪽위의 헬프센터에서 SIEE 권한을 받아야한다.

CertOps 접근권한도 아마 티켓을 발급했어야 했던걸로 기억한다.

Untitled

나머지 메타데이터, 금액, 나이등은 알아서 잘 작성하면 된다.

Devnet Title

이제 devnet으로 돌아가 타이틀을 제작하고,

이에관한 설정들을 적용하면 된다.

GEMS

아까 빌드했던 파일들은 skeed sliverbullet uploader을 통해 업로드하게 되는데

아이피 화이트리스트는 필요없으니 최대한 빠른 랜을 사용해서 업로드한다.

단 GEMS는 devnet하위이기때문에 화이트리스트 IP로 접속해야한다.

Untitled

DevNet Titles에서 해당방식으로 들어갈 수 있다.

다중 출시

Untitled

4월 17일부로 글로벌 출시가 가능하도록 변경되었다 -.-

GCC? subSKU? 상관없다. 그냥한방에 한 바이너리로 출시할 수 있다. 빌드 파이프라인 수정할 필요도 없다.

제품관리 도구 페이지

https://devadmin.sp-int.tools.playstation.net/index

https://ps4.siedev.net/resources/documents/SDK/9.500/NP-Product_Management_Guide/0002.html

https://npmt.sp-int.tools.playstation.net/index.vm#

패치빌드

cert ops → request patch → 래피드패치 → 기타 작성 후 업로드

Untitled

  • Package Category → Patch로 변경
  • application version → 올려야함
  • Application PKG → 출시 빌드 PKG파일 (패치파일 말고)
  • Latest QA Passed PKG → 기존 패치 파일. 없으면 비우기
  • Patch ChangeInfo Folder → 해당 xml파일을 작성할 폴더와 파일을 지정해야함

https://ps4.siedev.net/resources/documents/SDK/9.500/Content_Information-Specifications/0010.html

Patch ChangeInfo의 파일형태는 다음과 같으며 CRLF가아닌 LF로 라인의 끝을 정리해야한다(vs code 권장) 예시는 다음과 같다:

<?xml version="1.0" encoding="UTF-8"?>
<changeinfo>
  <changes app_ver="01.02">
    <![CDATA[
        Fix NPC Dance bug
    ]]>
  </changes>
  <changes app_ver="01.01">
    <![CDATA[
        Fix frame drop and crash bug
    ]]>
  </changes>
</changeinfo>

바우처

관련내용은 아래에서 처리할 수 있음.

https://codes.playstation.net/

단, 권한이 필요하여 Global Account Admin(최고 권위자 아이디)으로 접속하여

권한을 추가해야한다.

1 - Head to the "Users" tab in the user profile icon, top right of the PlayStation Partners header
2 - Search users by email address
3 - Select user account
4 - Click "Edit" tab on User Access
5 - Select "Code"
6 - Submit

Untitled

완료하면 CODES가 생긴다.

PGP 키

보안을위해 파일전송-수신을 위해 공개-개인키 페어를 생성해야한다.

RSA 혹은 DSA 알고리즘을 사용하며, Git bash를 통해 쉽게 생성할 수 있다.

생성
$ gpg --full-generate-key
(1) RSA and RSA (default) 
->

리스트확인
gpg --list-secret-keys --keyid-format=long
키값 가져오기
$ gpg --armor --export <아이>
$ gpg --armor --export-secret-keys <아이>
파일저장
$ gpg --armor --export --output <FileName> <아이>

Untitled

업로드를 진행하면 CODES에 접근 가능하며,

예를들어 베타키를 발급받을려면

콘텐츠파이프라인에서 코드 프로덕트를 미리 추가해둔다음,

Untitled

해당 방식으로 publisher - Free allocation을 설정하고 generate(우하단)을 누르면 생성이된다.

이후 다운로드하면 gpg파일로 저장되는데, 이를 기존키로 복호화하면 값이 나온다

Untitled

이를 압축푼다면 열면 쉽게 코드를 얻을 수 있다.

Untitled

내부테스트를 위한 코드

내부테스트를 위한 코드는 아래항목과 같이 설정할 수 있다

https://learn.playstation.net/bundle/3p-codes-guide_partner-3p_codes/page/3P-PlaceOrderFree.html