Unreal 개발 본 캠프 1일차

HappyCircle·2025년 11월 27일

Unreal 개발

목록 보기
18/163

오늘 학습 진행 내용
OT
8개월간 진행(09:00~21:00)
커리큘럼 구성
블루프린트 학습 주차
언리얼 블루프린트로 게임 개발 입문
언리얼 엔진 통합 개발 환경 세팅 및 기본 인터페이스 익히기
게임 개발을 위한 기초적인 프로그래밍 개념 학습(변수, 조건문, 반복문 등)
Unreal Engine의 핵심 용어 및 개넘 이해 (액터, 컴포넌트, 블루프린트 등)
언리얼 블루프린트를 사용한 간단한 3D 플랫포머 게임 제작 실습
게임 로직 구현 및 기본적인 상호작용 요소 추가

C++ 문법 학습주차
게임 개발자를 위한 C++ 문법
C++의 객체 지향 프로그래밍 개념 학습(클래스, 상속, 다형성 등)
C++ 표준 라이브러리(STL) 활용법
메모리 관리(스마트 포인터, 동적 할당)
템플릿과 기초 학습
언리얼 엔진 특화 C++ 문법 학습
텍스트 기반 RPG 게임 제작 실습

C++를 활용한 대전 게임 시뮬레이션 구현 프로젝트
캐릭터 클래스 및 능력치 시스템 구현
턴제 전투 시스템 설계 및 구현
기본 상태 관리 및 전투 루프 구현

Unreal 주특기 입문
C++과 언리얼 엔진으로 3D 게임 개발
언리얼 엔진 C++ 개발 환경 설정
액터와 컴포넌트의 C++ 구현 방법과 언리얼 엔진 API 익히기
게임플레이 프레임워크 구조 이해 및 활용법
기본 HUD 요소와 UI 시스템 (UMG)을 이용한 단순 인터페이스 구축
3D 액션 게임 개발 실습 (캐릭터 이동, 상호작용, 간단한 아이템 수집 시스템)

언리얼 엔진과 C++를 활용한 다수의 적을 쓰러뜨리는 슈터 게임 프로젝트
플레리어 캐릭터 구현(이동, 조준, 발사)
기본적 AI 구현(적의 추적 및 공격 패턴)
무기 시스템 설계 및 구현
간단한 레벨 디자인 개념 도입과 지형 배치
UI/UX 설계 : HUD 및 게임 내 메뉴 구성

Unreal 주특기 숙련
언리얼 엔진 멀티플레이어 게임 개발
네트워크 프로그래밍 기초 학습
클라이언트-서버 모델 이해
언리얼 엔진 네트워크 아키텍쳐 이해 및 리플리케이션과 RPC 학습
로비 및 세션 관리 기본 개념 이해
네트워크 동기화 기법 학습
기본 멀티플레이어 대전 게임 제작 실습

네트워크 기능을 활용한 멀티플레이어 대전 게임 개발 프로젝트
로비 및 세션 설정
기본적인 게임 모드 (데스매치, 팀 데스매치) 구현
실시간 게임플레이 동기화 및 다양한 이벤트 처리
간단한 매치메이킹 시스템

Unreal 주특기 심화
언리얼 엔진 고급 기술 화용(AI 및 VR/AR)
내비게이션 메시 생성과 경로 찾기 알고리즘 활용
상태 머신을 활용한 AI 행동 패턴 설계
언리얼 엔진의 Behavior Trees 기초 학습
AI를 활용한 간단한 스텔스 게임 실습 (은신, 추적)
VR/AR 개발을 위한 언리얼 엔진 사용 기초

최종 프로젝트
언리얼 엔진의 고급 기술을 활용한 대규모 3D 게임 개발 프로젝트
게임 기획과 시스템 설계
월드 구축 및 레벨 디자인
상호작용 시스템 및 플레이어 컨트롤러 구현
전투 시스템 및 적 AI 구현
퀘스트와 미션 시스템 설계 및 구현
인벤토리 및 아이템 시스템
게임 최적화 및 테스트

블루프린트 라이브 세션 진행
DAY 1
세션 구성
게임 엔진에 대한 소개
자체 엔진으로 개발하는건 왜 어려울까?
언리얼 엔진 왜 배워야 하는가?
UE 5 어떻게 설치해요?
게임 업계 ssul
UE 5 프로젝트 사례
액터 1~2개 설명 및 에디터 살짝 구경

게임은 어떻게 만들어지는가?
게임의 구성 요소
그래픽(시각적 요소)
배경, 미니맵, 몬스터, 캐릭터, UI(플레이어 정보, 캐릭터 목록, HP, 마나 등) 최소화된 형태의 정보

사운드
배경 음악, 효과음, 음성 등

인터랙션(상호 작용)
플레이어가 게임 세계와 상호 작용하는 방법

게임 엔진은 그래픽 + 사운드 + 인터랙션과 같이 게임에 필요한 모든 요소들을 쉽게 개발할 수 있게 도와주는 고마운 친구
게임엔진은 개발에 필요한 다양한 기능과 도구를 제공하는 소프트웨어 플랫폼

게임 엔진을 사용하면 좋은 이유
커뮤니티의 존재
UDN(언리얼개발자 네트워크)(https://dev.epicgames.com/community/)
모르는 부분에 대해서 질문하면 답변을 받을 수 있는 창구

언리얼 엔진은 공식 문서 외에 유튜브 강좌, 블로그 포스트 등 무궁무진한 학습 자료 존재

자체 엔진 개발 어려운 점 존재
많은 개발 인력 필요하고 지속적인 유지 보수 업데이트 이뤄져야하기 때문에
게임 개발 집중해야 되는 회사 입장에서는 상용 엔진 상용하는 케이스 많이 존재

언리얼 엔진 사용 개발 사례
포트 나이트
애니메이션
자동차 산업에서의 활용

언리얼 엔진 실행해보기
에픽 게임즈 계정 생성->에픽 게임즈 런저 설치->언리얼 엔진 탭 -> 라이브러리에서 엔진 버전 선택해서 설치

프로젝트 생성 클릭해서 저장 경로와 프로젝트 이름 지정

이번 주차 사용할 에셋 다운로드

언리얼 러닝 키트(https://www.fab.com/ko/listings/1a2b1d97-bc88-4c3f-98b8-22369b5c3170)

만약 언리얼 프로젝트 생성한 버전 변경이 필요할 경우
프로젝트 생성 경로 폴더 내로 가서 Switch Unreal Engine Version 선택해서 버전 적용

프로젝트 정상 동작 확인


오늘 할 일

오늘 수업에서 언리얼 엔진 환경을 준비하고 프로젝트를 생성하는 법을 배웠습니다! 이제 하루 동안 아래의 과제를 수행해보며 조금 더 언리얼 엔진에 직/간접적으로 익숙해지는 시간을 가져보시기 바랍니다!

  1. 팀원 간 아이스-브레이킹

    • ✅ 간단하게 자기소개하고 팀원들의 자기소개를 들으면서 우리 팀은 어떠한 팀인지 느껴보세요.
    • ✅ 언리얼 엔진 트랙을 수료하고 어떠한 길들을 걷고 싶은지 얘기도 나누시면서 인사이트를 얻어보도록 하세요!
  2. 내가 꿈꾸는 게임 개발의 하루를 24시간 타임 로그로 작성해보기

    • 나는 어떠한 타입의 개발자에 가까울까? 내용을 참고해서 슬랙의 unreal_7기_잡담방 채널에 한 번 작성해보세요!
      • 여러분의 성향, 목표, 현실 조건을 자연스럽게 알 수 있습니다!

    내가 꿈꾸는 개발자의 하루
    08:00 기상. 밤새 생각해둔 버그 해결 아이디어가 떠오를 듯 말 듯해서 바로 침대에서 일어나 준비 시작.

    08:30 출근 준비를 마치고 지하철에 몸을 싣는다. 출근길에서도 머릿속으론 어제 못 잡은 이슈가 계속 맴돈다.

    09:00 회사 도착. 컴퓨터 켜자마자 오늘 작업해야 할 태스크가 떠오르며 정신이 번쩍 든다.

    09:30 오늘 일정과 담당 파트 관련 개발 회의를 진행. 새 기능 기획과 우선순위를 정리하면서 팀원들과 머리를 맞댄다.

    10:00 본격적인 개발 시작. 온갖 버그 리포트와 피드백이 쏟아지는 가운데, 스택 추적하고 로그 뒤지면서 하나씩 해결해 나간다. 집중력이 필요해 머리를 꽤나 굴린 시간.

    12:00 배가 고파 구내식당으로 직행. 밥 한 공기 싹 비우고, 점심 이후 졸음을 피하기 위해 10분 정도 회사 주변을 산책하며 혈당 스파이크도 방지.

    13:00 오후 개발 재개. 카페인으로 식곤증을 버티면서 팀원들과 가벼운 스몰토크도 나누며 작업 속도를 유지한다.

    14:00 갑작스러운 추가 요구사항이 발생해 일정 조정 회의가 다시 잡힘. 리스크 검토하고 우선순위 재배치하느라 잠시 정신없음.

    15:00 조율된 일정에 맞춰 재분배된 작업을 다시 정리하고 개발에 몰입. 구현 범위가 바뀐 만큼 코드 구조를 재검토하며 진행.

    17:30 오늘 진행된 작업을 바탕으로 팀원들과 리뷰 및 피드백 세션. 서로 코드 스타일과 로직을 점검하며 개선 방향 논의.

    18:00 피드백 받은 부분 수정 및 잔업 진행. 조금 빡세지만 완성도를 위해 필요한 과정이라 집중해서 마무리.

    20:00 잔업 완료 후 팀원들과 가벼운 회식. 작업 이야기도 나누고, 스트레스도 조금 풀고 나서 퇴근.

  3. 언리얼 엔진 실행 및 환경 둘러보기

    • ✅ 오늘 생성한 프로젝트를 다시 실행해보고, 편집기(에디터) 내부를 천천히 살펴보세요.
    • ✅ 상단 메뉴, 월드 아웃라이너(World Outliner), 디테일 패널(Details Panel) 등 기본 UI 요소들이 어떤 기능을 담당하는지 감각적으로 익혀봅시다.
      • 아직은 뭘 어떻게 해야할지 모를 수 있지만, 그저 "아 이 부분이 어떤 역할을 하는 공간이겠구나"라고 생각하며 편안하게 돌아다녀보세요.
  4. 공식 문서 및 커뮤니티 자료 찾아보기

    • 언리얼 엔진 공식 문서에 접속해 어떻게 생겼는지 둘러보세요.
      • 해당 사이트엔 어떤 정보들이 있고 어떻게 문서가 구성되어 있는지 익숙해지면 좋습니다!
  5. 공식 유튜브 채널 혹은 커뮤니티 살펴보기

    • 언리얼 엔진 유튜브 채널에 방문해 간단한 영상 하나를 골라 시청해보세요.
      • 간단한 소개 영상이나 에디터 활용 팁을 다룬 영상이면 좋습니다.
      • 한글 자막 지원이 안되더라도, 화면에서 어떤 부분을 다루고 있는지 시각적으로 익히는 것만으로도 큰 도움이 될거에요!

    Working Smarter in UEFN with Scene Graph | Unreal Fest Orlando 2025(https://www.youtube.com/watch?v=qS10ea2QLyg)

    영상에서 다루고 있는 핵심 내용은 Scene Graph를 활용하여 컴포넌트와 프리팹 기반의 구조를 하나의 통합된 워크플로우로 구성함으로써 작업 효율을 획기적으로 높일 수 있다는 점이다. 이러한 방식은 기존 방식처럼 개별 오브젝트나 스크립트를 따로 관리하는 형태보다 훨씬 직관적이고 일관된 흐름을 제공해 주며, 복잡한 구조를 가진 프로젝트에서 특히 큰 이점을 가진다고 볼 수 있다. 다만 영상에서는 기본적인 개념 소개 외에도 코드 레벨에서 처리되는 세부 내용이 상당히 많이 포함되어 있었기 때문에, 아직 익숙하지 않은 기술 요소들이나 구조적인 개념을 다루는 뒷부분은 이해하기가 쉽지 않았다. 특히 Scene Graph의 내부 동작 방식, 노드 간 데이터 전달 방식, 런타임 최적화 기법 등은 추가적인 학습이 필요한 부분으로 느껴졌다. 그럼에도 불구하고 영상의 전반적인 메시지는 명확했고, 향후 프로젝트 규모가 커질수록 Scene Graph 기반 워크플로우가 제공하는 장점을 체감할 가능성이 높다는 점에서 충분히 참고할 만한 가치가 있는 내용이라고 판단됐다.

      
  6. 실습해보고 싶었던 것 공부
    GAEA 2.0을 활용한 랜드스케이프 제작 및 Water System 기반 섬 맵 구성

    사전캠프에서 팀원분이 사용하시던 랜드스케이프 제작 방식이 인상 깊어, 실제로 GAEA 2.0을 활용해 지형을 생성하고 이를 언리얼 엔진 5.6에 적용하는 과정을 직접 실습해보았다. 이번 실습의 핵심 목표는 GAEA를 통해 자연스러운 지형 데이터를 생성하고, 언리얼 엔진의 WaterBodyOcean과 Water Zone 시스템을 활용해 섬 형태의 맵을 구성해보는 것이었다.

    GAEA 2.0에서는 노드 기반 그래프 방식으로 지형 형태를 직관적으로 조합할 수 있으며, 언리얼 엔진용 Output을 통해 완성된 Heightmap을 손쉽게 추출할 수 있다.

    GAEA 2.0은 노드 그래프 기반 환경으로, 사용자가 만들고 싶은 자연환경(산맥, 침식, 해안선 등)을 여러 노드로 결합하여 원하는 형태의 랜드스케이프를 구성할 수 있다. 특히 Unreal Output 기능을 활용하면, 언리얼 엔진에서 바로 사용할 수 있는 Heightmap 데이터를 자동으로 생성해주기 때문에 도구 간 연동이 매우 간편하다. 또한 아래 링크의 공식 GitHub 저장소를 통해 사용 중인 언리얼 엔진 버전에 맞는 GAEA 플러그인을 다운로드하여 엔진의 Plugins 폴더에 적용하면, GAEA와 언리얼 간의 연동 기능을 확장할 수 있다.

    플러그인 링크:
    https://github.com/QuadSpinner/Gaea2Unreal/tree/UE-5.6?ref=blog.quadspinner.com

생성된 Heightmap을 언리얼 엔진 Landscape 모드에서 불러오면, GAEA에서 구성한 지형 형태 그대로 레벨이 형성된다.

언리얼 엔진의 Landscape 모드에서 GAEA에서 export한 Height 이미지를 Import하면, 노드 기반으로 구성한 지형의 높낮이가 그대로 반영된 맵이 생성된다. 이를 통해 별도의 모델링 작업 없이도 자연스러운 산지·해안선·지형 굴곡을 빠르게 재현할 수 있었다.

이후 섬 형태의 환경을 구현하기 위해, 레벨 내에서 섬으로 표현할 영역을 기준으로 WaterBodyOcean을 배치하고, 이에 대응하는 Water Zone을 함께 적용하였다. Water System을 활용하면 수면의 높이, 해안선 부드러움, 파도 효과 등을 세밀하게 조정할 수 있어 시각적으로 자연스러운 해양 환경을 구성할 수 있다.

WaterBodyOcean과 Water Zone을 적용하여 섬 주변을 감싸는 해양 환경을 구성한 모습

이번 실습을 통해 랜드스케이프 제작 툴과 언리얼 엔진의 워터 시스템을 함께 사용하는 전체 워크플로우를 직접 경험해볼 수 있었고, 특히 지형 생성 → 맵 불러오기 → 수면 시스템 설정까지 이어지는 작업 흐름이 생각보다 자연스럽고 효율적이라는 점을 체감할 수 있었다. 앞으로도 다양한 지형 노드와 워터 설정을 더 깊게 익히면, 훨씬 더 사실적이고 복잡한 월드 환경을 구현할 수 있을 것으로 기대된다.

profile
개발합시다!

0개의 댓글