O seu período de teste terminou!
Para acesso total à funcionalidade, pague uma subscrição premium
MI
👨🏾‍💻 MILANRODD
https://t.me/milanrodd
Idade do canal
Criado
Linguagem
Russo
2%
ER (semana)
26.05%
ERRAR (semana)

Создаю стартапы на стриме ->

twitch.tv/milanrodd

Mensagens Estatísticas
Repostagens e citações
Redes de publicação
Satélites
Contatos
História
Principais categorias
As principais categorias de mensagens aparecerão aqui.
Principais menções
Não foram detectadas menções significativas.
Encontrado 439 resultados
25.04.2025, 23:54
t.me/milanrodd/4698
4
200
Результат сегодняшнего дня - я научился профилировать многопоточность.

Итог - уменьшение нагрузки на одно ядро и лучшее распараллеливание задач в системах.

Осталась последняя оптимизация в сторону многопотока в системе коллизий и будет фулл.
25.04.2025, 23:54
t.me/milanrodd/4697
17
10
443
Чем Golang лучше Javascript?

Это как сравнивать новый титановый трубопровод с пластиковой садовой лейкой, братан!

Go — это как индустриальный паяльник:
1. Типы — тут тебе не «ой, протекло где-то». Go тебя прибьёт к полу на этапе компиляции, если ты string в int суёшь. Сантехник сказал — «нет», значит нет! В JS? Там переменные как пьяные мужики в бане — сегодня 42, завтра "сорок два", и всё равно протекает.
2. Горутины — это как нанять бригаду сантехников вместо одного. Все лезут в трубы параллельно, не дерутся за ключи. А в JS? Event Loop — это как один мужик, который бегает между 10 кранами и орет: «Подождите, бл*ть, я же один!».
3. Бинарник — собрал раз, и он как сваренная аргоном труба: кидаешь в продакшен — работает. А JS? Это как таскать за собой бензогенератор (Node.js), чтобы включить фонарик.

А ещё Go — это проще, чем инструкция к советскому унитазу:
— Нет классов? Да кому они нужны! У тебя есть struct и интерфейсы — как гаечный ключ и молоток.
— Сборка мусора? Это как автомойка для труб — чистит, пока ты кофе пьёшь.

JS против Go — это как:
— Собрать космическую ракету (Go) vs склеить воздушного змея из скотча (JS). Когда я в Омске чинил котельную — там бы Go пригодился, а не этот ваш npm install, который половину библиотек тебе в трубы засоряет!

Но помни: Go не для мелких поделок. Это как брать отбойный молоток, чтобы гвоздь вбить. Зато если система — как канализация мегаполиса... *oh sh*t yeah*.

Код — как труба: Go — сталь, JS — картон. Выбирай, пока сосед сверху не затопил. *puff* 🚽🔧
25.04.2025, 19:42
t.me/milanrodd/4696
🔴 СТРИМ ОНЛАЙН

golang game engine !gomp - clean up
Software and Game Development

Заходи!
25.04.2025, 14:29
t.me/milanrodd/4695
2
598
25.04.2025, 08:37
t.me/milanrodd/4692
2
604
25.04.2025, 08:37
t.me/milanrodd/4693
26
2
594
Резидент слипер
25.04.2025, 08:37
t.me/milanrodd/4691
2
603
25.04.2025, 08:37
t.me/milanrodd/4694
1
648
Жесть, такое придумал, такое придумал!!
К spatial index помимо полей x, y добавить alignment который будет типизированной битмаской со значениями center, top, left, bottom, right размера uint8.

Alignment будет показывать находишься ли ты посередине клетки грида или пересекаешь какие либо ее границы и частью своего тела выходишь на соседние.

Компрессия данных ✨
25.04.2025, 00:43
t.me/milanrodd/4690
Подкаст о пердящих мотоциклах, тяжелых деревьях и не мощных компах.
24.04.2025, 23:27
t.me/milanrodd/4689
1
652
Вот вам немножко Броуновского движения :)
24.04.2025, 21:57
t.me/milanrodd/4688
3
4
671
Также применили PGO в финальном билде. Это способ билда при котором профилируется продакшн билд и этот файл профиля используется компилятором, чтобы улучшить стратегию принятия решений при повторной компиляции.

Обычно дает от 2 до 14 процентов прироста к производительности. В случае с гейм девом и ECS это всегда будет 14 процентов, потому что игровой цикл всегда повторяется в одном и том же порядке.

M - отключить миникарту
F6 - включить дебаг
F7-F8 - покрутить дебаг слои в дебаг моде (1-5 активные)
24.04.2025, 19:03
t.me/milanrodd/4687
1
642
24.04.2025, 18:58
t.me/milanrodd/4686
7
1
620
Сегодня восстановили коллизионную сетку. Сетка строится для всех объектов в мире полностью многопоточно. Внутри деревья помогающие в быстром поиске столкновений.

Пока сетка и деревья перестраиваются на каждый игровой тик. Такого быть не должно, ведь это холостая работа.

Следующая задача - ввести кэш для компонентов, чтобы не заниматься холостой работой, а запускать перестройку только по необходимости.
24.04.2025, 18:58
t.me/milanrodd/4685
1
656
🔴 СТРИМ ОНЛАЙН

golang game engine !gomp - collision system
Software and Game Development

Заходи!
24.04.2025, 12:01
t.me/milanrodd/4684
12
2
670
Скомич? Фото в чб?
24.04.2025, 11:39
t.me/milanrodd/4683
1
700
Доброго утречка ☀️

Я вчера не выдержал и сел на ночь писать коллизионную сетку.

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

Осталось сделать
- удаление неиспользуемых клеток
- многопоточный кверинг сетки
- кэш клетки в покое чтобы избегать лишних перестроек деревьев

Последнее самое главное не только в гридах, но и во всем движке. Это те самые грязные компоненты, которые при изменении будут каскадом обновлять все зависимые компоненты.
24.04.2025, 09:23
t.me/milanrodd/4682
10
1
708
Нашел еще два аниме, которые отложил для просмотра после SAO.

Что со мной происходит? Я всегда терпеть не мог аниме (сао и миядзаки не в счет)

Ну что ж... Когда на линукс?
23.04.2025, 22:00
t.me/milanrodd/4681
7
733
Пытался себя чем то занять - решил порисовать в aseprite.
Минус 10 морали из 10

Мои внутренние требования к арту не совпали с моими возможностями. Лучше бы в потолок поплевал🙄
23.04.2025, 17:55
t.me/milanrodd/4680
11
1
732
Не, ну я уже извелся весь. Так долго отдыхать ну прям совсем не по мне. Ужас какой то. Хочу за комп решать дальше проблему коллизий.

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

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

Убрался на балконе, пропылесосил всё, что можно, от пыли и пыльцы.

Уже даже на бумажке рисовал какой то бред сумасшедшего типо bvh на кругах, spatial grid на кругах (сетка с круглыми клетками???)

Памахити, как не хотеть работать, а хотеть ничего не делать 🔨
23.04.2025, 14:31
t.me/milanrodd/4679
8
779
Обливион ремастер (хотя это ремейк так то) на топовых компах стримеров работает в 55 фпс на сцене создания персонажа.

Пора заканчивать с коллизиями и идти дальше. Хочу увидеть на реальном примере буст перфа от ecs.

Для сравнения нужно сделать одну и ту же сцену в юнити, анриале и гомпе. Но для этого нужно реализовать 3д часть гомпа, а до этого как будто далеко.
23.04.2025, 09:30
t.me/milanrodd/4678
8
1
778
Я эту липу в хип имел и на стеке вертел.

Аллергия началась какая то. Никогда не было, а щас чихаю как тварь, слезится все, горло чешет. Ужс(
22.04.2025, 14:34
t.me/milanrodd/4677
4
771
Наконец придумал как решить систему коллизий для многопотока.

И так вот всегда после бани. Интересно если чаще ходить, все задачи будут легче решаться? 😁
22.04.2025, 14:00
t.me/milanrodd/4676
4
767
У меня выходной.
Айда димбыча смотреть
https://www.twitch.tv/rudimbo
22.04.2025, 10:57
t.me/milanrodd/4675
11
641
DATA-ORIENTED ВРЫВАЕТСЯ В ЧАТ! 🧠💥 ТВОЙ CPU: «СПАСИБО, ЧТО Я НЕ ПЫЛЕСОС!» 🌀 ARRAYS > CLASSES 😎 УЛЕТАЙ В КЭШ-ЛИНИЯХ, КАК ФОРМУЛА-1! 🏎💨 ECS: КОГДА ТВОИ ЭНТИТИ — ЭТО ЛЕГО! 🧩 «COMPONENTЫ? ЗАСУНУЛ В CONTIGUOUS MEMORY!» 🗄 СИСТЕМЫ: «Я ОБРАБАТЫВАЮ ТЕБЯ, КАК КОНВЕЙЕР!» 🔄 «WHY OOP?» — СПРОСИЛ ТЫ, И ЧАТИК ВЗОРВАЛСЯ POGGERS 🤯 ТЫ ЖЕ НЕ ХОЧЕШЬ, ЧТОБЫ ТВОЙ КОД: «бро, я как улитка в сиропе…» 🐌🍯 SO… DROP ПОЛИМОРФИЗМ, HIT THE DATA PIPELINE! 🔧 FPS: ВЗЛЕТЕЛИ 🚀
21.04.2025, 14:04
t.me/milanrodd/4674
🔴 СТРИМ ОНЛАЙН

golang game engine !gomp - collision system
Software and Game Development

Заходи!
21.04.2025, 10:11
t.me/milanrodd/4673
4
628
Стрим 21.04 в 10:00 МСК

Я тут узнал, что Маша завтра снова уезжает на пол дня. Одному дому делать нечего, так что буду работать.

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

Доброй ночи ✨
20.04.2025, 23:38
t.me/milanrodd/4672
6
3
631
Сегодня на стриме была косметическая уборка в движке.

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

Хотя возможно это очень даже и значительно)))
20.04.2025, 20:29
t.me/milanrodd/4671
🔴 СТРИМ ОНЛАЙН

о5 breaking changes !gomp - схемотехника
Software and Game Development

Заходи!
20.04.2025, 12:39
t.me/milanrodd/4670
10
2
653
КОГДА ТВОЙ РЕНДЕР ГЛЮЧИТ НА 3 FPS… OH SHI~ 🎵 BVH ВОРВЁТСЯ В ЧАТ! 💥 SLAM AABB + OBB КОД: "HARDER, DADDY! MY TRIANGLES CAN TAKE IT!" 🍑🚀 SPLIT AXIS? НЕТ, SPEED AXIS! ⚡️ 10⁶ OBJECTS? EZ CLAP 👏 ТВОЙ CPU: "Я УМЕЮ В BVH?!" 😱 RAY TRACE ME И СМОТРИ, КАК FPS ЛЕЗЕТ В МООН 🌕📈 DEADLINE: GONE 🚫 КОД: UNION BOUNDING BOXES 💣 CRASH? 😭 НЕТ, ЭТО ФИЧА! JUGGLE KD-TREE LIKE A PRO 🌳🤹 BVH — ЭТО КОГДА ТЫ ХИТБОКСИШЬ ВСЕЛЕННУЮ 🌌🥊 ПОТРАЧЕНО… НА ТО, ЧТОБЫ СТАТЬ SPATIAL GOD! 🙏🔥
20.04.2025, 12:22
t.me/milanrodd/4669
16
698
🥚🥚
20.04.2025, 09:47
t.me/milanrodd/4668
1
675
Не то чтобы здесь что-то сильно поменялось, но некоторые фиксы и апдейты многопотока тут есть. Оставлю на память.
19.04.2025, 20:46
t.me/milanrodd/4667
31
1
680
rudimbo запустил стрим с разработкой своего движка и забыл включить фильтры на вебке
19.04.2025, 20:12
t.me/milanrodd/4666
28
1
662
Вот что будет, если активно скипать сон. Высыпайтесь, друзья.
19.04.2025, 14:29
t.me/milanrodd/4665
8
2
661
GO-СЭНСЭЙ ГΛВΛРИТ: НЕ DEFER ДΛ GARBAGE COLLECTOR! 🗑🙅♂️ ХВΛТИТ ALLOC В ЦИКЛЕ — POOL ИСПОЛЬЗУЙ, ИЛИ SYSTEM ТЕБЯ PANICНЕТ КΛК UNHANDLED ERROR! 😱💥
19.04.2025, 13:35
t.me/milanrodd/4664
🔴 СТРИМ ОНЛАЙН

golang ecs game engine !gomp - схемотехника
Software and Game Development

Заходи!
19.04.2025, 10:05
t.me/milanrodd/4663
3
1
648
Доброе утро!
Проснулся, прочитал документацию Odin lang.

По началу кажется, что это один в один go. Но чем ниже спускаешься тем больше понимаешь, что нет.
Тем не менее я считаю именно так должен выглядеть c++ здорового человека в 2025 году.

Go - C нашего времени
Odin - C++ нашего времени (по крайней мере хочет им быть)

Для меня он немного перегружен синтаксическими возможностями, но зато предоставляет сахар для быстрого достижения цели (также как и плюсы). Когда нибудь мы ОБЯЗАТЕЛЬНО потрогаем его на стриме. А пока могу только пожелать Odin lang удачи.
19.04.2025, 09:03
t.me/milanrodd/4662
6
593
Стрим 19.04 10:00 МСК

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

Доброй ночи
18.04.2025, 21:11
t.me/milanrodd/4661
Подкаст о выводах со стрима, на котором мы 7 часов рисовали диаграммы.
18.04.2025, 20:28
t.me/milanrodd/4660
3
542
🔴 СТРИМ ОНЛАЙН

golang ecs game engine !gomp - worker pool
Software and Game Development

Заходи!
18.04.2025, 09:36
t.me/milanrodd/4659
Подкаст о текущем прогрессе и следующих делах.
18.04.2025, 00:11
t.me/milanrodd/4658
1
616
Промежуточный прогресс на воркерах. Коллизии пока считаются не в фулл многопотоке.
17.04.2025, 23:14
t.me/milanrodd/4657
12
1
626
Воркеры готовы!

Равномерная нагрузка на все ядра. Избавился от бешеного кол-ва аллокаций.

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

Далее грязные компоненты. Это позволит снять нагрузку с оперативки, потому что сейчас архитектура уперлась в пропускную способность ram из-за бессмысленных write операций.

Следом на очереди рефактор системы коллизий, чтобы их просчет также был в многопотоке и только для объектов изменивших свое состояние.
17.04.2025, 17:09
t.me/milanrodd/4656
🔴 СТРИМ ОНЛАЙН

golang game engine !gomp - worker pool
Software and Game Development

Заходи!
17.04.2025, 09:59
t.me/milanrodd/4655
5
3
678
Не поверите, очистил корзину и перестало вылезать 🤨
17.04.2025, 09:08
t.me/milanrodd/4654
7
672
Стрим 17.04 в 10.00 МСК
Добиваем воркер пул для многопотока.

Это должна быть последняя "борьба" именно с самим языком. Дальше только фичи и их архитектурные решения.

Доброй ночи 🌙
16.04.2025, 23:33
t.me/milanrodd/4653
2
723
как избавиться от этого надоедливого уведомления? ни одно действие не помогает.
Это то самое что заставит меня избавиться от мака и перейти на ноут с линухом?
16.04.2025, 18:17
t.me/milanrodd/4652
9
1
717
Последнюю неделю смотрю на фоне повторно Sword Art Online.

Знаете ли неплохо так подбадривает дальше делать движок нацеленный на ммо. Кстати, рендер либа, которая сейчас используется в движке, поддерживает работу с vr. Но не все сразу, сначала полная реализация 2d.

Мне тут вчера претензию кинули на стриме, что у нас движок способен только на создание ретро игр 80х, а у рудимбо уже "трипл А", норм графика и все дела.

Степень оценки по одежке у некоторых иногда просто поражает 🔨

Доделать Worker pool и заняться интеграцией aseprite? Тогда можно будет делать всякие fx и прочие крутые штуки с анимациями☕️ Или не вестись на поводу и закончить базу в виде мультиплеера? 🚬
16.04.2025, 17:12
t.me/milanrodd/4651
1
704
Я щас понимаю, что в движке от го и его синтаксического сахара ничего кроме тулинга, зависимостей и билд системы не осталось.

С памятью я уже давно работаю вручную.

А теперь и волшебный запуск конкурентных задач с помощью префикса go doSmth() сейчас вырезается 😂

И в итоге мы получаем все тоже самое, что мне пришлось бы делать в C/C++ с рядом исключений:
- пакетные зависимости
- билд система
- профилирование
- удобный кросс-компайл
- синтаксические конструкции просты как в си, но мощны как в плюсах

Чтобы стать убийцей плюсов го не хватает только мемори арен. Предложение давно существует и не раз переосмысливалось. Поговаривают, что в 1.25 хотят ввести. Но неофициальные пакеты уже давно есть.
16.04.2025, 11:23
t.me/milanrodd/4650
1
724
Фан факт. Этих аллокаций на Unix системах нет, только на Винде)))))

Ну и ладно. Инициализировал пакет с workerPool для ecs. Пару дней и мне будет все равно как там винда поступает 🗒
16.04.2025, 03:09
t.me/milanrodd/4649
1
700
🔴 СТРИМ ОНЛАЙН

golang game engine !gomp
Software and Game Development

Заходи!
15.04.2025, 19:51
t.me/milanrodd/4648
7
700
В 19:45 запущу стрим.

Буду исследовать причину аллокации горутины. Либо найду решение избежать аллокаций, либо придется делать worker pool.

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

Хотя на крайний случай есть odin. Он очень похож на го, но с ручным управлением памятью и крутой матричной/векторной арифметикой.
15.04.2025, 17:09
t.me/milanrodd/4647
14
2
653
Мультипоточка вышла сочной.

Проблема только теперь в том, что на каждый многопоточный итератор появляется по 14 (на моём пк) горутин. Ну, а так как тикрейт мира 50 герц, то на один итератор выходит 700 горутин в секунду. Таких итератов штук 10. Часть из них в рендер цикле, а значит отрабатывает каждый кадр (чаще).

Выходит минимум 10к+ горутин, которые каждую секунду появляются и исчезают. Каждое появление делает аллокацию в кучу. Каждая аллокация ведёт к работе сборщика мусора GC.

Есть ли решение?
Да, WorkerPool который на этапе инициализации создаёт 14 горутин на весь движок и использует их для выполнения конкурентных задач.

Насколько тяжело его внедрить в движок? Сейчас кажется что очень. Но на все сложное нужно просто больше времени 💪

Считаю это очень важной задачей - базой 👜
15.04.2025, 09:20
t.me/milanrodd/4646
3
695
вот вам билд, присылайте скрины с фэпасами
14.04.2025, 22:31
t.me/milanrodd/4645
10
694
Результат дня: 330fps -> 560fps.

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

Ползем потихоньку (мчим) 😡
14.04.2025, 22:27
t.me/milanrodd/4644
2
656
Вот лучший пример для параллельного итератора с аккумулятором.

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

Clean MutexLock Free solution
14.04.2025, 19:38
t.me/milanrodd/4643
14
5
718
Язык С - это британский английский.
Язык Go - это американский английский.
Язык C++ - это китайский.
14.04.2025, 13:43
t.me/milanrodd/4642
1
729
🔴 СТРИМ ОНЛАЙН

golang game engine !gomp
Software and Game Development

Заходи!
14.04.2025, 10:02
t.me/milanrodd/4641
17
5
730
За звёздочку обидно конечно. Но нам то что, мы в топе 😆
14.04.2025, 08:31
t.me/milanrodd/4640
5
687
Стрим завтра в 9-10 утра.

По плану рефактор компонент менеджера для safe/unsafe поведения и добавление грязного состояния для оптимизаций запросов и работы систем.
13.04.2025, 21:36
t.me/milanrodd/4639
9
8
707
Вчера попробовал инициализировать проекты с Raylib и с SDL3 на C/C++

Писать на чистом Си продуктовую логику - убийство. Как минимум необходимо апргейднуть файл .c -> .cpp и писать в си стиле, но с удобными хелперами для строк и прочих стандартных функций. Сделал, стало легче.

Но как только речь зашла о том, чтобы реализовывать хоть одну фичу, например обычный счётчик fps в SDL тесте, то работа с плюсами стала невыносимой.

Я напомню: у меня были плюсы в универе - два курса и курсовая, я поверхностно помню некоторые моменты, я пишу продуктовый коммерческий код уже 13 лет на разных языках, включая смарт контракты. И 17 лет если включать детские поигрушки с си и ардуино и игровыми скриптами.

Документация у плюсов - отвратительная. Брутфорс методов в ide чтобы хоть каким-то образом заполучить время или создать таймер не дал никаких результатов. Chrono решает проблему, но только если доку прочел. Набрутфорсить нельзя.

Работа с пакетами, зависимостями и билд процессами - ну просто смех. Developer experience - вышел из чата.

Мой приговор

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

Единственная причина идти в чистый си - если вы намерены работать с микроконтроллерами.

Единственная причина идти в плюсы - если вы полностью оптимизировали свой код на го, уперлись в скорость исполнения команд, написали часть функционала на си и goasm и все равно не хватает.
Тогда вы пишите плюсовый микросервис только на ту фичу, которая имеет невероятно высокую нагрузку и получаете в максимуме х1.5 перфа от го.

Всем кто уже сидит на плюсах - мое соболезнование, что вам пришлось это пройти.
13.04.2025, 14:57
t.me/milanrodd/4638
5
652
Вчера после прогулки принял pr и сразу накинул на него оптимизаций. Кажется, мой навык работы с pprof неплохо так вкачался за эти 8 месяцев, мгновенно вижу точки роста.

А со сном все еще беда. Сплю - наимерзейше. Рвано, мало, беспокойно. От этого настроение скачет примерно как график биткоина. Чет с этим надо делать, нездоровая хрень это.

Впереди много работы по шлифовке поступившего pr и реализации важных фич связанных с грязными компонентами и коллизиями.

Будет здорово завершить эти задачи за апрель, чтоб в мае прикручивать нетворкинг.
13.04.2025, 07:39
t.me/milanrodd/4637
Движок, который мы делаем - это не продукт. Это предмет искусства. Шедевр - if you will 🧐

Именно такое позиционирование влияет на сроки и предвзятость к каждой детали в реализации.
12.04.2025, 22:16
t.me/milanrodd/4636
6
618
Ну что могу сказать...

Работу lNelo провел - космическую. Несмотря на то, что местами были замечания, все грамотно 👌

Завтра приму пул реквест, когда lNelo дошлифует пару моментов.

Теперь в движке стандартизированы камеры и кулинг. Последнее - очень важно. Это дикий +перф для бесконечных миров.

Остается теперь мне дожать коллизии и можно будет запускать мир на несколько миллионов объектов.
12.04.2025, 21:15
t.me/milanrodd/4635
🔴 СТРИМ ОНЛАЙН




Заходи!
12.04.2025, 16:18
t.me/milanrodd/4634
3
670
Начинаем публичную порку! 😈
12.04.2025, 13:05
t.me/milanrodd/4633
🔴 СТРИМ ОНЛАЙН

код ревью lNelo !gomp
Software and Game Development

Заходи!
12.04.2025, 10:11
t.me/milanrodd/4632
2
661
Через пол часика запуск
12.04.2025, 09:28
t.me/milanrodd/4631
3
640
Завтра код ревью в 13 МСК
Стрим вероятно запущу раньше
11.04.2025, 21:00
t.me/milanrodd/4630
🔴 СТРИМ ОНЛАЙН

разработчик твоих мыслей !gomp
Software and Game Development

Заходи!
11.04.2025, 13:51
t.me/milanrodd/4629
9
635
Утро вечера мудренее, особенно если всю ночь думать во сне как лучше поступить 😏

Список изменённых компонентов нужен на 200%. Это огромная оптимизация работы целой цепочки систем. И несмотря на то, что setter дороже прямой модификации ячейки памяти, в совокупности работы систем его использование даст огромный +перф.

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

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

Ну, а что касается сеттера и прямого доступа. Set и Get сделаем стандартом, текущий Get переименуем в GetPtr или GetUnsafe, а в комментах укажем, что если значение по указателю меняется, то нужно вызывать метод MarkDirty/SetIsChanged/Invalidate (название пока не придумал)

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

Как будто оно.
11.04.2025, 11:25
t.me/milanrodd/4628
6
611
Доброй ночи неспящим 👀

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

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

Вводить компонент тэг - грустно, потому что это не решит проблему системно на уровне движка.

Была мысль внедрить флаг прямо в компонент менеджер, но тогда любое изменение в компоненте должно было бы делаться с помощью специального метода Set() который бы также отмечал, что компонент был изменен. Вроде решение, но проблема в том, что текущее апи позволяет обратиться к ячейке с данными по указателю, а значит и менять напрямую. И как бы я не старался, я не могу придумать элегантное и перформантное решение, которое бы следило за изменениями в памяти каждого компонента, каждого элемента.

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

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

Кажется, эту ночь я проведу в мучительных снах о выборе между алгоритмами spatial hash + bvh и spatial hash + sweep and prune.
11.04.2025, 00:43
t.me/milanrodd/4627
8
631
В эту субботу будем на стриме смотреть пул реквест от lNelo на фулл рефактор рендер системы.

Уверяет, что мне не понравится, но он сможет меня убедить, что так и надо.

Время сообщу завтра.
10.04.2025, 20:13
t.me/milanrodd/4626
3
664
Вот бы устроть брейншторм на тему оптимизации системы коллизий с помощью кеширования данных и состояний объектов. Нужен достойный компаньон. Кого позовем?
10.04.2025, 15:04
t.me/milanrodd/4625
3
673
🔴 СТРИМ ОНЛАЙН

Мобиус - ищем баги в мобильных приложениях вместе с Яндексом 🚀

Заходи на VK или YouTube
10.04.2025, 13:02
t.me/milanrodd/4623
8
1
675
10.04.2025, 12:42
t.me/milanrodd/4622
1
345
На стриме у рудимбо
Играем в Apex

https://www.twitch.tv/rudimbo
https://www.twitch.tv/rudimbo
https://www.twitch.tv/rudimbo

Заходи!
9.04.2025, 19:03
t.me/milanrodd/4621
1
670
🔴 СТРИМ ОНЛАЙН

Мобиус - Решаем задачки по мобильной верстке вместе с Яндексом 🚀

Заходи на VK или YouTube
9.04.2025, 15:45
t.me/milanrodd/4619
14
1
679
Вот это я попал на топ лекцию по теме
9.04.2025, 14:56
t.me/milanrodd/4618
1
652
9.04.2025, 14:27
t.me/milanrodd/4616
22
1
657
Feel that
9.04.2025, 14:27
t.me/milanrodd/4615
1
648
9.04.2025, 14:27
t.me/milanrodd/4617
8
2
679
Я на Mobius вместе с Яндексом 🚀

Mobius - конференция по мобильной разработке. В этом году Яндекс стал их партнером и организовал на своём стенде настоящую стримерскую.

Мобильные разработчики будут стримить прямо со стенда. Сотрудники Яндекса вместе с гостями обсудят разработку SDK, прожарят реальные проекты на код-ревью и устроят паузу на Bad Jokes.

Стать стримерами смогут и офлайн-участники: в лайве 9 апреля будем верстать простые задачки, а 10-го — искать ошибки в коде. Именно в этой активности я принимаю участие в качестве модератора и ведущего.

Подробное расписание можно посмотреть на сайте.

Моё время:
- 09.04 - 15:45-16:45
- 10.04 - 13:00-14:00

Заходите на трансляцию VK или YouTube в это время - комментируйте, подсказывайте, критикуйте 👜

Пост с напоминанием в моменте будет!
8.04.2025, 20:16
t.me/milanrodd/4614
Вчера уперся в предалокацию

Для 10 объектов аллоцирую место под 8к, в итоге краш из-за нехватки оперативы при попытке создать большое игровое поле 200к на 200к.

Сегодня займусь созданием другой структуры данных для потенциально маленьких значений. Думаю, просто подогнать гошный слайс под те методы которые есть у PagedArray.

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

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

Пример (хоть логически бессмысленный) в прикрепленной картинке.
8.04.2025, 11:00
t.me/milanrodd/4613
10
682
Сегодня сделал чанки для системы коллизий.

Есть специальная дебаг визуализация. В чанках бинарные деревья. Объекты сразу прописываются в этих деревьях. Деревья перестраиваются, объекты могут мигрировать из чанка в чанк.

Завтра займусь поиском коллизий внутри чанков. Это пока не перенес.
7.04.2025, 20:58
t.me/milanrodd/4612
🔴 СТРИМ ОНЛАЙН

!фокус golang игровой движок !gomp
Software and Game Development

Заходи!
7.04.2025, 10:51
t.me/milanrodd/4611
4
767
гг?
6.04.2025, 16:14
t.me/milanrodd/4610
🔴 СТРИМ ОНЛАЙН

!фокус игровой движок !gomp
Software and Game Development

Заходи!
5.04.2025, 14:13
t.me/milanrodd/4609
1
574
Подкаст о причине возникновения бага и его решении
4.04.2025, 22:04
t.me/milanrodd/4608
3
607
Такими алгоритмами, сервера для батлфилда делать с их огромной картой, крупным онлайном, большим тикрейтом и разрушениями по всей карте.

Миллион объектов 🤯

хочу 😏
4.04.2025, 21:26
t.me/milanrodd/4607
4
599
Расчет сложностей поиска коллизий n объектов между собой, с плотностью присутствия на коллизионных слоях d, на m клетках, с k пересечением сущностей, при условии равного распределения сущностей среди клеток.

Ось X - кол-во сущностей
Ось Y - кол-во иттераций

O1 (красное) - n to n
O2 (оранжевое) - spatial grid
O3 (фиолетовое) - bvh tree
O4 (синее) - chunks with bvh tree

https://www.desmos.com/Calculator/yebeha0dup
4.04.2025, 21:09
t.me/milanrodd/4606
27
661
4.04.2025, 15:45
t.me/milanrodd/4605
14
666
Ребята, кажется мы локализовали проблему. Она настолько неочевидна, что просто жесть.

Чуть позже опишу что было. Спасибо всем за помощь!
Вы лучшие ❤️
4.04.2025, 14:03
t.me/milanrodd/4604
1
685
🔴 СТРИМ ОНЛАЙН

нашел !баг в GO рантайме
Software and Game Development

Заходи!
4.04.2025, 12:48
t.me/milanrodd/4603
Вот и у меня нет, а должны быть! 😐
4.04.2025, 10:09
t.me/milanrodd/4601
Скажите плз, в этом билде у кого то есть коллизии между игроком и маленькими камешками вокруг?
4.04.2025, 09:42
t.me/milanrodd/4600
1
758
Ребят, нужна ваша помощь.

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

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

ПРОБЛЕМА:
Если в bullet.go поставить у CircleColliders AllowSleep: false - коллизии перестают работать.
ОЖИДАНИЕ:
Коллизии между игроком и пулями работают при AllowSleep: false и AllowSleep: true.

Подробнее о баге в видосе.

Ветка
https://github.com/rodd-oss/gomp/tree/sleep-flag-bug

Запуск приложения
go run ./examples/new-api/game.go
4.04.2025, 09:09
t.me/milanrodd/4599
1
677
Подкаст о преодолении квантового барьера 🚀 моей жопой
3.04.2025, 22:24
t.me/milanrodd/4598
Мы нашли баг рантайма го. Ну либо реально изобрели квантовый движок.

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

Эффект наблюдателя во всей красе.

Gomp -> Quantum Engine?
3.04.2025, 22:07
t.me/milanrodd/4596
4
1
677
Мы нашли баг рантайма го. Ну либо реально изобрели квантовый движок.

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

Эффект наблюдателя во всей красе.

Gomp -> Quantum Engine?
3.04.2025, 22:07
t.me/milanrodd/4597
Os resultados da pesquisa são limitados a 100 mensagens.
Esses recursos estão disponíveis apenas para usuários premium.
Você precisa recarregar o saldo da sua conta para usá-los.
Filtro
Tipo de mensagem
Cronologia de mensagens semelhante:
Data, mais novo primeiro
Mensagens semelhantes não encontradas
Mensagens
Encontre avatares semelhantes
Canais 0
Alta
Título
Assinantes
Nenhum resultado corresponde aos seus critérios de pesquisa