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

Final Space Hero

개요

이전에 소개한 고전 우주 슈팅 게임을 제작하고 최적화 작업을 마친 후 어떤 게임을 제작할지 생각해 보았습니다. 세로 스크롤 게임을 만들었으니 가로 스크롤 게임을 만들어 보자는 생각이 들었고 바로 기획에 들어갔습니다. 이름은 Final Space Hero 로 정했습니다.

기획

1인 개발이라서 기획이라고 할 것도 없었지만 적의 유형, 장애물, 보스 등 기본적인 것들에 대한 것을 정리했습니다. 이전 게임에는 없었던 아이템도 추가했습니다. 그리고 난이도에 영향을 줄 수 있는 부분과 게임 플레이 시간을 측정했습니다. 적절한 분량이 되도록 전체적으로 구성했습니다.

Final Space Hero 메인화면

그래픽

이전에 그래픽 작업때문에 너무 고생을 해서 뭔가 좋은 방법이 없을까 고민을 많이 했습니다. 가장 좋은 것은 한땀한땀 만드는 것이지만 프로그래밍을 주로하는 필자로서는 너무 노력이 많이 들고 수정하기가 정말 어려웠습니다.

그래서 생각한 것이 Blender 를 이용해서 기본적인 모양을 만들고 렌더링 기능을 이용해서 원하는 크기의 이미지로 저장되도록 했습니다. 실력이 부족해서 도트 그래픽 느낌을 낼수는 없었지만 개인적으로 만족할만한 결과물이 나왔습니다.

Final Space Hero 게임화면

프로그래밍 및 최적화

이전 게임의 최적화 작업을 진행하면서 알게된 부분을 최대한 반영해서 스크립트를 최대한 효율적으로 동작하도록 작업했습니다. 특히 Update, FixedUpdate 메소드에서 필요없는 반복적인 부분을 배제했습니다.

유니티 자체의 설정도 최대한 모바일 2D 게임에 맞추어 조정했습니다. 실기기를 연결해서 프로파일러를 통해 문제가 없는지 확인하는 작업을 계속 반복했습니다. 매우 시간이 오래걸리고 지루했지만 아주 중요한 작업이라는 것은 이전에 깨달았기에 참을 수 있었습니다.

효과음 및 음악

효과음은 생성 프로그램을 이용해서 만들었습니다. 이전 포스팅을 통해 소개한 프로그램이 있으니 그것을 참조하시면 됩니다.

음악은 iPhone 과 iPad에 있는 GarageBand 앱을 이용해서 만들었습니다. 기본 음악지식이 매우 부족한 필자로서는 느낌만으로 음악을 만들 수 있었습니다. 물론 프로그램을 익히고 익숙해지는데 시간이 걸렸습니다. 쉽게 음악을 만들 수 있는 잘 만들어진 프로그램이라는 생각이 들었습니다.

기타 등등…

처음에는 세로를 가로로 돌리기만 하면되니까 쉽지 않을까 생각했습니다. 역시나 실제 만들어보니 쉬운것이 아니었습니다.

아이템 기능도 처음 만들어 봤는데 고려해야 할 사항이 생각보다 많고 쉽지 않았습니다. 그래도 이전에 있었던 경험이 있어서 그런지 처음 게임을 만들때보다 어려움은 조금 덜 했던 것 같았습니다.

중점을 두었던 것이 많은 테스트와 최적화 작업이었습니다. 굉장히 고되고 지루한 작업이었지만 완성도를 높이기 위한 중요한 작업이라는 것을 몸소 체험했기에 참을 수 있었습니다.

많은분들이 스트레스 없이 재미있게 플레이하시면 좋겠습니다.

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

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

사운드 카운터 안드로이드 앱

개요

가끔 일정한 소리가 몇번이나 반복되었는지 세어야 할 경우가 있었습니다. 문득 특정한 소리의 개수를 세어주는 앱이 있으면 좋겠다는 생각이 들어 만들게 되었습니다. 이름은 사운드 카운터로 정했고 소리가 나면 +1 을 해서 그 숫자가 나타납니다.

구상

측정하려는 소리의 크기가 다양해서 숫자를 더하는 소리의 크기를 조절할 수 있도록 해야할 것 같았습니다. 그리고 그 설정값을 보여주고 실제 소리가 났다는 것을 보여주는 부분이 필요할 것 같았습니다. 마지막으로 세어진 소리의 개수를 보여주는 부분이 있어야 할 것 같았습니다.

개발

작업을 진행하다 보니 잠깐 멈출 수 있는 기능이 있어야 할 것 같았습니다. 구상한 것을 다음 화면과 같이 작업 했습니다.

사운드 카운터 초기 화면

소리 입력은 마이크로 받았고 별도로 저장되지 않도록 작업했습니다. 문제가 없다고 생각했는데 특정버전 이상에서 테스트 해보니 녹음을 시작하는 부분에서 오류가 발생했습니다. 출력 방향을 /dev/null 로 지정했는데 Android Q 이상에서는 오류가 발생했습니다. OS 버전을 판단해서 동작하도록 수정했습니다.

입력된 소리를 시각적으로 표현하는 부분은 세기에 따라 위쪽으로 Peak가 올라가는 형태로 구현했습니다.

소리 시각화

박수 소리로 테스트 해 보았는데 문제없이 동작했습니다. 좀더 크거나 작은 소리는 감도를 조절해서 개수를 셀 수 있도록 사용하면 될 것 같습니다.

다음 주소에서 확인하실 수 있습니다(광고포함).

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