Melkov's
168 subscribers
582 photos
76 videos
39 files
221 links
Мой движок: @vecxylog
Чат: @melkovteam
Download Telegram
Обычно когда что-то хочешь посмотреть - ты гуглишь "НАЗВАНИЕ и смотреть онлайн бесплатно", потом обычно выбираешь лорд фильм или типа того, если нет подписок на сервисах.

А тут вот такую тему нашел: https://reyohoho.github.io

Единый поиск всех плееров, весьма удобно и пока находит вообще все что я только хотел, так еще и с разными плеерами, которые все работают хорошо.

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

Основные возможности
* Веб-просмотр: Полноценный плеер для просмотра контента без рекламы прямо в браузере.
* Браузерное расширение: Интеграция с Kinopoisk и Shikimori, добавляя кнопку для быстрого перехода к плееру.
* Десктоп-приложение: Поддержка Windows, macOS и Linux с регулярными обновлениями.

Преимущества
* Универсальный доступ: Возможность использовать проект в браузере, на ПК или через расширение.
* Без рекламы: Чистый просмотр без навязчивых баннеров и видеовставок.
* Открытый код: Проект доступен на GitHub, активно развивается и поддерживается сообществом.
👍2
Кошке тоже зашел сериал😁
😁4🔥1
😂
😁2
Да, я дождался, когда Куплинов начал проходить A Plague Tale: Requiem :D

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

Ноябрь нынче очень жирный)

- Прохождение Куплинова по игре A Plague Tale: Requiem
- Выходит ремейк Syberia 1
- Возможно будут подробности по Half-Life 3
1
📹 Stream

Twitch: https://www.twitch.tv/melkovdev

Делаем игру за 3 дня, командой из 4 человек на движке FlaxEngine. Хэллоуинский вайб :D
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1👾1
📹 Stream

Twitch: https://www.twitch.tv/melkovdev

Делаем игру за 2 дня. Перешли на Unity движок...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
📹 Stream

Twitch: https://www.twitch.tv/melkovdev

Делаем игру за 1 день...
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯1
Мы делаем рогалик со слот-машиной, комбинации которой определяют исход сессии. Тестировали вероятности выпадения

📹 Short: https://www.twitch.tv/videos/2611972669
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Кто-нибудь знает, как скачать Fallout 1 на ПК? Я с нескольких разных раздач пробовал, но там почти нет пиров. Уже пятый день качается, а скачалось только 28 МБ из 2 ГБ. 😭
😁2
Начал тут потихоньку приводить свою тех. литературу в порядок, за 7 лет все как-то скучковалось, читаю в разнобой и по необходимости. Вынесу все книги, которые читал, читаю, буду читать и которые планирую перечитать.

На полке будут книги по .net (много классики, и конечно современную литературу), будет что-то по CG (компьютерная графика), что-то будет по железу и архитектуре компа, что-то будет по сетям, еще конечно мой любимый Web, а ну еще возможно что-то по менеджменту. Возможно охвачу геймдизайн и математику (здесь не точно, так как за последние 2 года мало таких книг читал, а по математики начал только в этом году)

P.S. Запущу потом отдельно стримчик, где обсудим всю полку книг, если будут предложения - добавим, сделаем заметки какие-то и так далее. И оставим эту полку публично для каждого желающего
Melkov's
Начал тут потихоньку приводить свою тех. литературу в порядок, за 7 лет все как-то скучковалось, читаю в разнобой и по необходимости. Вынесу все книги, которые читал, читаю, буду читать и которые планирую перечитать. На полке будут книги по .net (много классики…
В общем это все книги, которые мне интересны. Потом еще поресерчу по поводу других тем в которых хотелось бы прокачаться и добавлю их в группу "хз как книга, но по синопсису норм - буду читать".

Темы на которые хочу найти книги:
- HLSL, GLSL, и т.д. Что-то в общем по шейдерам. Здесь знаю несколько хороших материалов - но это не книги, а статьи и документации. Например на Nvidia сайте.

- Математика, наверное линейна в первую очередь, что-то по геометрии. Здесь нужно нащупать с чего начать, область широка и определить необходимое

- Физика, наверное возьму что-то из школьной программы для начала

- Ну и художественных книг, всяких там классических произведений, то что по душе будет. Что-то по антиутопиям, что-то по киберпанку
2👍2
Типизированные массивы в JavaScript созданы для чего? Правильно, для скорости и работы с сырой памятью! Но Тим Кук думает иначе...

Если ты пробуешь отсортировать простой массив, например флотов, вебкит может решить, что это идеальный момент для медитации😂

slowDownAndWasteMemory

Пока V8 пытается выжать такты процессора, Safari такой: «Хм, этот массив выглядит слишком сложным (или опасным?), давайте-ка вызовем slowDownAndWasteMemory().

Если твой массив слишком большой или неудобный для сортировки, он превращается... превращается...

...он превращается в WastefulTypedArray

То есть, ты пишешь код, ожидая работы с OversizeTypedArray (просто большим массивом), а под капотом Apple конвертирует его в WastefulTypedArray.

Сортируй массивы в Safari - помогай греть атмосферу!

🔗 Chat 🔗 Vecxy 🔗 Twitch 🔗
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2
Тут чувак (igmunv) делает свою операционную систему, наткнулся месяц назад на его первый ролик и вот теперь я его постоянный зритель :D

Если вкратце, то он пишет 32-ух битную ОС на языке C и ASM и теперь у нее есть название Kinetic Open Structure Minimal Operation System или проще - космос. (и тут вставка с red21 "ты космос детка").

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

В общем рекомендую)

🔗 Chat 🔗 Vecxy 🔗 Twitch 🔗
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Две истории страдания в веб-среде

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

Значит, выпустили мы игру на «Яндекс.Игры», разработана она на движке Unity, версия 6k LTS, модерацию прошли успешно.

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

Самое любимое в этой ситуации — проблема была только на iOS. Я просто обожаю WebKit и всё, что с ним связано...

Кейс #1 или как я люблю Apple
Оверскроллинг? Ну типа, когда страница заканчивается, её можно скроллнуть с натяжкой вниз для обновления страницы. По правилам платформы это недопустимо, и нужно отключать. Ок, такого нюанса не знал, пошёл добавлять новый селектор на CSS, чтобы офнуть эту фичу в браузерах. На Chromium и Gecko всё чётко, работает как советские часы, а вот в WebKit отрабатывает сомнительно и далеко не окей. В Safari это просто не работает, хотя в документации логика описана: iOS'ы насильно добавляют свой скролл во всё, что рендерится, это у них фетиш такой. Благо, хоть в WebView WebKit это выполняет как нужно.

Пошёл думать, как это можно обойти, и пришёл к единственному рабочему способу в 100 процентах случаев. Достаточно просто подписаться на событие тача в любое место в document в пассивном режиме (ибо нам не нужно preventDefault юзать) и, конечно, с захватом на то, что ивент будет получен до отправки в любой EventTarget чилдов.

Кейс #2 или какие юнити предусмотрительные
Кетчуп? Ой, Catch-up! Система для аудиотаймлайна, которая позволяет нагнать упущенный офсет времени. Например, все мы знаем, что браузер может уходить в спячку, если его свернуть. Это значит, что он останавливает свой цикл до возвращения пользователя. В таком случае Web Audio API не может воспроизводить аудио и просто останавливает его. Unity под капотом, при работе с Web Audio API, реализовали логику запоминания времени замораживания браузера и его размораживания. Дельта времени используется как офсет для таймлайна, который применяется для нагонки, из-за чего музыка может ускоряться в N раз, чтобы успеть. Данный кейс вообще бессмыслен, и совершенно непонятно, зачем это нужно. Если музыка идёт 2 минуты, а человек держал браузер минуту в заморозке, то по возвращении трек будет ускорен до конца, что выглядит глупо. Естественно, в документации ничего об этом не сказано. А ещё они в некоторых кейсах могут дублировать трек, если у него есть зацикливание. Например, трек закончился, а браузер ушёл в заморозку, то после разморозки он ускорит законченный трек, запустит его по новой, и Unity ещё запустит повторно его, из-за чего у нас будет 2–3 потока одного и того же трека, что приведёт к "развалу ушей".

Много всего перепробовал, пока не наткнулся на исходный код Unity в .framework.js, который можно посмотреть после сборки билда под веб. Там нашёл подписку на изменение состояния AudioContext, в которой, собственно, и происходила вся эта грязь. Пришлось писать плагин в контексте этого фреймворка, дабы переопределить код функции, которая подписывалась на изменение состояния контекста. Убрал всю логику с офсетами и захардкодил офсет в значение 0, что полностью решило эти проблемы.

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

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

🔗 Chat 🔗 Vecxy 🔗 Twitch 🔗
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1
Морозной ясной ночью)

Сидел работал как обычно, пошел прогуляться, освежиться и был удивлен)

Морозный воздух сух.
Сиянье пламенем горит ,
Захватывая дух!
👍93
Forwarded from Vecxy (Дмитрий Мелков)
⚙️Log #26

Давно не было новостей по разработке, но потихоньку, помаленьку, по строчке — работал!

🟢 Продумал больше архитектурных штук, определился с техническим стеком, нащупал направления, которые моему внутреннему феншую в радость. Например, закончил с экспериментами структуры пользовательского проекта, который будет создаваться по шаблону через CLI движка. В планах сделать виртуальную среду для V8 в связке с TypeScript. Скажете зачем? А я захотел интегрировать JavaScript движок для скриптинга. Потому что интерпретируемость даст условия для быстрых итераций без пересборки, а еще Hot Reload в такой среде куда лучше. Не могу сказать, что у шарпа он плохой, но интерпретатор может творить магию, особенно в таком нетипизированном языке (благо правится тайпскриптом). Скриптинг теперь только в JS? Нет, будет основной нативный слой на C# и дополнительный JS. Можно работать в связке: часть, требующая быстрых правок — на JS, а производительности — на C#. Это пока определилось на этапе экспериментов, может это все бредни сумасшедшего, а может прекрасное решение.

🟢 Мне очень не нравится концепция движка, где основа — редактор. Нашел компромисс: будет встроенный редактор в рантайм игры. Движок будет делиться на слои выполнения, где в дебаг режиме основной слой идет со встроенными инструментами. Вкратце: движок — это библиотека, игра — плагин. Ни у движка, ни у игры не будет исполняемой стороны, это просто либы, однако, когда CLI соберет исполняемый файл, он просто подгрузит их по слоям. Управление будет через CLI, а редакторские инструменты станут частью рантайма.

🟢 Еще не захотелось юзать OpenTK, некомфортно делегировать нативные вещи. Хочу писать сам, понимать как это работает под капотом и иметь контроль. Потому в проекте появились нативные модули на C/C++, которые экспортируют API для C# через LibraryImport. Сейчас делаю Window, чтобы иметь полный контроль над процедурой окна. Как закончу, буду писать обработку инпута. Ну хочется мне нативного кода, хочется плюсов, хочется возни с unsafe шарпом.

🟢 Перекатил проект на .NET 10, будем двигать в ногу с платформой. Новые фичи — это имба, особенно когда работал 7 лет на Unity с убогим шарпом. А еще наконец-то выкатили полную поддержку .slnx и теперь перешел на него, красиво оформлено.

🟢 Настроил сборку в одну папку, теперь чище выглядят артефакты. Потом изучу вопрос паблишинга, может есть инструменты для пайплайна, если нет — напишу скрипты на JS или питоне (баш или батники не хочется юзать). Для CLI сделал парсер аргументов и абстрагировал это командами, получилось удобнее, чем у всратых решений из гитхаба. Сделал тестовую сборку проекта в двух конфигурациях — это следующий большой этап разработки. Пока руки ленятся туда лезть, потому и начал писать нативные модули, чтобы заниматься чем-то веселым.

В общем как-то так. Заряжен как никогда, куча идей, осталось настроиться на завершение этапа окружения. Считаю, что важно сейчас не рендеринг, а именно то, как будет строиться рабочий процесс и масштабируемость.
👍2🤯2
Forwarded from Vecxy (Дмитрий Мелков)
⚙️Log #27

Столько разных идей и вдохновений на архитектуру движка!

Расскажу о них чуть позже, нужно все мысли привести в порядок, что-то попробовать реализовать в черновом состоянии, а что-то допилить до MVP.

Держите пока что первую версию внешнего вида сайта с документацией к движку. Решил отвлечься и заняться монкей работой, поэкспериментировал с .md файликами для описания доков. Может потом сделаю еще и отдельную страницу для блога и дев отчетов и переедем туда, так как телега жестко ограничивает в этом деле.

В этом году если все пойдет по плану, то дам в общее пользование, пощупать двигло, поклепать флепи бердов и дудл джампов :D
🔥5👍1
Мы выпустили JSPipe и советуем его к покупке каждому Unity WebGL-разработчику! 🔥

В честь релиза в первые две недели действует скидка 30% (13.99$ вместо 19.99$). Не упустите возможность забрать инструмент по выгодной цене!


WebGL-билды Unity часто кажутся изолированными от веб-страницы, на которой они запущены. Интеграция современных веб-функций обычно требует обходных путей. JSPipe меняет это.

Он внедряет модульную архитектуру, в которой классы C# и TS зеркально отражают друг друга. Вы можете определить метод в C#, вызвать его из JS и асинхронно дождаться результата — и наоборот.

Ключевые особенности:
- ⚡️Двунаправленный RPC: вызывайте методы C# из JS и методы JS из C# с полной поддержкой возвращаемых значений и паттернов async/await.

- 📦 Полная поддержка NPM: используйте upackage.json для установки любой библиотеки из Node Package Manager. Просто устанавливайте и импортируйте их.

- 🛡 Типизированный TS: пишите логику фронтенда на TS. Пакет включает автоматизированную систему сборки, которая компилирует ваши .ts файлы в оптимизированный бандл.

- 🚀 Автоматизированный пайплайн: ручные шаги сборки не требуются. JSPipe интегрируется в Unity Build Player. Он использует esbuild для молниеносной сборки и Html Agility Pack для автоматической инъекции скриптов в ваши WebGL-шаблоны.

- 🧩 Модульная архитектура: организуйте логику взаимодействия в именованные модули (например, AuthModule, SaveSystemModule), сохраняя чистоту и масштабируемость кодовой базы.

- 🎨 Кастомные WebGL-шаблоны: создавайте свои шаблоны index.html с поддержкой динамической инъекции скриптов.

Рабочий процесс:
1. Создание: напишите C#-класс, наследуемый от JSPipeModule.
2. Зеркалирование: напишите TS-класс, расширяющий JSPipeModule.
3. Регистрация: добавьте методы с помощью RegisterHandler / registerHandler.
4. Сборка: нажмите Build & Run. JSPipe автоматически скомпилирует TS, соберет зависимости и пропатчит WebGL-билд.

Идеально подходит для:
- Web3 игр
- Сложных фронтенд-интеграций
- Сложного сетевого взаимодействия через WebSockets/WebRTC или простого доступа к API браузера (LocalStorage, Geolocation) без «костылей».

👉 Unity Asset Store: https://assetstore.unity.com/packages/tools/integration/jspipe-low-level-communication-for-js-351936

#Unity #WebGL #GameDev #TypeScript #AssetStore
5🔥4😱2
Forwarded from Vecxy (Дмитрий Мелков)
⚙️Log #28

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

Пока этим занимался, решил сделать основой сайта «борду» в стиле блюпринтов - мне это кажется современным визуальным подходом.

Весь сайт - это одна большая доска, поделенная на секции, папки и прочие сущности. Например, будет место для глобальной архитектуры движка (что-то высокоуровневое).

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

Надеюсь, в течение марта смогу определиться и зафиксировать идеи по ядру. Тогда закину статейку (на НАШЕМ блоге по движку) со всеми мыслями, чтобы те, кто интересуется разработкой, понимали, как оно будет работать.
1👍1