나만의 에뮬레이터 앱 만들기
나만의 에뮬레이터 앱을 만들어 보자는 생각에서 시작했습니다. 지원할 기종과 화면, 저장 기능을 하나씩 정리하며 N-EMU를 만들었습니다.
레트로 게임을 좋아해서 나만의 에뮬레이터 앱을 만들어 보고 싶었습니다. 그 생각에서 N-EMU를 시작했습니다.
코드를 쓰기 전에는 한 달 정도 기능을 설계했습니다. 어떤 기종을 지원할지, 게임을 어떻게 고르고 저장할지 먼저 정리했습니다.
앱을 만들면서 여러 기종의 게임을 한 보관함에서 고를 수 있게 했습니다. 기종이 달라도 저장 지점과 설정을 익숙한 메뉴에서 관리하도록 구성했습니다.
화면은 좋아하는 픽셀 글꼴과 각진 버튼으로 꾸몄습니다. 게임을 켜기 전 메뉴에서도 오래된 게임기 같은 분위기를 느낄 수 있기를 바랐습니다.
직접 만들다 보니 배울 것도 많았습니다. 버튼을 어디에 놓을지, 저장 데이터를 어떻게 지킬지 하나씩 고민해야 했습니다. 좋아하는 것을 만들면서 개발자로서 더 배우고 싶었습니다.
제가 쓰려고 시작한 앱이지만 다른 분들도 편하게 즐길 수 있도록 다듬어 가겠습니다. 앞으로도 이 경험을 살려 제 취향과 생각이 담긴 서비스를 만들고 싶습니다.
당시 추가한 기능펼치기접기
Android 지원 기종 확대
Android에도 슈퍼 패미컴, 닌텐도 DS, PSP를 추가했습니다. iOS와 같은 기종을 지원합니다.
Android PSP 한글 글꼴
Android에서도 PSP 게임에 한글 글꼴을 사용할 수 있습니다.
슈퍼 패미컴·PSP 저장 데이터 백업
Android에서도 두 기종의 저장 데이터를 내 Google Drive에 백업할 수 있습니다.
세이브 슬롯 관리
세이브 슬롯에 이름과 메모를 남길 수 있습니다. 슬롯을 잠그거나 옮기고 복사할 수 있으며, 덮어쓰기를 취소할 수도 있습니다.
기종별 버튼 배치
기종마다 버튼 배치를 저장합니다. 가로 화면과 세로 화면의 배치도 따로 저장합니다.
닌텐도 DS 마이크
마이크를 켤 때만 사용 권한을 요청합니다. 권한 없이 쓰는 ‘불기’ 버튼도 있습니다.
컨트롤러 연결
컨트롤러를 네 대까지 연결해 각각 1P~4P에 배정할 수 있습니다. 보관함과 일시정지 메뉴도 컨트롤러로 조작할 수 있습니다.
화면 버튼 꾸미기
직접 준비한 스킨 파일로 화면 버튼의 그림을 바꿉니다. 버튼 위치와 크기는 그대로입니다.
로딩 화면
터미널 모양의 화면에서 작업 진행 상황을 보여 줍니다.
원더스완 세로 화면
세로형 게임에 맞춰 화면과 조작 버튼을 배치합니다.
마스터 시스템 FM 음원
일본판의 FM 음원을 사용할 수 있습니다. 패들과 스포츠패드 조작도 지원합니다.
PSP 화면 설정
iOS에서는 원본, 프레임 속도, 선명도 중에서 고릅니다. 게임을 다시 실행하면 적용됩니다.
소리 지연 조절
소리가 끊기면 ‘안정’을, 버튼을 누른 뒤 소리가 늦게 나면 ‘저지연’을 선택합니다.
화면 효과
화면을 또렷하게 보정하거나 LCD 격자와 브라운관 줄무늬 효과를 적용할 수 있습니다. 잔상도 조절할 수 있습니다.
게임별 화면 배치
화면 배치와 비율을 게임별로 저장합니다. 닌텐도 DS는 위아래 화면의 위치도 바꿀 수 있습니다.
iPad 여러 창 사용
iPad에서 여러 창을 열어 사용할 수 있습니다. 외부 화면에는 게임 화면만 띄울 수도 있습니다.
홈 화면에서 게임 열기
위젯에서 최근 게임을 확인하고 자주 하는 게임은 홈 화면에 바로가기로 추가할 수 있습니다.
함께 읽을 개발 이야기
- 개발 이야기v0.5.0초기 개발
게임을 켜면 하던 곳부터
게임을 열면 자동 저장 지점부터 이어 할 수 있도록 만들었습니다. 처음부터 시작하고 싶은 게임은 자동 이어하기를 따로 끌 수 있습니다.
- 개발 이야기v0.2.0초기 개발
픽셀 화면에 담은 취향
각진 버튼과 픽셀 글꼴, 깜빡이는 커서로 레트로 분위기를 냈습니다. 조작에 방해가 되지 않도록 화면 효과를 다듬은 과정을 소개합니다.
- 개발 이야기v0.2.0초기 개발
여러 게임기를 한 앱에 담기
기종이 달라도 같은 보관함에서 게임을 고르고 저장 데이터를 관리할 수 있도록 여러 에뮬레이터 코어를 연결했습니다.