해적선 맞추기 슈팅 게임은 해적으로부터 【여객선】을 보호하는 아케이드 1인칭 슈팅 게임입니다. 플레이어 시점이 1인칭 슈팅 게임(FPS, First Person Shooter)입니다. 【대포】의 【조준경】 방향을 위쪽, 아래쪽, 오른쪽, 왼쪽으로 이동하면서 【대포】를 발사하여 【해적선】을 맞출 수 있습니다. 하지만, 【대포】의 정확도는 높지 않습니다. 바람 영향으로 【포탄】은 원하는 방향에 정확히 날아가지 않을 수 있습니다. 만약 제한 시간이 0이 되면 게임은 종료됩니다.
목차
게임 만들기
해적선 맞추기 슈팅 게임은 해적으로부터 여객선을 보호하는 게임입니다. 【여객선】을 보호하기 위해 플레이어 대포로 【해적선】을 침몰시킬 수 있습니다. 지정한 시간 동안 【여객선】을 지키면 미션을 성공할 수 있습니다.
플레이어는 마우스를 이용하여 대포의 조준경 방향을 위, 아래, 좌, 우로 움직일 수 있으며, 마우스 왼쪽 버튼을 클릭하여 대포를 발사할 수 있습니다. 대포의 정확도는 바람의 영향을 받기 때문에, 포탄이 원하는 방향으로 정확히 날아가지 않을 수 있습니다. 타이머를 주의깊게 지켜야 하며, 제한 시간이 0이 되면 게임은 종료됩니다.
포탄의 정확도는 바람의 영향을 받기 때문에, 바람의 방향과 세기를 고려해야 합니다. 바람의 방향과 세기는
화면에 표시되며, 조준을 보정할 때 이를 고려하여 조준을 조절해야 합니다. 바람이 좌측으로 불면 포탄이 우측으로 편향되고, 바람이 우측으로 불면 포탄이 좌측으로 편향됩니다. 바람의 세기가 강할수록 편향 정도도 커집니다.
게임은 제한 시간이 주어지며, 일정 시간 내에 해적들을 물리치고 타이타닉 호를 구출해야 합니다. 해적들은 여러 번의 포탄 공격을 시도 합니다. 타이타닉 호의 체력이 모두 소진되면 게임이 종료됩니다.
게임 테마
게임을 만들기 전에 게임 테마에 대한 이해가 필요합니다 게임 테마는 게임에서 전달하고 싶은 메시지를 의미합니다. 게임은 기억력 향상을 하는데 목적이 있습니다.
게임 설계는 매우 중요하고 복잡한 작업이며, 각 요소들을 조화롭게 조합하여 흥미로운 게임을 만들어내는 것이 목표입니다.
게임의 시작은 '테마'부터 출발합니다. 테마는 게임이 전달하고자 하는 메시지나 주제를 나타냅니다. 예를 들어, 용기와 도전을 테마로 설정한다면, 플레이어들은 용기 있는 행동을 취해야 하는 상황을 경험하게 됩니다.
그리고 '콘셉트 디자인' 단계에서는 게임의 핵심 재미와 구성을 결정합니다. 게임이 어떤 재미 요소를 가지고 있을지, 어떤 게임 플레이 방식을 채택할지 등을 고민하여 게임의 기본적인 개념을 만들어냅니다.
이어서 '캐릭터 설정' 단계에서는 주요 플레이어 캐릭터와 NPC들을 설계합니다. 여기서는 아두이노 실드 버튼과 관련하여 캐릭터들이 어떤 역할을 수행하는지, 그들의 개성과 능력을 설정합니다.
게임의 배경과 역사를 담당하는 '세계관'은 과거의 시간적, 공간적 배경과 함께 문화, 종교, 정치 등의 사상적 배경을 설정하여 게임의 세계를 더욱 풍부하고 흥미로운 공간으로 만들어줍니다.
스토리는 현재의 배경을 담당하며, 인물, 배경, 사건 등을 통해 게임의 이야기를 구성합니다.
게임의 규칙과 시스템은 '메커니즘' 단계에서 설계됩니다. 플레이어와 상호작용하는 방법, 게임 진행 절차 등을 정의하여 게임의 규칙을 구체화합니다.
레벨 디자인은 난이도와 맵 디자인을 결정합니다. 플레이어가 게임을 즐길 수 있도록 흥미로운 맵과 적절한 난이도로 레벨을 구성합니다.
마지막으로 밸런스를 조절하여 게임이 적절한 수준으로 도전적이고 보상적인 경험을 제공하도록 합니다. 캐릭터의 능력, 아이템, 난이도 등을 균형 있게 조정하는 것이 중요합니다.
이렇게 각 단계를 차례대로 거쳐 게임 설계를 완성하면, 흥미로운 게임을 만들 수 있습니다. 팀원들과 협업하며 사용자들의 피드백을 적극 수용하여 게임을 지속적으로 개선하는 것이 중요합니다. 훌륭한 게임을 만들기 위해서는 끊임없는 노력과 열정이 필요합니다.
① 테마(메시지): 해적 공격에서 타이타닉 호를 지켜라.
② 콘셉트 디자인: 과거로 돌아간 타이타닉 호를 장보고가 되어 해적을 지켜라.
③ 캐릭터 설정(플레이어 캐릭터(Player Character, PC), NPC): 장보고(1인칭 시점 캐릭터), 【해적선】, 【NPC】
④ 세계관(과거 배경-시간적, 공간적, 사상적 배경): 1912년 4월 10일 영국의 사우샘프턴을 떠나 미국의 뉴욕으로 향하던 첫 항해 중에 RMS 타이타닉호가 태풍을 만나 버뮤다 삼각지대에서 828년 통일 신라 후기로 타이타닉이 과거로 이동하게 됩니다. 이 당시에는 한반도에 해적이 득실득실했던 시대였습니다. 장보고는 흥덕왕의 지원으로 완도에 군사 1만을 거느릴 수 있는 청해진을 설치하였습니다. 하지만 이 지역 대부분은 해적들이 장악하고 있었습니다.
⑤ 스토리(현재 배경-인물, 배경, 사건): 장보고는 완도에 갑자기 나타난 외국 여객선 타이타닉호를 해적에게서 구출하기 위해 소탕 작전을 시작했습니다. 하지만 해적 공격이 매섭습니다.
⑥ 메커니즘(절차, 규칙): 『여객선 HP』가 0이 되면 게임 종료됩니다. 시간 0일 때 【해적선】이 침몰하지 않았다면 미션 성공입니다.
⑦ 레벨 디자인(난이도, 맵 디자인): 【해적선】이 출몰하면서 【여객선】을 공격, 【해적선】은 1~3발 포탄 공격을 합니다.
⑧ 밸런스(균형, 보상, 적절한 수준): 플레이어 포탄은 『높이』, 『힘』, 『바람』에 영향을 받아 정확한 조준이 어렵습니다.
게임 스토리
장 1: 타이타닉 호의 위기
1912년 4월 10일, 영국의 사우샘프턴 항구에서 출항한 타이타닉 호는 미국 뉴욕을 향해 첫 항해를 떠났습니다. 그러나 이번 항해에서 타이타닉 호는 태풍에 휩쓸려 버뮤다 삼각지대로 이동하게 되었습니다. 그 곳에서 뜻하지 않은 일이 벌어졌습니다. 타이타닉 호는 신라 후기인 828년의 과거로 이동했던 것이었습니다. 이 시대에는 한반도에 해적이 선동하고 있는 시기였습니다.
그리고 이 해적들의 중심지는 완도였습니다. 완도는 해적들의 영토로 알려져 있었고, 장보고는 이 지역을 정복하기 위해 완도에 청해진을 설치하였습니다. 하지만 해적들은 여전히 완도를 장악하고 있었고, 장보고는 이를 막기 위해 군사 1만 명을 거느릴 수 있는 청해진을 통해 항해했습니다.
장 2: 장보고의 소탕 작전
어느 날 갑자기 나타난 외국 여객선 타이타닉 호를 보고한 장보고는 해적으로부터 이 여객선을 구출하기 위해 소탕 작전을 시작합니다. 장보고는 일찍부터 해적들의 동향을 파악하고 있었기 때문에 이번 기회를 놓치지 않기로 결심했습니다.
하지만 해적들은 장보고의 이동을 감지하고 대응하기 시작합니다. 해적선이 나타나면서 여객선에 대한 공격이 시작됩니다. 장보고는 이를 막기 위해 대포를 조준하고 발사해야 합니다. 그러나 대포의 정확도는 높지 않아서 바람의 영향을 받아 포탄은 원하는 방향으로 정확하게 날아가지 않을 수 있습니다.
장 3: 타이타닉 호의 위기
플레이어인 장보고는 대포의 조준경 방향을 조정하면서 해적선을 공격해야 합니다. 그리고 동시에 여객선의 상태를 주시해야 합니다. 타이타닉 호의 체력이 낮아지면서 해적들의 공격이 점점 치열해 지고 있습니다. 타이타닉 호는 해적들의 포탄 공격에 휩쓸려 위기에 처했습니다. 장보고는 정확한 조준과 발사를 통해 해적선을 맞추어야 합니다. 그러나 바람의 영향으로 대포의 정확도는 떨어지기 때문에 정확한 조준이 어려운 상황입니다.
플레이어는 여러 가지 요소들을 고려해야 합니다. 먼저 포탄을 발사할 때의 힘과 각도를 조절해야 합니다. 포탄의 높이와 힘은 바람의 영향을 받기 때문에 최적의 값을 찾는 것이 중요합니다. 또한 바람의 방향과 세기를 파악하여 조준을 보정해야 합니다.
해적선은 여러 번의 포탄 공격을 시도합니다. 플레이어는 빠르게 반응하여 포탄을 피하거나, 가능한 한 타이타닉 호를 보호해야 합니다. 타이타닉 호의 체력이 모두 소진되면 게임은 종료됩니다.
시간은 한정되어 있기 때문에 장보고는 신속하게 해적을 물리치고 타이타닉 호를 구출해야 합니다. 만약 제한 시간이 0이 되어도 해적선이 아직 침몰하지 않았다면 미션은 성공한 것으로 간주됩니다.
플레이어는 장보고로서 과거로 돌아간 타이타닉 호를 지키기 위해 전투를 벌여야 합니다. 바람, 해적의 공격, 타이타닉 호의 체력 등 여러 요소를 고려하면서 최선을 다해야 합니다. 이러한 도전적인 상황에서 플레이어의 뛰어난 사격 실력과 전략적인 판단이 요구됩니다.
장 4: 해적들의 맹렬한 공격
해적들은 장보고의 저항에도 불구하고 맹렬한 공격을 이어갑니다. 포탄이 비정확하게 날아가는 것을 이용하여 해적들은 민첩하게 회피하고 반격을 시도합니다. 타이타닉 호는 해적의 공격에 점점 피폐해져 갑니다.
장보고는 타이타닉 호의 상태를 주시하면서 정확한 조준을 시도해야 합니다. 그는 포탄의 높이와 힘, 바람의 방향과 세기를 조합하여 최적의 조준을 찾아야 합니다. 한 방향으로 고집하지 않고 상황에 따라 조준을 조정해야만 명중할 수 있습니다.
장 5: 장보고의 결단과 구출
시간은 빠르게 흐르고 해적들의 공격은 계속됩니다. 장보고는 마지막까지 힘겹게 포탄을 발사하며 해적들을 물리치고 타이타닉 호를 보호합니다. 그리고 타이타닉 호는 해적의 마지막 공격을 피하고 침몰하지 않습니다. 이는 장보고의 노력과 결단의 결과입니다.
장 6: 임무 완료와 시간 여행의 엔딩
타이타닉 호는 해적들로부터 구해졌고, 장보고의 임무는 성공적으로 완료되었습니다. 게임은 장보고의 용기와 전략, 사격 실력을 시험하는 동시에, 과거와 현재의 시대를 오가며 스릴 넘치는 이야기를 전달합니다. 타이타닉 호를 지키고 해적을 물리치는 과정에서 플레이어는 역사를 재조정하고 앞으로 나아가는 동기부여를 얻습니다. 또한, 장보고의 용기와 결단력은 플레이어에게 영감을 줄 수 있습니다. 이 게임은 슈팅 요소와 시간 여행의 재미를 조합하여 흥미로운 게이밍 경험을 제공합니다.
플레이어는 타이타닉 호와 장보고의 역사적인 이야기에 몰입하며, 해적과의 전투에서 스릴과 긴장감을 느낄 수 있습니다. 게임의 재미와 난이도는 여러 요소의 조합과 플레이어의 능력에 따라 변화합니다. 정확한 조준과 반사 신경은 슈팅 능력을 향상시키며, 전략적인 판단력과 순간적인 의사결정은 게임을 승리로 이끌 수 있습니다.
이 게임은 과거와 현재, 해적과 장보고, 시간 여행과 슈팅 요소를 유기적으로 결합하여 독특하고 흥미로운 경험을 제공합니다. 플레이어는 과거의 역사적인 배경에서 벌어지는 전투를 체험하며, 장보고로서의 임무를 수행하는 동안 자신의 실력과 용기를 테스트할 수 있습니다.
이렇게 작성된 게임 시나리오는 플레이어에게 슈팅 게임의 몰입감과 스릴을 제공하면서도 시간 여행과 역사적 배경을 통해 독특한 이야기를 전달합니다. 플레이어는 장보고의 역할을 맡아 타이타닉 호를 해적으로부터 지키는 임무를 수행하며, 전략과 사격 능력을 발휘하여 게임을 성공적으로 완료할 수 있습니다.
함수 블록 코딩하기
{장면 2} 블록 코딩은 오브젝트 6개로 구성되며, 함수 15개를 사용합니다. 각 오브젝트 번호는 코딩하는 순서를 의미합니다.
변수, 신호, 리스트, 함수 속성은 다음과 같이 구성됩니다. 변수는 게임 값을 저장할 때 사용합니다. 신호 속성은 게임 흐름을 제어할 때 사용합니다. 리스트는 문제 및 정답을 관리할 때 사용합니다. 함수 속성은 오브젝트 동작을 실행할 때 사용합니다.
생각 더하기
게임의 재미를 위해 기능들을 추가할 수 있습니다. 예를 들어, 다음과 같이 【여객선】의 상태를 확인할 수 있는 HP바를 표시할 수 있습니다.
그림 여객선 HP바
여객선 HP바는 아무것도 없는 오브젝트를 사용해 만듭니다.
그림 여객선 HP바 블록
(1) 『여객선 HP』 변수에 1000 값을 저장합니다. 【해적선 포탄】을 맞으면 HP가 줄어듭니다.
(2) 붓의 굵기를 “5”로 정합니다.
(3) 계속 반복하기를 시작하고, 이전에 그려진 붓이 있다면 모든 붓을 지웁니다. 만약 붓 지우기를 맨 뒤에 두면 지원 진 채로 화면이 적용되고 딜레이가 발생해 붓이 보이지 않게 됩니다.
(4) 붓의 색을 빨간색으로 설정합니다.
(5) HP바 시작위치는 X:(여객선 x좌표값-30), y:(여객선 y좌표값+30)입니다. 【여객선 HP바】를 그리기 시작합니다.
그림 여객선 HP 위치
(6) 【여객선 HP바】의 최대 값은 1000입니다. 그리고 【여객선 HP바】 길이는 60입니다. (여객선 HP바 값)/1000X60을 더해서 빨간색 HP를 그립니다. 예를 들어, HP가 900이라면 1000/1000X60 = 60으로 빨간색 HP가 전체 화면으로 표시됩니다. 【여객선 HP바】 값이 줄어들면 빨간색 범위가 줄어들며 남은 HP를 표시하는 것을 확인할 수 있습니다.
(7) 처음에는 빨간색으로 그 뒤 남은 HP는 검은색으로 바꾸어 남은 HP의 상태를 표시합니다.
그림 여객선 HP 계산
실행 영상
함수의 블록 코딩이 모두 완료되었다면, 엔트리를 실행합니다. 【여객선】을 지키기 위해 【조준경】을 이동하여 【해적선】에 대포를 발사합니다. 만약 [시간]이 0이라면 게임은 종료되고 미션 결과를 알려줍니다.
마무리
이 장에서는 엔트리에서 오브젝트를 제어할 때 필요한 개념인 【NPC】를 코딩했습니다. 【NPC】는 게임의 시나리오를 진행하는 중요한 역할을 합니다. 또한 {장면 1}, {장면 2}를 만들어 시나리오가 자연스럽게 진행될 수 있도록 【NPC】가 스토리의 연결 역할을 합니다. {장면 1}에서는 게임의 진행 방법을 설명하고, {장면 2}에서는 【여객선】의 상태를 알려줍니다.
'엔트리와 아두이노로 만나는 게임 학교' 카테고리의 다른 글
2장-[엔트리와 아두이노로 만나는 게임 학교] 메모리 버튼 게임 만들기 (0) | 2023.07.26 |
---|---|
12장-[엔트리와 아두이노로 만나는 게임 학교] 바다에 쓰레기가 떨어지면 슈팅 게임 만들기 (0) | 2023.05.25 |
11장-[엔트리와 아두이노로 만나는 게임 학교] 몬스터 슈팅 게임 만들기 (0) | 2023.05.25 |
10장-[엔트리와 아두이노로 만나는 게임 학교] 드래곤 슈팅 게임 만들기 (0) | 2023.05.25 |
9장-[엔트리와 아두이노로 만나는 게임 학교] 롤링 스카이 게임 만들기 (0) | 2023.05.25 |
댓글