수학/이득우의 게임 수학

게임 엔진의 워크플로우

monstro 2026. 1. 14. 11:43
728x90
반응형

- 개요

워크플로우는 게임 엔진이 제공하는 실행의 흐름을 의미하는데, 

씬을 완성하는 과정과 완성된 씬으로부터 화면을 그려내는 과정의 총 2가지 과정으로 구성된다

 

- 프로젝트에서의 워크플로우

프로젝트의 게임 엔진의 워크플로우

 

프로젝트에서 사용하는 게임엔진의 워크플로우는 위와 같이 총 4가지로 구성되어 있다

각각 다음과 같다

  • 1) 리소스 로딩 단계
    • 게임에서 사용하는 리소스로딩하는 과정
    • 불러들이는 데이터의 양이 크므로 게임을 시작하기 전에 미리 로딩하는 것이 중요
    • 게임이 시작되기 전한 번만 실행하고 LoadResource 함수를 호출하여 수행
  • 2) 씬 구축 단계
    • 게임 콘텐츠를 구성하는 씬을 설계하는 과정
    • 씬의 게임 오브젝트가 생성 + 게임 오브젝트의 Transform 설정 + 리소스 정보가 게임 오브젝트에 연결
    • LoadScene2D 함수를 호출하여 수행
  • 3) 게임 로직 단계
    • 프레임마다 게임 오브젝트에 포함되어 있는 Transform 값을 변경하는 과정
    • Update2D 함수를 호출하여 수행
  • 4) 렌더링 로직 단계
    • 3단계에서 완성된 씬 정보를 바탕으로 최종 화면을 만들어내는 과정
    • 게임 오브젝트의 Transform 정보를 중심으로 연결된 메시와 텍스처 데이터를 활용하여 최종 화면 표현
    • Render2D 함수를 호출하여 수행

 

- 워크플로우 (1) 리소스 로딩 단계

 

1단계 로딩 과정에서 호출하는 LoadResources 함수의 로직은 위와 같다

사각형 메시 텍스처 이미지를 불러오도록 구성하였으며

불러들인 리소스는 다른 게임 오브젝트들이 접근할 수 있도록 고유한 키를 설정하였다

 

- 워크플로우 (2) 씬 구축 단계

 

2단계 씬 구축 과정에서 호출하는 LoadScene2D 함수의 로직은 위와 같다

CreateNewGameObject 함수를 호출하여 새로운 게임 오브젝트를 씬에 추가한다

플레이어처럼 자주 사용하는 게임 오브젝트는 변수로 이름을 저장하여 사용하는 것이 편리하므로

PlayerGo 변수에 플레이어 게임 오브젝트의 이름인 "Player"를 저장하였다

 

- 워크플로우 (3) 게임 로직 단계

 

3단계 게임 로직에서 호출하는 Update2D 함수의 로직은 위와 같다

전역변수 PlayerGo에 저장한 오브젝트의 이름을 넘겨 해당 게임 오브젝트의 레퍼런스를 가져와 Transform을 설정한다

물체에 회전을 부여하고 싶다면 데이터를 직접 변경하지 말고 Transform에서 제공하는 함수를 사용해야 한다

 

- 워크플로우 (4) 렌더링 로직 단계

 

4단계 렌더링 로직에서 호출하는 Render2D 함수의 로직은 위와 같다

씬에 속한 모든 게임 오브젝트를 순회하면서 게임 오브젝트의 Transform 정보를 가져오고

가져온 정보로부터 모델링 행렬을 생성하여 렌더링에 필요한 준비를 마친다

728x90
반응형