본문 바로가기
엔트리와 아두이노로 만나는 게임 학교

7장-[엔트리와 아두이노로 만나는 게임 학교] 지렁이 키우기 게임 만들기

by 로니-킴 2023. 5. 25.


지렁이 키우기 게임은 【지렁이】가 음식을 먹으면서 꼬리를 키우는 아케이드 액션 게임입니다. 실시간으로 【지렁이】를 이동하면서 제어하는 게임입니다. 위쪽, 아래쪽, 오른쪽, 왼쪽으로 이동할 수 있습니다

예를 들어, 【음식】 먹을수록 꼬리가 길어집니다. 『부스트 모드』 ON 상태에서 【외계인】, 【컴퓨터 지렁이】에 닿으면 점수를 얻습니다. 만약 『부스트 모드』 OFF 상태에서 【외계인】, 【컴퓨터 지렁이】에 닿으면 게임은 종료됩니다.

엔트리와 아두이노로 만나는 게임 학교

목차


    게임 만들기

    지렁이 키우기 게임은 우주를 배경으로 【지렁이】【음식】을 먹으면서 꼬리를 키우는 단순한 게임입니다.

    엔트리와 아두이노로 만나는 게임 학교 - 지렁이 키우기 게임 만들기

    [지렁이 키우기 게임 소개]

    이 게임은 우주를 배경으로 한 지렁이가 음식을 먹으면서 꼬리를 점점 길게 키워나가는 게임입니다. 실시간으로 지렁이를 제어하면서 다양한 도전을 해결해보세요. 위쪽, 아래쪽, 오른쪽, 왼쪽으로 움직일 수 있습니다. 게임을 진행하다 보면 외계인이나 컴퓨터 지렁이와 만나게 될 거예요. 꼬리를 이용해서 점수를 획득하거나 적들과 전투를 벌일 수 있답니다.

    [우주 전투와 지구의 위기]
    이 게임에서는 우주 전투와 지구의 위기에 대한 이야기가 펼쳐져요. 지구를 놓고 지렁이와 컴퓨터 지렁이가 전쟁을 벌이고 있답니다. 컴퓨터 지렁이는 적대적인 세력으로, 외계인 종족이 지구를 침략하기 위해 지켜보고 있어요. 전쟁에서 이긴 쪽이 태양계를 차지할 수 있는 거죠. 그래서 당신은 우주 전쟁에서 승리하여 지구의 영웅이 되어야 합니다.

    [캐릭터 소개]
    이 게임에는 세 가지 캐릭터가 등장합니다. 우선 플레이어로서 지렁이가 주인공이에요. 플레이어는 지구를 지키기 위해 싸우는 역할을 맡고 있답니다. 그리고 컴퓨터 지렁이는 적대적인 웜디안족으로, 지구를 침략하려는 사악한 생물이에요. 마지막으로 외계인은 옥토란족으로, 지구를 빼앗기 위해 컴퓨터 지렁이와 협력하는 종족이에요.

    [게임의 배경과 설정]
    이 게임은 알파 분면에 위치한 행성 연합에서 진행됩니다. 플레이어는 우주 방위군 대원으로서 지구를 지키는 임무를 맡게 되는 거죠. 게임의 배경은 아직 행성 연합에 가입하지 못한 시대인데, 행성 연합은 지구에 대한 입지를 확보하기 위해 노력 중입니다. 게임의 설정은 고전적인 우주 모험을 배경으로 하고 있으며, 플레이어는 지구를 위해 우주를 여행하며 전투를 벌이게 됩니다.

    [게임의 장점과 특징]
    지렁이 키우기 게임은 여러 가지 장점과 특징을 가지고 있습니다. 첫째, 게임은 직관적인 컨트롤과 간단한 게임 메커니즘으로 시작하기 쉽습니다. 모든 플레이어가 쉽게 접근하고 즐길 수 있습니다. 둘째, 게임은 다양한 레벨과 도전을 제공하여 플레이어가 지루하지 않고 계속해서 게임을 즐길 수 있습니다. 셋째, 게임의 그래픽과 사운드 효과는 매우 생동감 있으며, 우주의 아름다움과 전투의 긴장감을 플레이어에게 전달합니다.

    [게임 진행과 목표]
    게임은 여러 레벨로 구성되어 있으며, 각 레벨마다 다양한 임무와 도전이 주어집니다. 플레이어는 지렁이를 조작하여 음식을 먹으면서 꼬리를 점점 길게 키워야 합니다. 또한, 컴퓨터 지렁이와의 전투에서 승리하고 외계인 종족의 침략을 막아야 합니다. 목표는 모든 레벨을 클리어하고 컴퓨터 지렁이와의 최종 전투에서 승리하여 지구를 구하는 것입니다.


    게임 테마

    게임을 만들기 전에 게임 테마에 대한 이해가 필요합니다 게임 테마는 게임에서 전달하고 싶은 메시지를 의미합니다. 게임은 【음식】을 먹고 지렁이 꼬리를 키우면서 순발력을 높이는데 목적이 있습니다.

    게임 설계는 매우 중요하고 복잡한 작업이며, 각 요소들을 조화롭게 조합하여 흥미로운 게임을 만들어내는 것이 목표입니다.


    게임의 시작은 '테마'부터 출발합니다. 테마는 게임이 전달하고자 하는 메시지나 주제를 나타냅니다. 예를 들어, 용기와 도전을 테마로 설정한다면, 플레이어들은 용기 있는 행동을 취해야 하는 상황을 경험하게 됩니다.
    그리고 '콘셉트 디자인' 단계에서는 게임의 핵심 재미와 구성을 결정합니다. 게임이 어떤 재미 요소를 가지고 있을지, 어떤 게임 플레이 방식을 채택할지 등을 고민하여 게임의 기본적인 개념을 만들어냅니다.


    이어서 '캐릭터 설정' 단계에서는 주요 플레이어 캐릭터와 NPC들을 설계합니다. 여기서는 아두이노 실드 버튼과 관련하여 캐릭터들이 어떤 역할을 수행하는지, 그들의 개성과 능력을 설정합니다.


    게임의 배경과 역사를 담당하는 '세계관'은 과거의 시간적, 공간적 배경과 함께 문화, 종교, 정치 등의 사상적 배경을 설정하여 게임의 세계를 더욱 풍부하고 흥미로운 공간으로 만들어줍니다.


    스토리는 현재의 배경을 담당하며, 인물, 배경, 사건 등을 통해 게임의 이야기를 구성합니다.
    게임의 규칙과 시스템은 '메커니즘' 단계에서 설계됩니다. 플레이어와 상호작용하는 방법, 게임 진행 절차 등을 정의하여 게임의 규칙을 구체화합니다.


    레벨 디자인은 난이도와 맵 디자인을 결정합니다. 플레이어가 게임을 즐길 수 있도록 흥미로운 맵과 적절한 난이도로 레벨을 구성합니다.


    마지막으로 밸런스를 조절하여 게임이 적절한 수준으로 도전적이고 보상적인 경험을 제공하도록 합니다. 캐릭터의 능력, 아이템, 난이도 등을 균형 있게 조정하는 것이 중요합니다.


    이렇게 각 단계를 차례대로 거쳐 게임 설계를 완성하면, 흥미로운 게임을 만들 수 있습니다. 팀원들과 협업하며 사용자들의 피드백을 적극 수용하여 게임을 지속적으로 개선하는 것이 중요합니다. 훌륭한 게임을 만들기 위해서는 끊임없는 노력과 열정이 필요합니다.

    테마(메시지): 우주 지렁이가 되어 전쟁에서 승리해서 영웅이 되세요.

    콘셉트 디자인(게임의 핵심 재미와 구성): 【음식】을 먹고 지렁이 꼬리를 키워 외계인을 공격하거나 피하는 게임입니다. 외계인 종족들이 지구를 차지하기 위해 우주 전쟁을 하고 있습니다. 이 전쟁에서 승리하는 쪽이 태양계(오리온자리 나선팔에 있으며, 모항성인 태양을 중심으로 돌고 있는 행성계)를 차지할 수 있습니다. 우주 전쟁에서 승리하세요.

    캐릭터 설정(플레이어 캐릭터(Player Character, PC), NPC): 【지렁이】(플레이어), 【컴퓨터 지렁이】 (웜디안족), 【외계인】 (옥토란족)

    세계관(과거 배경-시간적, 공간적, 사상적 배경): 플레이어(우주 지렁이)는 알파 분면(Alpha Quadrant)에 위치한 행성 연합(United Federation Of Planets)에서 우주 방위군 대원이 되어 지구를 지키는 게임입니다. 지렁이(웜디안족)은 우주적 존재인 종족입니다. 지구는 아직 행성 연합에 가입할 수 없는 시대이지만, 행성 연합은 지구를 지키기로 합니다. 지구는 6,600만 년경 백악기 시대로 공룡이 존재하는 세계입니다. 컴퓨터 지렁이와 외계인은 전쟁에 승리해서 지구 행성 개조(테라포밍)를 해서 에너지원인 옵티니윰을 채취하려고 합니다. 지구로 소행성을 보내어 공룡을 멸종시키고, 더 이상 생명이 살 수 없는 환경으로 만들어 옵티니윰을 쉽게 채취해서, 지구를 외계인의 에너지(건전지)로 사용하려고 합니다.

    스토리(현재 배경-인물, 배경, 사건): 지구를 놓고 지렁이(플레이어)와 컴퓨터 지렁이(적대 세력)가 전쟁을 합니다. 지렁이(웜디안족)은 태양계를 가볍게 이동할 수 있다. 모든 행성이 일렬로 나열되어 있다면, 지구와의 거리는 수성(9,170 km), 금성(4,189km), 화성(7,779km), 목성(6 2,832km), 토성(12 1,973km), 천왕성(27 1,973km), 해왕성(43 5,785 km) 입니다. 태양계를 무대로 지구를 지키거나 뺏기 위해 전쟁을 하고 있습니다. 지렁이가 승리하려고 할 때 외계인 종족이 전쟁에 참여합니다. 컴퓨터 지렁이 종족(웜디안족)과 외계인 종족(옥토란족)의 협공으로부터 지구를 지키는 전쟁에서 승리해야 합니다. 만약 실패한다면 지구는 행성 개조되어 더 이상 생명이 살 수 없고 외계인의 건전지로 변하게 될 것이다. 외계인에게서 지구를 지켜주세요.

    메커니즘(절차, 규칙): 【음식】은 지렁이 공격력을 높일 수 있습니다. 【음식】을 먹고 지렁이를 업그레이드합니다. 지렁이는 【음식】을 먹으면 꼬리가 길어지고 점수가 올라갑니다. 외계인, 컴퓨터 지렁이가 플레이어를 공격하며, 플레이어는 꼬리로 공격할 수 있습니다. 외계인, 컴퓨터 지렁이가 플레이어 지렁이 머리에 충돌하면 게임은 종료됩니다.

    레벨 디자인(난이도, 맵 디자인): 태양계 길이(태양과 해왕성의 거리 약 46km)를 가진 맵입니다. 전투 지역은 태양계를 벗어날 수 없습니다.

    밸런스(균형, 보상, 적절한 수준): 【컴퓨터 지렁이】【외계인】의 공격을 회피하기 위해 부스터 모드를 지원합니다. 하지만, 무한정 부스터 모드를 사용할 수 없으며, 【음식】3개 먹어야 합니다. 【외계인】 또는 【컴퓨터 지렁이】를 피해 가면서 꼬리를 키워 공격합니다.


    게임 스토리

    장 1: 전쟁의 시작

    태양을 중심으로 돌고 있는 태양계는 전쟁의 비극적인 풍경으로 뒤덮여 있었다. 외계인 종족인 옥토란족과 컴퓨터 지렁이 종족인 웜디안족이 지구의 자원을 차지하기 위해 힘을 합치고 있었다. 그들은 우주 전쟁의 한 병사로 지구를 향해 전진하고 있었다.

    이 전쟁에서 승리하는 쪽은 태양계를 완전히 통제할 수 있게 되며, 이는 에너지원인 옵티니윰을 채취하는 기회를 가지게 될 것이었다. 옵티니윰은 행성을 개조하여 외계인의 건전지로 사용되기 위한 귀중한 에너지였다.

    지구는 아직 행성 연합에 가입할 수 없는 시대였지만, 행성 연합은 지구를 지키기로 결심했다. 이 마지막 전쟁에서 지구의 운명이 걸려 있었다.


    장 2: 우주 지렁이의 등장

    그리고 그 중심에는 하나의 용사가 있었다. 우주를 배경으로 한 지렁이였다. 이 우주 지렁이는 웜디안족에 속해 있었으며, 태양계의 우주 방위군 대원으로 활약하고 있었다. 그는 알파 분면에 위치한 행성 연합에서 훈련을 받아 지구를 지키는 임무를 맡고 있었다.

    이 우주 지렁이는 웜디안족의 특성으로 태양계를 가볍게 이동할 수 있었다. 그는 자신의 임무를 통해 태양계의 안전을 확보하기 위해 노력하고 있었다. 이번 전투에서 그는 전략적으로 움직여 외계인 종족과 컴퓨터 지렁이 종족의 공격을 막아내야 했다.

    장 3: 전투의 시작

    우주 지렁이는 태양을 배경으로 자유롭게 움직이며, 꼬리를 길게 키워나갔다. 먹이를 먹을수록 그의 꼬리는 점점 길어지며, 전투에서 강력한 무기로 사용될 수 있었다.

    하지만, 우주 지렁이는 외계인과 컴퓨터 지렁이의 공격을 피해야 했다. 그는 꼬리로 공격하며 자신을 방어하고, 부스트 모드를 활용하여 빠르게 움직일 수 있었다. 부스트 모드는 우주 지렁이의 이동 속도를 높여주는 기능으로, 외계인을 공격하거나 멀리 있는 음식을 찾아 빠르게 이동하는 데에 도움을 주었다.

    전투는 치열하게 이어졌다. 우주 지렁이는 꼬리를 길게 키우며 점수를 쌓아나갔다. 그는 외계인과 컴퓨터 지렁이의 공격을 피하면서 끊임없이 음식을 찾아 먹고 꼬리를 키워 나갔다. 부스트 모드를 적절히 활용하여 빠른 속도로 전장을 누비며 공격과 방어를 수행했다.

    장 4: 영웅의 탄생

    전투의 진행에 따라 우주 지렁이는 점점 강력해져갔다. 그의 꼬리는 더욱 길어지고, 공격력은 증가했다. 외계인과 컴퓨터 지렁이는 우주 지렁이의 강력한 반격에 점점 약해져갔다.

    마침내 우주 지렁이는 결정적인 순간을 맞이했다. 그는 모든 힘을 모아 외계인과 컴퓨터 지렁이에게 최후의 일격을 가했다. 그의 꼬리는 적들을 한 번에 제압하며, 전장에 평화를 되찾았다.

    우주 지렁이의 승리는 전투의 결론이었다. 그는 전쟁에서 승리하여 영웅이 되었다. 그의 노력과 투지는 태양계의 안전과 지구의 생명을 지켜냈다.

    장 5: 메시지와 결말

    이 게임은 우주 지렁이가 되어 전쟁에서 승리하여 영웅이 되는 것을 메시지로 전달하고 있다. 우주 지렁이는 음식을 먹고 꼬리를 키우며 순발력을 높이는 과정에서 자신을 강화하고 성장시킨다는 핵심 재미를 가지고 있다.

    우리는 이 게임을 통해 우리 자신의 능력을 발휘하고 극복하는 동안에도 성장할 수 있으며, 어떤 상황에서도 희망을 잃지 않고 끈기를 가지고 목표를 향해 나아갈 수 있다는 교훈을 얻을 수 있다.

    게임의 결말은 우주 지렁이가 승리하여 영웅이 되었고, 전투에서 평화를 되찾았다는 것이다. 이를 통해 우리는 노력과 투지를 가지고 어려움을 극복하면 좋은 결과를 얻을 수 있다는 메시지를 받을 수 있다.

    이 게임은 즐거움과 동시에 우리에게 격려와 영감을 주는 역할을 한다. 우리는 우주 지렁이의 이야기를 통해 자신의 내면에 잠재되어 있는 힘과 용기를 발견하고, 어려운 상황에서도 결단력을 갖고 끈기를 지속할 수 있는 자신을 발견할 수 있다.

    마지막으로, 이 게임은 우리에게 자유로운 상상력과 창의력을 펼칠 수 있는 기회를 제공한다. 우주 지렁이의 모험은 우리의 상상력을 자극하며, 우리가 새로운 아이디어와 가능성을 발견할 수 있도록 도와준다.

    이렇듯, 이 게임은 즐거움과 함께 교훈과 영감을 전달하는 중요한 역할을 한다. 우리는 게임 속 우주 지렁이의 이야기를 통해 우리 자신을 성장시키고 새로운 가능성을 탐험할 수 있다.


    함수 블록 코딩하기

    블록 코딩은 오브젝트 5개로 구성되며, 함수 20개를 사용합니다. 각 오브젝트 번호는 코딩하는 순서를 의미합니다.

    오브젝트에 맞추어 함수를 순서대로 코딩합니다.

    오브젝트 함수 이름
    지렁이/꼬리 지렁이_방향 설정
    지렁이_부스터 모드
    지렁이_음식 먹기 애니메이션
    지렁이_게임 종료
    지렁이_꼬리 만들기
    지렁이_꼬리 잔상 효과
    지렁이_꼬리 위치 설정
    지렁이_꼬리 길이 키우기
    지렁이 부스트 지렁이_부스트 상태 표시
    지렁이 미니맵 지렁이 미니맵_위치 설정
    음식 음식_재귀함수로 만들기
    음식_복제본 위치 설정
    음식_화면 밖 이동시 위치 설정
    음식_사라지는 애니메이션 효과
    음식_배경에 따라 위치 이동
    외계인 16 외계인_만들기
    17 외계인_위치 설정 및 이동
    18 외계인_배경에 따라 위치 이동
    19 외계인_움직이는 애니메이션 효과
    20 외계인_사라지는 애니메이션 효과

    【지렁이】 오브젝트는 함수 8, 【지렁이 부스트】는 함수 1, [지렁이 미니맵]은 함수 1, 【음식】은 함수 5, 【외계인】은 함수 5개로 구성됩니다.

    변수, 신호, 리스트, 함수 속성은 다음과 같이 구성됩니다. 변수는 게임 값을 저장할 때 사용합니다. 신호 속성은 게임 흐름을 제어할 때 사용합니다. 리스트는 문제 및 정답을 관리할 때 사용합니다. 함수 속성은 오브젝트 동작을 실행할 때 사용합니다.


    생각 더하기

    게임의 재미를 위해 기능들을 추가할 수 있습니다. 난이도를 높이거나 게임의 재미를 위해 컴퓨터 지렁이를 만들 수 있습니다. 물론 【외계인】으로 게임을 진행하는데 문제가 없지만, 【컴퓨터 지렁이】를 추가해서 게임의 난이도를 올릴 수 있습니다. 【컴퓨터 지렁이】는 한 마리만 게임에서 사용되지만, 【컴퓨터 지렁이】 오브젝트를 복제해서 원하는 수만큼 만들어서 게임을 할 수 있습니다.

    미완성된 【컴퓨터 지렁이】를 완성하도록 합니다.

    7.1.1 초기화 및 복제본 만들기

    【컴퓨터 지렁이】 [머리][꼬리]를 구현해야 합니다. 【음식】이 닿으면 【음식】을 먹는 애니메이션도 필요합니다. 또한 【지렁이】 오브젝트가 부스트 모드일 때는 【컴퓨터 지렁이】로부터 멀리 도망 갈 수 있도록 만들어야 합니다.

    (1) 【컴퓨터 지렁이】 크기를 “25”로 정하고, 모양을 바꿉니다. 【지렁이】 오브젝트와 구분하기 위해 색깔을 “70”으로 설정합니다.

    (2) 【컴퓨터 지렁이】 위치를 무작위로 지정합니다.

    (3) 계속 반복하면서 【컴퓨터 지렁이】 복제본을 만듭니다.

    7.1.2 컴퓨터 지렁이 꼬리 만들기

    【컴퓨터 지렁이】의 꼬리를 만듭니다.

    (1) 【컴퓨터 지렁이】 꼬리 모양을 바꿉니다. 크기를 “15”로 설정합니다.

    (2) “0.9”초 동안 기다립니다.

    (3) 【컴퓨터 지렁이】가 움직이면서 꼬리가 만들어졌다 사라져야 합니다. 따라서 이 복제본을 삭제하여 화면에 보이지 않도록 합니다.

    7.1.3 음식에 닿으면 애니메이션 동작

    【컴퓨터 지렁이】【음식】에 닿으면 【음식】을 먹는 애니메이션을 표현할 수 있습니다. 따라서 【음식】에 닿았는지 판단하고, 【컴퓨터 지렁이】 모양을 바꿉니다.

    7.1.4 기타 블록

    【지렁이】는 부스트 모드로 【컴퓨터 지렁이】에서 벗어날 수 있습니다. 따라서 【지렁이】 『부스트 모드』 변수 값이 ON 상태라면 【컴퓨터 지렁이】 복제본인 꼬리를 삭제하여 보이지 않도록 합니다.

    『부스트 모드』 변수 값이 ON 상태라면 지렁이 머리를 화면에서 보이지 않도록 하고, 위치를 무작위로 이동합니다.

    그림 STYLEREF 1 \s 7 SEQ 그림 \* ARABIC \s 1 56 『부스트 모드』 ON 일 때 【컴퓨터 지렁이】 머리 숨기기

    【컴퓨터 지렁이】 방향을 무작위로 3~5초 사이로 이동하도록 합니다.

    【지렁이】의 배경이 움직이면, 【컴퓨터 지렁이】이도 함께 위치가 보정되어야 합니다. 예를 들어, 배경이 오른쪽으로 2.5만큼 움직인다면 【컴퓨터 지렁이】도 오른쪽으로 함께 2.5만큼 움직이도록 하여, 배경과 분리되지 않도록 어색함을 없앨 수 있습니다.


    실행 영상

    함수 블록 코딩이 모두 완료가 되었다면, 엔트리를 실행합니다. 【지렁이】가 이동하여 【외계인】 피하면서 【음식】을 먹고 【지렁이】 꼬리를 키우는 게임을 합니다. 【지렁이】 부스트 ON에서 【외계인】에 닿으면 추가 점수가 올라갑니다. 만약 【지렁이】『부스트 모드』 변수 값이 OFF 상태에서 【외계인】에 닿으면 게임은 종료됩니다.

    https://youtu.be/M-_dXZMyLIg


    마무리

    지렁이 키우기 게임은 우주를 배경으로 【지렁이】【음식】을 먹으면서 꼬리를 키우는 단순한 게임입니다. 【외계인】【지렁이】이를 공격하기 위해 따라다니기도 하고, 부스트 모드를 사용해서 【외계인】을 공격하거나 멀리 있는 【음식】을 찾으러 빠르게 이동할 수 있습니다.

    이 장에서는 엔트리에서 오브젝트를 제어할 때 필요한 개념인 미니맵을 만들어 보았습니다. 확대 배경을 이용해 넓은 배경에서 원하는 위치를 작은 창에 표시하는 방법을 사용해 【지렁이】 위치를 표시해 보았습니다. 미니맵은 게임을 만들 때 응용하여 사용할 수 있습니다.

    또한 부스트 모드는 【지렁이】 빠르게 이동하는 효과가 있습니다. 고정된 【지렁이】 오브젝트를 배경 및 주변 오브젝트를 이동해서 실제 이동하는 것과 같은 효과를 표현하는 방법을 배웠습니다. 미로 게임, 매우 큰 맵을 사용하는 게임 등에 응용해서 게임을 만들 수 있습니다.

    함수 블록 코딩이 모두 완료가 되었다면, 엔트리를 실행합니다. 【지렁이】가 이동하여 【외계인】 피하면서 【음식】을 먹고 【지렁이】 꼬리를 키우는 게임을 합니다. 【지렁이】 부스트 ON에서 【외계인】에 닿으면 추가 점수가 올라갑니다. 만약 【지렁이】『부스트 모드』 변수 값이 OFF 상태에서 【외계인】에 닿으면 게임은 종료됩니다.

    예제 파일 다운로드



    댓글