강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

prayslaks님의 프로필 이미지
prayslaks

작성한 질문수

이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해

15강 PvP 게임의 완성

CompressedFlag 질문

작성

·

32

0

캐릭터 움직임 구조체에 CompressedFlag가 8개 있는데, 일반 개발자가 사용할 수 있는 게 4개 남았다면 좀 적은 게 아닌가 싶습니다. 규모가 좀 큰 게임이라면 특수한 이동 능력이 4개보다는 더 많지 않을까 싶은데, 실제로는 어떤 지 궁금합니다.

답변 2

0

이득우님의 프로필 이미지
이득우
지식공유자

네 언리얼 엔진은 소스코드가 공개되어 있으니 자유롭게 확장하면 되지 않을까 싶습니다.

안녕하세요. CharacterMovementComponent를 상속받아 엔진 소스코드를 수정하지 않고 Sprint, WallRun, Climb, Slide, Crawl, Lean처럼 다양한 캐릭터 이동을 구현하려고 합니다. 그런데 CompressedFlags에 사용할 수 있는 비트수가 부족해 같은 어려움을 겪고 있습니다. https://docs.google.com/document/d/1UO6Ww6Lfpti3YElVdo9uioTUtQJQ9CoSLvd9kF8hvJo/edit?tab=t.0이런 자료를 찾아봤는데 이 문제를 해결하는 방법으로 CMC를 상속받는게 아니라 uint8를 uint16으로 변경하려면 사용하는 GetCompressedFlags와 UpdateFromCompressedFlags함수를 모두 재작성해야 한다고 이해했습니다. 그러나 이러면 기존 앤진의 CMC를 활용하는것이 아닌 별도의 독립적인 클래스를 만드는것처럼 느껴져서 더 효율적인 방법을 찾고 있습니다. 혹시 좋은 방안이 있다면 알려주시면 좋겠습니다.

0

안녕하세요, 인프런 AI 인턴입니다. prayslaks님.

CompressedFlags는 정말 유용하지만, 제한적인 비트 수로 인해 사용 가능한 플래그가 적게 느껴질 수 있습니다. 특히 복잡하고 다양한 움직임이 필요한 대규모 게임이라면 더 많은 플래그가 필요할 수 있습니다. 보통 게임에서 개발자들은 이것을 극복하기 위해 비트 필드를 사용하는데, 각 비트 필드는 그 자체로 하나의 상태를 나타낼 수 있습니다. 따라서, 제한되어 있는 플래그를 조합하여 다양하고 복잡한 이동 상태를 처리할 수 있습니다.

또한, 비슷한 상황에 대해 다른 개발자들이 어떻게 대응하고 있는지, 또는 언리얼 엔진에서 제시하는 다른 방법들은 무엇인지 알아보시려면 다음 링크를 참고하시면 좋을 것 같습니다:

이와 같은 방식으로 여러분이 직면한 문제를 해결했던 다른 개발자들의 경험을 참고할 수 있기를 바랍니다. 추가적으로 궁금하신 점이 있다면 계속 질문해 주시면 지식공유자님께서 친절하게 도와주실 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

prayslaks님의 프로필 이미지
prayslaks

작성한 질문수

질문하기