말 그대로 클라이언트 프로그래머 분들이 언리얼 C++은 C++과 완전히 다르다고 말하는 이유가 궁금해서 여쭤봅니다.
제가 클라이언트 프로그래머는 아니여서 언리얼 경험이 많지는 않은데(그냥 간단하게 엔진 뜯어서 기능 몇 개 추가해본 정도), 겉으로 보기에는 무엇을 보고 이야기하는 건지 모르겠어서요.
1) 리플렉션 시스템(CDO나 UPROPERTY 등의 macro 쓰임 등)은 사실상 framework의 영역이고
2) stl을 쓰지 않는다? 제 생각에 게임 분야의 특수성 감안하면 stl 쓰는데 유지보수성, 생산성, 성능 다 잡은 게임 엔진 찾는 게 더 어려울 것 같아요..
그리고 위의 이야기들은 사실 C++과 다르다라고 말할 만한 껀덕지도 아니지 않나요? 뭐 문법이 바뀌는 것도 아니고 그냥 wrapping하는 거니깐..
어떤 프로젝트든 코드 100만 줄 이상의 대규모이면, 특히 게임이 성능에 민감하고 초대규모로 프로젝트가 진행된다는 걸 감안하면 지극히 정상적이고 당연한 부분인 것 같아서요.
그래서 이런 부분을 이야기하는 것은 아닌 것 같고.. 심연의 무언가가 있나요?
4개의 댓글
무분별한 사용은 차단될 수 있습니다.
ye
윈도우 런타임 발라놓은 C++ 한테 C++/WinRT 라고 부르는것하고 비슷하죠 뭐
C++ 공식 문법도 사용할 순 있지만 실제 코드 사용자체는 WinRT에 맞춰야하니 그렇게 부르는듯함 (i.e 메모리 관리)
게임 엔진은 안해봤지만 Unreal C++도 비슷한 결이겠죠 뭐
nyvux
WinRT를 예로 드니 뭔가 또 오묘하게 납득이 되는 것 같기도 하네요ㅋㅋ
a1s2d3f4g5
메모리 관리 개념도 다르고
또 뭐 많은데
여기 써있는거처럼 세분화해서 따지면 굳이 설명과 납득이가능한데 저런것들이 수십개 있어서 그냥 별도의 생태계가 됨
유니티도 유니티하는애들이랑 씨샵하는애들이랑 같은언어인데 접점은 그냥 json파싱 라이브러리정도밖에없음
JimmyMcGill
굳이 조금더 쉽게 비교하자면 프레임워크 처럼 돌아간다고 해야하나? 맨날 사용하는거가 공식화 되어있고 그걸 쓰는 라이브러리가 정해져있어서?? 하 말로설명하려니 힘드네