Day 28

Kyu_·2026년 1월 7일

Unreal 본캠프

목록 보기
29/35

팀 프로젝트

회고 겸 이번에 처음 배웠던 개념들에 대해서 정리해보고자 한다.

게임의 구조

게임 개발에서 게임엔진/렌더러/씬매니저/게임오브젝트는 역할이 분리된 부품이다.
이 부품들이 "메인루프"안에서 매 프레임 협력해서 게임이 돌아간다.

게임 개발 기본 구조

가장 전형적인 구조는 "업데이트(로직) -> 렌더(그리기)"를 계속 반복하는 형태
대략적인 구조는

  • 입력 수집 -> 게임 로직 업데이트(물리/AI/충돌/게임규칙) -> 렌더링(그리기) -> 다음 프레임

게임 엔진

게임 엔진은 게임이 계속 돌게 만드는 실행 뼈대
메인루프, 시간(dt)관리, 입력 시스템, 오디오, 리소스 로딩, 씬 전환같은 공통 기능이 들어간다.
어떤 씬을 Update/Render할지 관리

렌더러

현재 게임 상태를 화면에 그리는 담당
게임 오브젝트(혹은 컴포넌트)가 어떤위치에 어떤걸 그려줘 라고 정보를 주면 렌더러가 실제 화면에 출력

씬(레벨)과 씬 매니저

씬은 현재 플레이 공간(레벨/화면) 단위의 묶음, 그 안에는 오브젝트들과 씬 단위 시스템(조명, 물리, 스폰, UI등)이 들어있다.
씬매니저는 어떤씬이 현재 활성화 되어있는지 관리하고, 씬 전환(로딩/언로딩)을 책임지는 관리자
많은 구조에서 엔진은 현재씬에 일을 위임하는 방식으로 짠다.

게임 오브젝트와 컴포넌트

게임 세계에서 존재하는 하나의 단위(플레이어/몬스터/총알/문 등)이고 보통은 여러 기능을 컴포넌트로 붙여 조립한다.

게임 매니저

프로젝트마다 의미가 많이다른데 보통은 게임 규칙/상태 전환/점수/스폰/라운드 관리같은 게임 진행을 총괄하는 로직을 묶어 부르는 경우가 많다.

  • GameMode: 해당 레벨의 규칙(승패, 스폰 등)을 결정/관리하는 쪽(주로 서버 권한)

​- GameState: 게임 진행 상태를 담고 공유하는 쪽(점수/시간 등)

​- PlayerController: 입력을 받고 Pawn에게 “움직여/행동해”를 지시하는 쪽

​- Pawn(또는 Character): 실제로 월드에 존재하며 이동/충돌/행동을 수행하는 플레이어 캐릭터 본체

코드카타

#include <iostream>
#include <numeric>

using namespace std;

long long gcd_ll(long long a, long long b) {
    while (b != 0) {
        long long r = a % b;
        a = b;
        b = r;
    }
    return a;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    long long A, B;
    cin >> A >> B;

    long long g = gcd_ll(A, B);
    long long lcm = (A / g) * B;

    cout << lcm << "\n";
    return 0;
}

0개의 댓글