2026/08 10

기획 맛보기 #3 — 게임의 시스템과 콘텐츠는 어떻게 상호작용하는가

오늘의 한 문장시스템은 플레이가 작동하는 규칙이고, 콘텐츠는 그 규칙을 이용해 플레이어가 실제로 경험하는 대상이다.1. 시스템과 콘텐츠의 차이게임을 구성하는 요소는 크게 로직과 데이터, 또는 시스템과 콘텐츠의 관점으로 나눠볼 수 있다.시스템: 여러 대상에 반복 적용되는 규칙과 구조콘텐츠: 그 규칙을 이용해 만들어진 개별 대상과 경험예를 들어 RPG의 아이템을 생각해보자.시스템아이템을 획득할 수 있다.인벤토리에 보관할 수 있다.같은 아이템은 최대 99개까지 중첩된다.장비 아이템은 지정된 슬롯에 착용한다.소비 아이템은 사용하면 효과가 발동하고 수량이 감소한다.콘텐츠체력을 50 회복하는 하급 물약공격력이 20 증가하는 철검화염 저항을 부여하는 붉은 반지사용하면 마을로 이동하는 귀환 주문서즉, 인벤토리와 장착·..

TIL 2026.08.14

기획 맛보기 #2 — 시스템 기획, 콘텐츠 기획, 시나리오 기획의 차이

오늘의 한 문장시스템 기획은 게임의 규칙을 만들고, 콘텐츠 기획은 그 규칙으로 플레이할 거리를 만들며, 시나리오 기획은 플레이에 의미와 맥락을 부여한다.1. 게임 기획은 하나의 직무가 아니다공부 자료에서는 게임 기획을 다음과 같이 구분했다.시스템 기획: 게임의 구조와 규칙을 설계한다.콘텐츠 기획: 시스템 위에 플레이할 내용을 채운다.시나리오 기획: 세계관과 이야기, 캐릭터의 서사를 만든다.이를 건물에 비유하면 이해하기 쉽다.시스템 기획 = 건물의 구조와 설비콘텐츠 기획 = 건물 안의 가구와 활동시나리오 기획 = 그 공간이 존재하는 이유와 이야기세 분야는 서로 독립적이지 않다. 시스템이 없으면 콘텐츠가 작동할 수 없고, 콘텐츠가 없으면 시스템을 경험할 수 없다. 시나리오는 플레이어가 그 행동을 해야 하는 ..

TIL 2026.08.13

기획 맛보기 #1 — 게임 기획이란 무엇인가

오늘의 한 문장게임 기획은 머릿속의 아이디어를 팀이 같은 방향으로 이해하고, 개발자가 실제로 구현하고 테스트할 수 있는 명세로 바꾸는 과정이다.1. 아이디어와 기획은 다르다“적을 쓰러뜨리는 재미있는 액션 게임을 만들고 싶다”는 아이디어다. 만들고 싶은 방향은 보이지만, 이것만으로는 개발을 시작하기 어렵다.개발하려면 적어도 다음 질문에 답할 수 있어야 한다.플레이어는 어떤 행동을 하는가?승리와 실패는 언제 결정되는가?공격이 적에게 적중했는지는 어떻게 판정하는가?적이 죽으면 무엇을 얻는가?획득한 보상은 다음 플레이에 어떤 영향을 주는가?플레이어에게 결과를 어떻게 전달하는가?Unity 역시 게임 디자인 문서인 GDD를 콘셉트부터 게임 규칙, 조작법, 시각 요소, 개발 일정까지 담는 개발의 청사진으로 설명한다...

TIL 2026.08.12

[Project 4조참치] 게임 기획 회의를 ‘결정’보다 ‘검증 가능한 탐색’으로 운영해보기

팀 프로젝트로 멀티플레이 게임을 만들기 전, 각자 만들고 싶은 게임을 제안하고 투표했다. 그 결과 표를 많이 받은 기획 세 개를 추렸지만, 지금 단계에서 곧바로 최종 기획 하나를 확정하는 것은 이르다고 느꼈다.아직 개인 과제와 학습 기간이 남아 있고, 실제 제작은 다음 챕터에서 진행한다. 그래서 이번 팀 시간은 “최종 게임을 고르는 회의”보다, 팀이 어떤 멀티플레이 경험을 만들고 싶은지 함께 구체화하는 시간으로 운영해보려고 한다.운영 방식각 기획 제안자가 먼저 아래 항목을 노란 스티키로 작성한다.타깃·상황핵심 루프차별점최소 구현폐기 기준가장 큰 위험다음 행동다른 팀원은 파란 스티키로 의견을 단다. 단순히 “좋다”, “재밌을 것 같다”가 아니라 다음 형식으로 적는다.[질문] 아직 이해되지 않거나 구체화가 ..

TIL 2026.08.11

[Unreal Engine 멀티플레이] 멀티플레이 핵심 개념 통합 복습

0. 가장 먼저 기억할 한 문장클라이언트는 행동의 의도를 보내고, Ownership이 요청 경로를 정하며, 서버가 권위 있는 원본을 검증·변경한다. 지속 상태는 Property Replication으로, 특정 대상의 순간 피드백은 RPC로 전달하고, 각 클라이언트는 받은 결과를 UI와 로그로 표현한다.숫자 야구의 타자 추측 흐름으로 쓰면 다음과 같다.Client A 입력→ Client A가 소유한 PlayerController의 Server RPC→ 서버 PlayerController→ 서버 GameMode 검증·판정→ 서버 원본 상태 변경├─ GameState Property Replication → Client A/B OnRep → 공용 UI·로그└─ PlayerController Client RPC..

TIL 2026.08.10

[Unreal Engine 멀티플레이] 패키징과 Dedicated Server 배포 준비

오늘의 목표에디터의 PIE에서 실행하는 것과 실제 패키징된 게임의 차이를 이해하고, 일반 Game 빌드와 Dedicated Server 배포에 필요한 준비 사항을 점검했다.추가로 서버가 잘못된 입력을 거부했을 때, 요청한 플레이어에게만 오류를 보여주는 Client RPC 시스템 로그도 구현했다.1. PIE와 패키징 실행의 차이PIE는 Unreal Editor 내부에서 빠르게 게임을 시험하는 개발 환경이다. 에디터가 콘텐츠와 모듈을 직접 제공하므로, 패키징에서 누락될 자산이나 실행 환경 문제를 발견하지 못할 수 있다.반면 패키징 실행은 다음 과정을 거친 독립 프로그램이다.Build: C++ 코드와 모듈 컴파일Cook: 맵, Blueprint, 이미지 등의 자산을 플랫폼용으로 변환Stage: 실행에 필요한 ..

TIL 2026.08.07

[Unreal Engine 멀티플레이] 게임 사이클과 복제 최적화

멀티플레이 게임의 전체 흐름은 클라이언트 UI가 아니라 서버 상태 머신이 결정한다.Lobby → Countdown → Playing → Ending → Returning → Lobby클라이언트는 버튼을 누르거나 화면을 표시할 뿐이고, 실제 참가·시작·승패·종료·복귀 판정은 서버가 책임진다.1. 게임 사이클의 상태 책임클래스책임GameMode서버 전용. 상태 전이, 참가자 관리, 시작 조건, 승패 판정, 종료 처리GameState모두가 봐야 하는 현재 경기 상태를 복제. 현재 단계, 종료 시각, 생존자 수, 최종 결과PlayerState플레이어별 지속 상태. 생존/탈락/관전자 여부, 등수, 팀PlayerController각 플레이어의 입력과 개인 UI. Server RPC 요청 창구, Client RPC ..

TIL 2026.08.06

[Unreal Engine 멀티플레이]전투·애니메이션·컴포넌트 동기화

핵심 원칙전투 기능은 입력, 서버 판정, 애니메이션, 피해 상태, UI를 분리한다.클라이언트 입력→ Server RPC→ 서버 검증·명중 판정·피해 적용→ 지속 상태 복제→ 각 클라이언트 UI 갱신클라이언트는 공격 의도를 요청하고 화면을 표현한다. 서버는 공격 가능 여부, 명중 대상, 피해량, 사망을 최종 결정한다.RPC와 Property Replication 구분Server RPC: 클라이언트가 서버에 공격을 요청할 때 사용한다.NetMulticast RPC: 공격 몽타주, 타격 이펙트, 사운드처럼 한 번 재생하면 끝나는 표현에 사용한다.Property Replication: 체력, 사망, 보호막처럼 늦게 접속한 플레이어도 현재값을 알아야 하는 상태에 사용한다.예를 들어 공격 이펙트는 늦게 접속한 플레..

TIL 2026.08.05

[Unreal Engine 멀티플레이] 남은 시간이 아닌 마감 시각을 복제하는 서버 권위 타이머

오늘의 학습 목표오늘은 멀티플레이 숫자 야구의 타자 입력 제한 시간을 구현하면서 네트워크 타이머를 동기화하는 방법을 학습했다.핵심은 서버가 15, 14, 13...처럼 남은 시간을 계속 보내는 것이 아니다.서버는 타이머가 언제 끝나는지를 나타내는 마감 시각 하나만 복제하고, 각 클라이언트가 동기화된 서버 시간과 비교해 남은 시간을 직접 계산한다.남은 시간 = 마감 서버 시각 - 현재 서버 시각이 구조를 사용하면 네트워크 복제 횟수를 줄이면서도 모든 클라이언트에서 비슷한 카운트다운을 표시할 수 있다.1. 핵심 아이디어현재 서버 시간이 100초이고 제한 시간이 15초라고 가정해 보자.서버는 다음 값을 계산한다.마감 시각 = 100 + 15 = 115초그리고 115라는 고정된 마감 시각을 Ga..

TIL 2026.08.04

[Unreal Engine 멀티플레이] 서버 권위 기반 숫자 야구 구현

오늘의 학습 목표오늘은 언리얼 엔진의 서버 권위 구조를 기반으로 멀티플레이 숫자 야구를 구현했다.주요 구현 내용은 다음과 같다.GameMode와 GameState의 책임 분리PlayerController의 Server RPC를 통한 입력 전달서버에서 투수의 정답과 타자의 추측 검증GameState Replication을 통한 TRY, HIT, OUT 동기화3아웃 달성 시 공수 교대클라이언트 조작과 잘못된 RPC 요청 방지1. 숫자 야구의 네트워크 흐름이번 숫자 야구에서는 투수가 정답 숫자를 가지고 타자가 숫자를 추측한다.게임 규칙은 다음과 같이 구성했다.서버가 투수의 정답을 관리한다.타자가 숫자를 입력한다.타자의 PlayerController가 Server RPC를 호출한다.서버가 입력 형식과 플레이어 ..

TIL 2026.08.03