이벤트 개발은 게임에서 어떤 역할을합니까?


9

대부분의 응용 프로그램 개발은 이벤트 개발을 기반으로하지만, 게임 개발의 게임 루프 스타일과 고성능 / 처리량의 필요성을 고려하면 이벤트를 사용하여 개발하는 역할과 트레이드 오프는 무엇입니까? 종종 관련된 동기화 / 잠금이 더 큰 영향을 미칩니 까?

예를 들면 :-네트워크 [계층]은 수신 된 데이터를 게임 루프에 어떻게 통지합니까? -물리 시스템은 충돌을 어떻게 통지합니까

이벤트를 이용한 게임 개발이 엄청나게 힘든 시간을 기억할 수 있기 때문에 묻습니다. 이것이 바뀌 었습니까?

답변:


5

이벤트 시스템은 강력하고 매우 빠릅니다.

또한 매우 느슨한 결합 구조로 코드 섹션을 변조 할 수 있습니다. 배치 작업 및 스레드 작업을 수행 할 수 있습니다. 멀티 코어 및 비동기 기능과 잘 작동합니다.

물리-충돌 콜백, 객체 활성화 또는 휴식은 이벤트로 잘 변환됩니다. 네트워킹-가능한 한 이벤트 (음성 채팅 요법. 예외) 여야합니다. 게임 로직-당연히 이벤트 모델 메뉴 및 UI에 적합합니다.-이벤트 기반 시스템에서 뛰어난 성능을 발휘합니다.

또한 많은 최신 콘솔 및 미들웨어 라이브러리가 이벤트를 사용합니다.

입력 장치의 렌더러 및 폴링은 약간 혼동 될 수 있습니다. 특히 모션 컨트롤을 사용하는 경우 이벤트가 눈에 띄는 대기 시간을 유발하고 폴링 형식에 반 직관적 일 수 있기 때문에 특히 그렇습니다.


4

메인 루프 스타일을 사용하는 것이 여전히 권장된다고 말하고 싶습니다. 빠르기 때문에 액션 순서를 완전히 제어 할 수 있으며 (게임에서 중요합니다) 실수로 코딩하는 것이 어렵습니다. 그러나 사용중인 기술로 이벤트를 쉽게 사용할 수 있다면 많은 것들에 실제로 유용 할 수 있습니다. 예를 들어, 나는 키보드 키를 누를 때 언제 어디서 죽을지를 알리기 위해 그것들을 사용합니다 ...

결론 : 게임 루프를 사용하여 게임의 주요 논리를 제어하지만 다른 상황에서는 이벤트가 유용 할 수 있음을 명심하십시오.


메인 루프 스타일이 권장되지 않습니다. 메인 루프 스타일 게임은 여러 영역에서 잘 작성된 이벤트 제어 게임을 잃습니다 .1) 멀티 태스킹 시스템에서 고정 기능 세트를 위해 불필요하게 많은 양의 프로세서를 소비합니다 .2) 단일 장치에서도 휴대용 장치에서 -태스킹 시스템 추가 프로세서 사용은 배터리 수명에 악영향을 미칩니다. 3) 게임이 간단할수록 이러한 이벤트는 적절한 이벤트 중심 게임에 비해 커집니다.
Sam Harwell
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.