Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

3냥 집사이면서 게임 개발자입니다.

언리얼 C++ 의 이해 본문

Unreal Engine 5/언리얼 C++

언리얼 C++ 의 이해

훙이야 2023. 7. 19. 19:28

언리얼 환경에서 알아두어야 할 기본 타입과 고려할 점에 대한 정리와 캐릭터 인코딩 시스템에 대한 이해,

언리얼 C++ 이 제공하는 다양한 문자열 처리 방법과 내부 구성의 이해에 대해서 정리하겠습니다. 

 

왜 언리얼은 기본 타입을 따로 지정하는가?

- 1970년대에 개발되서 아직도 사용 중인 C++ 언어

     - 시대에 따라서 발전한 하드웨어 사양

     - 플랫폼 파편화(Platform Fragmentation)

- C++ 최신 규약에서 int 는 최소 32비트를 보장하도록 규정되어 있음

     - 특정 플랫폼에서는 64bit로 해석될 수 있음

     - 따라서 데이터를 저장할 때 int 타입의 크기를 확신할 수 없음

- 게임 제작의 특징 

     - 데이터 정보가 명확해야 한다.

     - 단일 컴퓨터에서 최대 퍼포먼스를 뽑아내야 한다.

     - 네트웍 상에서 데이터 통신이 효율적이고 안정적이어야 한다. 

 

** 데이터 타입의 애매 모호함은 게임 개발시의 문제를 야기할 수 있다. 

언리얼 엔진에서 지정한 기본 자료형 타입에 대해 인지 후 사용할 것을 권장한다. 

 

bool 타입의 선언 

- 데이터 전송을 고려한 참/거짓 데이터의 지정

- bool은 크기가 명확하지 않음

- 헤더에는 가급적 bool 대신 uint8 타입을 사용하되 Bit Field 오퍼레이트를 사용

- 일반 uint8과의 구분을 위해 b접두사를 사용

- Cpp 로직에서는 자유롭게 bool을 사용

 

------------------------------------------------------------------------------------------------------------

 

왜 언리얼은 문자열을 따로 지정하는가?

1990년대 후반에 이르러서야 표준화된 아시아 문자열 표준(한,중,일)

하지만 컴퓨터는 그전에도 사용했었다. 

문자열 처리의 종류 

     - 싱글바이트(ANSI,ASCII) : 컴퓨터 초창기 

     - 멀티바이트(EUC-KR,CP949)  : 컴퓨터 보급기 (1990년대 초중반)

     - 유니코드(UTF-8, UTF-16) : 국제 표준 정착기 (1990년대 후반)

하지만 이 모든 문자열은 아직도 사용되고 있음 

C++STL은 ASCII, UTF-8, UTF-16 만 지원함

Windows 10은 멀티바이트를 지원함. 하지만 다른 운영체제는 지원하지 않음

위와 같은 복잡한 상황을 언리얼 엔진에서 TCHAR이라는 데이터 타입을 이용해 문자열을 통일화했음

메모리를 더 사용한다는 단점이 있지만, 균일한 구조로 데이터를 저장하기에 메모리 접근성이 좋다는 이점이 있음

언리얼에서 사용되는 텍스트는 UTF-8과 호환성이 좋음

 

정리하자면, 언리얼은 String을 관리할 때 UTF-16을 사용하고, 개발자가 꼭 한글을 사용하겠다면 UTF-8 방식을 저장할 것

하지만 여러 문제가 발생할 수 있으니 사전에 감안하고 사용해야합니다. 

 

참고 사이트

https://docs.unrealengine.com/5.1/ko/character-encoding-in-unreal-engine/

 

 

'Unreal Engine 5 > 언리얼 C++' 카테고리의 다른 글

언리얼 오브젝트 리플렉션 시스템 1  (0) 2023.07.25
언리얼 오브젝트  (0) 2023.07.20
문자열 사용하기  (0) 2023.07.20
언리얼 c++ 코딩 규칙  (0) 2023.07.19
언리얼 C++ 특징  (0) 2023.07.17