버그 해결을 위한 모든 질문을 던져
0 votes
115 views

씬마다 사운드 파일 경로를 받아와서 불러오거나 재생하거나 일부 효과음만 재생한다거나...

사운드 기능은 씬 베이스 클래스 안에서 함수를 만들어 쓰고 있는데 아예 사운드 클래스를 만들어서 따로 관리하는게 맞겠죠? winapi 로 게임 만들 때는 fmod 를 쓰고 있습니다.

 

C++ Game Dev 7: Components – that games guy 

개인적으로 위의 블로그처럼 오브젝트의 충돌이나 2D 스프라이트 같은건 컴포넌트 클래스를 만들어서 관리하기 쉽게 만들어 보려구요.. 사운드도 컴포넌트로 관리하기도 하나요?

asked (26 point)
수정됨 , 115 views

1 답변

0 votes
우수 답변
무조건이라는건 없지만 기본적으로 클래스화 해서 쓰는게 여러 이유에서 더 낫긴하죠

이상하게 위 링크가 안 뜨네요 링크가 어떤 컴포넌트 방식인지 모르겠으나
극 데이터 중심적 설계 방식인 기능은 시스템으로 데이터는 컴포넌트로 분리해서 관리하는 방식인 ECS 방식도 있고
뭐 하이브리드 방식으로 데이터 중심적인 설계를 좀 포기하고 관리쪽에 비중을 높인 oop랑 ecs 결합 방식도 있기도 있고
그냥 같은 기능의 클래스들을 모아서 컴포넌트 개념으로 관리하는 방식도 있고
아직도 많이들 쓰는 그냥 전통적인 OOP 방식으로 하는 방법도 있고 방법은 많죠

어떤 게임 형태와 구조로 만드냐에 따라 더 어울리는 방식들이 존재하긴 한데 그 형태에 다른 방법이 아예 안 맞는 경우는 적어서 일단 여러 방식들 배우면서 적용 해보고 하면서 경험 쌓는게 중요하니 일단 본인이 해보고 싶은 구조가 생기면 해보시면서 경험 쌓으시는거 저는 권장해요
answered (242 point)
선택됨
오브젝트의 효과음 같은건 대개 오브젝트 안에 들어가나요? 아니면 씬에서 한꺼번에 관리하는게 좋을까요?

기능을 보면 전자가 맞는거 같은데... 씬에선 배경 음악만 다루게 하고 오브젝트들은 초기화할때 효과음을 불러와서 각각 다루게 하는게 좋을 것 같기도 합니다. (이것도 컴포넌트로 만들어야 할 듯...)
본 답글에도 썼지만 꼭 이렇게 해야하는건 없습니다

개발하면서 문제기 생기고 그걸 해결하면서 방법이 쌓이고 그걸 모아서 무슨론 무슨 방식 이렇게 된거라..

무작정 이건 이런식 저건 저런식으로 하는것보다 전체적 구조 형태와 그것에 맞게 관리 방법을 쓰는게 맞죠

OOP 빙식의 구조하면 개체에 대한건 개체에 다 모여있어야겠죠 그런데 다른 방식에서는 한 곳에서 다 같은것들을 모아두고 콜하는 방식으로도 할 수 있죠

그리고 구조 잘 잡아놓고도 최적화 할 때 부분적 깨는데 더 성능 나와서 선택을 해야하는 경우도 있고요

결국 선택은 본인이 생각하고 짜고 있는 구조에 어울리는지 판단하면서 결정할 부분이죠

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

544 질문
703 answers
684 댓글
118,235 users