Melkov's
168 subscribers
582 photos
76 videos
39 files
221 links
Мой движок: @vecxylog
Чат: @melkovteam
Download Telegram
Почему в WebGL-проектах на Unity и Cocos и других движках скорость рендера часто ограничена 60 кадрами в секунду, даже если устройство поддерживает больше?

В большинстве случаев браузеры ограничивают requestAnimationFrame до 60fps, потому что он синхронизирован с частотой обновления экрана, и исторически большинство экранов было 60 Гц. Но если у устройства экран, скажем, на 120 Гц, то в некоторых браузерах rAF может отдавать и больше fps — это зависит от самого браузера и платформы. Например, в Chrome на Android с 120 Гц экраном такое вполне возможно, особенно если не тормозит GPU.

Unity действительно использует свой цикл рендера, и может работать быстрее, чем 60fps, если явно не установлен Application.targetFrameRate. Но в WebGL-сборках Unity всё равно ориентируется на rAF, и из-за политики браузера может "залипать" на 60fps, если не удаётся точно синхронизироваться с дисплеем.

Что касается Cocos, то там по умолчанию тоже стоит ограничение на 60fps в продакшн-билде. Надо смотреть, какая версия и движок под капотом (Cocos2d-js, Cocos Creator и т.д.), но обычно можно попробовать выставить вручную cc.game.setFrameRate(120) или аналог, если такая возможность есть. Однако это будет работать только если браузер и устройство реально поддерживают больше, иначе всё равно будет кап.

Так что по факту: ограничение идёт в первую очередь от браузера и дисплея. Движок может только просить "дай мне больше fps", но не факт, что получит :)
👍4
Ахах, постоянно на это попадаюсь :D
👾6
Тесты? Не, не слышал…

В целом, я тестами особо не пользуюсь — практически совсем. На всех коммерческих проектах, в которых я участвовал напрямую, тесты либо полностью опускались, либо вообще не рассматривались. Поэтому боевого опыта в экстремальном программировании у меня, по сути, не было.

Но недавно мне подарили книгу по TDD от Кента Бека (хз кто подарил). Что могу сказать? Книга норм, читается легко, не скучно, местами даже увлекательно. Самое главное — она как-то начала заставлять меня посматривать в сторону тестов. Не всегда и не по канону, как того требует TDD-подход, но всё же.

Что важно — я начал видеть реальную пользу от тестов на живых примерах в своей работе. Сейчас, например, пишу DI-контейнер по типу Extenject, но попроще и с фичами, заточенными под конкретный проект. Так вот, тесты там реально помогают. Просто пишешь кейсы, которые нужно проверить, описываешь поведение и ожидаемый результат — и всё, можно спокойно работать над ядром системы. Меняешь что хочешь, как хочешь, не боишься, что что-то отъедет. Потому что тесты тебе сразу покажу где и когда ты соснул .... Очень экономит время и вообще удобно.

Плюс, когда вспомнил прошлые проекты, понял, что было куча моментов, где тесты бы реально пригодились, но я их не писал, потому что был от этого далёк.

Короче, советую нормально и серьёзно присмотреться к теме. Тесты — это реально крутая штука, и далеко не такая бесполезная, как может показаться сначала. Раньше я сам думал, мол, зачем писать этот бесполезный код, который ничего не делает — но это было ошибкой. Главное — найти свою меру: либо идти по хардкору и писать тесты на каждый чих, еще до начала реализации, либо использовать точечно — в сложных местах, где важно проверить поведение и разные кейсы.
👍2
E или F?
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔5🔥1
❄️ Зима

Экспериментирую с атмосферой заснеженной дороги: холод, тишина, пустота. Пробую стилизацию, туман и свет, чтобы поймать нужное настроение.

Это не часть проекта и не игровой билд — просто идеи и визуальный стиль.

Какой кадр вам кажется самым атмосферным?
👍3
Media is too big
VIEW IN TELEGRAM
Думаю интересно получилось, уже небольшая сцена с каким-то активным действием :D

P.S. Песня по радио в машине играет.
«Катюша» – М. Исаковский / М. Блантер
1👍1
Media is too big
VIEW IN TELEGRAM
Мне кажется это получилось очень атмосферно. Сарай правда не моделировал, но он очень неплохо подошел. Буду его брать в работы, попробую использовать и переделать немного.
👍21
This media is not supported in your browser
VIEW IN TELEGRAM
😁
1😁1
Media is too big
VIEW IN TELEGRAM
Реализовал самую важную механику😁
2😁1
Mafia: Definitive Edition
Эпизод: Escape the gangsters


Ты — обычный таксист Томми Анджело, но через пару минут твоя жизнь переворачивается. Бандиты, выстрелы, скользкие улочки Лост Хэвена — и отчаянная погоня, под идеально подобранную музыку.

Саундтрек в этой сцене — не просто фон. Это работа Джесси Харлина, композитора ремейка Mafia. Харлин — ветеран игровой индустрии, до этого работал над Star Wars: The Old Republic, BioShock Infinite и Red Dead Redemption II (в качестве приглашённого аранжировщика). В Mafia: Definitive Edition он создал полноценный оркестровый саундтрек в духе Голливуда 30-х: тревожные струнные, пронзительные трубы, мощные ударные. Всё звучит как в старом нуар-кино, но живо, современно, с тонким драматургическим расчётом.

Оркестровка ловко подчеркивает динамику происходящего: напряжение нарастает с каждым поворотом.

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

Момент вроде простой — погоня в самом начале, ну и что? А зацепил. Когда убегал от бандитов — у меня даже мурашки пошли. В оригинале это тоже было круто, но здесь всё стало гораздо кинематографичнее.

Escape the Gangsters. Gameplay video
Escape the gangsters. Soundtrack
Jesse Harlin. Яндекс Музыка
Mafia. Running Man Song. Latcho Drom - La Verdine
🔥1
Mafia: Definitive Edition - Running man [Latcho Drom - La Verdine]

Многие до сих пор ругают ремейк за то, что iconic-трек Latcho Drom – La Verdine из оригинала не добавили. Да, мелодия узнаваемая и по-своему крутая. У меня она воспринимается как живая, цыганская, резкая.

(не буквально «цыганская», но стилистически она отсылает именно к джипси-свингу и ромской музыкальной традиции)

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

Иногда новое — не хуже, просто другое.

На видосе можно посмотреть, как выглядит ремейк со старой музыкой, и сравнить ощущения.

P.S. Ждал, но не дождался, когда тут начнуть хейтить в комментах, что в оригинальной версии музыка была лучше :D
Ошибка "Error: WebView has crashed" в Telegram (Mini App)

Если у вас перестали работать Mini Apps в Telegram и появилась ошибка "WebView has crashed", решение простое:

1. Установите WebView2 от Microsoft
Это современный компонент, который используется Telegram вместо устаревшего WebView.

Скачать: Microsoft Edge WebView2

2. Отключите старый WebView в Telegram
Зайдите в: Settings → Advanced → Experimental settings
и отключите опцию Force legacy Edge WebView.
👍3🔥1
😁8
Моё знакомство с серией Mafia началось с самой первой части — Mafia: The City of Lost Heaven, которая вышла в 2002 году. Главным геймдизайнером был Даниэль Вавра, и у него получилось создать очень атмосферную и интересную историю про мафию 30-х годов.

Первый раз я прошёл игру где-то в 2014 году. Она уже тогда считалась классикой, и я сразу понял почему. Несмотря на то, что игра старая, в ней всё работало: сюжет, герои, атмосфера. А в 2024 году я снова её прошёл, и, честно говоря, был удивлён, как хорошо она сохранилась. Игра всё ещё отлично ощущается, а её мир до сих пор вызывает интерес.

Больше всего мне нравится, что город Лост-Хевен в Mafia не просто для вида. Он живой: по улицам ходят люди, ездят машины, по радио идут передачи — всё помогает почувствовать, что ты действительно в Америке 30-х. История крутится вокруг простого таксиста Томми Анджело, который случайно попадает в мафиозный мир. Сюжет развивается постепенно, но каждый момент держит в напряжении. Персонажи прописаны отлично — у каждого своя история и характер. Даже второстепенные герои, как, например, Винченцо, оружейник мафии, запоминаются. Он всегда даёт напарникам крутое оружие, а мне — какой-нибудь старый кольт. Это немного бесило, но и вызывало улыбку.

Когда разработчики анонсировали ремейк — Mafia: Definitive Edition — я сначала отнёсся к этому с осторожностью. Часто бывает, что ремейки теряют атмосферу оригинала. Но в этом случае всё получилось просто отлично. В 2025 году я прошёл обновлённую версию, и она оставила у меня только положительные впечатления. Вроде бы та же история, но как будто ты смотришь её под новым углом. Графика шикарная, город стал ещё красивее. Озвучка тоже на высоте, актёры хорошо передали эмоции. Стрельба и езда теперь стали удобнее и приятнее. Играть было очень увлекательно!

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

Хотя я сам не имел отношения к созданию Mafia, было очень приятно видеть, как кто-то получает от неё столько же удовольствия, сколько и я. Это и есть настоящий показатель хорошей игры — когда она остаётся в памяти не только как развлечение, а как настоящая история, которую хочется прожить и вспомнить ещё не раз.
👍21😎1
Какой вариант более правильный и оптимизированный?

P.S. Решил начать периодично постить простые вопросы на подумать из программирования.
Посоветовали отличный и бесплатный курс по Си. Говорят, сложный, глубокий, так еще и про современный подход к разработке.

Ссылка: https://stepik.org/course/73618

Будем посмотреть :D

P.S. Если есть что-то на примете, можешь поделиться в комментариях под постом)
👍1
Ссылка на инструмент: https://www.waifu2x.net
👍4
Forwarded from Vecxy (Дмитрий Мелков)
⚙️Log #17

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

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

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

Есть ещё и мой внутренний программист, который грызёт изнутри. За 7 лет я нафигачил кучу опыта: Unity, Cocos Creator, C#, JS/TS. Набежало больше 20.000 часов. Если верить правилу 10.000 часов, я «дважды мастер». Но по факту так себя не ощущаю.

Проблема в том, что я слишком верхнеуровневый. Опыт размазан: работаешь → выгораешь → снова работаешь. Да, могу собрать игру определённого уровня. Но есть потолок. Смотришь на AAA — и вообще не понимаешь, как там такие технологии реализованы. Для этого нужен другой фундамент, а у меня его тупо нет.

Вот поэтому и чешется уйти в низкоуровневое программирование. Зарыться в книги, как червяк в землю. Уехать куда-то в тишину, отрезать весь шум и начать строить нормальный фундамент знаний.

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

Хочу подтянуть теорию. Потому что, когда у тебя только практика, это реально мешает в общении и в работе. Теоретическая база даёт уверенность, системность и другой уровень понимания.

🟢 Теперь к движку. За эти месяцы у меня родились новые идеи, и я начал перестраивать архитектуру.

План такой:
- будет два ядра — одно на C#, другое на JS/TS, чтобы собирать проекты и под веб, и под ПК;
- будет свой скриптовый язык ManuScript, пишу его на Си;
- на C# сделаю собственную библиотеку рендера, а на ней — фреймворк для UI, чтобы можно было собирать как игры, так и десктопные приложения;
- на этом же фреймворке будет написан редактор под Windows.

Короче, разработка движка потихоньку возвращается, но уже с новым взглядом и новой архитектурой.
7
- Буратино дали три яблока. Два он съел. Сколько яблок осталось у Буратино?
- Одно?
- Нет! Мы же не знаем, сколько яблок у него было до этого.
🤔31