Владелец: «нужно сделать как тут, подобная графика и подобный уровень персонажей, подобный уровень прорисовки, объекты, события на карте и тд, там даже поезда двигаются, а у нас ничего нет».
Разобрал видео SVID_20260927_181331_1.mp4 (70 с, 580×1280, 60 кадров/с) покадрово,
замерил звук числами и снял нашу игру теми же глазами. Ниже — что в образце, что у
нас и где именно разрыв.
Subway Surfers, мир Bali, версия 1.1.0.0 — видно на экране загрузки.
Игра запущена внутри мини-аппа: сверху синяя полоса с крестиком и заголовком
«Subway Surfers», как у нашего приложения в Telegram. Первые ~30 секунд — меню и
награды, забег идёт с 31-й секунды.
Значит, образец — не «какая-то игра», а именно то, чем мы занимаемся: раннер в мини-аппе на телефоне. Сравнение честное.
Это ключевое, и я скажу прямо, потому что от этого зависит вся работа.
Чужой код, ассеты, персонажей, названия и уровни не копируем. Subway Surfers — собственность SYBO. Наши требования это уже запрещают:
R23. Все ассеты процедурные: геометрия из примитивов, текстуры рисуются в canvas. Ни одного внешнего файла.
R40. Персонажи — свои: заяц-бегун и ловчий волк… Ни внешность, ни имена не повторяют чужих произведений.
А вот уровень плотности, насыщенности и живости — берём целиком. Это не охраняется: сколько объектов на экране, как они читаются, как движется мир, как звучит забег. Именно этого владелец и просит словами «подобный уровень прорисовки», «поезда двигаются, а у нас ничего нет».
Так что задача не «сделать Subway Surfers», а «поднять нашу сцену до той же насыщенности своими средствами». Ниже — что конкретно для этого нужно.
За один забег проходит пять разных участков:
Смена участка — не переключение уровня, а непрерывный переход: дальний план подъезжает и подменяет ближний. У нас смена локации тоже есть (переход занимает последние 12% участка), но между участками не меняется ничего, кроме декораций дальнего плана.
В образце поезда не декорация, а главный объект трассы:
| Что делает поезд | Кадр |
|---|---|
| Стоит поперёк, игрок бежит по крыше | 1:06 |
| Едет навстречу по соседнему пути | 0:54 |
| Стоит на пути, игрок уворачивается | 0:35, 0:47 |
| Виден в глубине туннеля, приближается | 0:54 |
То есть поезд — это и препятствие, и поверхность, и событие. У нас вагон как
препятствие есть (full — единственный тип, который обходится только сменой
полосы), но он не читается вагоном: куб с полосами. И ничего не движется:
весь мир статичен, кроме земли под ногами.
Образец берёт яркостью, а не детализацией. Небо — чистый синий с белыми облаками, листва — насыщенно-зелёная, палатки — красные, жёлтые, голубые, вода — бирюзовая. Палитра тёплая и контрастная: тёмных участков почти нет.
Наш высокий класс графики (снят ниже) — серо-пыльный: город в тумане, балласт пыльный, небо пасмурное. Это сделано нарочно («камень не должен спорить с поведением»), но читается как уныние.
Разобрал дорожку целиком (22050 Гц, 70 с).
| Что | Замер |
|---|---|
| Темп | ~172 уд/мин (автокорреляция потока энергии) |
| Меню (0–30 с) | −59 дБ, яркость ~1200 Гц — тихо и глухо |
| Забег (31–69 с) | −32 дБ, яркость ~3000 Гц — громко и звонко |
| Размах | 44 дБ от тишины до пика |
| Пик | −21.5 дБ на 31–33 с — вход музыки на старте |
Что это значит на слух:
playMusic(), шина на 0.34), плюс короткое арпеджио sfx.start().132 + интенсивность · 44: на старте 132, на пике
погони 176. То есть наш потолок уже совпадает с образцом (176 против 172),
а разница — в исходном темпе: у нас спокойный старт и разгон, у образца
драйв сразу.Прежде чем что-то просить, снял нашу сцену. Ниже — высокий класс графики
(?gfx=high), не низкий: судить игру по худшему классу нечестно.
Что тут есть, если смотреть честно: рельсы со шпалами и балластом, город с зажжёнными окнами по обе стороны, фонари, жёлто-чёрная разметка на препятствиях, монеты с искрами, бегущий заяц, HUD со счётом и паузой, подпись локации и времени суток. Это не «ничего» — это сцена.
А вот наш низкий класс той же игры — для сравнения, насколько велика разница между классами:
| Образец | У нас | Разрыв | |
|---|---|---|---|
| Поезда | едут, стоят, служат поверхностью | один тип-куб, стоит | большой |
| Объекты на трассе | поезда, отбойники, шлагбаумы, рампы, арки, тележки, шары | low, high, full — три формы |
большой |
| Смена участка | мир перестраивается пять раз за забег | меняются только декорации дальнего плана | средний |
| Движение в мире | поезда навстречу, флажки, вода | мир статичен, движется только земля | большой |
| Насыщенность цвета | ярко, контрастно, тепло | серо, пыльно, пасмурно | средний |
| Персонаж | крупный, с одеждой, анимация бега | крупный, читается, бежит | малый |
| HUD | счёт, множитель, монеты, пауза | счёт, монеты, пауза, звук, fps | малый |
| Звук | 172 уд/мин ровно весь забег | 132 на старте → 176 на пике погони | малый |
| Рампа (прыжок вверх) | есть | нет | средний |
Самое крупное — поезда и движение в мире. Владелец именно это и назвал: «там даже поезда двигаются, а у нас ничего нет». Он прав.
Первое: движущиеся поезда. Это одна правка, дающая больше всего. Поезд, который едет навстречу по соседнему пути, — это и событие, и опасность, и жизнь в кадре. Нужно: вагон как объект (корпус, окна, тележки), движение по фиксированному пути, гудок, встречная волна воздуха. Он не должен ломать проходимость: путь занят только в стороне от полос игрока.
Второе: плотность объектов. Сейчас на трассе три формы. Добавить читаемые предметы, которые уже есть в образце: шлагбаум, отбойник, рампа, арка, стойка с товаром, воздушный шар. Каждый — из примитивов, в стиле сцены.
Третье: насыщенность палитры. Поднять контраст и теплоту: небо чище, листва зеленее, тени холоднее. Это правка палитры и света, а не геометрии, — дешёвая и заметная.
Четвёртое: рампы. В образце есть подъём на крышу вагона. У нас есть прыжок (высота 1.6) и подкат, но нет поверхности, на которую можно встать выше уровня земли. Это отдельная механика, крупнее остальных.
Пятое: звук — и тут я себя поправлю. Сначала я записал «поднять темп к 172», но это неверно: наш потолок уже 176, то есть на пике погони мы совпадаем с образцом. Разница только в исходном темпе — 132 против 172 ровного. Наш разгон сделан нарочно (напряжение растёт с погоней) и по-своему лучше: у образца драйв не меняется вообще. Так что это не дефект, а выбор. Если владелец хочет «драйв сразу» — это одна константа, а не работа.
Пункты 1–3 — это quick spec (1–3 дня): поезда, плотность, палитра. Они не трогают правила проходимости и не ломают существующие проверки.
Пункт 4 (рампы) — отдельная фича со своими требованиями: меняется физика приземления и высота земли, а от неё зависит подкат под высокое препятствие. Её надо делать отдельной спекой.
Границу держим: свои модели, свои имена, своя трасса — R23 и R40 в силе. Берём насыщенность и живость, а не чужой мир.
Скажи, с чего начинаем: поезда (даст больше всего) или сразу все три пункта quick-спеки.