About me
home
Portfolio
home

C언어 프로젝트 [Getout]

날짜
2021/09/07 → 2021/12/22
1 more property
GetOut-SDL2-Game-Project
youngjr0527

Getout - SDL2 기반 공포 방탈출 액션 퍼즐 게임

2021년 2-2 '프로그래밍방법론및실습'과목 기말 팀 프로젝트

Getout이란 게임은 C언어와 SDL2 라이브러리를 활용하여 개발된 Top-down 형식의 공포 방탈출 액션 퍼즐 게임이다. 플레이어는 납치범의 집에서 깨어나며, 주어진 퍼즐을 해결하고 장애물을 극복해 탈출해야 한다.

게임 개요

장르: 공포, 방탈출, 액션, 퍼즐
플레이 타임: 약 15분
개발 환경: Ubuntu 18.04, C언어, SDL2 라이브러리
주요 특징:
퍼즐 해결: 디지털 논리설계 개념을 적용한 논리 게이트 퍼즐, 키 패드 퍼즐
액션 요소: 샷건을 활용한 주변 오브젝트와의 상호작용을 통해 적을 처치
스토리 및 엔딩: 명확한 목적, 스토리, 엔딩이 존재하는 게임

빌드 및 실행

Ubuntu 18.04에서 다음의 컴파일러 및 라이브러리 버전을 사용하여 개발되었다.
gcc 5.4.0
SDL2 version 2.0.4
make 4.1
1.
이 프로젝트의 저장소를 클론한다.
2.
Getout/src 디렉토리로 이동하여 makefile을 사용해 컴파일한다.
3.
상위 디렉토리에서 실행 파일을 실행한다.(./Getout)

조작 방법

이동: WASD 키
상호작용: Spacebar 키
퍼즐 해결: 마우스 드래그 & 드랍

소스코드 구조

프로젝트의 전체적인 소스코드 구성을 보여주는 다이어그램. 각 파일의 역할과 상호작용을 간략하게 설명한다.

게임 루프 구조

Getout 게임의 핵심 루프 메커니즘을 도식화한 그래프

플레이 스크린샷

Stage 1

Stage 1에서 플레이어는 납치범의 집에서 깨어난다. 여기서의 목표는 주변을 탐색하며 숨겨진 퍼즐과 힌트를 찾아, 잠겨 있는 방문을 열고 다음 단계로 나아가는 것이다. 디지털 논리 설계 개념에 기반한 다양한 논리 게이트 퍼즐을 해결하고, 키 패드 자물쇠를 풀어내는 과정에서 추리력이 필요하다.

Stage 1(퍼즐 예시)

Stage 2

Stage 1에서는 넓은 거실로 이동한 플레이어가 납치범과 직접적으로 마주하게 된다. 납치범은 무기를 들고 플레이어를 추격하기 시작하며, 곳곳에 배치된 위험한 오브젝트들을 피하면서, 샷건을 찾아 범죄자를 제압해야 한다. 최종적으로는 현관문을 통해 집을 탈출하는 것이 목표이다. 이 단계에서는 빠른 판단력과 액션 게임에 대한 숙련도가 요구된다.