카테고리 보관물: 자작 앱 소개

고전 우주 슈팅 게임

개요

필자는 갤러그 같은 비행기 슈팅 게임을 좋아합니다(연식 나온다…). 이런 저런 게임을 접하고 즐기다 보니 이런 슈팅 게임은 어떻게 만들었는지 궁금했습니다. 자료를 찾아보니 혼자 제작도 가능할 것 같다는 생각이 들었습니다. 나만의 게임을 만들어 보자는 생각이 들어서 제작해 보기로 마음 먹었습니다. 물론 다른 사람들도 즐길 수 있도록 해야하니 그 부분도 제작하는 중에 계속 고려했습니다.

제작

처음에는 막연하게 무엇부터 해야할지 결정하기가 어려웠습니다. 일단 보이는 부분부터 작업하기로 하고 그래픽, 효과음, 음악 순서로 진행했습니다. 중간 중간 프로그램 부분을 작업하면서 전체적인 게임의 틀을 만들었습니다.

그래픽

당연히 처음에는 상당히 막연했습니다. 일단 비행기와 적들은 기본적으로 있어야 하니 도트 그래픽으로 하나씩 작업했습니다. 그래픽 작업을 하지 않는 필자의 솜씨니 그려 놓고도 마음에 들지 않았습니다. 그래도 계속 반복하면서 그렸더니 나중에는 그나마 봐줄만한 정도는 되었습니다(철처한 개인생각). 그리고 조금씩 그리는 요령이 생겼습니다.

그 다음으로 생각되는 것이 왕(보스) 였습니다. 플레이어와 일반 적들보다는 커야 하니 크기는 키웠는데 상대적으로 그리기는 더 어려웠습니다. 윤곽은 그렸는데 그 안쪽을 보기 좋게 채워넣는 것이 어려웠습니다. 이것 역시 여러번 그리기를 반복해서 그나마 괜찮다고 느껴지는 것을 골라 사용했습니다.

비행기가 날아가고 있다는 효과는 배경이 스크롤 되도록 해서 마무리 했습니다. 배경은 최대한 간단하게 작업했는데 필자의 그래픽 작업 실력으로는 다른 게임처럼 화려하면서도 시선을 빼앗기지 않도록 작업하는 것이 거의 불가능했습니다.

그래픽 관련 애셋(Asset)을 어떻게든 만들어서 기본적인 비행기 슈팅 게임의 틀은 구성했습니다. 이리저리 테스트 하다보니 여러가지 생각이 들었고 운석과 지뢰 장애물이 추가되었습니다. 그런데 너무 밋밋한 느낌이 들었습니다. 그 이유가 효과음과 음악이 없었기 때문이었습니다.

처음화면
처음화면

효과음

일단 효과음은 이리저리 찾아보니 제작할 수 있는 프로그램이 있어 필자가 원하는 느낌의 소리를 만들 수 있었습니다(총알발사, 폭발…). 다른 프로그램을 이용해서 조금씩 바꾸어서 최대한 필자가 원하는 효과음을 제작했습니다.

음악

문제는 음악이었습니다. 음악을 듣기만 했지 만드는 것은 상상조차 한 일이 없었습니다. 일단 무료로 사용할 수 있는 배경음악을 들어보고 받아 놓기는 했습니다. 그런데 어느 것도 필자가 원하는 분위기는 아니었습니다. 조금 더 생각해 보니 여러가지 음악이 필요했습니다. 처음 메뉴화면, 플레이, 보스등장, 게임오버, 게임클리어 이렇게 다섯가지나 필요했습니다. 욕심이었는지 모르겠지만 독립된 화면에는 그에 맞는 음악이 있어야 한다고 생각했습니다. 그 동안 별 생각이 없었는데 게임에서 음악이 참 중요한 요소라는 것을 알게 되었습니다.

음악에 대한 지식이 없으니 이른바 찍어서(?) 만드는 방식으로 멜로디를 만들고 몇번의 시도 끝에 겨우겨우 짧은 배경음악 5개를 만들 수 있었습니다. 들어보면 뭔가 어색한 느낌이 중간중간 드는 것은 사실인데 일단 스스로 만들었다는 것에 더 의미를 두기로 했습니다. 좋은 음악이 것이 쉽게 만들어지는 것이 아니라는 것을 느끼게 되었습니다.

게임 진행 화면
게임 진행 화면

프로그래밍

프로그래밍 자체는 그렇게 어렵지는 않았습니다. 원래 프로그램쪽이 주 분야라서 만들어진 애셋을 제어해서 원하는 동작으로 하도록 하는 것은 크게 문제되지 않았습니다. 프로그래밍 자체보다는 여러가지 조정해야 하는 변수나 기초 자료를 잘 관리하는 것에 더 많은 신경을 써야 겠다고 느꼈습니다. 처음에는 단순했는데 작업을 진행하다보니 각 객체(플레이어, 적, 배경…)를 제어하는 여러가지 설정이 필요하게 되었습니다. 이것을 잘 분류해서 관리하는 것이 중요하다고 느껴졌습니다. 게임의 규모가 더 커졌을 때 초기 계획없이 진행하면 나중에 큰 문제가 될 것이라고 느껴졌습니다.

처음에는 쉽게 생각하고 접근했는데 실제로 해 보니 게임제작에 상당한 노력과 시간이 들어간다는 것을 알 수 있었습니다. 아무리 간단한 게임이라도 제작자의 수많은 고민과 노력이 담겨있다는 것을 잘 이해하게 되었습니다.

게임은 다음 주소에서 확인하실 수 있습니다. 게임이 끝나면 광고가 나타납니다.

https://play.google.com/store/apps/details?id=jaeyoung.kim.RetroSpaceShooter

인생 시계 안드로이드 앱

개요

얼마 전 자기계발 관련한 책을 읽다가 흥미로운 부분을 발견했습니다. 먼저 자기가 생존할 나이를 자기만의 기준으로 정합니다. 그 다음 남은 시간을 보여주는 프로그램을 PC에 설치해서 항상볼 수 있도록 했다는 내용이었습니다. Life Clock 혹은 Death Clock 이라고 불리우는 것 같았습니다.

언급된 프로그램을 검색해 보았으나 필자가 생각했던 형태는 아니었습니다. 앱도 검색을 해 보았는데 비슷한 것은 있었습니다. 하지만 필자의 생각과 일치하는 앱은 없어서 직접 제작해 보기로 했습니다. 앱 이름은 인생 시계로 정했습니다.

제작

인생의 남은 시간을 계산할 때 여러가지 요소가 있었습니다(수면, 기다리는 시간…). 간단하게 생일과 내가 살고자 하는 나이(과학적인 바탕이든 그냥 정한 것이든…)를 기준으로 계산해서 표시하도록 작업했습니다. 설정화면에서 생일과 살고자 하는 나이를 선택하도록 했습니다.

생일, 살고자 하는 나이 설정

설정된 정보를 가지고 앞으로 남은 연, 월, 일, 시간, 분, 초가 나타나도록 작업했습니다. 생각해 보니 얼마나 살아왔는지의 정보도 보여주면 좋을 것 같았습니다. 아래 부분에 조금 작게 나타나도록 했습니다. 또 살아온 시간이 어느 정도의 비율인지도 궁금해서 같이 나타나도록 추가했습니다.

남은 시간, 살아온 시간 및 비율 표시

앱을 실행하면 볼 수 있지만 항상 그럴 수는 없을 것 같았습니다. 그래서 홈 화면에 위젯형태로 추가할 수 있도록 했습니다. 모두 보여주기에는 공간이 부족해서 남은 연, 월, 일이 표시되도록 했습니다. 위젯을 터치하면 앱이 실행되어 더 자세한 시간을 확인할 수 있도록 했습니다.

홈 화면에 위젯을 추가한 모습

실제 생일과 나이를 입력하고 보니 생각보다 많은 시간을 살아왔고 남은 시간이 많지 않다는 것이 느껴졌습니다.

각자의 느낌은 모두 다르겠지만 인생을 열심히 잘 살아가는데 조금이라도 동기부여가 되었으면 좋겠습니다.

다음 주소에서 확인하실 수 있고 하단 배너 광고가 포함되어 있습니다.

https://play.google.com/store/apps/details?id=jaeyoung.kim.lifeclock