Skip to content

Vaynerov Technologies

Мы не просто разрабатываем — мы создаём каждую строку кода и пиксель.

Почему мы раздаём Лабораторию бесплатно

Лаборатория — наше портфолио, наш испытательный стенд и наша честность на людях. А ещё это единственный вид портфолио, который не умеет врать: на нём можно открыть девтулзы.

Edward AmirainОснователь Vaynerov Technologies
Опубликовано 6 мин чтения
На этой странице
  1. Доказательство работы, которое можно проверить самому
  2. Испытательный стенд под игрушками
  3. Тренировка на том, чем вещь не является

Вопрос приходит в двух тональностях. Вежливой: как вы находите время? Менее вежливой: в чём подвох? Спрашивают об одном и том же — почему студия, которая берёт деньги за проекты, раздаёт дюжину браузерных игр, живую карту спутников, музей, куда можно вставлять ссылки, и ИИ-архитектора, называющего настоящие деньги. Подвох есть, и я лучше его напечатаю, чем оставлю вас гадать. Их даже три, и только первый годится для презентации.

На этой неделе в Лаборатории двенадцать браузерных игр — семь из них 3D в реальном времени на WebGL, пять рукодельных Canvas 2D-оригиналов — плюс три машины покрупнее. Vaynerov Project Reliquary превращает любую ссылку в экспонат на стене галереи, которая вырастает вокруг вас. Vaynerov Project Orrery забирает около шестнадцати тысяч записей орбитальных элементов с CelesTrak и считает их вживую в вашем браузере. Vaynerov Project Blueprint читает абзац с описанием продукта и рисует систему, которая его построит, с ценой в комплекте. Две из этих трёх вышли одним релизом вместе с тремя новыми играми — самый большой день Лаборатории.

12
бесплатных игр в Лаборатории
6
языков, локализовано всё
~16k
записей орбитальных элементов за цикл
0
байт вашего музея на наших серверах

Лаборатория по состоянию на 16 июля 2026 года. Каждый из этих пунктов проверяется из вашего собственного браузера — в этом, собственно, и суть.

Доказательство работы, которое можно проверить самому

Кейсы — это утверждения. Я написал их немало и знаю им цену: клиент не может проверить заявление о бэкенде, которого никогда не увидит, под NDA, гарантирующим, что и не увидит. Скриншоты доказывают, что существовал дизайнер. Метрики без базовой линии доказывают, что у кого-то был доступ к дашборду аналитики. Весь жанр просит доверия авансом, а это странное требование к человеку, который вот-вот отдаст вам деньги.

Работающая вещь не просит ничего. Откройте Orrery на телефоне, которому четыре года: либо поле спутников держит частоту кадров, пока вы крутите планету, либо нет, и никакие тексты ответ не изменят. Откройте панель сети в Reliquary и посмотрите, что на самом деле уходит с вашей машины, когда вы вешаете экспонат: один запрос на разбор, а дальше только байты картинок через прокси, потому что CDN маркетплейсов не отдают кросс-доменных заголовков, а текстуре WebGL они нужны. Сам экспонат к нам не возвращается. Он живёт в хранилище вашего браузера, копии у нас нет, и это заявление о нашей этике вы можете проверить секунд за одиннадцать.

Кейс — это заявление. Лаборатория — заявление, на которое можно натравить профайлер.

И подделать такое обещание куда труднее. Маркетинговый текст всегда был дёшев в производстве; в этом году он стал бесплатным. А вещь, которая держит шестьдесят кадров в секунду на среднем Android, на шести языках, с работающим управлением с клавиатуры на раскладке AZERTY, дорога в производстве и такой останется.

Испытательный стенд под игрушками

Вторая причина менее благородна и заметно полезнее. Всё, что игры делят между собой — слой, которого никто не видит, — закаляется на работе, где цена отказа равна тридцати секундам чужого веселья, задолго до того, как попадёт в работу, где цена отказа — чей-то срок запуска.

  • Уровни качества. Устройство попадает в низкий, средний или высокий по грубости указателя, числу ядер, памяти и размеру экрана, а device-pixel-ratio ограничивается значениями 1.25, 1.5 и 2. Писалось это для игр; теперь оно решает, как Orrery рисует поле спутников и как Reliquary заливает текстуры в GPU.
  • Один ключ немоты. Единственный ключ в хранилище задаёт мастер-громкость всем играм Лаборатории. Выключили звук в одной — остальные уже молчат. До такого правила додумываешься только после того, как у посетителя оказались открыты две ваши вкладки сразу.
  • Физические клавиши, а не буквы. Привязки движения сопоставляются по e.code, то есть по положению клавиши, а мнемоника читает букву. Именно из-за этого различия управление переживает AZERTY и русскую раскладку, а не становится тихо неиграбельным в двух локалях из наших шести.
  • Ограничения, которые мы решили сохранить. Никаких новых npm-зависимостей, никаких бинарных ассетов, каждый цикл, слушатель и аудиоконтекст убирается при размонтировании. Мы завели это как правила Лаборатории, чтобы держать вес загрузки маленьким. Оказалось, что ровно эти правила нам нужны и в платной работе.

Кое-что мы нашли, побыв собственным худшим клиентом. Вход в крыло Reliquary раньше выстреливал два десятка запросов за картинками в один тик и упирался в рейт-лимит нашего же прокси — маленький отказ в обслуживании, нанесённый самому себе, в бесплатном музее, где ничьих денег в комнате нет. Лечение — семафор на всплеск загрузки: четыре одновременные текстуры с интервалом в шестьдесят миллисекунд. Тривиально, когда знаешь. Интересный вопрос — где ещё этому можно было научиться; большинство команд узнаёт это в проде, от клиента, в переписке с номером инцидента.

Ничего из этого не вышло из проектного документа. Защёлка устройства — она фиксирует класс устройства в момент монтирования игры — существует затем, чтобы изменение размера окна на десктопе посреди партии не могло перевернуть класс и подменить идущую игру мобильным экраном блокировки: такой режим отказа обнаруживаешь, только выпустив достаточно игр, чтобы на него наступить. В музее вообще нет бинарных ассетов: стены, пол, таблички, золочёные рамы и даже буквы рисуются на canvas в рантайме. Начиналось это как правило про вес загрузки. А купило — здание, весь внешний вид которого является кодом и потому поддаётся ревью.

Тренировка на том, чем вещь не является

Третья причина — та, которую я защищал бы жёстче всего, и та, что меньше всего похожа на бизнес-обоснование.

Orrery носит маленькую плашку: визуальная точность расчёта. За этой плашкой — задача двух тел плюс вековые члены J2, то самое сжатие Земли, медленно разворачивающее плоскости орбит, и больше ничего. Ни сопротивления атмосферы, ни резонансов, ни короткопериодических членов. Комментарий над формулами говорит это, не моргнув: верно для глаза в масштабе планеты высотой 6.4 единицы, но не до метра. Никогда не навигируйте по этому. Мы могли всё это опустить. Никто, глядя, как спутники плывут по тёмному шару, не собирался заводить баг.

У Blueprint есть режим, который большинство продуктов прятало бы. Без настроенного ключа модели он отдаёт написанные вручную эталонные архитектуры под инсценированным прогрессом — демо, если честно. Чего он не подделывает, так это деньги: оценка в демо проходит через тот же детерминированный калькулятор, что стоит за нашей страницей цен, по тем же правилам, так что числа, которые посетитель видит с выключенной моделью, — это числа, которые выдал бы /pricing. В обоих режимах арифметика лежит вне досягаемости модели: она предлагает выбор из фиксированного каталога, остальное делает движок.

Это не скромность и уж точно не осторожность. Это репетиция. Самая тяжёлая фраза в этом бизнесе — это не будет делать того, чего вы хотите, произнесённая рано, человеку, который уже влюбился в идею. Даётся она лучше, если постоянно проговариваешь её уменьшенные версии — публично, о собственной работе, в единственной обстановке, где ничей бюджет не стоит на кону.

Итак, Лаборатория — это маркетинг? Разумеется. Я пишу о ней в журнале студии. Но бухгалтерия сходится, только если вещь настоящая. Лаборатория, построенная чтобы выглядеть внушительно, а не чтобы её изучали, рассыпается при первом же контакте с инженером, открывшим панель разработчика, — а именно инженеры чаще всего нас и оценивают. Стимул и этика здесь смотрят в одну сторону, и это самое удобное место, в котором может стоять бизнес, — и куда более редкое, чем следовало бы.

Вторая половина ответа в том, что большую часть этого я построил бы всё равно. Наряжать одержимость в стратегию было бы отдельной маленькой нечестностью, а честность — это и есть продукт.