Подарок сыну и списанный прибор
Рубрика «raycasting»
Игровая консоль в корпусе нормирующего преобразователя: raycast на ESP8266
2026-10-05 в 12:33, admin, рубрики: DIY, esp8266, raycast, raycasting, space invaders, игровая консольTTF-DOOM: как я запустил 3D-рейкастер внутри TrueType-шрифта
2026-04-08 в 7:16, admin, рубрики: creative coding, DOOM, font, javascript, raycasting, truetype, turing-complete, байткод, компиляторКаждый, кто хоть раз заглядывал на Hacker News или r/ItRunsDoom, знает традицию: DOOM должен работать на всём. PDF‑файлы, SQL‑запросы, кишечные бактерии, тест на беременность — список бесконечен, и каждый новый порт абсурднее и интереснее предыдущего
Но я задался вопросом: а можно ли запустить DOOM внутри шрифта?
Свой 3d движок на Python [Часть 1]
2025-04-08 в 21:13, admin, рубрики: DOOM, game, pygame, python, raycasting, первая статья на хабре, первая частьЭээм а почему Python?
Прочитав заголовок вы сразу скажете то что Python — это язык не для игр! И окажетесь правы! Python — реально не был ориентирован под игры, но благодаря своему простому синтаксису в нем появился pygame и PyOpenGL и конечно же Ursina.
Pygame — библиотека Python основанная на SDL 2 для создания игр.
Именно с помощью Pygame мы сможем рисовать примитивы на экране, загружать текстуры и работать с логикой игры!
Ну и как будем это делать?
Город в бутылке — движок Raycasting всего на 256 байт
2024-05-22 в 13:39, admin, рубрики: raycasting, код, красота, Программирование, программыПривет любителям микро-кодирования. Вот вам кое-что невероятное: крошечный движок raycasting (метод “бросания лучей”) и генератор городов, который помещается в отдельный 256-байтовый HTML-файл.
В этой статье я поделюсь всеми секретами работы этой волшебной программы.
Город в бутылке
<canvas style=width:99% id=c onclick=setInterval('for(c.width=w=99,++t,i=6e3;i–;c.getContext`2d`.fillRect(i%w,i/w|0,1-d*Z/w+s,1))for(a=i%w/50-1,s=b=1-i/4e3,X=t,Y=Z=d=1;++Z<w&(Y<6-(32<Z&27<X%w&&X/9^Z/8)*8%46||d|(s=(X&Y&Z)%3/Z,a=b=1,d=Z/w));Y-=b)X+=a',t=9)> pic.twitter.com/N3WElPqtMY
Ray Casting 3D игра на Python + PyGame
2023-07-23 в 6:05, admin, рубрики: DOOM, Gamedev, pygame, python, raycasting, игры, математика, ооп, пайтон, Программирование, разработка игр, тригонометрияВведение
Все мы помним старые игры, в которых впервые появилось трехмерное измерение.
Основоположником 3д игр стала игра Wolfenstein 3D, выпущенная в 1992 году
а за ней и Doom 1993 года.
Пишем игру от первого лица в 2КБ на Rust
2023-03-10 в 7:34, admin, рубрики: raycasting, Rust, webassembly, Wolfenstein 3D, Алгоритмы, математика, разработка игр, рейкастинг
Введение
Поначалу кажется, что создать игру от первого лица без движка или графического API практические невозможно. В этом посте я расскажу, как это сделать при помощи алгоритма под названием ray casting.
Моя цель — показать, что сложную задачу можно разбить на более простые части, и если я всё сделаю правильно, то у вас появится ощущение, что вы сами открыли, как работает игра.
Для начала разберёмся, как работает алгоритм, а затем построчно напишем его. Затем мы пересмотрим код, добавим несколько возможностей и оптимизируем его размер. Я постарался сделать пост максимально доступным и дружелюбным, но вам поможет приличное знание программирования, Rust и основ геометрии.
Читать полностью »
Четырёхмерный лабиринт с видом от первого лица
2020-12-25 в 9:39, admin, рубрики: 4D, raycasting, software rendering, Программирование, Работа с 3D-графикой, разработка игр, четырёхмерное пространствоСуществует более 30 игр с дополнительным пространственным измерением (список на википедии), которые разнообразными способами визуализируют и пытаются сделать доступной для понимания наличие четвёртой координаты. Но среди тех игр, с которыми я ознакомился, не нашел для себя такой, которая сочетала бы в себе следующие факторы:
-
вид от первого лица
-
возможность свободного перемещения и вращения во всех направлениях, без жестко заданных траекторий и углов поворота
-
простая и привычная графика, с текстурами и освещением
3D картинка на питоне с (почти) нормальной производительностью
2020-02-08 в 13:56, admin, рубрики: 3d, python, raycasting, для начинающих, ПрограммированиеМожно считать эту статью ответом на вот эту, где речь идет о написании подобной вещи на C++, с прицелом на новичков, то есть с упором на простой читаемый код вместо высокой производительности.
После прочтения статьи у меня возникла идея повторить написанную автором программу. Я знаком с C++, но никогда не писал на нем сколь-нибудь сложных программ, предпочитая python. Вот тут и родилась идея писать на нем. Особенно интересовала производительность — я был почти уверен, что пара-тройка кадров в секунду это предел для python. Я ошибался.


Как работают пули в видеоиграх?
2019-11-13 в 4:15, admin, рубрики: ballistics, first person shooter, hitscan, raycasting, игровая физика, Игры и игровые приставки, разработка игр, шутеры от первого лицаИгры FPS (first-person shooter, шутер от первого лица) стали неотъемлемой частью видеоигровой индустрии ещё с момента появления в 1992 году популярнейшей Wolfenstein 3D. С тех пор жанр эволюционировал: улучшалась графика, увеличивались бюджеты на разработку, развивалась экосистема киберспорта. Но что насчёт их фундамента — механики стрельбы? Как проходило развитие на этом фронте? Почему в некоторых играх оружие кажется реальными, а в других похоже на игрушки?
Hitscan
В предыдущую эпоху многие игры для рендеринга 3D-сцен в 2D-изображения использовали технику под названием raycasting («бросание лучей»). Raycasting позволяет движку определять первый объект, с которым пересечётся луч. Но потом разработчики задались вопросом: «Что, если выпустить луч из ствола оружия, чтобы имитировать пулю?» Благодаря этой идее родился hitscan («сканирование попадания»).

Пример raycasting
В большинстве реализаций оружия с hitscan при выстреле игрока физический движок выполняет следующие операции:
- Определяет направление, в котором указывает оружие.
- Выпускает из ствола оружия луч на заданное расстояние.
- Использует raycasting для определения того, попал ли луч в объект.
Если движок определил, что объект находится на линии огня, то он сообщит ему об этом, сказав, что в него «попала» пуля. Затем цель может выполнить все вычисления, необходимые для регистрации повреждений.Читать полностью »
Играем в консоли браузера
2019-05-18 в 15:41, admin, рубрики: 3d, canvas, console.log, javascript, raycasting, ненормальное программирование
Как прекрасен этот мир
сonsole.log() — хороший метод, чтобы вывести отладочную информацию в веб-консоль. Можно выводить числа, строки, массивы, объекты, функции, обычный текст, к тому же, ко всему этому можно добавлять форматирование, цвет, фон и вообще довольно много других стилей… И это всё? Это всё, что может один этот метод? Ну… А как насчет реализации в консоли простого платформера, алгоритма Ray casting или физики ткани?Читать полностью »
