프로젝트 원본 링크: https://github.com/djinii/Choconomy
- Node.js 18버전 이상 필요
- Redis 데이터베이스 설치 필수
- "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로 전달되도록 하여 문제 해결.