항상 개발할때 기본 뼈대는 C++로 놓고 개발을 하는데요.
그 이유가 교수님들이 블루프린트는 기획자,디자이너만 쓰는거라면서 개발자가 쓰면 무조건 안 좋게 보더라고요.
근데 개발 공부하다 보니까 느끼게 된건 무조건 죄다 C++로 구현하는 것보다 적재적소에 맞게 BP도 써주는게 생산성과 유연성 측면에서 좋다는 걸 알게됬습니다.
그래도 아직까지는 맹목적으로 모든 것들을 C++로 구현해야 겠다는 강박을 버리지 못하고 있어요,.
최근에 대표작품으로 멀티 RPG게임을 제작중인데 인벤토리 기능을 타르코프처럼 디테일하게 구현중입니다.
우선 BP로 구현하고 C++로 변환 작업을 들어갈 예정인데요.
인벤토리 기능이 복잡하다 보니까 상호작용에 따라 생성되거나 삭제되는 위젯이 너무나도 많은데 이걸 C++로 다 바꾸는 게 맞나 고민이 됩니다.
언리얼 ㅈ제작하는 분들은 위젯같은 경우 C++로 다 구현하는 편인가요?
c++장점 최적화 복잡하고 최적화가 필요한 기능 c++이 맞을 듯
멀티면 일단 c++이 맞음 교수님들이 맞는 말 했네
위젯은 버튼 누르면 c++로 이벤트 전달만 하고 구현부는 모두 c++로만 하자.
UI는 대부분 블프로 짬 C++로 짜면 짜는데 한세월임 근데 C++로 짜면 최적화 훨씬 좋음
에픽 공식에서 권장하는건 c++이랑 bp랑 적재적소에 섞어서 구현하는거임 너무 교수님 말을 맹신할 필요는 없음 취1업용으로는 교수님 말이 맞는말임
dev.epicgames.com/documentation/ko-kr/unreal-engine/balancing-blueprint-and-cplusplus?application_version=4.27 이 글 참고하셈. 니가 교수라고 부르는 사람들이 누군지 모르겠으나, 보통 (한국어) 강의팔이 하는 사람이거나, 국비학1원 강사거나, 전문1대 교수일텐데 그사람들도 글로벌 레벨에선 ㅈ밥들인 경우가 많음. 그러니 그 사람들 말을 맹목적으로 믿지 마라. 진짜 잘하는 ue 개발자라면 cpp과 bp를 적절히 전환해서 사용할 줄 알아야 함. 어떤 구현은 cpp를 쓰고 어떤 구현은 bp로 쓰는게 좋을지 감각적으로 알아야 하고. 이건 개발하다 보면 자연히 알게될거임.
멀티플레이에서 인벤토리의 경우엔, 핵심 함수들은 cpp로 구현하고, 위젯은 bp로 구현하는게 일반적임. 위젯에서 상호작용할 때, 인벤토리 변화를 주는 cpp 함수를 bp에서 호출하는 방식이고. 사실 위젯보다는 인벤토리 구현체를 만들고 권한을 정하는게 복잡할거임. Iris 프레임워크에서 서버와 클라이언트에서 권한 어떻게 설정하고, 서버>클라이언트로 replicate 되는 걸 어느 시점에 어떻게 구현할지 등등, 네트워크 최적화라던지.. 내가 산 유료 플러그인 개발자의 경우엔, 항상 클라이언트가 서버로부터 월드에 존재하는 모든 인벤토리들의 데이터를 replicate 받는 방식이 아니라, 인벤토리 상호작용이 있을 때에만 rpc를 통해 서버 데이터를 받는 방식으로 처리하긴 했는데, 나쁘지 않은 접근방식 같아 보였음.
시간 많고 프로그래머의 길이면 c++로 해보는게 좋지 게임만드는거면 그냥 블프쓰셈
아직 배우는중이니깐 억지C++시키는거같긴한데 C로해서 나쁠건없음 블프느리다는것도 퍼포먼스 크게잡아먹는거나 그렇고 크게차이안남 걍 나중가면 코드로치는게 편하니깐 코드로작성하는거고 일단해보고 성능박살나면 그때가서 고치는것도 좋은 경험이될꺼임
이벤트 드리븐으로 구성한 구조고, 틱단위 작업을 bp로 하지않는 이상 블프로 성능 내려가는일이 크게없을텐데
그 교수가 말한대로 순수 개발자적 마인드라는게 협업이 필수적이고 생산성이란 지표도 매우 중요한 게임업계에서 얼마나 득이 될진 모르겠지만 유연하게 생각하는 편이 좋아
특히나 인원이 없다면 더더욱
위젯은 거의 항상 100% 블루프린트로 함 게임 개발 특성상 게임플레이도 자주 바뀌는데 UI는 더 자주 바뀌잖아 C++로 하면 골치아파