Rider

Unreal Engine용 Rider 공개 테스트 버전 출시!

안녕하세요,

Unreal Engine용 Rider 공개 테스트 버전이 출시되었습니다! 이번 버전은 Rider를 독립실행형, 올인원 및 크로스 플랫폼 게임 개발용 IDE로 만드는데 있어 중요한 진전입니다!
Rider for Unreal Engine Preview
이 글에서는 테스트 버전을 소개하고 사용 방법을 설명해 드릴 예정이지만, 먼저 JetBrains의 C* 도구 제품군을 간략히 살펴보고 Unreal Engine을 사용한 개발 작업에 Rider가 적합한 이유를 설명해드리겠습니다.

현재 JetBrains는 C++ 및 게임 개발에 적합한 다음 도구를 지원합니다.

  1. CLion — 크로스 플랫폼 C/C++ IDE로 Native 개발에 사용되며 금융, AI 프로젝트 및 임베비드 프로젝트 등을 대상으로 합니다. CLion에서는 원격 설정은 물론 온칩 디버그, 원격 Linux 작업 등도 원활하게 지원됩니다. Unreal Engine에 CMake 기반의 해결 방법을 사용하는 옵션도 있었지만 완벽한 솔루션으로 고려되지는 않았습니다.
  2. ReSharper C++ — C++ 개발자를 위한 Visual Studio 확장 프로그램입니다. Visual Studio에서 작성된 모든 C++ 프로젝트를 대상으로 하며 훨씬 스마트하고 생산성 높은 환경을 구축할 수 있습니다. ReSharper C++ 또는 Visual Assist와 함께 자주 사용되는 Visual Studio는 Unreal Engine 프로젝트에 가장 폭넓게 활용되는 도구입니다(게임 개발 콘퍼런스의 JetBrains 부스에서 시행한 설문조사에서 확인된 정보입니다). 그렇기에 JetBrains의 Unreal Engine 전용 지원이 ReSharper C++에 가장 먼저 탑재된 것입니다.
  3. RiderUnity와 함께 사용하기 좋은 빠르고 강력한 크로스 플랫폼 C# IDE. 저희 팀은 게임 개발에 종사하는 사용자와 대화를 통해 많은 게임 스튜디오에서 Unity 및 Unreal Engine 게임을 모두 개발한다는 사실을 알게 되었습니다. Rider를 사용하면 모든 게임 개발 프로젝트를 한곳에서 작업할 수 있어 더욱 편리합니다.

한편 저희 팀은 다음과 같은 고민을 시작했습니다… “Rider는 IntelliJ 플랫폼 기반의 크로스 플랫폼 IDE로, ReSharper의 언어 엔진을 사용하는 도구죠. 만약 ReSharper C++ 언어 엔진을 Rider에 추가하여 디버거를 구현하고 마지막으로 Unreal Engine에 맞게 전체적으로 최적화한다면, UE4 게임 개발에 완벽한 도구가 되지 않을까 하는 고민이었죠. 그 고민의 결론은 “그렇다!”였습니다. 이런 과정을 거쳐 신제품 개발이 시작되었습니다.

그리고 이제, 기쁜 마음으로 Unreal Engine용 Rider 공개 테스트 버전을 소개하게 되었습니다. 이 버전은 조기 테스트 버전으로 제공되는 Rider의 스페셜 에디션으로 현재 Windows 지원만 가능합니다. 사용하고 싶으시다면 다음 버튼을 클릭하고 양식을 제출해주세요.

조기 테스트 버전에 참여하기

기능에 대한 상세한 정보 및 간략한 자주 묻는 질문 목록은 아래에서 확인하실 수 있습니다.

Unreal Engine용 Rider: 기능 소개

요약하여 말씀드리자면 Unreal Engine용 Rider는 ReSharper C++에서 제공되는 모든 C++Unreal Engine 기능을 종합한 도구입니다. 무엇보다 Blueprints, HLSL에 대한 지원과 C# 빌드 및 Target 파일에 대한 이해를 특징으로 하며 상당히 빠른 속도 역시 주목할만한 점입니다.

다음 동영상에서 저희 팀원 Matt Ellis가 소개하는 자세한 내용을 확인해 보세요.

동영상에 나온 것처럼 Unreal Engine용 Rider는 아직 공개 테스트 버전임에도 Unreal Engine 게임 개발자에게 유용한 여러 기능을 제공합니다.

네이티브 C++ 지원을 제공하는 완벽한 기능의 IDE

ReSharper C++는 까다롭기로 유명한 C++ 언어에 대한 깊은 이해를 갖춘 C++ 파서를 탑재하여 다양한 기능을 지원합니다. 이제 ReSharper C++의 유용한 기능을 Unreal Engine용 Rider에서도 사용할 수 있습니다.
Alt-Enter menu
다음과 같은 기능을 사용하실 수 있습니다.

  • 이름 변경 및 시그니처 변경 리팩토링, 모든 사용 위치의 적절한 업데이트.
  • 현재 범위에서 제공되지 않는 구문을 완성할 수 있으며, 누락된 #include 추가.
  • 의미상 올바른 코드 블록 선택 후 복사/붙여넣기 없이 재정렬.
  • 코드 입력과 동시에 실행되는 250가지 이상의 코드 검사. 이 기능으로 치명적인 오류를 탐지하여 당황스러운 상태로 몇 시간씩 허비할 일이 줄어듭니다.
  • ReSharper C++ 온라인 문서에 설명되어 있는 다양한 종류의 혁신적인 기능을 사용해보세요.

더 자세한 내용은 C++ 기본 기능을 소개하는 Matt의 동영상에서 확인하실 수 있습니다.

Visual Studio 작업에 익숙한 사용자라면 훌륭한 IDE가 갖춰야 하는 핵심 기능이 궁금하실 겁니다. Rider는 IntelliJ 플랫폼을 기반으로 하는 완벽한 기능의 IDE로 VCS 통합, 데이터베이스 도구, 다양한 플러그인 지원 등을 제공합니다. 또한 Vim을 에뮬레이트하거나 여러 클라우드 벤더와의 통합을 지원하는 인기 플러그인도 Rider에서 사용할 수 있습니다.

성능 중심 도구

ReSharper처럼 Visual Studio의 제약을 받는 도구가 아닌 완전히 새로운 IDE를 구축하면 성능 면에서 무한한 가능성을 펼칠 수 있습니다. 저희 팀은 그 가능성을 최대한 활용하고자 합니다!

초기 프로젝트 인덱싱은 게임 개발중에도 점진적인 업데이트가 지원되어 빠르게 수행되도록 설계되었습니다. 저희 팀은 많은 분들께서 Engine 코드보다는 자체 게임 파일로 개발을 시작하고 싶어한다는 것을 이해하고 있습니다. 그렇기에 파일 인덱싱을 통해 모든 IDE 기능을 먼저 지원하며, 백그라운드에서 Engine 소스 코드 인덱싱을 지속적으로 제공합니다.

테스트 버전 사용 중 지연을 발견하신다면 저희 팀에 알려주세요!

Blueprint에 대한 이해

JetBrains는 코딩을 최우선으로 생각하며 스마트한 코딩 지원을 제공하고자 합니다. Blueprint(BP)는 기존 JetBrains 도구와 조금 다를 수 있지만 BP 파일은 전반적으로 우리의 목표를 충족시킵니다. BP 파일은 2진 형식으로 작성되어 편집은 주로 시각적으로 이루어집니다. 하지만 게임 개발 중 C++ 부분을 담당하는 개발자에게 유용한 수많은 정보가 BP 파일에 포함됩니다. 따라서 저희 팀은 Rider 개발 시 다음과 같은 사항에 주의해야 한다는 결론을 내렸습니다.

  • 파생된 BP 클래스가 존재할 수 있으며, 이는 C++ 클래스에서 Find Usages(사용 위치 검색)을 호출하거나 에디터에서 C++ 코드를 읽을 때에 편리함
  • 재정의된 속성 값이 존재할 수 있으며, 이는 Unreal 에디터에서 최근 변경된 사항을 확인하는 데 유용함.
  • 사용자가 C++ 코드에서 BP 객체를 탐색하려는 경우가 있음.

Rider는 프로젝트 및 Unreal 에디터와 이 두가지에 사용되는 플러그인을 통해 BP 파일을 읽으며, 이 파일에 포함된 모든 정보를 추출합니다.
파생된 Blueprint

더 자세한 내용은 Blueprints 지원을 소개하는 Matt의 동영상에서 확인하실 수 있습니다.

UE4 리플렉션 시스템에 대한 이해

ReSharper C++를 잘 사용하고 계시다면 이미 이 기능을 실제로 활용하셨을 수도 있습니다. Rider 언어 엔진에 있어 UE4 리플렉션 매커니즘은 일반 텍스트 매개변수를 포함하는 단순한 매크로 이상의 역할을 합니다.

  • We can parse and handle these macros correctly before you even run an UnrealHeaderTool – just because we know these macros are special and important.
  • 리플렉션 지정자는 단순한 텍스트 이상이기에 코드 완성 및 문서 툴팁이 지원됩니다.
    리플렉션 매크로 문서
  • 기본 코드 분석 기능을 통해 누락되거나 올바르지 않게 설정된 UE4 리플렉션 매크로를 추적합니다.
    매크로 검사

상세한 내용은 Matt의 동영상을 참조하세요.

원격 프로시저 호출을 적절히 처리

파서를 세밀하게 설정하지 않으면 UE4 원격 프로시저 호출(Remote Procedure Call: RPC) 함수로 인해 혼란이 야기될 수 있으며 이름별로 매치할 수 없습니다. 그렇기에 Rider(및 ReShaper C++)에서는 UE4 RPC를 UFUNCTION 선언문의 Client, Server 또는 NetMulticast 키워드별로 식별하며 검사 함수를 생성해야 하는지도 이해합니다(UFUNCTION 선언문에서 <0>WithValidation 키워드 사용). 실제 개발 중에는 다음과 같이 활용할 수 있습니다.

  • 업데이트된 생성 액션을 통해 필요한 경우 _Validate_Implementation 함수를 생성하거나 현재 누락된 함수를 생성합니다.
  • 탐색 중 두 함수에 대한 제안을 표시합니다.
    RPC 함수
  • 이름 변경 또는 시그니처 변경 리팩토링 중 <0>_Validate 및 <0>_Implementation 함수를 업데이트할 수 있습니다.

실제 활용 사례를 살펴보시려면 Matt의 데모 영상을 확인해 주세요.

UE4 이름 지정 규칙 적용

ReSharper C++에서 빌려온 Rider의 또 다른 기능은 UE4 이름 지정 규칙 지원입니다. 이 기능은 변수 삽입부터 getter 및 setter 생성에 이르는 모든 액션에서 사용할 수 있습니다. 또한 일관성 없는 UE4 이름 지정에 관한 검사를 통해 규칙에 부합하지 않는 모든 이름을 검사하며 빠른 수정을 제안합니다(이에 따라 이름 변경 리팩토링이 실행됩니다).

HLSL, C#, JSON 및 uproject/uplugin 파생 언어 지원

Unreal Engine 프로젝트에서 C++ 및 BP 지원 이상의 기능이 필요하신가요? 분명 그런 분들도 계시겠죠!

ReSharper C++ 2020.1 버전의 조기 HLSL 쉐이더 파일 언어 지원에 관한 프레젠테이션을 보셨을 수도 있습니다. 이제 같은 기능이 Unreal Engine용 Rider에서도 지원되어, HLSL 파일에서 작업 중 다음과 같은 기능을 제공합니다.

  • HLSL 파일로 이동.
  • 구문 및 구문 오류 강조 표시.
  • 시맨틱 코드 분석 검사.
  • 빠른 수정을 제공하는 유용한 검사 몇 가지.
  • 실험 버전이지만 이미 다양하게 활용되는 이름 변경, 변수 인라인화, 변수 삽입, 시그니처 변경 리팩토링.

자세한 내용은 데모 영상의 관련 부분에서 확인하세요.

또한 Unreal Engine용 Rider 역시 C# 빌드 및 Target 파일 지원, 코드 완성, .uproject.uplugin 파일의 모듈 이름 검사 기능을 완벽하게 지원합니다.

자체 디버거 포함

자체 디버거를 탑재하는 것은 가장 어려운 도전이었고, 테스트 버전을 더 빨리 선보이지 못한 이유도 이와 관련이 있습니다. MS 도구 외부에서의 Microsoft 디버거 사용은 철저히 금지되어 있기에 저희 팀은 LLDB 기반의 자체 디버거를 구현해야 했습니다. 이전 CLion 릴리스의 Windows 프로젝트에서 자체 디버거를 사용한 CLion 사용자 덕분에 실제 프로젝트 테스트까지 완료했습니다.

Unreal Engine용 Rider를 활용하면 줄 중단점, 감시점, 조건부 중단점 등을 설정할 수 있습니다. 또한 디버그 세션 중 표현식 평가 및 값 설정 역시 지원됩니다. 아울러 NatVis 파일을 지원하며 UE4.natvis를 자동으로 검색하고 로드하므로 Unreal Engine 데이터 유형 뷰를 한결 편리하게 확인할 수 있습니다.

실제 디버거 활용은 Matt의 동영상을 참조하세요. 단, 자체 디버거는 아직 개발 초기 단계에 있으며 공개 테스트 버전 기간에 대폭 개선될 예정입니다.

RiderSourceCodeAccess

Unreal 에디터의 IDE로 Unreal Engine용 Rider를 선택하려면 Marketplace에서 RiderSourceCodeAccess 플러그인을 다운로드하셔야 합니다. (사용 방법은 다음의 간략한 GitHub 설명에서 확인할 수 있습니다) 4.25 버전에서는 이 작업이 훨씬 간편해졌습니다. Unreal 에디터가 자동으로 Rider를 인식하고 Unreal 환경 설정의 소스 코드 에디터 드롭다운 메뉴에서 호환 가능한 모든 버전을 표시합니다.

Unreal Engine용 Rider: 자주 묻는 질문

Unreal Engine용 Rider 공개 테스트 버전은 무료인가요?

facebook_1200x1200
네, 그렇습니다. 하지만 JetBrains 계정으로 라이선스를 발급받으시려면 등록이 필요합니다. 해당 라이선스는 Unreal Engine용 Rider 공개 테스트 버전에서만 유효하며, 정규 Rider 버전에서 사용할 수 없습니다.

이 라이선스는 1년간 유효한 개인용 구독에 해당합니다. 공식 출시 전 최종 단계를 확인하는 데 1년이 충분한 기간이 되길 바랍니다. 영리적 목적으로 사용하는 데 제한은 없지만 그에 따른 위험은 사용자 본인이 감수해야 합니다.

라이선스는 어떻게 받을 수 있나요?

라이선스를 받으려면 다음 양식을 작성해 주세요. 자동으로 생성된 라이선스가 JetBrains 계정에 추가됩니다. 이후 이메일로 알림을 전송해 드립니다. 라이선스 활성화 방법은 다음과 같습니다.

  1. 이메일 링크를 사용해 계정 및 라이선스 활성화를 진행합니다.
  2. 활성화가 완료되면 JetBrains 계정 로그인 정보를 사용해 제품 내 등록을 마칩니다.

Rider 라이선스를 갖고 있습니다. Unreal Engine용 Rider가 공식적으로 출시되면 이 라이선스로 이용할 수 있나요?

예! Unreal Engine용 Rider는 JetBrains Rider IDE에 공식적으로 포함된 제품으로, 게임 개발자에게 제공하는 주요 제품이 될 것입니다.

테스트 버전 빌드는 어떤 사용자에게 제공되나요?

Unreal Engine용 Rider 공개 테스트 버전은 누구나 사용할 수 있습니다. 양식을 작성하고 빌드 및 라이선스를 받아 바로 사용해 보세요.

Unreal Engine용 Rider에서 일반 C++ 프로젝트 개발도 가능한가요?

Unreal Engine용 Rider에는 ReSharper C++로 제공되는 모든 C++ 지원이 포함되어 있습니다. 그러므로 VS 솔루션을 Rider에서 열고 싶다면, 마음 편히 진행하세요! 하지만 이번 테스트 버전의 경우 Unreal Engine 및 게임 개발에 중점을 두고 있음을 염두에 두시길 바랍니다. 저희 팀은 이번 버전 출시를 위해 많은 노력을 쏟았으며, 테스트 버전 사용자께서 Unreal Engine 관련 피드백을 보내주시길 기대하고 있습니다.

Rider는 크로스 플랫폼 IDE입니다. UE4 지원도 3개 플랫폼 전체에서 제공되나요?

Unreal Engine용 Rider는 현재 Windows에서만 작동하지만 향후 macOS 및 Linux로도 확장될 예정입니다. 가능하다면 첫 번째 릴리스가 출시될 시기이길 바랍니다.

Rider에서 Unreal Engine 프로젝트를 시작하려면 특정 프로젝트 모델이 필요한가요?

Unreal Engine용 Rider에서 간단히 .sln 파일을 열기만 하면 됩니다. 본 제품이 출시될 무렵에는 Rider에서 기본적으로 .uproject를 처리하여 .sln 파일 생성 단계를 건너뛸 수 있기를 기대합니다.

공식 출시 시기는 언제인가요?

정확한 시기는 저희 팀도 아직 추정할 수 없습니다. 공개 테스트 버전이 이제 막 출시되었으니 최대한 많은 피드백을 수집하여 처리하고자 합니다. 제품이 충분히 개선되어 프로덕션에서 광범위하게 활용될 수 있다고 판단할 경우 모든 기능을 JetBrains Rider로 통합할 예정입니다. 2020년 연말 전에 가능한 변화일 수도 있지만 이 시기는 피드백에 따라 달라집니다.

피드백은 어디에서 제출하나요?

간단합니다! 다음의 몇 가지 옵션을 확인해 보세요.

  • Rider용 UnrealLink 플러그인, Unreal 에디터용 RiderLink 플러그인을 활용하여 Blueprint 통합 지원 및 Rider와 Unreal 에디터 사이의 통신에 대해 전반적으로 문의할 수 있습니다. 기타 특정 이슈는 GitHub으로 문의해 주세요.
  • C++ 및 Unreal Engine 코드와 관련한 이슈는 ReSharper C++ 이슈 트래커에 기록해주세요.
  • Rider 전용 이슈는 Rider 트래커로 바로 제출됩니다. 혹시 잘못된 위치로 티켓을 전송하더라도 염려 마세요. 적절한 장소로 이동해 드립니다.
  • rider-cpp-support@jetbrains.com을 통해 지원 엔지니어 및 Unreal Engine용 Rider 개발자에게 메시지를 보내주세요.
  • Twitter 계정으로 문의해주세요(@JetBrainsRider). 트윗에 #RiderForUnrealEngine 태그를 포함해 주시면 감사하겠습니다.

이제 Unreal Engine용 Rider를 직접 사용해볼 차례입니다! 아래 버튼을 눌러 양식을 작성해주세요:

조기 테스트 버전에 참여하기

Rider 팀
JetBrains
The Drive to Develop

Unreal Engine용 Rider 공개 테스트 버전 출시!게시글은 .NET 도구 블로그에서 처음 게시되었습니다.

이 게시물은 Anastasia Kazakova가 작성한 Rider for Unreal Engine Public Preview Starts Now!를 번역한 글입니다.

image description

Discover more