Skip to content

blue-birds/poor-guys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

462 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 Poor Guys (풀 가이즈)

풀가이즈_최종발표_표지

목차


프로젝트 소개

개발 동기 및 목적

'풀 가이즈'는 에픽 게임즈(Epic Games)에서 서비스하고 있는 폴 가이즈(Fall Guys)를 벤치마킹해서 만든 3D 플랫포머 게임입니다. 멀티 플레이가 가능하고 회원 관리가 웹 게임 플랫폼에서 이루어진다는 점이 특징입니다. 웹과 게임, Python FastAPI와 C++ IOCP, C# Unity 등 사용하는 언어와 관심사가 전부 다른 팀원들과 소통을 통해 하나의 결과물을 만들어가는 과정이었습니다.


서비스 소개

에픽 게임즈(Epic Games)에서 서비스하고 있는 폴 가이즈(Fall Guys)를 벤치마킹해서 만든 3D 플랫포머 게임입니다.

  1. 🪜 멀티 플레이 게임

  2. 🗺️ 2개의 게임 월드 맵

  3. 🫂 솔로, 듀오, 스쿼드 등의 모드 선택이 가능한 로비 시스템

  4. 🕸️ 회원 관리가 이루어지는 웹 게임 플랫폼


개발 기간

2022.11.25 - 2023.02.24


팀원 소개

김정도 김민관 임우영 홍지현
Platform & Lobby Game Client Full Stack Game Server

주요 기능

  • ✏️ 웹 게임 플랫폼
  • 🗨️ 로비 및 매치 메이킹
  • 🎮 인게임 플레이

  • ✏️ 웹 게임 플랫폼
회원 가입 로그인
• 패스워드는 bcrypt로 암호화
• 로그인 성공 시 쿠키에 JWT 토큰 저장
• Redis에 접속 상태 동기화
게임 설치 게임 실행
• 빌드 파일로 설치 및 게임 클라이언트 생성
• 클라이언트 레지스트리에 Custom URL Scheme 등록
• Scheme에 등록된 경로로 게임 클라이언트 실행
• 매개변수로 유저ID 및 닉네임 전달

  • 🗨️ 로비 및 매치메이킹
로비 화면 매치메이킹
• 사운드 및 게임 모드 설정
• 로비 서버와 매치메이킹 서버 간 소켓 연결
• 게임 클라이언트와 FastAPI 서버 간 HTTP 통신
• FastAPI 서버는 IOCP 서버에 프로토콜 버퍼 패킷 전송

  • 🎮 인게임 플레이
게임 스타트 게임 플레이
• 본인 캐릭터는 ⚪️ 표시
• 매칭된 유저들의 로딩이 모두 완료될 때까지 대기
• 장애물을 피해서 목적지까지 이동
• 추락 시 출발지로 다시 리스폰
도착 및 관전 모드 승리 및 게임 종료
• 도착 시 관전 시점으로 전환
• 목표 인원을 달성하면 다음 스테이지로 이동
• 최종 스테이지에서 승리 시 게임 종료

시작 가이드

  • Python 3.9
  • FastAPI 0.62.0
  1. 프로젝트 클론
git clone https://github.com/blue-birds/poor-guys.git
  1. 서버 실행
(1) 게임 서버 실행
binary/server/Debug/ServerGame.exe

(2) NPC 서버 실행
binary/server/Debug/ServerNpc.exe

(3) 매치 서버 실행
binary/server/Debug/ServerMatch.exe

(4) 웹 서버 실행
cd src/ServerPlatform
pip install -r requirements.txt
uvicorn app.main:app --reload

DB 설계


기술 스택


플로우 차트


개발 주안점

🌉 Custom URL Scheme

웹 개발과 게임 개발을 접목하기 위해서 웹 게임 플랫폼을 개발하게 되면서 웹을 통해 접속한 유저를 어떻게 게임 클라이언트로 전달할 것인가에 대한 문제를 해결해야 했습니다. 유저가 어떻게 클라이언트를 설치하도록 할 것이며, 실행할 수 있도록 할 것이며, 클라이언트가 해당 유저의 정보를 어떻게 특정할 것인지 등이 예상되는 문제점들이었습니다.

이 모든 것들을 해결할 수 있는 방법이 Custom URL Scheme를 활용하는 것이었습니다. Custom URL Scheme는 사용자가 직접 만드는 Scheme입니다. 사실 엄밀히 이야기하면 Custom URI Scheme가 더 올바른 표현입니다. URI는 특정한 리소스에 대한 위치 정보를 제공합니다. 해당 자원에 접근했을 때 어떤 유형인지 식별하여 처리하기 위한 정보를 URI Scheme라고 하며, http, ftp, mailto 등과 같이 공식적으로 지정되고 관리되는 Official URI Scheme도 있지만 사용자가 직접 지정할 수도 있도록 대부분의 OS가 지원합니다. 이 방법을 통해 클라이언트의 컴퓨터에 bluebird Custom URI Scheme를 등록해 웹에서 게임 클라이언트를 실행하도록 처리할 수 있었습니다.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors