본문으로 건너뛰기

벽돌깨기, 공 하나로 한 판을 채우는 게임

벽돌깨기 — 공 하나, 벽돌 한 판. 썸네일 일러스트

이번에는 벽돌깨기를 골랐다. 오락실에서도 볼 수 있는 유명한 게임이고, 무엇보다 규칙이 단순해서다. 아래 막대를 좌우로 움직여 공을 받아 올리고, 위에 있는 벽돌을 없애면 된다. 어떤 게임을 만들 것인지 길게 설명하지 않아도 되는 점이 좋았다.

감자배구 때문에 잠깐 순서를 바꿨지만, 원래 만들기로 했던 게임으로 돌아왔다. 이번에도 Sonnet을 썼다.

한 판은 벽돌 60개, 목숨 3개로 정했다. 벽돌은 한 번 맞으면 없어지고 10점이 오른다. 모두 지우면 600점이다. 막대가 늘어나는 아이템이나 공이 여러 개로 갈라지는 기능은 넣지 않았다. 우선 공 하나로 끝까지 해 볼 수 있는 판을 만들고 싶었다.

벽돌 60개와 목숨 3개로 시작하는 첫 화면.
벽돌 60개와 목숨 3개로 시작하는 첫 화면.

여섯 줄을 서로 다른 색으로 칠하니 벽돌이 빠진 자리가 눈에 잘 들어왔다. 막대는 어두운색, 공은 붉은색으로 두었다. 밝은 바탕 위에서 둘을 놓치지 않고 볼 수 있게 했다.

첫 공은 움직임부터 보려고 막대를 가운데 두고 발사했다. 오른쪽 위로 올라간 공이 맨 아래 줄의 벽돌 하나를 지웠다. 점수는 10, 남은 벽돌은 59. 돌아오는 공을 받지 않자 목숨이 2로 줄었다.

첫 공을 놓친 뒤. 지운 벽돌 하나와 10점은 남고 목숨만 하나 줄었다.
첫 공을 놓친 뒤. 지운 벽돌 하나와 10점은 남고 목숨만 하나 줄었다.

공을 놓쳐도 지운 벽돌은 돌아오지 않는다. 다음 공은 그 빈칸을 남긴 판에서 이어진다. 한 번 놓칠 때마다 처음부터 시작하는 것보다는, 목숨 세 개를 쓰는 동안 얼마나 지울 수 있는지 보고 싶었다.

받아 올릴 때 방향도 고를 수 있게

처음 버전은 막대에 닿으면 공의 위아래 방향만 뒤집었다. 이 방식으로도 공은 튀지만, 어느 쪽 벽돌을 노릴지 막대로 조절할 수는 없었다. 그래서 받는 위치에 따라 나가는 방향이 달라지도록 바꿨다.

가운데로 받으면 위로, 왼쪽 끝에 가까우면 왼쪽 위로, 오른쪽 끝에 가까우면 오른쪽 위로 보낸다. 막대의 가장자리에서 받아도 공이 옆으로만 길게 오가지 않도록 각도는 제한했다. 공을 살려 놓는 것에 더해, 빈칸 옆의 벽돌 쪽으로 보내 볼 수 있게 한 것이다.

수정본에서는 마우스로 막대를 오른쪽으로 옮겨 첫 공을 받아 봤다. 벽돌 두 개를 지워 20점까지 갔지만, 돌아오는 공을 계속 받지는 못했다. 아래 화면은 목숨 하나를 쓴 뒤 다음 공을 시작한 장면이다. 맨 아래 줄에 빈자리 두 곳이 남아 있다.

수정본에서 20점을 얻은 뒤 다음 공을 진행하는 화면. 맨 아래 줄의 두 칸이 비어 있다.
수정본에서 20점을 얻은 뒤 다음 공을 진행하는 화면. 맨 아래 줄의 두 칸이 비어 있다.

일시정지 버튼도 한 번 손봤다. 첫 실행에서는 공이 움직이는데 버튼이 비활성화돼 있었다. 키보드의 P는 작동했지만 화면 버튼도 함께 쓸 수 있어야 해서, 시작하거나 재개할 때 버튼 상태를 갱신하도록 고쳤다.

한 판을 더 복잡하게 만들 생각은 아직 없다. 지금은 벽돌마다 체력이 다르지도 않고, 중간에 아이템을 받아야 하지도 않는다. 남은 벽돌과 내려오는 공만 보면 된다. 다음에 손본다면 기능을 늘리기보다 막대 폭이나 공의 속도를 조절해 보고 싶다. 규칙은 그대로 두고도 한 판의 느낌이 얼마나 달라질지 궁금하다.


실행 파일 · 벽돌깨기 소스와 실행 파일에서 breakout.html을 내려받아 PC 브라우저로 열면 된다. 설치나 인터넷 연결 없이 실행하는 HTML5 게임이다.

←·→ 또는 A·D로 막대를 움직이고, 마우스나 터치로 드래그할 수도 있다. Space로 공을 발사하고 P로 멈추거나 이어 한다. R을 누르면 점수와 목숨까지 새로 시작한다.

다음 이전