테트리스 게임 시스템 요구사항1
책 제목: 클린 소프트웨어
부제: 애자일 원칙과 패턴, 그리고 실천 방법
로버트 C.마틴 지음 | 이용원, 김정민, 정지호 옮김
출판사: Jpub
이 책의 597페이지를 보면 UML 표기법에 대해 소개하고 있다. 책에서는 '교육 과정 등록 시스템'을 예를 들어 UML로 분석, 설계하는 과정을 소개하고 있다. 나는 우리가 진행할 '테트리스' 프로젝트를 이용해서 이 책을 따라가 보려고 한다.
사용자는 연습 모드와 대전 모드, 게임 종료 중에 선택할 수 있어야 한다.
[연습모드]
사용자가 연습 모드를 선택하면 난이도를 선택할 수 있어야 한다.
- easy
- moderate
- difficult
사용자가 대전 모드를 선택하면 아이템전과 노템전 중에 선택할 수 있어야 한다.
[대전모드]
사용자가 아이템전을 선택하면 마찬가지로 아이템전을 선택하고 대기 중인 다른 사용자와 대전을 할 수 있어야 한다.
사용자가 노템전을 선택하면 마찬가지로 노템전을 선택하고 대기 중인 다른 사용자와 대전을 할 수 있어야 한다.
시스템은 다른 사용자를 찾는 동안 다른 사용자를 찾고 있음을 사용자에게 알려줘야 한다. 시스템은 30초 동안 다른 사용자를 찾지 못한 경우 사용자에게 알리고 계속 다른 사용자를 찾을 것인지 대전 모드를 취소할 것인지 물어본다. 사용자가 계속 찾기를 원한다면 30초 동안 찾고 대전 모드 취소를 원한다면 다시 연습 모드와 대전 모드 중 선택할 수 있도록 해야 한다.
[게임 시작/조작]
사용자가 연습 모드를 선택하고 3초 후 블럭이 내려오기 시작해야 한다. 사용자가 대전 모드를 선택하고 다른 사용자와 연결 되고 3초 후에 블럭이 내려오기 시작해야 한다.
사용자는 키보드의 좌우 화살표 키로 블럭을 좌우로 이동할 수 있어야 한다. 키보드 상 화살표 키로 블럭을 전환할 수 있어야 한다. 키보드 아래 화살표 키로 블럭을 한 칸 내릴 수 있어야 한다. 키보드 스페이스키로 블럭을 바로 쌓을 수 있어야 한다. 사용자는 게임 중 키보드 ()키로 게임을 일시정지와 재시작 할 수 있어야 한다. 사용자는 게임 중 ( )로 게임을 종료 할 수 있어야 한다. 사용자는 아이템전을 하면서 특정 조건을 만족시키면 아이템을 갖게 되고 키보드 ()로 아이템을 사용할 수 있다. ( JAVA Swing이 어떤 특징을 가지고 있느냐에 따라 위 설명이 변경됨 )
[게임 점수]
시스템은 Stage별 기준에 맞추어서 블럭 라인 1개가 사라질 때마다 사용자에게 점수를 부여한다.
>>Stage limit? 몇 판까지 있나?
>>콤보를 점수에 적용하는 방식
[게임 스테이지 전환/종료]
시스템은 사용자가 스테이지 별 목표 점수를 달성하면 다음 스테이지로 넘어감을 알리고 쌓여 있던 블럭을 다 없앤다음 스테이지를 시작, 3초 후 블럭이 내려오도록 한다.
시스템은 대전 모드에서 해당 스테이지 목표 점수를 먼저 달성한 사용자가 다른 사용자가 목표 점수를 달성할 때까지 대기하도록 하고 같이 다음 스테이지를 시작하도록 한다. 시스템은 대전을 하던 중 한 사용자가 게임을 종료하면 나머지 사용자가 승리했음을 알리고 대전을 종료한다. 시스템은 대전을 하던 중 한 사용자의 블록이 화면 천장에 닿으면 다른 사용자가 승리했음을 알리고 대전을 종료한다.
시스템은 연습 모드에서 블록이 화면 천장에 닿으면 스테이지 목표 달성에 실패했음을 알린다.
[랭킹 보여주기]
시스템은 게임이 정상적으로 종료된 후 사용자가 게임 실행 직후에 입력한 닉네임으로 랭킹을 등록한다. 그리고 해당 모드와 난이도의 1위부터 10위까지의 랭킹을 보여주는 화면을 띄운다. 만약 사용자가 10위 안에 든 경우 사용자에게 알려준다.
느낀점 : 책에서는 교육 과정 등록 시스템에 대한 요구사항 분석을 예로 들고 있다. 게임 시스템이랑은 다른 시스템이다 보니 위 설명을 작성하면서 '게임 회사'에서는 요구사항 분석을 어떤 식으로 하는지 궁금해졌다. 요구사항 분석은 UI가 어떻게 나오게 될지 확정된 후에 작성하는 것이 아닌데, 게임은 UI가 무척이나 중요한 시스템이라서 그게 구체화 되어 가는 과정에서 엄청나게 결정할 것들이 많을 것 같다. 게임 개발과 관련된 책을 찾아보거나 인터넷 검색을 해봐야 겠다.
부제: 애자일 원칙과 패턴, 그리고 실천 방법
로버트 C.마틴 지음 | 이용원, 김정민, 정지호 옮김
출판사: Jpub
이 책의 597페이지를 보면 UML 표기법에 대해 소개하고 있다. 책에서는 '교육 과정 등록 시스템'을 예를 들어 UML로 분석, 설계하는 과정을 소개하고 있다. 나는 우리가 진행할 '테트리스' 프로젝트를 이용해서 이 책을 따라가 보려고 한다.
<테트리스 게임 시스템 요구사항>
사용자는 자신의 이름을 입력한다.사용자는 연습 모드와 대전 모드, 게임 종료 중에 선택할 수 있어야 한다.
[연습모드]
사용자가 연습 모드를 선택하면 난이도를 선택할 수 있어야 한다.
- easy
- moderate
- difficult
사용자가 대전 모드를 선택하면 아이템전과 노템전 중에 선택할 수 있어야 한다.
[대전모드]
사용자가 아이템전을 선택하면 마찬가지로 아이템전을 선택하고 대기 중인 다른 사용자와 대전을 할 수 있어야 한다.
사용자가 노템전을 선택하면 마찬가지로 노템전을 선택하고 대기 중인 다른 사용자와 대전을 할 수 있어야 한다.
시스템은 다른 사용자를 찾는 동안 다른 사용자를 찾고 있음을 사용자에게 알려줘야 한다. 시스템은 30초 동안 다른 사용자를 찾지 못한 경우 사용자에게 알리고 계속 다른 사용자를 찾을 것인지 대전 모드를 취소할 것인지 물어본다. 사용자가 계속 찾기를 원한다면 30초 동안 찾고 대전 모드 취소를 원한다면 다시 연습 모드와 대전 모드 중 선택할 수 있도록 해야 한다.
[게임 시작/조작]
사용자가 연습 모드를 선택하고 3초 후 블럭이 내려오기 시작해야 한다. 사용자가 대전 모드를 선택하고 다른 사용자와 연결 되고 3초 후에 블럭이 내려오기 시작해야 한다.
사용자는 키보드의 좌우 화살표 키로 블럭을 좌우로 이동할 수 있어야 한다. 키보드 상 화살표 키로 블럭을 전환할 수 있어야 한다. 키보드 아래 화살표 키로 블럭을 한 칸 내릴 수 있어야 한다. 키보드 스페이스키로 블럭을 바로 쌓을 수 있어야 한다. 사용자는 게임 중 키보드 ()키로 게임을 일시정지와 재시작 할 수 있어야 한다. 사용자는 게임 중 ( )로 게임을 종료 할 수 있어야 한다. 사용자는 아이템전을 하면서 특정 조건을 만족시키면 아이템을 갖게 되고 키보드 ()로 아이템을 사용할 수 있다. ( JAVA Swing이 어떤 특징을 가지고 있느냐에 따라 위 설명이 변경됨 )
[게임 점수]
시스템은 Stage별 기준에 맞추어서 블럭 라인 1개가 사라질 때마다 사용자에게 점수를 부여한다.
>>Stage limit? 몇 판까지 있나?
>>콤보를 점수에 적용하는 방식
[게임 스테이지 전환/종료]
시스템은 사용자가 스테이지 별 목표 점수를 달성하면 다음 스테이지로 넘어감을 알리고 쌓여 있던 블럭을 다 없앤다음 스테이지를 시작, 3초 후 블럭이 내려오도록 한다.
시스템은 대전 모드에서 해당 스테이지 목표 점수를 먼저 달성한 사용자가 다른 사용자가 목표 점수를 달성할 때까지 대기하도록 하고 같이 다음 스테이지를 시작하도록 한다. 시스템은 대전을 하던 중 한 사용자가 게임을 종료하면 나머지 사용자가 승리했음을 알리고 대전을 종료한다. 시스템은 대전을 하던 중 한 사용자의 블록이 화면 천장에 닿으면 다른 사용자가 승리했음을 알리고 대전을 종료한다.
시스템은 연습 모드에서 블록이 화면 천장에 닿으면 스테이지 목표 달성에 실패했음을 알린다.
[랭킹 보여주기]
시스템은 게임이 정상적으로 종료된 후 사용자가 게임 실행 직후에 입력한 닉네임으로 랭킹을 등록한다. 그리고 해당 모드와 난이도의 1위부터 10위까지의 랭킹을 보여주는 화면을 띄운다. 만약 사용자가 10위 안에 든 경우 사용자에게 알려준다.
느낀점 : 책에서는 교육 과정 등록 시스템에 대한 요구사항 분석을 예로 들고 있다. 게임 시스템이랑은 다른 시스템이다 보니 위 설명을 작성하면서 '게임 회사'에서는 요구사항 분석을 어떤 식으로 하는지 궁금해졌다. 요구사항 분석은 UI가 어떻게 나오게 될지 확정된 후에 작성하는 것이 아닌데, 게임은 UI가 무척이나 중요한 시스템이라서 그게 구체화 되어 가는 과정에서 엄청나게 결정할 것들이 많을 것 같다. 게임 개발과 관련된 책을 찾아보거나 인터넷 검색을 해봐야 겠다.
굉장히 할게 많았구나
답글삭제맞아맞아 ㄷㄷㄷ
삭제