상자에서 나온 친구들로 원정대를 꾸려 자동으로 싸우는 게임입니다. 전투가 시작되면 손을 댈 수 없고, 사람이 정하는 것은 둘뿐입니다. 누구를 데려갈지, 어디에 세울지. 물·불·자연·땅·번개가 고리처럼 서로를 이기고 스테이지마다 한 속성의 적이 몰려와서, 같은 친구로도 매번 편성을 다시 짜게 됩니다. 처음 깬 스테이지에서는 상자가 하나 나오고, 이긴 판마다 받는 금화로 상자를 더 살 수 있습니다. 상자는 등급이 오르다 터지며 새 친구를 데려오거나 있던 친구의 별을 올려 줍니다. 전투에 데려간 친구만 레벨이 올라서, 누구를 데려가느냐가 앞으로의 원정대도 정합니다. 세 장을 모두 깨면 끝없는 원정이 열립니다. 층은 끝없이 이어지고 5층마다 우두머리가 기다립니다.
앱 목록
혼자 만든 앱과 게임 58가지입니다. 스토어에 올린 것, 브라우저에서 바로 되는 것, 저 혼자 쓰려고 만든 도구가 섞여 있습니다.
앱 상태와 이용 방법 안내
여기 있는 것들은 기획서에서 시작한 적이 거의 없습니다. 낚시 다녀온 자리를 자꾸 잊어버려서 낚시일기를 만들었고, 바다가 어떻게 그려지는지 궁금해서 파도만 그리는 실험을 했다가 그게 낚시 게임과 보트 레이싱으로 갈라졌습니다. 만들다 막힌 것은 막힌 상태로 두고 다른 것을 만들기도 합니다. 그래서 목록에는 다 만든 것과 만드는 중인 것이 같이 있습니다.
각 카드의 상태 표기는 실제 상태 그대로입니다. '출시'는 스토어에 올라가 누구나 받을 수 있다는 뜻이고, '웹 출시'는 설치 없이 이 사이트에서 바로 실행된다는 뜻입니다. '개발 중'과 '프로토타입 공개'는 아직 손대고 있다는 뜻이라 규칙과 화면이 자주 바뀝니다. '개인용 도구'는 제가 쓰려고 만든 것이라 남에게 권하려고 올린 물건이 아닙니다. 보기 좋으라고 상태를 올려 적지 않습니다.
상세 페이지에는 그 앱이 무엇을 하는지, 누구에게 필요한지, 지금 어디까지 됐는지를 같은 형식으로 적었습니다. 그리고 만들면서 막혔던 지점과 그걸 어떻게 풀었는지는 개발 기록에 따로 적어 두고 상세 페이지에서 링크로 이어 뒀습니다. 화면 스크린샷은 전부 실제로 돌아가는 빌드에서 찍은 것이고, 목업은 쓰지 않습니다.
58개 중 1–8 · 1 / 7
스토어에 올린 앱
구글 플레이에서 받을 수 있습니다. 업데이트는 스토어를 통해 나갑니다.
"밥 줬어?" "아까 줬는데?" 가족이 여럿인 집에서 반복되는 이 대화를 없애려고 만든 안드로이드 앱입니다. 밥·약·산책 같은 할 일을 한 번 누르면 누가 몇 시에 챙겼는지 가족 모두에게 바로 뜹니다. 두 사람이 동시에 눌러도 기록은 한 번만 남아서 두 번 먹이는 일이 생기지 않고, 인터넷이 끊긴 자리에서 눌러도 누른 시각 그대로 나중에 올라갑니다.
낚시 포인트, 조과, 날씨, 사진, 메모를 한곳에 정리하는 개인 낚시 기록 앱입니다. 기록이 쌓이면 물때와 기상, 수온을 함께 놓고 다음 출조를 고르는 근거가 됩니다.
낚시 대회의 참가 접수부터 기록 제출, 순위, 공지까지 한곳에서 굴리는 플랫폼입니다. 대회에서 공정성이 흔들리는 이유는 대개 누가 나빠서가 아니라 볼 사람이 모자라서인데, 사람이 다 볼 수 없는 것을 앱이 대신 보게 만들었습니다.
가까이 있는 사람과 지금 모이는 즉석 모임 앱입니다. 만나는 것만이 목적은 아닙니다. 부담스러우면 대화만 이어가도 되고, 실제로 만나는 일은 그 뒤에 자연스럽게 붙는 편이 낫다고 봤습니다.
색색의 물방울 쌍이 떨어지고, 같은 색이 넷 이상 붙으면 터지면서 위가 무너져 연쇄가 납니다. 방울은 블록이 아니라 액체라 같은 색끼리 표면장력으로 합쳐지고 출렁입니다. 떨어지는 길목에 염색조가 있어서, 통과하면 방울 색이 바뀝니다.
몰려오는 몬스터를 쓸어담는 초경량 도트 생존 액션. 끌어서 이동하면 공격은 무기가 알아서 합니다.
보드 자체가 전장인 매치-3입니다. 침식이 가장자리부터 칸을 먹어 들어오고, 매치가 그걸 밀어냅니다. 침식된 칸은 블록이 아니라 고정 장애물이라 매치되지도, 떨어지지도, 채워지지도 않습니다. 번지기 전에 예고가 뜨고, 그 칸을 매치에 포함시키면 막을 수 있습니다.
앱 이야기
만든 것을 늘어놓는 목록 말고, 그게 어떤 물건이고 왜 그렇게 만들었는지 적은 글입니다.
두 사람이 동시에 "밥 줬다"를 누르면 — 중복을 막는 자리는 화면이 아니라 표였다
가족이 번갈아 반려동물을 챙기는 집을 위한 앱을 만들면서 가장 오래 붙든 것은 알림이 아니라 동시성이었습니다. 눌린 단추를 화면에서 잠그는 방식은 두 사람의 화면이 서로를 모르는 1~2초 사이에 그대로 뚫립니다. 막는 자리를 데이터베이스로 옮긴 과정과, 하루의 경계를 어느 시간대로 자를지, 그리고 인터넷이 끊긴 자리에서 누른 체크를 잃지 않으려다 오히려 잃었던 이야기입니다.
약속 일정표를 만들며 세 번 지웠습니다 — 근거를 못 대는 숫자를 화면에 두지 않기로 하고
하루 만에 약속 일정표 앱을 만들었습니다. 어려웠던 건 기능이 아니라, 그럴듯하지만 근거를 못 대는 숫자와 목록을 세 번 지운 일이었습니다. 이동 시간, 근처 맛집, 지출 통계가 그것입니다. 서버 동기화는 다 만들어 놓고 숨겼습니다.
광고를 넣으면서 지키는 선을 코드에 박았습니다 — 그리고 비공개 테스트에 들어갔습니다
플랜메이트 안드로이드 앱이 구글 플레이 비공개 테스트에 들어갔습니다. 넣으면서 제일 오래 고민한 건 광고를 어디에 두느냐였습니다. 안 띄울 자리를 먼저 정하고, 그 규칙을 문서가 아니라 코드에 박았습니다. 배너 높이를 추측하지 않은 이유와, "광고 없음"이라 적어 둔 곳을 전부 찾아 고친 이야기도 함께 적습니다.
털뭉이 러시 안내서 — 머릿수가 곧 화력이고 동시에 목숨이다
무리는 알아서 달리고 알아서 쏩니다. 플레이어가 하는 일은 관문에서 어느 칸으로 지나갈지 고르는 것 하나뿐입니다. 그 하나가 왜 계속 어려운지, 그리고 화력이 왜 머릿수에 정비례하지 않는지 정리했습니다.
만나도 좋고 대화만 해도 좋고, 벙개벙개의 부담 없는 거리
혼자 하는 게 따분해질 때 근처의 비슷한 사람과 이어지는 앱입니다. 만남을 강요하지 않고, 솔직한 평가를 남길 수 있게 하고, 대화방에 가장 많은 공을 들였습니다.
다녀온 자리를 기억이 아니라 기록으로, 낚시일기를 만든 이유
낚시는 자주 갔는데 어디가 좋았는지는 늘 기억에만 있었습니다. 기억은 지워지니까 기록을 남기기로 했고, 그 기록이 쌓이면서 다음 출조지를 고르는 통계가 됐습니다.
운영자는 둘인데 참가자는 백 명, 공정성을 앱에 맡기기
낚시 대회는 공정성이 생명인데 그걸 지켜볼 사람 수는 정해져 있습니다. 대회장 이탈, 조과물 진위, 실시간 순위를 앱이 대신 보게 만든 이야기입니다.
강철궤도 안내서 — 열차는 멈추지 않고, 당신은 한 칸에만 있을 수 있다
달리는 열차 지붕 위를 뛰어다니며 막는 게임입니다. 규칙은 하나뿐이고 조작은 둘뿐인데, 그 둘이 계속 서로를 방해합니다. 처음 타는 분을 위해 무엇을 보고 무엇을 고르면 되는지 정리했습니다.
떨어뜨리기와 깨뜨리기를 붙인 대전 퍼즐, 그리고 첫 Unity
LiquidPvP는 위에서 떨어지는 조각을 쌓는 퍼즐에 블록을 깨는 조작을 얹어 둘이 겨루게 만든 게임입니다. 제가 Unity로 처음 만든 프로젝트이기도 해서, 게임 규칙만큼이나 엔진에 익숙해지는 일이 함께 걸려 있었습니다.
FFT 바다 안내서 — 슬라이더 하나가 무엇을 바꾸는지
브라우저에서 바다를 띄우고 풍속을 올려 보면 파고가 따라 올라갑니다. 그게 눈속임이 아니라 공식이라는 걸 확인하는 방법과, 화면에 있는 것들이 각각 무슨 뜻인지 정리했습니다.
















