올라락! 깨구락!은 언리얼엔진으로 개발된 멀티플레이 플랫포머 게임입니다.
게임 내에서 로비 화면전환 연출 위한 카메라 컴포넌트, 게임 내 장애물 설계를 비롯해
방목록UI와 게임 진행도UI 등 UI들을 맡아서 구현했습니다.
🎥 아래의 사진을 클릭시 구현 동영상을 보실 수 있습니다.
- Unreal Engine 5.5
- C++ / Blueprint 혼합 구조
- Rider
| 항목 | 내용 |
|---|---|
| 장르 | 수직 플랫포머 게임 |
| 플랫폼 | PC (Steam 연동) |
| 게임 컨셉 | 두 가지 방식을 지원합니다. 1. 맵 에디팅을 통해 직접 맵을 생성후 플레이 2. 스토리를 따라 스테이지형 맵을 플레이 |
| 담당 개발 내용 | 게임 장애물 개발, 친구목록 등 UI, 게임 진행도 UI, 음성퀴즈 (AI 협업, WebSocket) |
구현 기능의 소스 코드는 각 소제목 밑의 링크를 통해 확인하실 수 있습니다.
각 기능의 더 자세한 설명은 여기서도 확인하실 수 있습니다.
게임의 전반적인 UI 및 UX 개발을 담당했습니다.
- 친구목록 UI: Stream API를 활용해 현재 로그인 중인 친구 목록을 표시할 수 있습니다.
- 방 목록 UI: 멀티플레이 시 참여할 수 있는 세션 목록을 보여줍니다.
![]() |
![]() |
- 각 목록 UI에는 오브젝트 풀링을 적용하여, 반복 생성 없는 UI 위젯 재활용 구조로, 메모리 낭비 없이 성능을 극대화했습니다.
메인로비, 스테이지, 커스텀 게임 화면 등 화면 시점을 다르게 보여주는 연출에서 UI간 순환참조를 방지하기 위해 카메라 컴포넌트를 구현하였습니다.
CameraComp.mp4
멀티플레이시 게임 시작 지점(Prop)과 끝 지점(Prop)의 z좌표 위치를 받아와 1등 플레이어를 기준으로 전체 진행률을 계산하는 UI를 구현하였습니다.
ProgressUI.mp4
게임 내 다양한 오브젝트(장애물, 장식물, 건축물 등)의 공통 기반 클래스인 ABaseProp을 설계한 뒤, 하위 클래스인 AObstacleProp(장애물) 로직을 구현하였습니다.
| 이름 | 구현 방식 요약 |
|---|---|
ABouceBollardProp |
LaunchCharacter를 통해 캐릭터 진행 방향의 반대로 튕겨내는 막대 구현 |
ARotateHammerProp |
LaunchCharacter를 통해 Prop의 UpVector 방향으로 튕겨내는 망치 구현 |
ARotatePlatformProp |
AddLocalRotation을 통해 회전하는 플랫폼(바닥)을 구현 |
ATrampolineProp |
LaunchCharacter를 통해 Prop의 UpVector 방향으로 튕겨내는 트램펄린 구현 |
ACannonBallProp |
LaunchCharacter를 통해 Prop의 ForwardVector 방향으로 튕겨내는 대포알 구현 |
AConveyorBeltProp |
AddActorWorldOffset을 통해 플레이어를 가속/감속 |
ObstacleProp.mp4
장애물 충돌 발생 LaunchCharacter 소스코드
클라이언트 예측 LaunchCharacter 소스코드
- 게임 내 존재하는 대포, 트램펄린, 튕김 막대 등 대다수의 장애물이
LaunchCharacter로 구현되었습니다. - 멀티플레이에서 장애물 충돌 동기화를 위해 클라이언트 예측 구조를 사용하였습니다.
- 기존 방식: 서버가 충돌 감지 →
Multicast로 튕김 반응 적용 (문제: 서버·클라이언트 위치 불일치 시 충돌 누락) - 개선 방식: 클라이언트가 먼저
LaunchCharacter()로컬 실행 → 서버에 RPC 요청으로 권한 확정 → 서버가Multicast로 전체 동기화
- 기존 방식: 서버가 충돌 감지 →
- 대포가 일정 시간마다 대포알을 발사하는 장애물에서, 오브젝트 풀링(Object Pooling)을 적용해 대포알을 재사용했습니다.
- AI 팀과의 협업으로, 플레이어의 대답을 기반으로 유사도를 판단해 통과 시 플레이어에게 버프를 부여하는 장애물을 구현했습니다.
SoundQuiz.mp4
- 플레이어의 음성 입력을 실시간으로 녹음 후, AI 서버와 WebSocket을 통해 주고받으며 음성 유사도를 판별해 퀴즈 결과를 처리하는 시스템을 설계했습니다.
- 음성 퀴즈 시스템의 청크 문제, 컨베이어벨트 장애물의 반복자 무효화 문제 를 해결했습니다.
- 프로젝트 관련 트러블 슈팅은 여기에서 확인하실 수 있습니다.


