LINE에서 모바일 게임을 개발하고 있습니다.
안녕하세요. LINE에서 모바일 게임을 개발하고 있는 김선태입니다. 이번 글에서는 오픈소스 모바일 게임엔진 중에서 전세계 시장 점유율 25%로 1위를 차지하고 있는 Cocos2d-x의 멀티 스레드 병렬처리 기법을 소개하고자 합니다. 기존에 싱글 스레드 기반으로 동작하는 물리 연산을 멀티 스레드 기법을 적용하여 병렬 처리를 함으로써 구조를 개선하고 성능을 향상시키는 방법에 대해서 설명하겠습니다. 멀티 스레드 기반의 물리 연산 병렬처리 구조 설계 먼저 멀티 스레드 기반의 물리 연산 병렬처리 구조를 설명하기 전에 기존 싱글 스레드 기반의 Cocos2d-x 업데이트 루프부터 설명하겠습니다. [그림 1] Original Cocos2d-x [그림 1]은 기존 Cocos2d-x의 업데이트 루프입니다. 단계를 설명하면 먼저 사용자 입력을 받고, 게임 로직을 수행한 다음 물리 업데이트를 하고 최종적으로 렌더링을 하게 됩니다. 여기서 중요한 점은 싱글 스레드 기반이기 때문에 물리 연산이 완료된