현재 개발 요구 사항(UE 5.7)
지원되는 디바이스 하드웨어: Nintendo Switch 2
지원되는 IDE: Visual Studio 2022
SDK 버전:
SDK: 20.5.6
최소 펌웨어 버전: 20.1.0-2.2
Nintendo Dev Interface(NDI)는 오래전에 지원이 중단되었으며, 이제 Nintendo에서 다운로드할 수 없습니다. 대신 Nintendo Package Manager(NNPM)를 사용하세요.
출시 노트
모든 Nintendo
신규:
애플리케이션 버전을 변경하지 않고 애드온 콘텐츠 출시 버전만 업데이트하려는 경우가 있을 수 있으므로 애플리케이션 버전과 애드온 콘텐츠 버전을 분리하는 방법을 제공하도록 수정했습니다.
지원되는 하드웨어에서 개발 목적으로 Nintendo 플랫폼에 CPU 오버클러킹을 구현했습니다.
ASTC 텍스처 압축이 활성화되어 있는 경우, 이제 RDO도 활성화합니다.
RDO는 인지할 수 있는 퀄리티 손실 없이 더 나은 패키지 압축을 제공합니다(대규모 프로젝트에서 총 패키지 크기 약 5% 감소).
이제 ApplicationWillDeactivateDelegate 및 ApplicationHasReactivatedDelegate가 구현되었습니다. 이는 애플리케이션이 포커스 해제 스테이트(백그라운드 상태 아님)로 전환되거나 포커스 해제 스테이트에서 벗어나는 시점에 해당합니다.
CVarSuspendInBackground 값은 OS가 실행 중인 애플리케이션에 제공하는 정보에 영향을 미치며, 이는 브로드캐스트할 수 있는 델리게이트에 영향을 미칩니다. 이러한 스테이트에 대한 자세한 내용은 Nintendo 문서의 '포커스 스테이트 변경 처리'를 참고하세요.
SDK 21로의 전환을 용이하게 하기 위해 이를 정의하는 NintendoSDK 함수에 대한 [[nodiscard]] 경고를 비활성화했습니다(공식적으로 지원되지 않음). 향후 UE 버전에서 이 경고의 특정 인스턴스를 해결할 예정입니다.
버그 수정:
이전에는 Target Manager 2에서 패키지(.NSP)를 실행할 때 `IsPackagedExecutable` 함수가 이 케이스를 탐지하지 못하여 다이내믹 모듈 로딩 로직 모듈이 의도하지 않은 위치에서 로드될 수 있었습니다. IsPackagedExecutable는 이제 이 케이스를 올바르게 탐지하며, 다이내믹 모듈은 의도한 위치(패키지)에서 로드됩니다.
이전에는 젠이 활성화되었지만 유효한 파일 캐시 저널 크기가 설정되지 않은 경우 애플리케이션이 중단되거나 응답하지 않을 수 있었습니다. 이제 파일 캐시가 사용되는 경우(젠 또는 기타 이유로 인해) GetJournaledBytesBeforeFlush에서 유효한 캐시 저널 크기가 설정됩니다.
이전에는 패치를 만들 때 '출시 버전'으로 생성된 경우에도 '기반' 버전을 찾을 수 없었습니다. 이제 Nintendo 패치 프로세스는 패치를 생성할 때 사용할 해당 '기반' 버전에 대해 출시 버전이 저장된 위치를 찾습니다. 또한, 추가 로깅이 구현되어 프로세스 스테이트를 더 자세히 확인할 수 있습니다.
이전에는 NintendoExports.FindTmFile에 대한 호출이 NXSymStore.exe 파일을 성공적으로 찾지 못했습니다. 이는 심볼 퍼블리싱 중(예: 빌드 제작 중)에 발생할 수 있습니다. 이제 이 파일을 성공적으로 찾을 수 있습니다.
NintendoInputSender
버튼을 눌러 개시된 팝업 대화창이 포커스를 가져와 메인 NintendoInputSender 창 위에 표시되도록 수정했습니다.
데브키트 스타트업 앱(홈/데브 메뉴)을 변경할 때 디바이스가 요청된 앱으로 자동 재부팅되지 않던 문제가 해결되었습니다.
새로운 스타트업 앱으로 변경하려면 요청을 즉시 처리하는 대신 대화창을 통해 확인해야 합니다.
이전에는 테스트 환경설정에서 NO_LOGGING이 설정된 경우 NintendoSystemCrashCallbackHandlers.cpp에서 오류가 발생하면서 컴파일이 실패했습니다. 이제 오류가 발생하지 않습니다.
이전에는 Nintendo CPU 프로파일러를 사용하여 '테스트' 환경설정으로 애플리케이션을 캡처할 때 빌드를 '개발' 빌드로 잘못 라벨링하는 심각한 문제가 보고되었습니다. 이제 테스트 빌드가 '개발' 빌드로 잘못 식별되지 않습니다.
Nintendo Switch 2
신규:
기본 INI 세팅을 향상했습니다.
이러한 세팅은 60fps로 실행되는 Nintendo Switch 2 앱의 향상된 비주얼 퀄리티에 대해 예상되는 세팅을 더 잘 나타냅니다. 이러한 세팅은 비주얼 퀄리티를 높이므로 관련 GPU 비용이 증가할 수 있습니다. 측정 결과 1밀리초 이하로 나타났지만, 이는 달라질 수 있으며 콘텐츠의 영향을 받습니다.
참고로, BaseSwitch2DeviceProfiles.ini에서 변경된 세팅은 다음과 같습니다.
sg.ViewDistanceQuality 3 -> 1
sg.ShadowQuality 1 -> 2
sg.GlobalIlluminationQuality 1 -> 0
sg.ReflectionQuality 1 -> 2
sg.PostProcessQuality 1 -> 2
sg.TextureQuality 1 -> 2
sg.EffectsQuality=1 1 -> 2
sg.FoliageQuality 2 -> 3
sg.ShadingQuality 2 -> 3
r.MaxAnisotropy 1 -> 8
다음 텍스처 그룹이 선형에서 애니소트로픽 필터링으로 업그레이드되었습니다.
World
WorldNormalMap
WorldSpecularCharacter
CharacterNormalMap
CharacterSpecularWeapon
WeaponNormalMap
WeaponSpecularVehicle
VehicleNormalMap
VehicleSpecularCinematicLightmapShadowmapRenderTargetMobileFlattenedTerrain_Heightmap
TerrainWeightmap
이러한 경우 MaxAniso는 2로 설정되었습니다.
콘솔 모드에서 r.Shadow.MaxCSMResolution이 2048로 증가했습니다. 콘솔 모드에서 해상도가 4k로 증가했습니다.
VRS 예시 세팅을 Engine/Platforms/Switch2/Config/BaseSwitch2Engine.ini에 추가했습니다.
현재 VRS가 항상 퍼포먼스를 향상하지는 않기 때문에 이러한 세팅은 기본적으로 비활성화되어 있습니다. 따라서 실제 환경을 대표하는 콘텐츠로 프로파일링하세요.
NVN2 RHI를 업데이트하여 새 샘플러를 등록할 때 샘플러 제한을 초과하는 경우 샘플러 캐시에서 가장 최근에 사용되지 않은 레퍼런스되지 않은 샘플러를 제거하도록 했습니다.
이제 HDR 디스플레이 출력을 지원합니다.
기존 RHI CVar를 사용하여 120Hz 및 가변 주사율(Variable Refresh Rate, VRR) 지원을 활성화하고, 에디터 Switch2 프로젝트 세팅에 120Hz 및 VRR 옵션을 추가했습니다.
Switch2.RespondToGraphicsScale=2로 설정하여 캠퍼스가 활성인 경우 성능을 향상했습니다.
플랫폼에서 하드웨어 레이 트레이싱이 활성화되어 있는 경우 발생하던 크래시가 수정되었습니다.
이전에는 패키징 프로세스가 Nintendo Switch(1) 플랫폼이 항상 존재한다고 가정했으며, 그렇지 않으면 패키징에 실패했습니다. 이 경우 '플랫폼 이름 Switch는 유효한 플랫폼 이름이 아닙니다.' 오류가 발생했습니다.
이 문제가 해결되었으며, Switch(1) 플랫폼은 MergeNSPs 메커니즘을 실행할 때만 필요합니다(이때 Switch(1) 및 Switch 2 플랫폼이 모두 있어야 함).
Switch2에서 셰이더 SymbolsInfo를 복구했습니다.
업그레이드 노트
Nintendo Switch 2
플랫폼에서 HDR 디스플레이 출력을 활성화하려면 '플랫폼(Platforms)' -> '렌더링(Rendering)'에서 'HDR 지원(Support HDR)' 세팅을 활성화합니다.
Switch2 플랫폼에서 표준 60Hz 대신 120Hz 주사율 또는 VRR을 활성화하려면 Switch2 프로젝트 세팅의 '디스플레이 120Hz 주사율 활성화(Enable display 120Hz refresh rate)' 및/또는 '디스플레이 가변 주사율(VRR) 활성화(Enable display variable refresh rate (VRR)) 체크박스를 선택합니다.
참고: VRR을 활성화하기 전에 애플리케이션의 프레임레이트가 일관되게 40fps 이상인지 확인하세요. VRR은 현재 핸드헬드 디스플레이에서만 지원됩니다.