UfoStation
رفتن به کانال در Telegram
Авторский канал про разработку, информационные технологии, компании и продукты ☮️ Секретный чат https://t.me/+WJap9ejonMNwKVGj Подкаст: https://ufostation.mave.digital/ Поддержать: https://boosty.to/ufocoder
نمایش بیشتر3 103
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-67 روز
-1530 روز
در حال بارگیری داده...
کانالهای مشابه
ابر برچسبها
اشارات ورودی و خروجی
---
---
---
---
---
---
جذب مشترکین
ژوئن '26
ژوئن '26
+9
در 0 کانالها
مه '26
+24
در 0 کانالها
Get PRO
آوریل '26
+22
در 0 کانالها
Get PRO
مارس '26
+16
در 1 کانالها
Get PRO
فوریه '26
+22
در 0 کانالها
Get PRO
ژانویه '26
+16
در 0 کانالها
Get PRO
دسامبر '25
+36
در 1 کانالها
Get PRO
نوامبر '25
+25
در 0 کانالها
Get PRO
اکتبر '25
+44
در 0 کانالها
Get PRO
سپتامبر '25
+52
در 0 کانالها
Get PRO
اوت '25
+32
در 0 کانالها
Get PRO
ژوئیه '25
+30
در 0 کانالها
Get PRO
ژوئن '25
+34
در 0 کانالها
Get PRO
مه '25
+55
در 1 کانالها
Get PRO
آوریل '25
+45
در 0 کانالها
Get PRO
مارس '25
+49
در 0 کانالها
Get PRO
فوریه '25
+44
در 0 کانالها
Get PRO
ژانویه '25
+60
در 1 کانالها
Get PRO
دسامبر '24
+59
در 1 کانالها
Get PRO
نوامبر '24
+51
در 1 کانالها
Get PRO
اکتبر '24
+74
در 0 کانالها
Get PRO
سپتامبر '24
+49
در 0 کانالها
Get PRO
اوت '24
+97
در 0 کانالها
Get PRO
ژوئیه '24
+73
در 0 کانالها
Get PRO
ژوئن '24
+115
در 0 کانالها
Get PRO
مه '24
+1 558
در 2 کانالها
Get PRO
آوریل '24
+39
در 1 کانالها
Get PRO
مارس '24
+61
در 0 کانالها
Get PRO
فوریه '24
+38
در 0 کانالها
Get PRO
ژانویه '24
+128
در 3 کانالها
Get PRO
دسامبر '23
+95
در 3 کانالها
Get PRO
نوامبر '23
+34
در 0 کانالها
Get PRO
اکتبر '23
+27
در 0 کانالها
Get PRO
سپتامبر '23
+69
در 0 کانالها
Get PRO
اوت '23
+57
در 0 کانالها
Get PRO
ژوئیه '23
+23
در 0 کانالها
Get PRO
ژوئن '23
+71
در 0 کانالها
Get PRO
مه '23
+115
در 0 کانالها
Get PRO
آوریل '23
+47
در 0 کانالها
Get PRO
مارس '23
+54
در 0 کانالها
Get PRO
فوریه '23
+61
در 0 کانالها
Get PRO
ژانویه '23
+82
در 0 کانالها
Get PRO
دسامبر '22
+91
در 0 کانالها
Get PRO
نوامبر '22
+62
در 0 کانالها
Get PRO
اکتبر '22
+43
در 0 کانالها
Get PRO
سپتامبر '22
+123
در 0 کانالها
Get PRO
اوت '22
+168
در 0 کانالها
Get PRO
ژوئیه '22
+73
در 0 کانالها
Get PRO
ژوئن '22
+63
در 0 کانالها
Get PRO
مه '22
+114
در 0 کانالها
Get PRO
آوریل '22
+41
در 0 کانالها
Get PRO
مارس '22
+1
در 0 کانالها
Get PRO
فوریه '22
+34
در 0 کانالها
Get PRO
ژانویه '22
+89
در 0 کانالها
Get PRO
دسامبر '21
+55
در 0 کانالها
Get PRO
نوامبر '21
+76
در 0 کانالها
Get PRO
اکتبر '21
+42
در 0 کانالها
Get PRO
سپتامبر '21
+94
در 0 کانالها
Get PRO
اوت '21
+271
در 0 کانالها
Get PRO
ژوئیه '21
+85
در 0 کانالها
Get PRO
ژوئن '21
+352
در 0 کانالها
Get PRO
مه '21
+11
در 0 کانالها
Get PRO
آوریل '21
+31
در 0 کانالها
Get PRO
مارس '21
+14
در 0 کانالها
Get PRO
فوریه '21
+35
در 0 کانالها
Get PRO
ژانویه '21
+90
در 0 کانالها
Get PRO
دسامبر '20
+479
در 0 کانالها
| تاریخ | رشد مشترکین | اشارات | کانالها | |
| 15 ژوئن | 0 | |||
| 14 ژوئن | +1 | |||
| 13 ژوئن | +2 | |||
| 12 ژوئن | 0 | |||
| 11 ژوئن | 0 | |||
| 10 ژوئن | 0 | |||
| 09 ژوئن | +2 | |||
| 08 ژوئن | 0 | |||
| 07 ژوئن | 0 | |||
| 06 ژوئن | 0 | |||
| 05 ژوئن | +1 | |||
| 04 ژوئن | +1 | |||
| 03 ژوئن | +1 | |||
| 02 ژوئن | 0 | |||
| 01 ژوئن | +1 |
پستهای کانال
В прошлом, во второй половине 2000-х, я, как и многие, для общения с внешним миром использовал ICQ и сидел на форумах. Интернет тогда считали по мегабайтам, а для связи я пользовался старым кнопочным телефоном с поддержкой GPRS. Из интересов — попытки делать небольшие сайты на PHP. Слово Denwer вам о чём-нибудь говорит? О боже, кажется, до сих пор можно найти мой цифровой след, благо я сидел под другим ником.
Когда начинал свой путь, то в окружении все были старше и опытнее, и многим я верил на слово. Что взять с подростка? Интересовавшие меня веб-технологии были не так развиты, и знаний о них тоже было немного. Обмен знаниями происходил через общение — это было очень медленно, но лучше, чем ничего: всё то же чтение форумов и переписка в аське.
В один прекрасный день я не смог войти в аську. Перепроверил пароль, попытался сбросить — неужели взломали? Зарегистрировал новый номер и решил проверить старый. Вдруг он онлайн? Он был онлайн! Взломали!
Написал на свой взломанный номер:
— Привет! Как дела?
— Привет! Нормально)
— Ты забрал мой номер ICQ!
*Непродолжительный диалог*
— 50 долларов — и я верну.
— Но у меня столько нет.
— А сколько есть?
— 10
— Хорошо, вернёшь сейчас 10 и потом ещё 10. И не вздумай меня обмануть — я могу в момент удалить всё с твоего компьютера.
Отправил злоумышленнику свои кровные WMZ (доллары в webmoney). Пароль от аккаунта мне прислали, я тут же заменил на свой. И после этого я экстренно начал форматировать системный диск, чтобы переустановить Windows, так как понятия не имел, откуда и как это могли сделать.
Пока шла переустановка, я начал перебирать в памяти, от кого и что я мог скачать из сети, и вспомнил: один из моих новых интернет-знакомых предложил в качестве развлечения установить динамические обои на Windows. Это, на минуточку, был исполняемый файл, расширение .scr, Windows Screen Saver file. Я вспомнил, что запускал его за пару месяцев до инцидента. Правда никаких обоев тогда не появилось. «Не знаю почему, но у меня работает», — написал тогда отправитель. Так я подхватил троянского коня. И только спустя время, видимо, чтобы не было подозрений, у меня увели аську.
Теперь со мной подобного уже никогда не повторится. Легендарный мессенджер icq уже давно как не работает.
| 2 | Когда я перестал делать акцент на Frontend разработке и пересказывать новости, у канала начались отписки, в среднем 5-10 человек на заметку. Выходит, что у меня осталось 300 постов до закрытия канала. Шутка
На самом деле превратил канал в более личный и пишу о том, что нравится. Ниже хочу поделиться воспоминаниями и небольшой историей из прошлого.
Спасибо, тем, кто продолжает читать ❤️ | 584 |
| 3 | Еще DOOM-like проекты
Заметкой выше я никого не ругаю, но помогаю тем, кто хочет погрузиться в детали. Более того, я только рад всяческим новым проектам.
Например, на днях один разработчик анонсировал в статье Catlantean 3D - Making Graphics Like It's 1993 на своем блоге, разработку игры в стиле DOOM и Duke Nukem 3D про похождения «кота-космодесантника расхитителя гробниц». И кажется он действительно хочется повторить опыт прошлого:
My goal was to build a complete, shippable first-person shooter using techniques that were common in the early 90s, while allowing myself the luxury of using a modern compiler and a platform abstraction layer.
Игра пока только анонсирована, однако долгое время находится в разработке. Будем наблюдать за развитием 🔭 | 684 |
| 4 | Еще DOOM-like проекты
Заметкой выше я никого не ругаю, но помогаю тем, кто хочет погрузиться в детали. Более того, я только рад всяческим новым проектам.
Например, на днях один разработчик анонсировал в статье Catlantean 3D - Making Graphics Like It's 1993 на своем блоге, разработку игры в стиле DOOM и Duke Nukem 3D про похождения «кота-космодесантника расхитителя гробниц». И кажется автор действительно хочется повторить опыт прошлого:
My goal was to build a complete, shippable first-person shooter using techniques that were common in the early 90s, while allowing myself the luxury of using a modern compiler and a platform abstraction layer.
Игра пока только анонсирована, однако долгое время находится в разработке. Будем наблюдать за развитием 🔭 | 1 |
| 5 | Почему cssDOOM это не DOOM 😒
Выше обещал разобраться насколько проект cssDoom близок к оригинальному doom. Короткий ответ: с точки зрения геймплея и реализация близка, а с точки зрения технической реализации рендеринга — нет.
Начну с того, что лично для себя я так и не понял, можно ли визуально похожие игры, но отличающиеся технически (со всеми вытекающими), считать одной и той же игрой? Вывод был бы однозначным, если бы не было такого понятия, как remastered. Это когда создатели берут старую игру и переводят ее на обновленный движок.
Интуитивно близкий подход к разработке Doom в браузере — это хранить где-то в памяти данные об уровне, затем на их основе вычислять геометрию уровня, текстуры, движение и прочее и прочее на стороне JavaScript, а с помощью Canvas API заниматься отрисовкой пикселей.
Автор проекта cssDoom, Нильс Линхеер выбрал другой подход. Отрисовка происходит через DOM. DOOM в DOM, каламбур. В его подходе для сцены создается множество <div /> элементов, вместо отрисовки на canvas. Каждая стена, пол, бочка и монстр — это отдельный элемент в DOM-дереве. У каждого <div /> есть набор CSS-свойств, которые устанавливаются из настроек уровня, например:
<div class="wall" style="
--start-x: 2560;
--start-y: -2112;
--end-x: 2560;
--end-y: -2496;
--floor-z: 32;
--ceiling-z: 88;
">
Затем все дальнейшие расчеты берет на себя CSS. В репозитории проекта прямо так и пишется, что на стороне CSS вычисляет ширину, высоту и 3D-преобразования с помощью тригонометрических функций:
.wall {
--delta-x: calc(var(--end-x) - var(--start-x));
--delta-y: calc(var(--end-y) - var(--start-y));
width: calc(hypot(var(--delta-x), var(--delta-y)) * 1px);
height: calc((var(--ceiling-z) - var(--floor-z)) * 1px);
transform:
translate3d(
calc(var(--start-x) * 1px),
calc(var(--ceiling-z) * -1px),
calc(var(--start-y) * -1px)
)
rotateY(atan2(var(--delta-y), var(--delta-x)));
}
Здесь можно дальше погружаться в описание проекта и его исходный код, чтобы найти использование множества CSS свойств для отрисовки, и по итогу воскликнуть: А что так можно было что ли? Однако здесь я поднимаю другой вопрос.
Насколько это реализация повторяет оригинальный DOOM
Если изучить код WAD-файл и исходники, то можно заметить, что автор отказался от использования BSP-дерева (бинарного разбиения пространства). Напомню, что именно этот алгоритм, реализованный Джоном Кармаком, позволил оригинальному Doom эффективно работать на слабом железе 90-х: движок обходил только видимые стены и не тратил ресурсы на отрисовку перекрытых областей.
В cssDoom всё иначе. Вместо эффективного обхода стен и исключения ранее нарисованных при отрисовке следующих, автор рисует сразу все стены и предметы — используя CSS-свойство translate3d.
Что это дает это свойство?
➡️ Графика перестает быть плоской 2D или условно трехмерной (2.5D), а становится полноценной 3D. То есть благодаря CSS-трансформациям каждый объект получает реальные координаты в пространстве. Кстати, в превью к заметке добавлена специально трехмерная версия игры, cssDoom сам такое позволяет делать.
➡️ Каждый элемент <div /> после попадает в отдельный композитный слой браузера в понятиях браузерного рендеринга. При изменении страницы происходит (пере)компоновка этих слоев — эту работу берет на себя GPU.
➡️ В оригинальном Doom всё рисовалось исключительно на процессоре, пиксель за пикселем, с кучей ручных оптимизаций. В cssDoom мы уходим от идеи «нарисовать для уровня 1 пиксель 1 раз» — вместо этого браузерный движок сам решает, как и когда обновлять слои через видеокарту.
Что же это тогда
Разработчики прошлого старались искать всевозможные оптимизации, чтобы добиться максимальной скорости отрисовки на слабых машинах. Проект cssDoom это скорее концепт или технический эксперимент, способный визуально повторить и показать возможности современного CSS, но безусловно достойный внимания и уважения 🎩 | 617 |
| 6 | First Person Shooter. Алгоритмы из 90-х на браузерных технологиях
В видео краткий срез того, чем занимался последние два месяца, плюс небольшой интерактив в конце. Освещены идеи и их проблематика, с которыми нужно будет или придется столкнуться в разработке игр прошлого. Ужал все, что только мог в отведенное время на выступление — 40 минут.
Видео выложил с согласия ПК ❤️ конференции CodeFest, официально видео докладов будут доступны через полгода.
Напоминаю, что в течение оставшегося месяца буду переводить текстовые заметки (на отдельном ресурсе) по разработке 2.5D рендер движка из статуса сырой черновик в статус черновик.
@xufostation | 1 168 |
| 7 | I'm back
Давно не писал в канал, копил ману и готовился к ежегодной конференции Codefest, чтобы рассказать как можно написать wolf3d и doom с нуля в браузере, правда показывал слайды и демки в основном про отрисовку стен. Моей целью было пробежаться по идеям и вдохновить тех, кто задумывался пройти по этому пути сам.
Очень тяжело сжимать и укладывать идеи в 40 минут, когда за каждой из них стоят потраченные вечера или выходные. Чтобы погрузиться и оценить каждую идею нужно проделать путь с понимаем какую задачу решаем и как она связана с прошлой.
Из интересного. Буквально за неделю до доклада вышел ролик на youtube, который уже тогда успел собрать несколько десятков тысяч просмотров и получить восторженные комментарии. Про Doom спустя 30 лет в сети очень много информации: книги, обзоры, мемуары, фансайты, плюс ИИ, который сэкономит время на поиске информации. Здесь нужно подождать пока аудитория остынет и можно снова похайповать. Из не технического, очень рекомендую (снова) — Джон Ромеро. «Икона DOOM. Жизнь от первого лица. Автобиография»
Но, если цель стоит проникнуться и повторить идеи, чтобы попасть в клуб тех, кто смог написать что-то похожее на Doom, то здесь как в анекдоте:
— Расскажи как написать Doom?
— Давай расскажу
— Рассказать я и сам могу! Как написать?
Такого материала в сети мало. Из хорошего и проверенного лично мной, есть проект DIYDoom и серия роликов Recreating Doom in Python. Правда, в своё время мне их "немного" не хватило, чтобы быстро во всем разобраться или как вариант я просто глупый не опытный в геометрии.
Если читает этот канал давно, то возможно помните как я лихо начал что-то повторять из DIYDoom и потом моя серия статей остановилась. Потом еще одна проблема в том, что попытки повторить Doom основываются на WAD файле. Это файл, который описывает уровень из Doom, он содержит в себе набор структур, которые толкает использовать обход BSP-дерева, что не формирует интуицию почему doom реализован именно так.
В общем, я решил пойти своей дорогой и написал в виде черновика пару десятков заметок и демок в отдельном проекте, поэтому ничего не спамил более месяца в канал. Ознакомившись с ними, надеюсь, вы сможете написать свой мини-движок похожий на DOOM. На протяжении двух недель начну выкладывать разделы получившегося туториала (если это так можно назвать) на канал, необходимо перевести все из совершенного сырого черновика в читаемый черновик.
PS Если захотите немного развлечься, то от выступления остался артефакт, викторина Game renderers from 90s — запускайте и играйте с друзьями (требует VPN), займет не более 5 минут | 1 277 |
| 8 | Однако проект выше не является клоном doom и не воссоздает оригинальный отрисовщик, разберем почему? | 0 |
| 9 | cssDOOM
На днях вышел проект, который попытался воссоздать в браузере оригинальный DOOM 1993 года, судя по популярной карте, и перенести всю отрисовку в CSS.
Играть в браузере
Исходники на github | 0 |
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
