티스토리 뷰



이번에 함께 만들어볼 게임은 퍼즐 보블입니다.

20여년 전 오락실 풍경이 딱 이랬는데... ㅋㅋ 요즘에도 이런 곳이 있을까요?



어린 시절 제가 다녔던 모든 오락실에 다른 게임은 몰라도 퍼즐 보블 게임은 꼭 있었는데, 그만큼 재미도 있고 게임 방법도 단순해서 많은 분들의 사랑을 받았습니다.

특히나 저는 오락실 게임을 잘하는 편이 아니라서 직접 플레이하기보다는 다른 사람들이 하는 걸 구경만 하곤 했었는데, 퍼즐 보블 만큼은 왠지 모를 자신감이 생겨서 한 번씩 도전했었습니다. 막상 해보니 그렇게 쉽지만은 않더라구요 ^^;;

정말 쉬워 보이죠? 당구 좀 치셨다면 특히나...



혹시라도 이 게임을 잘 모르시는 분들을 위해 소개를 드리자면, 화면 아래에 보이는 화살표를 좌우로 움직여서 원하는 방향으로 버블을 쏩니다. 그리고 동일한 색깔의 버블이 3개 이상 연속으로 모이게 되면 그 버블들은 터지게 되며, 화면 내의 모든 버블들이 터뜨리는 것이 목표입니다.

모든 버블들을 없애면 Clear




모든 게임이 그렇듯 너무 쉬우면 금방 지루해질 수 있어서 어떤 장치들을 마련하는데요. 

여기서는 버블을 쏜 횟수에 따라 천장에서 벽이 내려오도록 합니다. 벽이 많이 내려올수록 게임을 할 수 있는 공간이 좁아지기 때문에 실수 없이 최대한 빠르고 정확하게 버블들을 없애야 하지요. 그리고 언제 벽이 내려오는지를 미리 알려줘서 플레이어로 하여금 무슨 버블을 먼저 맞힐지 계산을 하도록 해줍니다.

벽이 점점 내려오니 모든 버블들을 빨리 터뜨려야 해요



이번 프로젝트는 이런 순서로 진행됩니다.

 


먼저 기본 프레임을 만들고 보라색으로 대충 칠한 배경을 넣어볼게요.



게임 내에서 버블들을 배치하기 위한 맵을 만들건데요.



맵의 코드는 대략 이런 식으로 구성을 할겁니다. 

눈치가 빠르신 분들은 이 코드가 어떤 걸 의미하는지 아실 것 같네요 ^^



버블을 쏘기 위한 발사대도 만들어야지요. 키보드 좌우 방향키로 움직일 수 있답니다.



이제는 버블을 한 번 쏴 볼까요? 

벽에 닿으면 반대쪽 방향으로 튕겨줘야 합니다. 하늘 끝까지 날아가버리네요 ㅋㅋ



이번에는 버블들끼리 닿으면 딱 그 위치에 멈추도록 해주겠습니다. 이제 어느 정도 게임다워졌지요?



충돌 체크를 통해 3개 이상의 연속된 같은 색깔의 버블들이 모이면 모두 터뜨려 없애주겠습니다.



게임의 긴장감을 더해주기 위해 몇 번 이상 쏘게 되면 화면도 좌우로 흔들고 천장에서 벽도 내려볼까요?!



이제 진짜 거의 다 됐습니다. 마지막으로 게임 종료 처리만 하고 이미지만 바꿔주면,

 

 

짜잔 !!!



어때요? 원본 게임과 정말 비슷하지 않나요?




상세 커리큘럼은 다음과 같습니다.

(0:00:00) 0.Intro
(0:00:19) 1.소개
(0:03:56) 2.기본프레임
(0:07:48) 3.배경
(0:11:29) 4.버블 (개발 전략)
(0:16:49) 5.버블 (이미지 생성)
(0:25:55) 6.버블 (게임 맵)
(0:32:42) 7.버블 (맵에 그리기)
(0:47:06) 8.발사대
(0:53:53) 9.겨냥하기 #1
(1:06:40) 10.겨냥하기 #2
(1:10:23) 11.버블 발사 (이번에 쏠 버블)
(1:22:25) 12.버블 발사 (발사 및 튕기기)
(1:37:13) 13.버블 발사 (다음에 쏠 버블)
(1:42:11) 14.충돌 처리 #1
(1:53:36) 15.충돌 처리 #2
(2:03:38) 16.천장 충돌 처리
(2:08:02) 17.재귀 함수 호출
(2:19:59) 18.퀴즈
(2:27:00) 19.DFS 알고리즘
(2:39:41) 20.버블 터뜨리기 (방문처리)
(2:50:16) 21.방문한 버블 터뜨리기
(2:58:33) 22.방문하지 않은 버블 터뜨리기
(3:09:50) 23.화면 흔들기
(3:19:16) 24.벽 내리기 #1
(3:27:32) 25.벽 내리기 #2
(3:35:02) 26.게임 종료 처리 #1
(3:41:53) 27.게임 종료 처리 #2
(3:47:39) 28.게임 완성


 

 

 

[파이썬] 황금캐기 게임 개발

코딩에 입문하시는 분들이 처음에는 으쌰으쌰 공부를 시작하지만 반복되는 지루한 문법 설명에, 한 번씩 나오는 어려운 개념(클래스라던지?)을 만나게 되면 곧 흥미를 잃게 되는 경우가 많습니

nadocoding.tistory.com


이전에 진행했던 황금캐기 게임에서 삼각함수를 이용하면서 집게를 좌우로 흔들어보고 스페이스를 눌러서 그 방향으로 쭉 발사하는 연습을 해봤는데, 퍼즐 보블 게임도 아주 비슷하게 개발이 가능합니다. 하지만 황금캐기 게임보다는 다소 난이도가 높아요.

 

 


이번 프로젝트를 함께 공부하면서 여러분은 새로운 2가지 내용을 배우게 될텐데요. 

바로 이것들입니다.

1. 재귀함수 호출
2. 알고리즘 (DFS : 깊이 우선 탐색)

코딩을 제대로 하시려면 언젠가는 꼭 마주치게 될 중요한 내용들인데요. 아주 자세한 설명과 예시로 쉽게 이해시켜드리겠습니다. 뿐만 아니라 2차원 리스트를 이용하여 게임 맵을 구성하고, 아주 간단한 방법으로 난이도를 조정하면서 여러분의 입맛에 맞게 게임 레벨을 만드는 법도 배우게 됩니다.

 


강의 영상은 이 곳에서 확인해주세요.

 

 

(화면이 안보이시는 경우 링크를 클릭해주세요)

https://youtu.be/f1amAQuVtc8

 

 

 

그림판에서 만든 이미지가 필요하시거나 의도한 대로 동작이 되지 않으신 경우 제가 작성한 코드를 제공해드리니 작성하신 코드와 비교하면서 보시면 어디가 잘못되었는지 쉽게 찾으실 수 있을 거예요. ^^

 

PuzzleBobbleWorkspace.zip
0.03MB



강의 시간은 다소 길지만 자세한 설명과 주석, 그리고 이해를 돕기 위한 이론 수업도 열심히 준비하였으니 게임 개발에 관심 있으신 분들은 꼭 도전해보시길 권해드립니다. 이번 프로젝트까지만 잘 따라오시고 완전히 이해를 하신다면 앞으로는 여러분이 원하시는 게임 대부분을 스스로 만드실 수 있게 될겁니다.


감사합니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함