개요
1:1 대전이 가능한 온라인 테트리스 게임. 일반적인 테트리스 게임처럼 떨어지는 테트로미노를 이동 및 회전 시켜서 적절한 곳에 내려놓는 방식으로 진행된다. 놓인 테트로미노들이 완벽한 (비어있는 칸이 없는) 한 줄을 이루면 해당 줄이 소거되며 점수를 얻는다. 만약 플레이어가 한 번에 여러 줄을 소거하거나, 연속되게 줄을 소거하면 점수를 추가로 얻을 수 있다. 쌓인 테트로미노들에 의해 새로운 테트리미노를 놓을 수 없게 되면 게임 오버가 된다. 상대 플레이어가 게임오버 될 때까지 버티면 승리한다.
요구사항
1. 테트리스 게임 핵심 기능
테트리스 게임 기본 규칙
- 10 * 20 칸의 테트리스 보드가 있어야 한다.
- 테트리스에서 사용하는 7가지 테트로미노가 한 번에 하나씩, 랜덤하게 테트리스 보드 최상단 가운데에서 나타나야 한다.
- 다음에 나타날 테트로미노가 선택되는 규칙은 다음과 같다. 7 종류의 테트로미노가 한 세트일 때, 한 세트의 테트로미노의 순서를 랜덤으로 섞어서, 섞여진 순서대로 테트로미노가 나타난다. 한 세트의 테트로미노가 다 나왔으면, 같은 방식으로 순서가 섞인 테트로미노 세트를 내보낸다.
- 나타난 테트로미노는 사용자의 조작이 없이도 일정 속도로 보드 아래쪽으로 내려온다.
- 놓여진 테트로미노가 한 줄을 다 채우면 해당 줄은 사라지고, 플레이어는 점수를 얻는다.
- 게임이 진행될 수록, 테트로미노가 하강하는 속도가 점점 빨라진다.
- 테트로미노가 나타나는 공간에 이미 테트로미노가 존재할 경우 게임 오버가 된다.
- 두 플레이어 모두 게임 오버가 되었을 때, 최종 점수가 더 높은 플레이어가 승리한다.
플레이어 조작 방식
플레이어는 한 번에 하나의 테트로미노를 조작할 수 있다. 플레이어는 다음과 같은 방식으로 테트로미노를 조작할 수 있다.
- 좌우 방향키를 이용해서 하강하는 테트로미노를 좌우로 움직인다.
- 아래 방향키를 이용해서 테트로미노의 하강 속도를 빠르게 한다.
- 스페이스바를 이용해서 테트로미노를 보드 최하단이나, 놓여져 있는 다른 테트로미노와 접촉하는 부분으로 한 번에 하강시킨다.
- 위 방향키를 이용해서 테트로미노를 시계 방향으로 회전시킨다. 혹은 Z 키로 반시계 방향, x 키로 시계 방향 회전시킨다.
- 자세한 회전 규칙은 다음 링크의 내용을 따른다. (https://harddrop.com/wiki/SRS)
테트리스 점수 획득 규칙
놓여진 테트로미노가 한 줄을 다 채우면 해당 줄은 사라지고, 플레이어는 점수를 얻는다.
- 플레이어가 최소로 얻을 수 있는 점수 단위는 100점이다.
- 플레이어가 한 줄만 소거했을 경우 100점을 얻는다.
- 플레이어가 한 번에 두 줄, 세 줄, 네 줄을 소거했을 경우 각각 300, 600, 1000점을 얻는다.
- 플레이어가 연속으로 소거를 했을 경우, 콤보 시스템에 의해 점수를 추가로 더 얻을 수 있다.
콤보 시스템
- 플레이어가 연속으로 소거를 했을 경우, 콤보가 1씩 증가한다. 두 번 연속 소거할 경우 1 콤보이다.
- 콤보 시스템에 의해 점수를 추가로 더 얻을 수 있다.
- 각 라인 클리어당 콤보에 의한 추가 점수는 (현재 콤보 * 100) 점이다.
게임 화면
플레이어에게 보여지는 화면은 다음과 같다.
- 자신의 테트리스 보드
- 현재 점수
- 다음에 올 테트로미노
- 현재 콤보
- 상대방의 테트리스 보드 (상대방이 현재 조작중인 테트로미노는 보이지 않는다)
- 상대방의 점수
- 상대방의 현재 콤보
2. 온라인 관련 기능
- AWS를 통해 간단한 서버를 구축한다.
- 서버에 두 플레이어가 접속하고, 준비를 마치면 게임이 시작된다.
- 서버는 두 플레이어의 테트리스 보드, 점수, 콤보를 전달받는다.
- 플레이어는 특정 이벤트 (테트로미노를 내려놓았을 경우 등)가 발동할 때마다 서버에 위 정보를 전달한다.
- 서버는 해당 정보를 상대 플레이어에게 다시 전달하고, 플레이어는 그 정보를 바탕으로 화면을 갱신한다.
'Projects > Tetris' 카테고리의 다른 글
[Tetris] 회고록 1 - 프로젝트 시작부터 1인용 구현까지 (0) | 2022.06.21 |
---|
댓글