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

5장-[엔트리와 아두이노로 만나는 게임 학교] 선물 뽑기 게임 만들기

by 로니-킴 2023. 5. 22.


선물 뽑기 게임은 【로봇팔】 사용해 【선물】을 뽑는 아케이드 시뮬레이션 게임입니다. 실제 현실 세계에서 사건이나 현상을 가상으로 구현한 게임입니다. 예를 들어, 【로봇팔】을 오른쪽/왼쪽(X) 이동 또는 앞/뒤로(Z) 이동해서 【선물】을 뽑을 수 있습니다. 만약 【선물】【바구니】에 넣었다면 점수가 더해집니다.

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

목차


    게임 만들기

    선물 뽑기 게임은 20개의 【선물】【로봇팔】이 제어하여 뽑는 단순한 게임입니다.

    엔트리와 아두이노로 만나는 게임 학교 - 선물 뽑기 게임 만들기


    게임 테마

    게임을 만들기 전에 게임 테마에 대한 이해가 필요합니다 게임 테마는 게임에서 전달하고 싶은 메시지를 의미합니다. 게임은 기억력 향상을 하는데 목적이 있습니다.

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


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


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


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


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


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


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


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

    테마(메시지): 【선물】 뽑기 달인이 되어 가상 세계 속 방 탈출을 하세요.

    콘셉트 디자인(게임의 핵심 재미와 구성): 【선물】을 모두 뽑아 방 탈출을 하자. 【선물】 뽑기가 제일 쉬웠어요!!

    캐릭터 설정(플레이어 캐릭터(Player Character, PC), NPC): 로봇팔

    세계관(과거 배경-시간적, 공간적, 사상적 배경): 플레이어는 가상 세계에 있는 방에 갇혔습니다. 【선물】을 모두 뽑아야 방 탈출을 할 수 있습니다.

    스토리(현재 배경-인물, 배경, 사건): 친구들은 생일을 맞은 플레이어를 축하하기 위해 특별한 【선물】을 준비했습니다. 바로 가상현실 방 탈출 게임의 티켓입니다. 플레이어는 가상 현실 게임을 시작합니다. 방 탈출 조건은 눈앞에 펼쳐진 【선물】을 모두 뽑아야 합니다.

    메커니즘(절차, 규칙): 【로봇팔】을 이동해 원하는 【선물】 뽑기. 앞으로, 뒤로, 왼쪽, 오른쪽 이동하면서 원하는 위치 【선물】을 뽑을 수 있습니다.

    레벨 디자인(난이도, 맵 디자인): 【선물】 20개가 무작위 위치에서 나타납니다. 여러 개의 【선물】을 동시에 뽑을 수 있습니다. 제한 시간은 없습니다.

    밸런스(균형, 보상, 적절한 수준) 【선물】은 이동 중에 떨어질 수 있습니다.


    게임 스토리

    한 가운데에 위치한 플레이어는 가상 세계에 있는 방에 갇혀있는 상황입니다. 그러나 이번에는 특별한 이벤트가 펼쳐집니다. 플레이어의 친구들은 생일을 축하하기 위해 특별한 선물을 준비했습니다. 이 선물은 바로 가상 현실 방 탈출 게임의 티켓입니다.

    플레이어는 설레는 마음으로 가상 현실 게임을 시작합니다. 방 탈출의 조건은 눈앞에 펼쳐진 선물들을 모두 뽑아내는 것입니다. 그리고 그 방법은 로봇팔을 사용하는 선물 뽑기 게임입니다.

    로봇팔을 조종하여 원하는 선물을 뽑아내기 위해 플레이어는 로봇팔을 앞으로, 뒤로, 왼쪽, 오른쪽으로 이동시킬 수 있습니다. 그리고 정확한 위치에서 로봇팔을 작동시켜 선물을 뽑아내야 합니다.

    방 안에는 총 20개의 선물들이 무작위로 위치해 있으며, 여러 개의 선물을 동시에 뽑아낼 수도 있습니다. 제한 시간은 없으므로 플레이어는 자유롭게 로봇팔을 움직여 선물을 뽑아냅니다.

    그러나 주의해야 할 점은 선물들이 이동 중에 떨어질 수 있다는 것입니다. 플레이어는 로봇팔을 정확하게 조종하여 선물을 안전하게 바구니에 넣어야만 점수가 더해집니다.

    플레이어는 뛰어난 선물 뽑기 실력을 발휘하여 모든 선물을 뽑아내고 방에서 탈출해야 합니다. 선물 뽑기 달인이 되어 가상 세계 속 방 탈출을 성공적으로 이루어내는 것이 이 게임의 목표입니다.

    플레이어는 로봇팔을 조종하며 숙련된 동작으로 선물들을 뽑아내고, 그 과정에서 즐거움을 느낄 수 있습니다. 각 선물은 다양한 크기와 형태를 가지고 있어 뽑기의 난이도가 조금씩 다릅니다. 작은 선물은 쉽게 뽑아낼 수 있지만, 크고 무거운 선물은 조금 더 정확한 조작과 힘이 필요합니다.

    방 안은 신비로운 분위기로 가득 차 있습니다. 선물들은 화려하게 포장되어 있고, 각각은 다양한 꾸미기와 색상으로 장식되어 있습니다. 플레이어는 선물의 미스터리한 매력에 끌려 가상 세계에 몰입할 수 있습니다.

    또한, 선물 뽑기 게임은 전략과 집중력을 요구합니다. 어떤 선물을 먼저 뽑을지, 어떤 각도와 힘으로 로봇팔을 작동시킬지 신중하게 결정해야 합니다. 높은 점수를 얻기 위해서는 효율적으로 선물을 뽑는 것이 중요합니다.

    게임을 진행하면서 플레이어는 점차 더 높은 난이도의 레벨로 도전하게 됩니다. 선물들의 배치와 형태가 복잡해지며, 로봇팔을 조작하는 속도와 정확도를 요구하는 순간들이 증가합니다. 그러나 플레이어는 훈련과 경험을 통해 선물 뽑기의 달인이 될 수 있습니다.

    모든 선물을 뽑아낸 순간, 방은 환호성과 함성으로 가득 차며 축하의 분위기로 물들어집니다. 플레이어는 자신의 업적을 자랑스럽게 바라보며, 가상 세계 속 방에서의 탈출을 성공적으로 이루어냅니다. 이를 통해 게임은 플레이어의 기억력과 집중력 향상을 도모하는 데에 목적을 두고 있습니다.

    선물 뽑기 게임은 현실에서는 쉽게 경험할 수 없는 재미와 스릴을 제공하는 동시에 플레이어에게 미지의 세계를 제공합니다. 각각의 선물은 다양한 의미와 가치를 내포하고 있으며, 플레이어는 선물을 뽑아내는 과정에서 놀라움과 기쁨을 느낄 수 있습니다. 게임은 선물을 뽑는 것만을 목표로 삼지만, 그 과정에서 선물들 사이의 상호작용과 의미를 탐구할 수도 있습니다.

    가상 세계 속 방 탈출은 플레이어의 상상력을 자극하며 새로운 경험을 제공합니다. 감각적인 시각 효과와 음향 효과를 통해 플레이어는 현실과 구분되는 특별한 경험을 즐길 수 있습니다. 게임을 플레이하는 동안 플레이어는 현실에서 벗어나 가상 세계의 흥미로운 이야기에 몰입할 수 있습니다.

    선물 뽑기 게임은 도전과 성취감을 함께 제공합니다. 플레이어는 난이도를 점차적으로 극복하며, 훌륭한 뽑기 실력과 전략을 발전시킵니다. 성공적으로 선물을 뽑아내고 방을 탈출할 때마다 플레이어는 자신의 역량과 능력에 대한 자신감을 키울 수 있습니다.

    더불어, 선물 뽑기 게임은 사회성과 경쟁 요소를 가지고 있습니다. 플레이어들은 점수와 기록을 공유하고, 서로간의 경쟁을 통해 더 높은 순위를 차지하기 위해 노력합니다. 이를 통해 게임은 플레이어들 사이의 소통과 협력을 유도하며, 친구들과 함께 즐길 수 있는 다양한 이벤트와 대회를 개최할 수도 있습니다.

    마지막으로, 선물 뽑기 게임은 플레이어들에게 선물과 보상의 느낌을 주는 요소를 가지고 있습니다. 플레이어는 선물 뽑기로 얻은 보상을 사용해 게임 내 아이템을 구매하거나 업그레이드할 수 있습니다. 이를 통해 게임은 지속적인 목표와 동기부동을 제공하며, 플레이어들은 자신의 캐릭터나 환경을 개선하고 발전시킬 수 있습니다. 또한, 플레이어들은 선물 뽑기 게임 내에서 획득한 보상을 현실 세계에서의 경험과 교환할 수도 있습니다. 예를 들어, 게임 내에서 얻은 포인트나 아이템을 실제 상점에서 할인 혜택이나 특별한 이벤트에 활용할 수 있습니다. 이를 통해 게임은 플레이어들에게 더 큰 동기부여를 제공하고 현실 세계와 가상 세계를 연결하는 경험을 선사합니다.

    종합하면, 선물 뽑기 게임은 가상 세계 속 방에서의 탈출을 목표로 하는 동시에 플레이어의 기억력과 집중력을 향상시키는 재미있는 경험을 제공합니다. 플레이어는 로봇팔을 조종하여 다양한 크기와 형태의 선물들을 뽑아내고, 그 과정에서 미스터리와 기쁨을 느낄 수 있습니다. 게임은 플레이어들에게 가상 세계의 새로운 이야기를 전달하며, 도전과 성취감, 사회성과 경쟁 요소, 보상과 발전을 통해 흥미로운 게임 경험을 제공합니다.


    함수 블록 코딩하기

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

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

    오브젝트 함수 이름
    선물 선물_선물 20개 복제본 만들기
    선물_로봇팔이 선물을 잡고 이동 동작
    선물_바구니에 도착
    선물_이동 중 떨어지는 동작
    선물_선물 개수 0개면 게임 종료
    로봇팔 수동 로봇팔_왼쪽(X) 이동
    로봇팔_오른쪽(X) 이동
    로봇팔_앞쪽(Z) 이동
    로봇팔_뒤쪽(Z) 이동
    로봇팔_흔들리는 애니메이션 동작
    로봇팔 자동 로봇팔_선물 뽑기 시작
    로봇팔_1단계 아래쪽 자동 이동
    로봇팔_2단계 위쪽 자동 이동
    로봇팔_3단계 바구니 방향 자동 이동
    로봇팔_4단계 앞쪽 자동 이동 후 로봇팔 펼치기

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


    생각 더하기

    게임의 재미를 위해 기능들을 추가할 수 있습니다. 예를 들어, 다음과 같이 원하는 설정 또는 재미를 위해 【선물】 모양 바꾸기, 음악 바꾸기, 난이도 조절하기 등을 바꿀 수 있습니다.

    (1) 원하는 【선물】 개수를 설정합니다. 예를 들어 20 à 50개로 바꿉니다.

    (2) 원하는 (배경 음악) 소리를 바꿉니다.

    (3) 【로봇팔】【선물】을 잡고 이동할 때, 난이도를 올려 【선물】이 쉽게 바닥으로 떨어지도록 수정합니다.


    실행 영상

    함수 블록 코딩이 모두 완료가 되었다면, 엔트리를 실행합니다. 【로봇팔】을 이동하여 【선물】을 모두 잡고 【바구니】에 넣습니다. 만약 【선물】0개라면 게임은 종료됩니다.

    https://youtu.be/cVmLgn7iPtw


    마무리

    현실 세계에서 인형 뽑기 게임과 같이 【로봇팔】이 흔들리는 동작, 【선물】을 잡았을 때 【로봇팔】이 힘이 없어 【선물】이 떨어지는 동작을 구현함으로써 난이도를 높이고, 재미를 주었습니다.

    이 장에서는 엔트리에서 오브젝트를 제어할 때 필요한 개념인 3차원 입체 도형 개념에 관해 설명하였습니다. X, Y, Z축을 이용해서 깊이라는 개념을 알아보았습니다. 또한 깊이에 따라 오브젝트가 멀어질수록 크기가 작아지는 원근법 효과도 배웠습니다. 3차원, 원근법을 활용해 다양한 종류의 게임을 제작할 수 있습니다.

    절대 좌표, 상대 좌표를 이용해 【로봇팔】 위치를 이해하기 쉽게 제어할 수 있었습니다. 예를 들어 기준점이 절대 좌표 (X: -123, Y: -77) 라면 상대 좌표 (X: 0, Y: 0)으로 설정하여 이해하기 쉽게 오브젝트의 위치를 제어할 수 있습니다. 코딩이 복잡할수록 함수 이름, 변수 이름, 신호 이름, 좌표 설정 값 등은 단순하게 하는 것이 좋습니다. 왜냐하면, 단순할 수록 이해하기 쉽고 시간과 노력을 줄일 수 있습니다. 간단하지만 매우 중요한 원칙입니다.

    함수 블록 코딩이 모두 완료가 되었다면, 엔트리를 실행합니다. 【로봇팔】을 이동하여 【선물】을 모두 잡고 【바구니】에 넣습니다. 만약 【선물】0개라면 게임은 종료됩니다.

    예제 파일 다운로드



    댓글