간단한 미니 게임 만들어보기 - 1일차
오늘은 간단한 미니 게임을 만들어보려고 합니다. 주제는 바로 " 크롬 공룡 게임 " 입니다.
이 게임은 인터넷 연결이 끊기면 크롬 브라우저에서 자동으로 실행되는 게임으로, 누구나 한 번쯤은 접해본 적이 있을 것입니다. 유명한 미니 게임 중 하나일 뿐만 아니라 제작도 비교적 쉬워 보여서, 제 스타일로 한번 만들어보려고 합니다.
1. PYGAME 설치
우선 저는 이 프로젝트 진행에 vscode를 사용했습니다.
vscode를 설치하고 python 설치하여 설정까지 마무리한 상태로 프로젝트를 진행했다는 점 알아주시면 좋겠습니다.
이 미니게임을 위해서는 vscode 터미널 창에 들어가서 " pip install pygame " 를 실행해주셔야 합니다.
실행 해주시면 pygame이 설치가 되는 것을 콘솔창에서 확일할 수 있을겁니다.
pygame 설치를 완료했다면 이제 공룡 게임 만들기의 시작이 되는 것입니다.
2. 게임 기본 구성 제작
우선 공룡 게임의 기본 구성을 생각해봅시다. 공룡게임은 공룡이 장애물을 피하는 게임입니다.
그러니 저도 우선 공룡 게임의 기본 구성인 장애물을 피하는 구조를 만들어볼것입니다.
공룡이 다가오는 장애물을 피하는 구조로 위와 같이 코드를 작성했습니다.
이걸 한번 실행해보면 아래의 모습이 나옵니다. 이걸 보고 "정말 이 결과물이 공룡 게임이 될 수 있을까?"라는 생각이 들 수도 있습니다. 하지만 하나하나 기능을 추가해가며 완성해 나가는 과정이, 미니 게임이든 어떤 프로젝트든 가장 큰 재미라고 생각합니다.
현재 결과를 실행해보니 게임 시작 화면, 게임 오버 화면, 그리고 점수 표시하는 UI가 전혀 없어서 게임이 매우 허전하게 느껴집니다. 따라서 이제부터 이 부분들을 하나씩 하나씩 추가해보려고 합니다.
우선 게임 시작 화면을 추가해봅시다. 저는 게임 시작 화면에 게임 타이틀과 함께 스페이스바를 누르면 게임이 실행되는 구조를 코드에 추가해보려고 합니다. 추가하려는 타이틀과 시작하기 위해 키를 누르세요. 라는 문구를 pygame.font.SysFont 함수를 이용하여 폰트를 설정하고, 해당 폰트로 텍스트를 렌더링 해줍니다.
" Press SPACE to start " 라는 문구에 깜빡임을 추가하고 싶어 아래와 변수를 추가해줬습니다.
적용이 잘되어서 실행 시 게임 안에서 글자가 잘 깜빡깜빡 거리는것을 확인하였습니다. 또한 스페이스바를 누르면 메인 게임으로 잘 넘어갔습니다. 게임 화면이라던가 전체적인 모습은 마지막에 제가 영상으로 넣어드리겠습니다.
게임 시작 화면을 추가하였으니, 이제는 장애물을 피하지 못하고 닿았을 때 게임 오버 되는 구조를 만들어보겠습니다. 이 부분을 자연스럽게 구현하기 위해, 플레이어가 장애물과 충돌할 때의 처리를 추가할 필요가 있어보입니다. 충돌 감지 변수를 구현하여, 충돌이 감지되면 게임 오버 상태로 전환하고 게임 오버 화면을 보이게 만들어 보겠습니다.
게임 오버 화면도 게임 시작화면과 동일하게 변수랑 깜빡임 추가해주는것은 동일하게 진행하였습니다. 다른 점이 있다면
게임 재시작을 위한 변수 초기화라던가 충돌 감지하여 게임 오버 화면으로 전화되는 코드를 추가로 작성해야하는 부분인것 같습니다.
프로젝트가 최종적으로 완성되면 깃허브에 이 미니 게임 코드를 올릴 계획입니다.
코드를 참고하실 예정이라면 이 글보다는 나중에 올라갈 깃허브 코드로 편하게 확인하시는것을 추천드립니다.
게임 오버 화면까지 원활하게 구현된 것 같습니다. 이제 남은 부분은 점수 표시입니다.
공룡 게임은 시작과 동시에 점수가 올라가는 구조로 되어 있습니다. 이를 저도 똑같이 구현해보겠습니다. 변수와 코드 작성 방식은 이전과 동일하게 하되, 점수를 표시하는 부분을 추가하도록 하겠습니다.
3. 후기
다음 글에서는 이 게임을 게임처럼 완성시키려는 과정을 작성하려고 합니다. 공룡 이미지, 장애물, 그리고 배경 이미지를 추가하고 음성 효과도 넣어볼 예정입니다. 이렇게 하면 게임이 최종 완성 단계에 들어갈것 같습니다. 이렇게 계획대로 진행하면 플레이어들에게 더욱 재미있고 완성도 있는 게임을 제공할 수 있을 거 같다는 생각을 합니다.