[LMS7 14/28주차] 0812 Qt 개인 프로젝트, "라이어게임" 개발 계획서

2025. 8. 17. 12:15·C++/Project

00. 개발 계획서

제출일 : 2025.08.16(토)

​

프로젝트 개발 계획서
프로젝트
라이어 게임
개발인원
이명진
활동일시
25.08.14 ~ 25.08.20
장소
공학 1관 드론융합실
주요주제
상대방을 속여 최후의 승자가 되거나 협력하여 공동의 승리를 할 수 있는 멀티플레이어 심리 게임 구현
개발 환경
- OS : Ubuntu 24.04.2 LTS
- Language : C++
- IDE : Qt Creator, MySQL
구현예정기능
- 회원가입 : 사용자로부터 아이디, 비밀번호, 닉네임 등의 정보를 받아 MySQL 데이터베이스에 안전하게 저장하고, 비밀번호는 암호화하여 저장함.
​
- 로그인: 사용자가 입력한 아이디와 비밀번호를 데이터베이스의 정보와 비교하여 인증을 처리.
​
- 회원정보 찾기 (아이디/비밀번호 찾기): 사용자가 등록한 이메일 주소 등을 통해 아이디를 찾거나, 비밀번호를 재설정할 수 있는 기능을 제공.
​
- 회원정보 변경: 로그인한 사용자가 개인 정보를 수정할 수 있도록 함.
​
- 방 생성 및 참여: 사용자가 직접 게임방을 만들거나, 다른 사용자가 만든 방에 참여할 수 있는 기능을 구현.
​
- 일반 채팅: 게임 시작 전, 대기실이나 로비에서 플레이어들이 자유롭게 대화할 수 있는 채팅 기능을 제공.
​
- 게임 채팅: 게임 시작 후, 라운드당 한 번씩만 채팅할 수 있도록 제한하여 무분별한 힌트 노출을 방지하고 심리전을 강화.
​
- 카테고리 : 게임 시작 전, 플레이어들이 카테고리를 선택.
​
- 단어 분배 : 서버는 선택된 카테고리에서 무작위로 정답 단어와 라이어 단어를 선정. '라이어'를 제외한 모든 플레이어에게는 정답 단어를, '라이어'에게는 정답과 연관성이 낮은 다른 단어를 보여줌.
예상문제점
- 네트워킹 및 동기화 문제 : 멀티플레이어 게임 특성상 네트워크 지연이 발생하면 게임 진행에 문제가 생길 수 있음.
​
- 공정성 문제 : 승패에 영향을 주는 중요한 데이터가 클라이언트에서 조작될 경우, 게임의 공정성이 무너질 수 있음.
​
- 게임 밸런스 : 게임 규칙이 너무 복잡하거나, 특정 전략이 너무 강력하면 게임의 재미가 반감될 수 있음.
유스케이스
01. 참조
요구사항 명세서
02. 참조
순서도
03. 참조
화면 구성도
04. 참조
목업
05. 참조
일정표
06. 참조
테이블 명세서
07. 참조
ERD
08. 참조

01. 유스케이스


02. 요구사항 명세서

기능적 요구사항
ID
기능명
세부내용
UC
FR01
회원가입
- 아이디, 비밀번호, 닉네임으로 회원가입할 수 있어야 함.
- 비밀번호는 암호화되어야 함.
UC01
FR02
로그인
- 아이디와 비밀번호를 입력하여 로그인할 수 있어야 함.
UC02
FR03
회원정보 찾기
등록된 이메일 등을 통해 아이디를 찾거나 비밀번호를 재설정할 수 있어야 함.
UC03
FR04
회원정보 변경
로그인 후 비밀번호와 닉네임을 변경할 수 있어야 함.
UC04
FR05
게임방 생성
게임 제목, 최대 인원 등을 설정하여 새로운 게임방을 만들 수 있어야 함.
UC05
FR06
게임방 입장
생성된 게임방 목록을 보고 원하는 방에 입장할 수 있어야 함.
UC06
FR07
일반 채팅
게임 시작 전 대기실에서 자유롭게 채팅할 수 있어야 함.
UC07
FR08
게임 시작
방장이 게임을 시작할 수 있어야 함.
UC08
FR09
게임 채팅
게임 시작 후에는 라운드당 한 번씩만 채팅할 수 있어야 함.
UC09
FR10
카테고리 선택
게임 시작 후 각 라운드마다 참여자들이 게임의 카테고리를 선택할 수 있어야 함.
UC10
FR11
단어 분배
선택된 카테고리에서 정답 단어와 라이어 단어를 선정하여 각 플레이어에게 다르게 분배해야 함.
UC11
FR12
단어 확인
'라이어'를 제외한 모든 플레이어는 정답 단어를, '라이어'는 다른 단어를 화면에서 확인할 수 있어야 함.
UC12
FR13
투표
라운드 종료 후, 플레이어들이 '라이어'라고 생각하는 사람에게 투표할 수 있어야 함.
UC13
FR14
승패결정
투표 결과 등 게임 규칙에 따라 '라이어'를 찾아내거나 '라이어'가 승리하는 등의 최종 승패를 결정해야 함.
UC14
FR15
게임 상태
동기화
시스템은 모든 플레이어의 게임 상태(턴, 남은 시간, 채팅 내용 등)를 실시간으로 동기화해야 함.
UC15
비기능적 요구사항
ID
유형
세부내용
NFR01
성능
C++와 MySQL을 활용하여 10명 이내의 플레이어가 참여하는 게임 환경에서 딜레이 없이 원활하게 작동해야 함.
NFR02
보안
비밀번호는 암호화하여 저장해야 하며, 회원정보 찾기/변경 시 강력한 본인 인증 절차를 거쳐야 한다.
NFR03
안정성
서버 오류 발생 시 데이터 유실을 최소화하는 방안을 고려해야 함.
NFR04
사용성
Qt Creator로 개발된 UI는 직관적이며 사용하기 편리해야 함.
NFR05
호환성
Ubuntu 24.04.2 LTS 개발 환경에서 안정적으로 동작해야 함.

03. 순서도


04. 화면 구성도

1. 로그인 페이지

2. 메인 페이지

3. 게임 페이지


05. 목업


06. 일정표


07. 테이블 명세서

회원 정보
Table
users
컬럼명
데이터 타입
제약 조건
설명
user_id
VARCHAR(50)
PRIMARY KEY / NOT NULL
로그인 아이디
password
VARCHAR(255)
NOT NULL
비밀번호
nickname
VARCHAR(50)
NOT NULL / UQ
닉네임
email
VARCHAR(255)
NOT NULL / UQ
이메일
       
방 정보
Table
rooms
컬럼명
데이터 타입
제약 조건
설명
room_id
INT
PRIMARY KEY / NOT NULL / AI
방 고유 식별자
room_name
VARCHAR(255)
NOT NULL
방 이름
creator_id
VARCHAR(255)
NOT NULL / FK REFFERENCES user(user_id)
생성자 아이디
status
VARCHAR(50)
NOT NULL / DEFAULT "waiting"
방 상태
created_at
TIMESTAMP
DEFAULT CURRENT_TIMESTAMP
방 생성 시간
       
방 참가자
Table
room_members
컬럼명
데이터 타입
제약 조건
설명
member_id
INT
PRIMARY KEY / AI
참여 기록 고유 식별자
room_id
INT
NOT NULL / FK REFERENCES rooms(room_id) / UQ
참여한 방 아이디
user_id
VARCHAR(255)
NOT NULL / FK REFERENCES users(user_id) / UQ
참여자 아이디
join_time
TIMESTAMP
DEFAULT CURRENT_TIMESTAMP
입장 기록 시간
       
게임 진행 상태
Table
game_states
컬럼명
데이터 타입
제약 조건
설명
game_state_id
INT
PRIMARY KEY / AI
게임 고유 식별자
room_id
INT
NOT NULL, FK REFERENCES chatroom(room_id)
게임 진행 중인 방 아이디
current_turn_user_id
VARCHAR(255)
 
현재 차례인 사용자 아이디
state_data
JSON
 
게임 상세 상태
last_updated
TIMESTAMP
DEFAULT CURRENT_TIMESTAMP
마지막 게임 갱신 시간

06. ERD

'C++ > Project' 카테고리의 다른 글

[LMS7 24/28주차] 1024 MFC 프로젝트, "CanSCan" 완료 보고서  (0) 2026.05.06
[LMS7 24/28주차] 1024 MFC 프로젝트, "CanSCan" 개발계획서  (0) 2026.05.06
[LMS7 16/26주차] 0826 [제60회 전국기능경기대회] 전시 작품 제작 프로젝트, "스마트홈" 완료 보고서  (0) 2025.11.11
[LMS7 16/26주차] 0826 [제60회 전국기능경기대회] 전시 작품 제작 프로젝트, "스마트홈" 개발 계획서  (0) 2025.11.11
[LMS7 14/28주차] 0812 Qt 개인 프로젝트, 라이어 게임 완료 보고서  (0) 2025.09.04
'C++/Project' 카테고리의 다른 글
  • [LMS7 24/28주차] 1024 MFC 프로젝트, "CanSCan" 개발계획서
  • [LMS7 16/26주차] 0826 [제60회 전국기능경기대회] 전시 작품 제작 프로젝트, "스마트홈" 완료 보고서
  • [LMS7 16/26주차] 0826 [제60회 전국기능경기대회] 전시 작품 제작 프로젝트, "스마트홈" 개발 계획서
  • [LMS7 14/28주차] 0812 Qt 개인 프로젝트, 라이어 게임 완료 보고서
m_Dev
m_Dev
  • m_Dev
    m_Dev
    m_Dev
  • 전체
    오늘
    어제
    • 분류 전체보기
      • MAIN STUDY
        • 정보보안
        • 빅데이터
        • 정보처리
        • 컴퓨터 구조
        • 기타
      • JOB
        • Study
        • Project
      • LMS 7
        • 개발일지
      • FRAMEWORK
        • Qt
        • MFC
        • Winform
        • WPF
        • MAUI
      • NETWORK
        • Study
        • Assignment
      • PYTHON
        • Set
        • Study
        • Assignment
        • Project
      • C
        • Set
        • Study
        • Assignment
        • Project
      • C++
        • Set
        • Study
        • Assignment
        • Project
      • C#
        • Set
        • Study
        • Assignment
        • Project
      • DATABASE
        • MySQL
        • SQLite
      • IDE
        • VisualStudioCode
        • VisualStudio
        • Pycharm
        • Colab
      • 기타
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
m_Dev
[LMS7 14/28주차] 0812 Qt 개인 프로젝트, "라이어게임" 개발 계획서
상단으로

티스토리툴바