1. 게임 엔진이란?
게임 제작을 위해 필요한 다양한 기능(그래픽 렌더링, 물리 엔진, UI, 시뮬레이션, AI, 오디오, 네트워킹 등)을 제공하는 게임 개발 소프트웨어
2. 주요 기능들
그래픽 렌더링 : 화면에 2D 및 3D로 게임 내 객체들의 그래픽 데이터를 출력하는 기능. 즉, 플레이어가 화면으로 보는 게임의 이미지를 생성
물리 엔진 : 현실의 물리 법칙을 게임 내에서 자동으로 적용, 처리해주는 기능. 즉 게임이 현실감을 가질 수 있도록 함
애니메이션 시스템 : 게임 내 객체들의 움직임과 변화를 자연스럽게 보이도록 하는 기능. + 자연스럽게 보이기 위해 실제 사람의 표정, 움직임, 물리법칙 등을 이용하여 애니메이션을 만들고 이를 게임 엔진에 가져와 구현
오디오 엔진 : 배경음악, 효과음, 대화, 환경 사운드 등 다양한 오디오 요소를 생성, 처리, 재생하는 기능. 즉, 플레이어의 위치에 따라 어떤 소리가 어떻게 들릴지를
스크립팅 시스템 : 캐릭터의 특정 행동, 이벤트 또는 게임의 로직을 제어하고 관리하는 데 사용되는 기능. 즉, 게임의 큰 틀을 구현할 수 있도록 해줌
- 이벤트 처리
• 특정 조건(플레이어가 문을 열었을 때, 적이 발견되었을 때 등)에 따라 행동을 실행.
• 예: 적이 발견되면 경고 소리를 재생하고, 공격 모드로 전환
- 캐릭터 제어
• 캐릭터의 움직임, 행동, 애니메이션을 제어.
• 예: 플레이어가 키보드 입력을 하면 캐릭터가 점프.
- AI 구현
• NPC의 인공지능 행동을 정의.
• 예: NPC가 일정 경로를 따라 순찰하거나, 플레이어를 추격.
- UI 동작
• 버튼 클릭, 메뉴 열기/닫기, 게임 HUD 업데이트 등의 동작을 스크립팅.
• 예: 체력이 줄어들면 화면에 경고 표시를 띄움.
- 게임플레이 로직
• 게임의 규칙, 점수 계산, 승리/패배 조건 등을 정의.
• 예: 특정 퀘스트가 완료되면 보상을 지급.
- 오브젝트 제어 및 스폰
• 오브젝트 생성, 삭제, 이동, 충돌 처리 등.
• 예: 특정 위치에 몬스터를 소환하거나, 물체를 플레이어가 밀 수 있도록 구현.
비주얼 스크립트(블루프린트) : 코드를 작성할 필요 없이 노드를 끌어다 놓는것으로 스크립팅 로직을 만들 수 있도록 지원
AI 시스템 : 게임 내 NPC가 사람처럼 반응하고 상호작용하게 해주는 기능. + 언리얼에서 제공하는 도구들로 AI 시스템을 구축할 수도 있지만 복잡한 AI 로직을 만들 때는 스크립트를 이용할 수도 있음
네트워킹 : 여러 사용자가 상호작용할 수 있도록 클라이언트-서버 모델을 기반으로 네트워크 상의 데이터 전송 및 동기화를 처리
3. 장/단점