Forwarded from Vecxy (Дмитрий Мелков)
⚙️Log #22
Начал писать парсер под wavefront формат (.obj) и мне райдер предложил поставить расширение.
Неожиданное и приятно был удивлен, что меш можно осматривать прям в IDE, еще и подсвечивает данные + можно поиграться с разными настройками.
Начал писать парсер под wavefront формат (.obj) и мне райдер предложил поставить расширение.
Неожиданное и приятно был удивлен, что меш можно осматривать прям в IDE, еще и подсвечивает данные + можно поиграться с разными настройками.
❤1🤯1
Forwarded from Vecxy (Дмитрий Мелков)
⚙️Log #23
Давно не ощущал такой свободы в разработке...
За последние два года устал заниматься Unity-like мобильной дрочильней. Единственной отдушиной был веб-стек, который пришлось осваивать из-за очередного бума HTML5-игр. Но и там всё переросло в рутину, потому что задачи в той или иной степени повторяются.
А сейчас пишу свой движок, и здесь, чтобы что-то реализовать, приходится изучать тонны информации. Даже этот простенький парсер .obj-моделей заставляет изучить его структуру, почитать историю создания формата, параллельно залезть в документацию по работе с шейдингом. Потом увидел, что модель может быть не триангулирована, и нужно как-то обрабатывать этот кейс. Пошел смотреть, как такое делают на примере уже готовой библиотеки, хочу потом написать свой триангулятор просто потому, что хочу.
Вот оно, запах инди! Многое здесь создается только потому, что «Хочу!»
Давно не ощущал такой свободы в разработке...
За последние два года устал заниматься Unity-like мобильной дрочильней. Единственной отдушиной был веб-стек, который пришлось осваивать из-за очередного бума HTML5-игр. Но и там всё переросло в рутину, потому что задачи в той или иной степени повторяются.
А сейчас пишу свой движок, и здесь, чтобы что-то реализовать, приходится изучать тонны информации. Даже этот простенький парсер .obj-моделей заставляет изучить его структуру, почитать историю создания формата, параллельно залезть в документацию по работе с шейдингом. Потом увидел, что модель может быть не триангулирована, и нужно как-то обрабатывать этот кейс. Пошел смотреть, как такое делают на примере уже готовой библиотеки, хочу потом написать свой триангулятор просто потому, что хочу.
Вот оно, запах инди! Многое здесь создается только потому, что «Хочу!»
👍1
Forwarded from Vecxy (Дмитрий Мелков)
⚙️Log #24
Сезон страданий открылся...
Вчера потратил больше 6 часов на поиск решения проблемы. Изначально я написал логику втупую для работы с буферами, потом решил сделать для них обёртки, чтобы было удобно с этим работать и не писать кучу одинакового низкоуровневого кода.
Всё шло прекрасно до одного нюанса. Приложение начало крашиться, когда я делал два раза подряд привязку одного и того же буфера или вершинного массива. Раньше можно было привязывать сколько угодно раз, а теперь — нет. В рендере начиналась дичь в момент привязки указателей на данные атрибутов. Я хотел сделать лаяут, который автоматически сдвигал бы offset и определял stride для вершинных атрибутов.
По идее всё должно было работать чётко, но приложение падало с access violation. Решения на форумах я не нашёл, а официальная документация утверждала, что привязку можно делать сколько угодно раз. Так в чём же была проблема?
Оказалось, что я создавал буферы в автоматическом свойстве через лямбду:
Из-за того, что GL.GenBuffer() — unsafe-метод, при каждом обращении к свойству генерировался новый буфер, а старый терялся, создавая утечку памяти. Решение было простым — вынести создание в конструктор:
Теперь буфер создаётся только один раз и больше не вызывает падений при повторных привязках.
P.S. Дипсик и GPT-чат вообще не справляются с низкоуровневой разработкой. Да, они знают многое, и полезно с ними сверяться по каким-то нюансам, но они очень жестко теряются и постоянно выдают невалидную информацию. Она иногда даже не сходится с официальной документацией. А такие нюансы, как порядок привязки буферов — вообще жопа для них. Да, они в курсе, что должен быть какой-то порядок, но какой именно — им пофиг. В каждом ответе всегда рандомный порядок и бессмысленные биндинги и т.д.
Сезон страданий открылся...
Вчера потратил больше 6 часов на поиск решения проблемы. Изначально я написал логику втупую для работы с буферами, потом решил сделать для них обёртки, чтобы было удобно с этим работать и не писать кучу одинакового низкоуровневого кода.
Всё шло прекрасно до одного нюанса. Приложение начало крашиться, когда я делал два раза подряд привязку одного и того же буфера или вершинного массива. Раньше можно было привязывать сколько угодно раз, а теперь — нет. В рендере начиналась дичь в момент привязки указателей на данные атрибутов. Я хотел сделать лаяут, который автоматически сдвигал бы offset и определял stride для вершинных атрибутов.
По идее всё должно было работать чётко, но приложение падало с access violation. Решения на форумах я не нашёл, а официальная документация утверждала, что привязку можно делать сколько угодно раз. Так в чём же была проблема?
Оказалось, что я создавал буферы в автоматическом свойстве через лямбду:
public int Id => GL.GenBuffer();
Из-за того, что GL.GenBuffer() — unsafe-метод, при каждом обращении к свойству генерировался новый буфер, а старый терялся, создавая утечку памяти. Решение было простым — вынести создание в конструктор:
public int Id { get; private set; }
public ArrayBuffer()
{
Id = GL.GenBuffer();
}Теперь буфер создаётся только один раз и больше не вызывает падений при повторных привязках.
P.S. Дипсик и GPT-чат вообще не справляются с низкоуровневой разработкой. Да, они знают многое, и полезно с ними сверяться по каким-то нюансам, но они очень жестко теряются и постоянно выдают невалидную информацию. Она иногда даже не сходится с официальной документацией. А такие нюансы, как порядок привязки буферов — вообще жопа для них. Да, они в курсе, что должен быть какой-то порядок, но какой именно — им пофиг. В каждом ответе всегда рандомный порядок и бессмысленные биндинги и т.д.
👍2
Наткнулся на одно видео, с мнением автора которого частично согласился. Но важнее другое — он поднял вопрос, который и у меня время от времени возникает.
Бывает, друзья или знакомые изредка приглашают меня сыграть в Minecraft. Ситуация всегда развивается по одному и тому же сценарию: меня зовут в самую свежую версию игры, переполненную контентом, с массой изменений и дополнений.
А я ведь последний раз по-настоящему и по собственной воле играл ещё в версии 1.7.10, на тот момент — новейшей. Затем Minecraft стал меняться с невероятной скоростью. Переломным моментом для меня стала версия 1.8 с её второй рукой и прочими новшествами. Именно тогда, на мой взгляд, начал улетучиваться тот самый уникальный дух творчества, который делал игру особенной.
И вот, когда мы заходим в новую версию, я вижу: выглядит всё здорово, масштабно, полно всяких мелочей. Но это даёт совершенно другие ощущения. Чувствуется иная скорость игры. Лично мне становится скучно — я не ощущаю того самого кубичного Minecraft, с которого всё начиналось. Словно это уже что-то другое.
Бывает, друзья или знакомые изредка приглашают меня сыграть в Minecraft. Ситуация всегда развивается по одному и тому же сценарию: меня зовут в самую свежую версию игры, переполненную контентом, с массой изменений и дополнений.
А я ведь последний раз по-настоящему и по собственной воле играл ещё в версии 1.7.10, на тот момент — новейшей. Затем Minecraft стал меняться с невероятной скоростью. Переломным моментом для меня стала версия 1.8 с её второй рукой и прочими новшествами. Именно тогда, на мой взгляд, начал улетучиваться тот самый уникальный дух творчества, который делал игру особенной.
И вот, когда мы заходим в новую версию, я вижу: выглядит всё здорово, масштабно, полно всяких мелочей. Но это даёт совершенно другие ощущения. Чувствуется иная скорость игры. Лично мне становится скучно — я не ощущаю того самого кубичного Minecraft, с которого всё начиналось. Словно это уже что-то другое.
YouTube
Утерянная красота майнкрафта
Бусти – https://boosty.to/c21qx
Связь - ilyayokis@gmail.com
Телега (инфа про сервер тут) - https://t.me/c21qx0
Привет, это шиза про майнкрафт из маей головы. ыыаыаыаыыоыаоаоыа.
#майнкрафт #minecraft #альфа
Связь - ilyayokis@gmail.com
Телега (инфа про сервер тут) - https://t.me/c21qx0
Привет, это шиза про майнкрафт из маей головы. ыыаыаыаыыоыаоаоыа.
#майнкрафт #minecraft #альфа
🔥2
Не сразу догадался как менять направление на рельсах. Колесил по кругу больше часа и не понимал, что же нужно делать далее.
Я вроде дорогу освободил, но повернуть на освобожденный участок не получалось.
Со знаками тоже пытался взаимодействовать, но ничего не происходило. От безвыходности ситуации решил выстрелить в этот тупой указатель и случилось чудо - он повернулся и телега начала катиться в другую сторону.
По моему мнению, не очень интуитивно понятная механика. Уже думал на сегодня бросить играть и вернуться позже...
P.S. Я проходил первую часть очень давно, еще когда учился в школе. Сейчас вообще многое вижу словно в первый раз - настолько сильно забыл игру. И самое забавное, я не помню чтобы были такие тупники как сейчас, тогда все проходилось гладко.
Я вроде дорогу освободил, но повернуть на освобожденный участок не получалось.
Со знаками тоже пытался взаимодействовать, но ничего не происходило. От безвыходности ситуации решил выстрелить в этот тупой указатель и случилось чудо - он повернулся и телега начала катиться в другую сторону.
По моему мнению, не очень интуитивно понятная механика. Уже думал на сегодня бросить играть и вернуться позже...
P.S. Я проходил первую часть очень давно, еще когда учился в школе. Сейчас вообще многое вижу словно в первый раз - настолько сильно забыл игру. И самое забавное, я не помню чтобы были такие тупники как сейчас, тогда все проходилось гладко.
This media is not supported in your browser
VIEW IN TELEGRAM
Доигрался... Похоже не нужно было убивать ученых, теперь игра почему-то постоянно загружает последнее сохранение.
А я перед этим почистил вообще все авто сейвы и остался только этот... Придется начинать все с самого начала🥴
А я перед этим почистил вообще все авто сейвы и остался только этот... Придется начинать все с самого начала🥴
👾4
Сделал переустановку системы с win10 на win10 , комп начинал слегка тормозить.
Приятно был удивлен софтом, который с обновлением принес кучу фичей полезных, а ведь было впадлу его переустанавливать...
Зацените например Rider на самой последней версии. Они все продолжают экспериментировать над визуалом)
Приятно был удивлен софтом, который с обновлением принес кучу фичей полезных, а ведь было впадлу его переустанавливать...
Зацените например Rider на самой последней версии. Они все продолжают экспериментировать над визуалом)
👍1
Melkov's
Что есть на рынке для быстрого и удобного создания графического интерфейса под редакторы? Как обычно подымаю этот вопрос, когда встает проблема создания кастомного редактора для какой-то не тривиальной задачи... 1. В юнити IMGUI и в принципе Dear Imgui на…
Слава китайским комрадам :D
Наткнулся на весьма удобное (имхо) решение для создания UI под приложения. Часто требовалось написать какой-то редактор и постоянно страдал с другими библиотеками.
Решение старое и на основе WinForms, но поддерживается, а еще мне большего не нужно, сейчас потыкал и сделал шаблон для простенького менеджера проектов под движок.
Дока: https://gitee.com/yhuse/SunnyUI/wikis/pages
Вероятнее всего, при создании своей библиотеки для UI, буду черпать какие-то интересные решения из SunnyUI.
Наткнулся на весьма удобное (имхо) решение для создания UI под приложения. Часто требовалось написать какой-то редактор и постоянно страдал с другими библиотеками.
Решение старое и на основе WinForms, но поддерживается, а еще мне большего не нужно, сейчас потыкал и сделал шаблон для простенького менеджера проектов под движок.
Дока: https://gitee.com/yhuse/SunnyUI/wikis/pages
Вероятнее всего, при создании своей библиотеки для UI, буду черпать какие-то интересные решения из SunnyUI.
Gitee
Wiki Preview - Gitee
Gitee.com(码云) 是 OSCHINA.NET 推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。目前已有超过 1400万的开发者选择 Gitee。
👍1
Forwarded from Vecxy (Дмитрий Мелков)
⚙️Log #25
🟢 Начал разработку системы проектов для движка. Её основой станет лаунчер, в котором будет отображаться список всех проектов пользователя, их настройки и другие параметры.
При выборе проекта в лаунчере он будет открываться в изолированной рабочей директории. Эта папка будет содержать только файлы, относящиеся к данному проекту, а также служебные метафайлы для работы редактора и движка.
🟢 Решил реализовать эту систему на раннем этапе, чтобы заложить основу для её дальнейшего развития.
На текущий момент наметил принцип работы:
- Для каждого проекта автоматически генерируется решение (.sln) под .NET 8.0, а также его первый проект (.csproj).
- Параметры сборки для всех проектов определяются на уровне решения. В нём прописаны ссылки на собранные DLL-библиотеки движка.
- Пока что путь к этим DLL читается из переменных окружения компьютера. В будущем этот механизм может быть изменён — возможно, путь будет генерироваться динамически при запуске редактора. Решение через переменные окружения было выбрано как наиболее стандартное на первом этапе.
🟢 Движок можно будет установить прямо из лаунчера. Он загрузится в виде архива, распакуется в указанную пользователем папку и начнется процесс установки, после чего путь к нему будет автоматически добавлен в переменные окружения системы. Это позволит использовать движок как в процессе сборки проектов, так и напрямую из терминала.
🟢 Каждый проект будет содержать главный файл .project с информацией о нём: название, описание и т.д.
Также в этом файле указывается тип проекта:
- Игра — конечный продукт, разрабатываемый на движке. Собирается в исполняемый .exe-файл вместе с контентом. Может иметь зависимости в виде библиотек и пакетов.
- Библиотека — проект, состоящий в основном из кода, без контента. Представляет собой обычные .dll-файлы, которые могут использоваться в играх или других пакетах. Библиотеки могут быть одиночными или представлять собой группу взаимозависимых проектов.
- Пакет — reusable-компонент, который можно легко переиспользовать в разных проектах. Это аналог Packages в Unity, но адаптированный под нужды данного движка. Пакет может содержать как код, так и контент. Он может зависеть от других проектов, но только от библиотек или других пакетов.
🟡 В качестве теста я начал делать в этой системе игру Flappy Bird. Пока что всё работает отлично: процесс удобен и не требует дополнительных манипуляций с файлами проекта.
🟢 Начал разработку системы проектов для движка. Её основой станет лаунчер, в котором будет отображаться список всех проектов пользователя, их настройки и другие параметры.
При выборе проекта в лаунчере он будет открываться в изолированной рабочей директории. Эта папка будет содержать только файлы, относящиеся к данному проекту, а также служебные метафайлы для работы редактора и движка.
🟢 Решил реализовать эту систему на раннем этапе, чтобы заложить основу для её дальнейшего развития.
На текущий момент наметил принцип работы:
- Для каждого проекта автоматически генерируется решение (.sln) под .NET 8.0, а также его первый проект (.csproj).
- Параметры сборки для всех проектов определяются на уровне решения. В нём прописаны ссылки на собранные DLL-библиотеки движка.
- Пока что путь к этим DLL читается из переменных окружения компьютера. В будущем этот механизм может быть изменён — возможно, путь будет генерироваться динамически при запуске редактора. Решение через переменные окружения было выбрано как наиболее стандартное на первом этапе.
🟢 Движок можно будет установить прямо из лаунчера. Он загрузится в виде архива, распакуется в указанную пользователем папку и начнется процесс установки, после чего путь к нему будет автоматически добавлен в переменные окружения системы. Это позволит использовать движок как в процессе сборки проектов, так и напрямую из терминала.
🟢 Каждый проект будет содержать главный файл .project с информацией о нём: название, описание и т.д.
Также в этом файле указывается тип проекта:
- Игра — конечный продукт, разрабатываемый на движке. Собирается в исполняемый .exe-файл вместе с контентом. Может иметь зависимости в виде библиотек и пакетов.
- Библиотека — проект, состоящий в основном из кода, без контента. Представляет собой обычные .dll-файлы, которые могут использоваться в играх или других пакетах. Библиотеки могут быть одиночными или представлять собой группу взаимозависимых проектов.
- Пакет — reusable-компонент, который можно легко переиспользовать в разных проектах. Это аналог Packages в Unity, но адаптированный под нужды данного движка. Пакет может содержать как код, так и контент. Он может зависеть от других проектов, но только от библиотек или других пакетов.
🟡 В качестве теста я начал делать в этой системе игру Flappy Bird. Пока что всё работает отлично: процесс удобен и не требует дополнительных манипуляций с файлами проекта.
⚡3
Melkov's
Медятина? https://arch-ecs.gitbook.io/arch
100 тысяч независимо движущихся объектов на экране и 60 fps :D
Мне достаточно понравился Arch, буду на его основе строить систему движка и пока что сконцентрируюсь на ECS подходе.
Мне достаточно понравился Arch, буду на его основе строить систему движка и пока что сконцентрируюсь на ECS подходе.
Не знаю что создает этот чувак, но мне нравится :D
Был удивлен, когда он все там шустро редачил и просматривал, ничего подобного раньше не видел
https://www.youtube.com/watch?v=ioluzO2fCAQ
Был удивлен, когда он все там шустро редачил и просматривал, ничего подобного раньше не видел
https://www.youtube.com/watch?v=ioluzO2fCAQ
YouTube
First test with upgraded BepuPhysics 2
Support development at: https://patreon.com/resonite
Official website: https://resonite.com
Official website: https://resonite.com
Обычно когда что-то хочешь посмотреть - ты гуглишь "НАЗВАНИЕ и смотреть онлайн бесплатно", потом обычно выбираешь лорд фильм или типа того, если нет подписок на сервисах.
А тут вот такую тему нашел: https://reyohoho.github.io
Единый поиск всех плееров, весьма удобно и пока находит вообще все что я только хотел, так еще и с разными плеерами, которые все работают хорошо.
ReYohoho — это современный онлайн кинотеатр с открытым исходным кодом, позволяющий смотреть фильмы и сериалы без рекламы через веб-интерфейс, десктоп-приложение и расширение для браузера.
Основные возможности
* Веб-просмотр: Полноценный плеер для просмотра контента без рекламы прямо в браузере.
* Браузерное расширение: Интеграция с Kinopoisk и Shikimori, добавляя кнопку для быстрого перехода к плееру.
* Десктоп-приложение: Поддержка Windows, macOS и Linux с регулярными обновлениями.
Преимущества
* Универсальный доступ: Возможность использовать проект в браузере, на ПК или через расширение.
* Без рекламы: Чистый просмотр без навязчивых баннеров и видеовставок.
* Открытый код: Проект доступен на GitHub, активно развивается и поддерживается сообществом.
А тут вот такую тему нашел: https://reyohoho.github.io
Единый поиск всех плееров, весьма удобно и пока находит вообще все что я только хотел, так еще и с разными плеерами, которые все работают хорошо.
ReYohoho — это современный онлайн кинотеатр с открытым исходным кодом, позволяющий смотреть фильмы и сериалы без рекламы через веб-интерфейс, десктоп-приложение и расширение для браузера.
Основные возможности
* Веб-просмотр: Полноценный плеер для просмотра контента без рекламы прямо в браузере.
* Браузерное расширение: Интеграция с Kinopoisk и Shikimori, добавляя кнопку для быстрого перехода к плееру.
* Десктоп-приложение: Поддержка Windows, macOS и Linux с регулярными обновлениями.
Преимущества
* Универсальный доступ: Возможность использовать проект в браузере, на ПК или через расширение.
* Без рекламы: Чистый просмотр без навязчивых баннеров и видеовставок.
* Открытый код: Проект доступен на GitHub, активно развивается и поддерживается сообществом.
👍2
Да, я дождался, когда Куплинов начал проходить A Plague Tale: Requiem :D
Первую часть я проходил параллельно, типа ты сам сначала проходишь, потом смотришь как проходил Куплинов) Не знаю почему, но в прошлый раз мне это очень зашло, удалось получить двойное погружение от игры.
Ноябрь нынче очень жирный)
- Прохождение Куплинова по игре A Plague Tale: Requiem
- Выходит ремейк Syberia 1
- Возможно будут подробности по Half-Life 3
Первую часть я проходил параллельно, типа ты сам сначала проходишь, потом смотришь как проходил Куплинов) Не знаю почему, но в прошлый раз мне это очень зашло, удалось получить двойное погружение от игры.
Ноябрь нынче очень жирный)
- Прохождение Куплинова по игре A Plague Tale: Requiem
- Выходит ремейк Syberia 1
- Возможно будут подробности по Half-Life 3
YouTube
ЧУМА ВЕРНУЛАСЬ ► A Plague Tale: Requiem #1
Прохождение A Plague Tale: Requiem. Всем приятного просмотра!
Подписывайтесь на сообщество в VK Видео по ссылке ниже и не забывайте включать уведомления, чтобы не пропустить новые видео - https://vk.com/kuplinovplay
Стать спонсором - https://www.youtube…
Подписывайтесь на сообщество в VK Видео по ссылке ниже и не забывайте включать уведомления, чтобы не пропустить новые видео - https://vk.com/kuplinovplay
Стать спонсором - https://www.youtube…
❤1
Twitch: https://www.twitch.tv/melkovdev
Делаем игру за 3 дня, командой из 4 человек на движке FlaxEngine. Хэллоуинский вайб :D
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1👾1