/Choconomy

크래프톤 정글 2기 레드반 나만의 무기 1팀 프로젝트

Primary LanguageHTML

크래프톤 정글 2기 레드반 나만의 무기 1팀 프로젝트 Choconomy

프로젝트 원본 링크: https://github.com/djinii/Choconomy

필수 환경:

  • Node.js 18버전 이상 필요
  • Redis 데이터베이스 설치 필수

설치해야 하는 모듈 (npm install 명령어 사용)

  • "body-parser": "^1.20.2"
  • "cookie-parser": "^1.4.6"
  • "dotenv": "^16.3.1"
  • "express": "^4.18.2"
  • "express-session": "^1.17.3"
  • "http": "^0.0.1-security"
  • "ioredis": "^5.3.2"
  • "module_name": "^1.0.0"
  • "moment": "^2.29.4"
  • "mongoose": "^7.4.3"
  • "nodemon": "^3.0.1"
  • "path": "^0.12.7"
  • "phaser": "^3.60.0"
  • "redis": "^4.6.7"
  • "socket.io": "^4.7.2"
  • "socket.io-client": "^4.7.2"

프로젝트 설명

진행 기간:

2023년 7월 19일 ~ 8월 11일 (약 3주)

참여 인원:

  • 정다진 (팀장)
  • 이연주
  • 하지원

개요:

크래프톤 정글 2기 나만의무기 1조 최종 프로젝트

Choconomy는 영어 단어 Choice와 Economy를 합친 단어이며, 경제 관념을 쉽고 재미있게 배우고, 실생활에서도 올바르게 경제적 결정을 하고 돈 관리하는 방법을 배울 수 있는 게임

게임 진행 방식:

  • Nickname 입력 칸에 사용자 명을 입력하고 Create 버튼을 누르면 'success'라는 알림창이 뜹니다. 그 이후에 Ready 버튼을 누르면 '준비가 완료되었습다'라는 창이 뜨면 접속 완료됩니다.
  • 게임 시간이 지남에 따라 돈과 체력 값이 떨어지는데, 상점에서 아이템을 구매하여 체력 및 능력치를 높일 수 있습니다.
  • 미니 게임: 체력을 높이거나 돈을 벌기 위해 미니게임을 즐길 수 있습니다. 경찰서, 은행, 병원 건물에서 각각 직업이 경찰, 은행원, 의사이면 "직원이에요" 버튼을 누르면 OX 퀴즈를 풀어서 맞은 만큼 포인트를 획득하고 돈을 벌 수 있습니다. 다른 직업일 경우 돈 대신 능력치가 상승합니다.
  • 채팅: 실시간 채팅 기능을 통해 다른 유저들과 정보를 공유할 수 있습니다.
  • 게임 종료 조건: 시간이 모두 초과되거나, 체력 혹은 돈이 0이 되면 게임이 종료됩니다.

나의 역할:

  • 퀴즈 미니게임 로직 구현
  • REST API(GET, POST) 및 Socket IO를 통한 돈, 체력, 지식 등의 값 실시간 변동 기능 구현 보조
  • 배경음 추가 및 배경음 토글 버튼 구현

나의 기술적 챌린지:

  • 시간 값을 포함하여 돈, 체력, 능력치 등의 값을 서버에서 클라이언트로 보낼 때 "socket" 변수의 위치 문제로 인해 socket.emit() 방식으로 보내는데 어려움을 느껴 io.emit()이 사용자 전체에게 이벤트와 변수를 전달함을 알고 있었음에도 이 방식으로 전달했지만, 결국 여러 사용자가 접속하면 서로의 값이 겹치면서 깜빡이는 버그를 발생하여, 시간 단위로 실시간으로 변하는 돈과 체력 수치는 sockete.emit()으로 전달이 가능하게끔 코드를 수정했고, 그 외의 나머지 능력치, 예금, 대출 등의 값들은 REST API의 POST로 전달되도록 하여 문제 해결.

포스터

Alt text