윙마스터 패턴 — 기둥 · 새떼 · 짐승, 열네 가지 틀에는 늘 길이 하나 있다
기둥이 빽빽해도
길은 늘 하나 열려 있다
좁은 틈, 계단처럼 오르내리는 통로, 위아래로 흔들리는 벽, 줄지어 날아오는 새떼 — 윙마스터의 하늘은 제멋대로 어려운 것 같지만 사실 미리 만들어 둔 틀을 골라 쓴 것입니다. 이 글은 윙마스터 패턴, 게임이 구간 하나를 채울 때 고르는 열네 가지 틀의 이야기예요.
이 글은 윙마스터 패턴 이야기입니다. 위아래 막대와 좁은 통로, 계단 · 움직이는 벽, 새떼 · 낙하물 · 맹금, 위험을 고르는 갈림길, 그리고 가끔만 나오는 짐승 · 통통 튀는 돌 · 코인 함정까지 — 어떤 틀이 언제 나오고 얼마나 자주 나오는지, 그 모든 틀이 어떻게 지나갈 수 있는 길을 보장하는지를 코드의 숫자와 실제 게임 화면으로 따라갑니다.
위아래가 동시에 막힌 통로 — 윙마스터의 중심 문제
※ 이 글의 장면은 게임이 구간을 만들 때 쓰는 함수를 그대로 불러 찍었습니다. 평소엔 거리가 늘어야 만나는 틀도 한자리에서 볼 수 있게요.
랜덤이 아니라 틀이다
기둥을 아무렇게나 뿌리면 결과는 둘 중 하나입니다. 지나가는 게 너무 뻔하거나, 아예 지나갈 수가 없거나. 아슬아슬하게 ‘겨우 지나갈 수 있는’ 구간은 누군가 의도해야만 나오지요. 그 의도를 담는 그릇이 틀이고, 랜덤은 틀 안에서만 씁니다. 구간 하나를 만들 때 게임은 이 순서로 거릅니다.
- 환경이 허용하는 틀만 — 예를 들어 맹금 돌진은 숲 · 바다 · 사막 · 산악에서만.
- 지금 예산 안에 드는 틀만 — 틀마다 필요한 예산이 있다(아래 표).
- 최근 다섯 구간 안에 두 번 나온 틀은 뺀다. 같은 것이 연달아 오지 않게.
- 남은 틀에 가중치를 얹어 하나를 뽑는다. 많이 죽은 원인의 틀은 조금 더 자주 나온다.
| 틀 | 생김새 | 필요 예산 | 나오는 하늘 |
|---|---|---|---|
| 위 막대 · 아래 막대 | 한쪽만 막힌 기둥 | 2 | 어디서나 |
| 위아래 동시 | 가운데 통로 | 2.5 | 어디서나 |
| 새떼 | 대열, 한 줄만 비었다 | 5 | 폭풍만 빼고 |
| 맹금 돌진 | 예고 뒤 달려든다 | 6 | 숲 · 바다 · 사막 · 산악 |
| 흩어진 것 | 여러 종류가 섞인 불규칙 배치 | 6 | 어디서나 |
| 위험 분기 | 넓은 길 / 좁은 길 | 7 | 어디서나 |
| 계단 | 통로가 3~4단 오르내림 | 8 | 어디서나 |
| 움직이는 벽 | 통로가 위아래로 흔들림 | 8 | 어디서나 |
| 낙하물 | 떨어지거나 솟는다 | 8 | 설원 · 사막 · 산악 · 폭풍 |
| 복합 | 좁은 통로 + 새떼(또는 흩어진 것) | 12 | 어디서나 |
| 짐승 | 땅에 서 있는 큰 동물 | — | 숲 · 초원 |
| 통통 튀는 돌 | 시간차로 열리는 두 길 | — | 초원 · 숲 · 사막 · 산악 |
| 코인 함정 | 코인이 벽 쪽으로 꾄다 | — | 어디서나 |
※ 여기에 쉼(기둥 없이 코인만 흐르는 하늘)이 더해져 열다섯입니다. 쉼은 고르는 것이 아니라 난이도가 부릅니다. 예산은 거리 1,000m 마다 3.4씩 오르며(시작 3, 상한 19), 환경 · 날씨 · 새 · 실력 보정이 곱해집니다.
뼈대 — 통로를 만드는 다섯 틀
윙마스터의 조작은 탭 하나, 정확한 높이를 맞추는 게임입니다. 그래서 통로를 만드는 틀이 구간의 뼈대예요. 가중치를 보면 그 마음이 보입니다 — 위아래 동시 ×3.0, 계단 ×1.5, 위/아래 막대 ×1.35, 움직이는 벽 ×2.3. 반대로 새떼와 낙하물은 ×0.55, 흩어진 것은 ×0.85. 기둥이 양념이 아니라 주식이라는 뜻이에요.
막대와 위아래 — 높이를 묻는다



한쪽 막대는 안전지대가 화면의 절반이라 가장 쉽고, 초반 150m 는 이것과 위아래 동시뿐입니다. 위아래 동시는 통로 높이가 난이도를 정합니다. 예산이 3 에서 19 로 오르는 동안 통로는 5.6 → 2.7 로 줄어요(새 몸높이 0.8 의 3.4배까지).
| 거리(대략) | 예산 | 통로 높이 | 비고 |
|---|---|---|---|
| 0~300m | 1 → 3 | 5.6 | 튜토리얼 — 무슨 일이 있어도 쉽다 |
| 1,000m | 6.4 | 약 5.0 | |
| 2,000m | 9.8 | 약 4.4 | |
| 3,000m | 13.2 | 약 3.8 | |
| 4,000m | 16.6 | 약 3.1 | |
| 4,700m~ | 19(상한) | 2.7 | 더 좁아지지 않는다 |
※ 거리만으로 본 기본값입니다. 새(홍학 1.22배 · 벌새 0.68배) · 환경 · 날씨 · 실력 보정이 곱해지고, 위 화면의 숫자(2.7 · 5.6)는 가장 좁은/넓은 끝을 불러 찍은 것입니다. 쉼에서는 늘 5.6 입니다.
기둥의 두께도 하늘마다 다릅니다(판정 폭). 숲의 가지는 1.8, 길게 뻗은 가지 3.7(숲에서 35%), 도시의 건물 1.9, 설원의 얼음 1.7, 사막 · 산악의 바위 0.92, 바다 · 폭풍의 차단벽 0.84. 얇은 기둥은 비집고 지나가기 쉽고, 굵은 가지는 한 번 놓치면 길게 막힙니다.
계단 — 한 번이 아니라 연속


계단은 3단 또는 4단, 위로 오르거나 아래로 내려갑니다. 단과 단 사이는 2.6유닛 이상(속도 × 0.85초 × 0.55 중 큰 값)이고, 통로 중심은 단마다 위(또는 아래)로 조금씩 밀립니다. 한 번에 한 칸이 아니라 연속 조작을 묻는 틀이라서, 한 칸을 대충 지나면 다음 칸에서 높이가 모자라요. 통로를 이어 주는 코인 줄이 다음 칸의 높이를 미리 보여 줍니다.
움직이는 벽 — 닿을 때의 높이를 읽는다
이 틀만은 통로가 가만히 있지 않습니다. 지금 보이는 높이가 아니라 닿을 때의 높이를 읽어야 해요. 통로는 평소보다 0.5 넓게 열리고(움직이는 만큼의 덤), 중심이 최대 ±2.2 오르내립니다. 한 번 오르내리는 데 3.7~5.7초 — 느려서 읽을 수 있게 잡았습니다. 숲에서는 움직이는 가지, 그 밖에는 줄무늬 차단벽이에요.
초원에서도 움직이는 벽은 줄무늬 차단벽
예전에는 벽 두 짝을 통째로 흔들어서 통로가 오르내리는 동안 천장과의 사이가 벌어졌고, 공중에 뜬 네모 조각처럼 보였습니다. 지금은 붙어 있는 쪽을 못 박고 통로 쪽 끝만 움직여, 어떻게 움직여도 벽으로 읽힙니다.
통로 없는 틀 — 새떼 · 낙하물 · 맹금

새떼 — 한 줄은 반드시 비어 있다
새떼는 5줄 × 3~4열의 대열이고, 5줄 중 한 줄을 통째로 비워 둡니다. 열 사이는 1.5, 대열 전체가 천천히 위아래로 흐르고(정지한 격자는 벽처럼 보이니까), 비어 있는 줄을 따라 코인이 이어져 길을 알려 줍니다.
한 마리의 크기는 반지름 0.30 — 작지만 빈 줄을 놓치면 어느 줄로 가도 새 한 마리가 기다립니다.


낙하물은 2~5개가 2.1 간격으로 늘어서 떨어지거나 솟습니다. 사막에서는 아래에서 불덩이가 솟고, 설원에서는 얼음 조각, 산악 · 폭풍에서는 바위가 떨어져요. 속도는 초당 4.5~7.5유닛(강도가 낮아진 날은 그만큼 느리다). 경고가 붙어 있어 0.5~0.6초 동안은 닿아도 무사하니, 고리가 뜬 자리를 보고 비켜서면 됩니다. 떨어지는 줄 사이로 지나는 길에는 코인 세 개가 타이밍을 알려 줍니다.

맹금 돌진 — 반드시 예고한다
맹금은 0.9초 동안 붉은 고리로 예고하고 달려듭니다. 스크롤보다 초당 1.5~4.0유닛 빠르게 다가오니 예고 시간이 그 빠르기를 상쇄하는 셈이에요. 코인은 피해야 할 쪽에 놓입니다 — 맹금이 위에서 오면 3.2 아래, 아래에서 오면 3.2 위. 코인이 곧 “이쪽으로 비켜” 신호입니다.
흩어진 것은 격자가 아니라 불규칙이라 눈으로 훑어야 합니다. 2~7개를 통로 바깥에만 놓고(통로 안에 하나라도 들어가면 도박이 되니까), 한 구간 안에서 종류가 섞입니다 — 바위 · 얼음 · 드론 · 박쥐 · 새떼 · 맹금 · 거미줄 · 불덩이 · 헬리콥터 · 연기 중 그 하늘에 어울리는 것만. 복합은 위아래 통로 바로 뒤에 새떼나 흩어진 것을 이어 붙입니다(간격 2.8 이상). 같은 것을 두 번 붙이면 복합이 아니라 그냥 두 배라서, 늘 성격이 다른 둘을 붙여요. 예산이 11.5 는 되어야 후보에 오르니, 보정 전 기준으로 2,500m 쯤부터 만납니다.
갈림길 — 위험을 고르는 길

이 틀만은 플레이어가 난이도를 고릅니다. 가운데를 줄줄이 막아 길을 둘로 가릅니다.
- 넓은 길 — 통로 ×1.35. 코인은 두 개뿐.
- 좁은 길 — 통로 ×0.78(그래도 2.7 밑으로는 안 내려간다). 코인이 8개, 네 번째는 황금. 길 끝에는 유령 깃털 또는 코인 x2 중 하나가 놓여 있다.
어느 쪽이 좁은 길인지는 위/아래 반반입니다. 옆 화면은 위쪽이 좁은 길이에요 — 코인 줄과 보라색 유령 아이콘이 위에 보입니다. 틀의 폭은 8.5, 예산이 넉넉할 때(7 넘게)만 ×0.65 로, 아니면 ×0.2 로 드물게 나옵니다.
게임이 몰래 조절하는 난이도는 티가 나면 안 되지만, 스스로 고른 위험은 티가 날수록 좋다는 것이 이 틀의 생각입니다. 고른 사람이 결과를 자기 것으로 받아들이니까요.
가끔만 나온다 — 짐승 · 통통 돌 · 코인 함정
한 판에 통로를 수십 개 지나면 그 수십 개는 하나로 뭉개집니다. 그래서 세 가지는 일부러 드물게 둡니다. 가중치가 짐승 ×0.20, 통통 돌 ×0.24(예산이 8 이하면 ×0.08), 코인 함정 ×0.12. 그리고 초반엔 더 드물어요 — 400m 에서 900m 로 가는 동안 ×0.15 에서 ×1 로 풀립니다. 자주 나오면 그것도 다시 통로 하나가 되니까요.
짐승 — 땅에 선 네 마리, 높이가 다르다


짐승은 숲과 초원에서만, 땅에 발을 붙이고 섭니다. 반반의 확률로 낮은 쪽(고릴라 높이 2.9 · 코뿔소 2.64 — 폭은 1.6~1.72로 퍼짐)과 높은 쪽(기린 5.2 · 긴목공룡 5.7 — 폭은 0.84~0.96으로 가늘다)이 나옵니다. 모두 아래에서 솟은 한쪽 막대와 같아서 머리 위로 넘어가야 하고, 높은 쪽은 화면 높이(14.8)의 3분의 1이 넘으니 그만큼 더 높이 떠야 해요. 코인이 머리 위 1.0(낮은 쪽) · 0.9(높은 쪽)에 줄지어 넘을 높이를 알려 줍니다. 같은 높이의 막대라도 무엇이 서 있는지 알아보면 훨씬 빨리 읽혀서, 숫자가 장면이 되는 자리예요.
통통 튀는 돌 — “어디로”가 아니라 “언제”
다른 모든 방해물이 “어디로 피할까”를 묻는다면 이 틀만은 “언제 지날까”를 묻습니다. 새의 가로 위치는 고정이라 좌우로 비킬 수 없는 게임에서 만들 수 있는 유일한 타이밍 문제예요. 반지름 0.72 의 돌이 0.85~1.25초 주기로 튑니다(주기를 자리마다 다르게 줘서 외운 대로 지나지 못하게). 높이는 통로의 1.35배(3.4~5.4)이고, 줄어들지 않습니다. 돌이 위에 있을 때 그 밑이, 아래에 있을 때 그 위가 비므로 두 길 다 코인이 놓여 있어요. 스크롤보다 조금 빠르게(초당 0.8~2.0) 다가오고, 0.8초 예고가 먼저 뜹니다. 초원 · 숲 · 사막 · 산악에서만 나옵니다.
코인 함정 — 코인을 못 믿게 되는 한 번

코인은 이 게임에서 “여기로 지나가라”는 약속입니다. 코인 줄을 쫓던 사람은 자기가 통로 한가운데에 있다고 믿어요. 그런데 이 틀만은 그 믿음을 살짝 배신합니다 — 코인 6개가 통로 한가운데가 아니라 벽 쪽으로 62% 붙은 자리에 놓입니다. 옆 화면은 기둥 위끝에 바짝 붙은 코인 줄이에요.
억울한 죽음은 아닙니다. 통로의 폭과 안전 검사는 한쪽 막대와 완전히 같고, 코인이 벽에 더 가까울 뿐 지나갈 수 있는 자리예요. 눈이 코인을 쫓다가 여유를 덜 쓴 것뿐입니다. 이 틀이 셋 중 가장 드문 이유도 같아요 — 자주 겪으면 코인 자체를 안 믿게 되니까요.
열리는 순서 — 처음 150m 에는 셋뿐
틀은 한꺼번에 열리지 않습니다. 하지만 아예 막지도 않아요 — 막으면 저레벨이 “쉬운 게임”이 아니라 다른 게임이 되어, 20분 동안 이 게임에 무엇이 있는지 모르니까요. 대신 나올 확률을 천천히 푸는 방식입니다.
| 구간 | 나오는 것 |
|---|---|
| 0~150m | 위 막대 · 아래 막대 · 위아래 동시, 이 셋뿐 |
| 150~400m | 낙하물 · 흩어진 것이 ×0.35 에서 ×1 로 풀린다 |
| 300~700m | 맹금 돌진 · 복합이 ×0.12 에서 ×1 로 (복합은 예산 11.5 도 필요) |
| 400~900m | 짐승 · 통통 돌 · 코인 함정이 ×0.15 에서 ×1 로 |
| 예산 5~8 | 새떼(5) · 맹금 · 흩어진 것(6) · 위험 분기(7) · 계단 · 움직이는 벽 · 낙하물(8) 이 후보에 든다 — 대략 600~1,500m |
※ 첫 세 구간(1,500m)의 ‘훅’ 16m 에서는 눌림이 풀리고 맹금 · 낙하물 · 통통 돌 · 짐승이 ×6 으로 뜹니다. 막대는 ×0.15 로 줄어요.

쉼 — 비어 있되 텅 비지 않는다
쉬는 구간은 기둥이 없습니다. 하지만 아무것도 없는 하늘은 쉼이 아니라 버그처럼 읽혀서, 코인 12개가 물결로 흐릅니다(진폭 2.6). 따라가면 그것 자체가 리듬 연습이에요. 쉼 구간의 통로는 늘 5.6, 구간 사이 간격은 1.5배, 속도는 0.88배 — 숨을 돌리는 곳입니다.
못 지나가는 구간은 놓지 않는다
모든 틀은 “어디가 열려 있는지”를 먼저 정하고 나머지를 막습니다. 막은 뒤에 통로를 뚫는 순서였다면 언젠가 반드시 막힌 구간이 나왔을 거예요. 순서가 곧 안전장치입니다. 그런데도 게임은 믿지 않고 직접 잽니다 — 구간을 세로로 11번 잘라 통로를 실제로 재고, 새 몸이 들어가지 않는 곳이 있으면 방금 놓은 것을 지우고 한쪽만 막힌 틀(통로를 최대치 5.6 으로 넓혀서)로 다시 놓습니다.
- 앞뒤 통로의 거리까지 잰다. 두 칸 다 열려 있어도 그 사이를 새가 오를 수 없으면 실패. 계단 틀이 가끔 불가능해지는 일이 이래서 없다.
- 구간과 구간 사이도 잰다. 앞 구간의 통로가 화면 위에서 끝났는데 다음 구간이 바로 아래에서 시작하는 어긋남을 막는다.
- 반응 시간 0.85초 — 구간 사이 간격은 속도 × 0.85초 이상. 어려워질수록 1.8초마다 하나에서 0.9초마다 하나로 촘촘해질 뿐, 이 밑으로는 못 간다.
- 잘 죽는 쪽은 더 자주, 대신 약하게. 자주 죽은 원인(막대 · 움직이는 것 · 새 …)의 틀은 가중치가 최대 1.9배가 되지만 강도는 0.68배까지 낮아집니다. 처음 네 판은 적용하지 않고, 무너진 날에는 반대로 0.6배로 쉬게 합니다.
틀을 읽는 여섯 줄
- 길은 늘 있다. 안 보이면 열린 곳을 찾자 — 새떼는 빈 줄, 갈림길은 두 길, 짐승은 머리 위.
- 코인은 길잡이. 새떼는 빈 줄을, 맹금은 피할 쪽을, 계단은 다음 칸의 높이를 알려 준다. 단, 코인 함정만은 벽 쪽으로 꾄다 — 여유를 남기자.
- 붉은 고리를 본다. 화면 밖에서 오는 것(맹금 0.9초 · 큰 돌 0.8초 · 바위 · 불덩이 0.6초 · 얼음 0.5초)은 고리가 먼저 뜨고, 그동안은 닿아도 안전하다.
- 움직이는 벽은 닿을 때를 읽는다. 통로는 ±2.2 를 3.7~5.7초 주기로 오르내린다.
- 통통 돌은 박자. 0.85~1.25초 주기 — 첫 한 번을 보고 박자를 읽자. 위가 열리면 위로, 아래가 열리면 밑으로.
- 갈림길은 고르는 재미. 좁은 길의 코인 8개 + 유령 깃털 · 코인 x2 가 위험의 값이다.
다음 이야기는 이 틀 위를 실제로 움직이는 것들 — 맹금이 급강하하고, 새를 따라오고, 뜸을 들였다 돌진하는 방해물의 스무 가지 길입니다.
빽빽해 보여도
길은 늘 하나 있어요.
윙마스터 한 판 중계 대본 — 하늘 방송국 아나운서가 읽어 주는 큰 글자 열 개
윙마스터 방해물 궤적 — 직선으로만 오지 않는다, 스무 가지 길과 붉은 고리의 비밀
윙마스터 환경 8곳 — 초원에서 폭풍까지, 여덟 하늘 여행
윙마스터 아이템 10종 — 누르지 않아도 알맞은 순간에 켜진다
로디 세계관 2편 — 쓰러져도 한 칸 뒤, 다시 일어선 길가
로디 세계관 1편 — 건너기 전의 한 박자, 차와 차 사이의 빈 길
밤비 세계관 2편 — 멈추면 뒤에서 오는 것, 벽을 지나는 저승사자