Using Deno as my game engine
Разработчик перевёл свой проект детализированного градостроительного симулятора с Go на Deno, чтобы использовать веб-технологии без потери локальности исполнения. Идея в максимально точной симуляции городских процессов на основе реальных социологических данных, а не упрощённой игровой логики, как в классическом SimCity.
Deno с его встроенным инструментарием и возможностью компиляции в нативный исполняемый файл через webview_deno позволил интегрировать ThreeJS для 3D-вида и React для сложных интерфейсов данных. Это избавило от необходимости использовать Electron и сохранило цели автономности, мультиплеера и кросс-платформенности.
Комментарии (48)
- Критика использования WebView2 из-за негативного восприятия пользователями установки Microsoft Edge и предложения альтернатив, таких как Tauri или локальные веб-приложения.
- Обсуждение технических подходов к созданию игр с использованием веб-технологий (Deno, Bun, WebGPU, React) и сравнение их производительности с традиционными движками вроде Unity.
- Вопросы о целесообразности и практичности выбора Deno в качестве основы для игрового движка, а не просто рантайма.
- Положительные отзывы о образовательной и градостроительной ценности игры, а также предложения по доработке механик и открытию исходного кода.
- Обсуждение бизнес-моделей и коммерческого потенциала инди-игр, созданных как "труд любви", в противовес стремлению к прибыли.
Go ahead, write the “stupid” code
Автор вспоминает, как начал программировать в 2010 году, почти бросив идею из-за неуверенности, но в итоге полюбил это дело через упорство. Он признаётся, что писал много «глупого» кода во время учёбы и игровых джемов, что помогло ему отточить навыки и сохранить интерес.
Сейчас, работая с JavaScript и Deno, он осознал, что стал излишне строг к себе, боясь писать что-то простое или неидеальное. Его вывод: не стоит сдерживаться — любой код, даже самый нелепый, это шаг вперёд. Важно экспериментировать, пробовать новое и просто получать удовольствие от процесса, ведь это поддерживает любопытство и профессиональный рост.
Комментарии (131)
- Рекомендуется начинать с написания простого, "глупого" кода для быстрого старта и проверки идей, а не с длительного планирования.
- Прототипирование помогает уточнить требования, выявить ошибки в ментальной модели и получить обратную связь.
- Важно найти баланс между быстрым стартом и стратегическим планированием, учитывая масштаб проекта и возможные последствия.
- Опыт позволяет писать менее "глупый" код с самого начала, используя лучшие практики и архитектурные шаблоны.
- Такой подход поддерживает мотивацию и удовольствие от процесса создания чего-то своего, даже если результат неидеален.
Yt-dlp: Upcoming new requirements for YouTube downloads 🔥 Горячее 💬 Длинная дискуссия
YouTube скоро внедрит изменения, которые могут нарушить работу инструментов для скачивания видео, включая yt-dlp. Разработчики проекта предупреждают о необходимости адаптации к новым требованиям, связанным с обновлениями в API и механизмах защиты контента.
Пользователям стоит ожидать временных сбоев или необходимости обновлять софт чаще. Сообществу предлагается участвовать в тестировании и сообщать о проблемах, чтобы ускорить исправления. Это подчеркивает хрупкость инструментов, зависящих от сторонних платформ.
Комментарии (547)
- Пользователи столкнулись с проблемами скачивания контента через официальное приложение YouTube и обсуждают использование yt-dlp как обходного решения
- YouTube усложняет процесс скачивания, внедряя сложный JavaScript-код, что вынуждает yt-dlp переходить на использование полноценной JS-среды выполнения (Deno) вместо самописного интерпретатора
- Сообщество выражает озабоченность по поводу будущего скачивания контента с YouTube, обсуждает технические сложности и возможные альтернативы для архивации видео
- Выбор Deno обусловлен его безопасностью и наличием самодостаточного бинарного файла, но это добавляет зависимость и усложняет использование yt-dlp в некоторых сценариях
- Обсуждаются потенциальные последствия для сторонних приложений и необходимость сохранения контента в свете ужесточения политики YouTube
Help us raise $200k to free JavaScript from Oracle 🔥 Горячее 💬 Длинная дискуссия
Deno подала официальную петицию в Ведомство по патентам и товарным знакам США, чтобы оспорить товарный знак Oracle на слово «JavaScript». После сбора более 27 тысяч подписей под открытым письмом проект перешёл к ключевой стадии discovery, требующей серьёзных ресурсов. Цель — доказать, что термин стал общедоступным обозначением языка, а не брендом Oracle, и освободить его для использования разработчиками, конференциями и авторами без юридических рисков.
Для усиления позиции Deno запустила кампанию по сбору $200 тыс. на экспертные опросы, показания свидетелей из индустрии и академической среды, а также юридические расходы. Oracle уже официально отвергла аргументы о generic-статусе термина. Успех дела важен не только для JavaScript, но и для принципов товарного права: победа корпорации создаст прецедент присвоения общеупотребимых понятий.
Комментарии (268)
- Критика сбора средств VC-финансируемой компанией Deno для суда с Oracle из-за товарного знака "JavaScript"
- Сомнения в успехе и целесообразности дела против Oracle с её огромными ресурсами и возможными негативными последствиями для сообщества
- Предложения альтернативных решений: переход на использование названий "JS", "ECMAScript" или "TypeScript"
- Восприятие инициативы как PR-хода или маркетингового хода, а не искреннего общественного служения
- Поддержка цели освобождения названия, но с оговорками относительно мотивов и методов Deno
Eliminating JavaScript cold starts on AWS Lambda
Porffor — экспериментальный JS-движок, компилирующий код в WebAssembly и нативные бинарники. Вместо упаковки рантайма (как Node/Bun) он генерирует крошечные (<1 MB) и быстрые (миллисекунды) исполняемые файлы.
porf native hi.js hi # 12.9 KB
./hi # 631 µs
Сравнение с Deno/Bun: размер 16 KB против 80–100 MB, старт в 631 µs против 15–37 ms.
Lambda
На AWS Lambda Porffor показал:
- Node (baseline): до 300 ms холодного старта.
- LLRT: ~3× быстрее Node, но дороже из-за отсутствия managed runtime.
- Porffor: ~12× быстрее Node и ~4× быстрее LLRT, при этом дешевле даже с учётом «managed runtime» Node.
P99 Porffor быстрее P50 у конкурентов.
Итог
Porffor ещё pre-alpha: поддержка JS ≈60 %, нет I/O и Node-совместимости. Подходит для маленьких лямбд без Node-API.
Код и данные бенчмарков: GitHub.
Комментарии (67)
- Porffor — экспериментальный AOT-компилятор JS/TS → WASM → C, обещает убрать «холодные» старты Lambda и дать ~16 мс инициализации, но пока без GC, без полной совместимости с Node API и лишь ~60 % тестов ECMAScript проходит.
- Участники спорят, насколько критичны 200-600 мс холодного старта: кто-то считает проблемой для миллионов мелких запросов, кто-то — редким неудобством, решаемым резервными инстансами или переходом на Go/Rust.
- Сомнения в зрелости: «раньше быстро, пока не реализуешь оставшиеся 20 % фич»; безопасность и поддержка всей экосистемы JS вызывают скепсис.
- Плюсы: возможность компилировать в маленькие бинарники, использовать WASM-рантаймы, обходиться без JIT и доверять «своему» коду.
- Минусы: нет GC (хотят прикрутить WasmGC или Fil-C), нет I/O и полной Node-совместимости, корпоративные пользователи опасаются «экспериментов».