ch
Feedback
Лаборатория • сборки

Лаборатория • сборки

前往频道在 Telegram

Лютая технота из недр Точки сборки

显示更多
878
订阅者
无数据24 小时
-27 天
+2230 天
吸引订阅者
六月 '25
六月 '25
+8
在0个频道中
五月 '25
+63
在2个频道中
Get PRO
四月 '25
+24
在1个频道中
Get PRO
三月 '25
+93
在1个频道中
Get PRO
二月 '25
+7
在0个频道中
Get PRO
一月 '25
+14
在0个频道中
Get PRO
十二月 '24
+11
在0个频道中
Get PRO
十一月 '24
+12
在0个频道中
Get PRO
十月 '24
+31
在2个频道中
Get PRO
九月 '24
+4
在0个频道中
Get PRO
八月 '24
+13
在0个频道中
Get PRO
七月 '24
+10
在0个频道中
Get PRO
六月 '24
+7
在0个频道中
Get PRO
五月 '24
+13
在0个频道中
Get PRO
四月 '24
+7
在0个频道中
Get PRO
三月 '24
+7
在0个频道中
Get PRO
二月 '24
+8
在0个频道中
Get PRO
一月 '24
+20
在0个频道中
Get PRO
十二月 '23
+32
在1个频道中
Get PRO
十一月 '23
+27
在0个频道中
Get PRO
十月 '23
+17
在0个频道中
Get PRO
九月 '23
+26
在0个频道中
Get PRO
八月 '23
+28
在0个频道中
Get PRO
七月 '23
+24
在0个频道中
Get PRO
六月 '23
+14
在0个频道中
Get PRO
五月 '23
+15
在0个频道中
Get PRO
四月 '23
+26
在0个频道中
Get PRO
三月 '23
+130
在0个频道中
Get PRO
二月 '23
+206
在0个频道中
Get PRO
一月 '23
+25
在0个频道中
Get PRO
十二月 '22
+33
在0个频道中
Get PRO
十一月 '22
+481
在0个频道中
日期
订阅者增长
提及
频道
23 六月0
22 六月0
21 六月0
20 六月0
19 六月0
18 六月0
17 六月0
16 六月+1
15 六月+2
14 六月0
13 六月0
12 六月0
11 六月0
10 六月0
09 六月0
08 六月+1
07 六月+1
06 六月0
05 六月0
04 六月+2
03 六月0
02 六月+1
01 六月0
频道帖子
Всем привет! Я продолжаю копаться в Android и его клавиатуре. Сейчас я переделал алгоритм работы с ней. Ранее я уже рассказывал про это тут. Сейчас я устанавливаю состояние однократно в начале из нашего Rust кода в нативный слой на Java и C++. И дальше получаю изменения от обоих сторон и меняю текст и в нашем коде и в нативном слое. Теперь алгоритм доработан и можно обкатать его вместе с сетевой синхронизацией. Об этом и поговорим в видео.

2
Проверяю на прочность новую ресурсную систему 🔨 Справа внизу в консоли ожесточённо генерятся случайные png. Всё ради того, ч
Проверяю на прочность новую ресурсную систему 🔨 Справа внизу в консоли ожесточённо генерятся случайные png. Всё ради того, чтобы поймать (и починить) даже самые немыслимые обстоятельства.
741
3
Хочу поделиться своими впечатлениями от квада, который долго простоял в гараже. Я его замоделил еще год назад и вот наконец-т
Хочу поделиться своими впечатлениями от квада, который долго простоял в гараже. Я его замоделил еще год назад и вот наконец-то он ожил! И это очень странное и приятное чувство, видеть как уже давно привычный, статичный образ, вдруг начинает жить своей жизнью)
891
4
Всем привет! Ранее я уже рассказывал с чем столкнулся при сетевой синхронизации текста и как удалось решить. Но это решение н
Всем привет! Ранее я уже рассказывал с чем столкнулся при сетевой синхронизации текста и как удалось решить. Но это решение нас не устроило и выглядело как полу-мера. К тому же у нас есть доступ к Java и промежуточному С++ слою - так как мы форкнули к себе android-activity. Раньше мы устанавливали состояние в начале и дальше получали полный результат от клавиатуры. Если же нажимались DELETE / ENTER то эти события обрабатывались нами в Rust и переустанавливался целиком состояние в клавиатуру. Но это все было последовательно и асинхронность не мешала. То есть состояния пересылались целиком туда-сюда. Сейчас же я устанавливаю состояние однократно в начале. И дальше получаю изменения от обоих сторон и меняю стейт текста там и там. Но пришлось попотеть, пробрасывая ивенты туда-сюда. Об этом подробнее в видео.
801
5
Экспериментирую с физикой нового колесного танчика на испытательном полигоне. Мы хотим видеть у себя не только классические г
Экспериментирую с физикой нового колесного танчика на испытательном полигоне. Мы хотим видеть у себя не только классические гусеницы, но что-то интересное и необычное :)
646
6
Наконец настало время всерьёз взяться за ассеты ⌨️ Вкомпиливать всё в .exe - вариант нормальный, только если игра небольшая и
Наконец настало время всерьёз взяться за ассеты ⌨️ Вкомпиливать всё в .exe - вариант нормальный, только если игра небольшая и имеет ограниченное количество контента. Но это не случай танков. Здесь нам понадобится система, которая позволит тонко управлять состоянием бинарных ассетов (это которые лежат рядом с программой). И тут важный момент: если читать файл за один вызов, то он максимально быстро окажется в памяти, но ценой неприятного затыка (особенно если этот файл жирный). Для того, чтобы дать максимально кайфовый ux, лучше грузить файлы постепенно. Так можно ограничить влияние на производительность и хорошо распределить загрузку во времени. На видео наглядная разница между этими подходами 📝
779
7
Танки на Steam Deck ;) SteamOS - это Linux, а значит мы можем сделать с ним много интересного
Танки на Steam Deck ;) SteamOS - это Linux, а значит мы можем сделать с ним много интересного
858
8
Всем привет! В предыдущем видео я показывал синхронизацию ввода текста с двух клиентов на компьютере. Затем занялся андроидом
Всем привет! В предыдущем видео я показывал синхронизацию ввода текста с двух клиентов на компьютере. Затем занялся андроидом и начал тестить одновременный ввод. С компа и с телефона. Если медленно делать ввод с обоих девайсов, то все прекрасно. А если быстро вводить, то тут по какой то причине курсор компа стал прыгать в сторону курсора андроида. Начал дебажить, выяснил, что проблема где то в вводе из экранной клавиатуры. Стал более детально смотреть...  Тут надо небольшое отступление, о том как работает экранная клавиатура. Предполагается если вы хотите сделать свой кастомный контрол текста, то есть некий интерфейс к экранной клавиатуре. Ime State по сути это сам текст, а так же начало и конец выделения. Собственно есть запись этих свойств и получение событий при изменении. Если мы нажали на наш текстовый блок, то мы передаем туда эти свойства. Потом пользователь вводит текст любым удобным ему способом, который есть в его клавиатуре. И далее у нас есть возможность прочитать эти свойства. В случае когда у нас нет синхронизации, мы однократно устанавливаем текст когда нажали на наш текстовый блок. И дальше мы только читаем результат. В случае же синхронизации нам необходимо периодически устанавливать измененный другими пользователями текст. Получается такая последовательность: - читаем текст с клавиатуры - вычисляем изменения - вносим эти изменения на таймлайн - так же вносим новые изменения на таймлайн других игроков - пересчитываем результирующий текст - утанавливаем новый текст в клавиатуру И так по кругу, каждый кадр, если есть активность пользователей. Так вот проблема в том, что установка и чтение асинхронны. Клавиатура очевидно работает не в нашем потоке, она как отдельная программа. При установке мы шлем ей наше состояние. Она его применяет у себя, потом обрабатывает ввод пользователя и отправляет нам результат. А мы его получаем по событию. То есть асинхронно. Еще проблема в том, что клавиатура присылает изменения и на нашу установку текста. И получается мы отправляем периодически текст, а нам спустя кадр-два прилетает старое обновление. Невозможно узнать это пользователь ввел или это мы установили? Вот к чему приводит асинхронность и плохой дизайн интерфейса. В итоге проблему решил комбинировано.  - Во первых добавил историю установки значения. Она убирает ивенты от наших изменений и старые значения не всплывают. - Во вторых сузил контекст. Я передаю в Ime State все, что попало в текущее выделение в том числе текущее слово. Более подробно показываю в видео.
816
9
Наблюдая за квадом в дикой природе, можно отметить его забавный способ передвижения. Видимо он еще слишком юн)
Наблюдая за квадом в дикой природе, можно отметить его забавный способ передвижения. Видимо он еще слишком юн)
855
10
Готовим новый танчик! Лекарь-вампир на колесах. Может оказаться самой проходимой единицей, от такого нигде не скроешься. Дого
Готовим новый танчик! Лекарь-вампир на колесах. Может оказаться самой проходимой единицей, от такого нигде не скроешься. Догонит и залечит до смерти!)
768
11
Всем привет! Продолжаю делать синхронизацию на базе детерминизма. Про это я подробно рассказывал здесь. В данном видео я пока
Всем привет! Продолжаю делать синхронизацию на базе детерминизма. Про это я подробно рассказывал здесь. В данном видео я показываю синхронизацию более сложной стркутуры данных. Она описывает два экрана, между которыми можно переключаться. На первом экране у нас небольшая физическая симуляция и обработка столкновений. На втором экране можно редактировать текст одновременно. Данный подход синхронизации организует строго последовательный поток событий или как я называю изменений от пользователей. Этот поток синхронизируется между всеми узлами, тем самым позволяя нам расчитать точную сцену в любой момент. Кроме того в данном подходе свои изменения применяются сразу, тем самым пользователь никогда не увидит лага от своих действий. Синхронизацию текста я сделал на базе строки и позиций курсоров, которые взял из уже готового нашего контрола. Я вычисляю дифф текста и преобразую его в одну из операций - удаление или вставка. Так же есть операция перемещения курсора. Эти операции применяются последовательно на каждом клиенте. И дают идентичный результат. Более подробно в видео.
705
12
Продолжаю рассказывать про свой физический движок в танках. Мы используем принцип мягких коллайдеров, такие коллайдеры опреде
Продолжаю рассказывать про свой физический движок в танках. Мы используем принцип мягких коллайдеров, такие коллайдеры определяют точки контактов и распределения сил не на поверхности тел, а всегда немного внутри. Это позволяет решать проблемы совмещения разных физических реальностей при сетевой синхронизации. В дальнейшем нас ждет еще много интересного - танки с инверсной кинематикой на деталях.
672
13
Продолжаем экспериментировать со своим физическим движок в танках. Мы используем принцип мягких коллайдеров, такие коллайдеры
Продолжаем экспериментировать со своим физическим движок в танках. Мы используем принцип мягких коллайдеров, такие коллайдеры определяют точки контактов и распределения сил не на поверхности тел, а всегда немного внутри. Это позволяет решать проблемы совмещения разных физических реальностей при сетевой синхронизации.
5
14
Будни разработки. Рассказываю про настройку физики танка и доработку своего физического движка. Корректная физика не всегда о
Будни разработки. Рассказываю про настройку физики танка и доработку своего физического движка. Корректная физика не всегда означает удачную реализацию. В управлении танка мы хотим видеть предсказуемость и удобство управления.
822
15
Мы с вами так устроены, что погружаясь в любой практический процесс, будь то работа или какой то личный проект, мы начинаем о
Мы с вами так устроены, что погружаясь в любой практический процесс, будь то работа или какой то личный проект, мы начинаем осознавать и понимать более точно и явно теоретические основы этого процесса. Можно прочитать много книг о том как водить автомобиль, но так и не научиться этому. Поэтому практика обычно идет вместе с теорией. Я считаю, что практика первична и имеет более важное значение чем теория, потому что теория рождается из практики. На практике мы можем реально почувствовать на уровне ощущений какие либо закономерности или попробовать несколько вариантов. По другому мы загружаем контекст в голову. Много контекста. И спустя какое то время приходит полное понимание теории. Мозг как будто упорядочивает эту информацию. И тут нужно сделать шаг назад и переосмыслить то, что ты делаешь. Всегда есть места где можно что то поменять и рабочий процесс или ваше дело улучшится. Собственно со мной это происходит регулярно и произошло и в этот раз. Попробовав много подходов в синхронизации данных мне пришло понимание теории. И в этом видео я рассказываю подробно про виды синхронизации и как они переплетаются между собой. В предыдущем видео я показывал демо синхронизации ВК
707
16
Терра. 12 апреля 4025 года. Неожиданно на одной из локаций открылся Варп-разлом. Мы быстро собрали штурмовой исследовательски
Терра. 12 апреля 4025 года. Неожиданно на одной из локаций открылся Варп-разлом. Мы быстро собрали штурмовой исследовательский отряд. В него вошли лучшие умы и самые отважные воители. По ту сторону нас встретил жестокий глюковый шторм. Часть десантников перестала выходить на связь. Но оставшиеся продолжили храбро исполнять миссию. В ходе исследования мы обнаружили загадочный монумент, посвящённый гуманоидному существу. Кажется, его оставили здесь не просто так... С Днём космонавтики 🚀
703
17
Если кому то показалось, что я пропал 😜 это не так. Я вошел в поток и всю неделю переделывал несколько раз алгоритм синхрони
Если кому то показалось, что я пропал 😜 это не так. Я вошел в поток и всю неделю переделывал несколько раз алгоритм синхронизации. Сделал наверно десяток итераций. Пришло осознание как решать проблемы о которых я говорил в предыдущем видео. В данном видео я показываю синхронизацию одной позиции через ретрансляцию изменений с разных девайсов. Эта позиция - голова червячка 😂, а тело всегда рассчитывается по алгоритму. Так же я показываю как разрешается конфликт - если слать изменения с разных девайсов. В этом случае изменения смешиваются и мы получаем ожидаемый результат. ВК
609
18
Паркур документально подтверждён.
Паркур документально подтверждён.
587
19
В ходе тактической зачистки багов, я решил немного отвлечься и сделать что-нибудь красивое. Под горячую руку подвернулись деб
В ходе тактической зачистки багов, я решил немного отвлечься и сделать что-нибудь красивое. Под горячую руку подвернулись дебажные линии, которые у нас рисовались сквозь всю геометрию. Из-за этого было сложно понять, где они расположены относительно других объектов. Сначала я подумал рисовать скрытые линии просто более прозрачными, но это слишком скучно 😏 В ходе экспериментов у меня получился вот такой стилизованный дизеринг. И выглядит приятно, и задачу решает. А ещё, на моём канале можно посмотреть видос о том, как такое сделать. Заходите, не стесняйтесь 😇
744
20
Пробую использовать запеченное в вершины просвечивание света для растительности на наших локациях. Делюсь первыми результатам
Пробую использовать запеченное в вершины просвечивание света для растительности на наших локациях. Делюсь первыми результатами.
674