2024 캡스톤디자인과창업프로젝트 팀 33 아리아리
저승과 이승의 경계에 존재하는 삼도천 부근의 한 마을을 배경으로, 변호사와 검사 팀으로 나뉜 플레이어들이 ‘망자’라 불리우는 자들의 전생을 조사하고 선악을 판별하여 그들의 운명을 천국 또는 지옥으로 결정하는 AI 채팅 기반 3D 멀티플레이 재판 시뮬레이션 게임
QuackToHell은 Unreal Engine 5.4 기반의 멀티플레이 재판 시뮬레이션 게임입니다.
플레이어는 검사 또는 변호사가 되어 AI 증인을 상대로 심문하고, 논리적 우위를 점해 재판에서 승리하는 것이 목표입니다.
본 프로젝트는 OpenAI API를 통한 자연어 대화 시스템, 동기화된 로비 및 게임 세션, 사용자 상호작용 중심의 게임 흐름을 포함합니다.
-
언리얼 엔진 5.4를 설치합니다.
-
본 레포지토리를 클론합니다.
-
프로젝트 루트 경로에
OpenAIAuth.ini파일을 생성합니다. -
메모장 등으로 파일을 열고 다음 내용을 추가합니다:
ApiKey=준비한 OpenAI key -
QuackToHell.uproject파일을 더블 클릭하여 언리얼 에디터로 엽니다. -
팝업이 나타나면 '예(Yes)'를 클릭합니다.
- 언리얼 에디터 상단 메뉴에서
Tools > Generate Visual Studio(Rider) project를 클릭합니다. - 클론된 폴더에 생성된
QuackToHell.sln파일을 Visual Studio 또는 Rider로 실행합니다. - IDE 내에서
Build를 실행하여 컴파일합니다.
- 언리얼 에디터 상단의 점 세 개 버튼 클릭 →
Number of Players를 2로 설정 Edit > Editor Preferences > Process 검색 > Run Under One Process해제- 상단 초록색 ▶ 버튼을 클릭하여 멀티플레이 테스트 실행
| 폴더 | 설명 |
|---|---|
Actors/ |
재판장 내 상호작용 가능한 사물 (예: 증거물, 오브젝트) 관리 |
Animation/ |
캐릭터 애니메이션 블루프린트 및 애님 인스턴스 |
Character/ |
플레이어 및 NPC 캐릭터 클래스 정의 |
ClientTest/ |
클라이언트 테스트를 위한 기능 구성 또는 임시 테스트 코드 |
Game/ |
GameMode, GameState, PlayerState 등 전체 게임의 핵심 흐름 제어 |
GameData/ |
구조체, ENUM, 상수 값 등 게임 전역에서 참조되는 정의 모음 |
NPC/ |
AI NPC 관련 클래스 및 AIController, 행동 트리 등 |
Player/ |
PlayerController, 입력 처리 및 클라이언트 전용 UI 연결 등 |
Private/ |
모듈 내부용 클래스 (언리얼 모듈 시스템에 따른 구조) |
Public/ |
외부에 노출되는 헤더 파일 집합 |
UI/ |
사용자 인터페이스 위젯 (WBP 등) 및 HUD 구성 요소 |
| 이름 | 역할 |
|---|---|
| OpenAI API (GPT) | NPC의 대사 및 반응 생성에 사용되는 핵심 언어 모델 |
| Unreal Engine 5.4 | Epic Games의 게임 엔진. C++ 기반 게임 개발 플랫폼 |
| Slate / UMG | UI 구축 프레임워크로, 버튼/텍스트/애니메이션 UI 처리 |
※ 상기 오픈소스는 각각 해당 라이선스를 따르며, 상세 사항은 공식 문서를 참조하세요.
| 전유진 : PM, 클라이언트 | 박시언 : 기획, AI | 유서현 : 기획, 서버 |
|---|---|---|
- 매주 월요일 6시 반 공대 109호에서 대면으로 진행 / 목요일 졸프시간에는 그날 공지 확인 & 체크리스트 업데이트
- 처리해야할 사항은 그 자리에서 처리하거나 마감기한을 세우거나 둘 중에 하나 (대충 나중에 할까요? XXX)
- 회의 시작 전까지 회의록 미리 읽고 오기
- **회의 중 실시간 결정되는 것들은 잊지 않도록 형광펜 표시하기
- 항상 회의록 목차대로 진행하기. (현재 목차에 해당하지 않는 이야기는 X)
- 중간에 생각나는 말이 있으면,
- 마지막으로 하고싶은 말 목차 누르기
- 그 때 생각났던 말 미리 써두기
- 마지막으로 하고싶은 말 목차 때에 얘기하기.
- 중간에 생각나는 말이 있으면,
- 항상 화면 공유 기반으로 회의 진행
- PM: 회의 진행 시에
- 팀원: 진행 상황 공유 시에
- 카톡은 잡담 / 팀즈는 업무 관련. 잘 분리하기
- 다른 팀원이 아이디어를 제안했을 때에는 무조건 칭찬 먼저 해주고 의견 얘기하기
- 비대면 회의 시 화상 카메라 켜기
- 반말/ 존댓말 MIX
- 존댓말을 하는 순간은, 집중하자!! 는 뜻!
- 핵심 구현 사항이 아닌 사소한 의견은 팀즈 디벨롭의견방에 적어두고 디벨롭 시기에 처리하기
- AI 도움 최소화, gpt 답변 이해없이 그대로 사용 금지!!
- 다른 팀원 역할도 알고있기!
- 플젝 흐름 파악에 도움이 되어요.
- 아는 거면 바로바로 도울 수 있어요.
- 진심과 애정을 갖고 하자! 애정이 기반되면 결과물은 저절로 따라온다.
- 모르는 부분에 대해서는 적극적으로 질문하기
- 어려운 사항이 있다면 솔직하게 이야기하기
-
벌금 : 1만원
-
개인의 공부 일지를 모두 볼 수 있는 공간에 업데이트하기
- 4시 반 뻐꾸기 : 토요일 4시 반에 새로운 공지사항 있는지 체크
- ★★★칼답을 습관화하자★★★ 안읽씹 금지