Как стать автором
Обновить
0
0
Иван Казаков @kandaru_san

Web-разработчик

Отправить сообщение

Демо City In A Bottle – система рейкастинга в 256 байтах

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.7K

Привет всем любителям size coding, сегодня я расскажу о чём-то потрясающем: крошечном движке трассировки лучей (raycasting) и генераторе города, умещающихся в автономном файле HTML размером 256 байтов.

В этом посте я поделюсь секретами работы этой волшебной программы. Возможно, вы уже видели этот пост в моём Twitter. После публикации два года назад он стал самым популярным моим твитом.

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

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

Читать далее
Всего голосов 41: ↑38 и ↓3+56
Комментарии7

Вороной, Манхэттен, рандом

Уровень сложностиПростой
Время на прочтение34 мин
Количество просмотров19K

Это история про то, как не довести дело до конца, но получить уйму опыта, и вообще ни разу не обломаться.

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

Осторожно, очень много картинок!

Читать далее
Всего голосов 160: ↑160 и ↓0+160
Комментарии53

Что почитать игровому программисту?

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров30K

Объём специфичных знаний, которые требуются рядовому программисту игр, даже если он только начал свою карьеру, вызывает у меня «лёгкую» тоску. Это одна из причин, почему большая часть людей, которые «горят делать игры», отсеивается на этапе технических собеседований (обычно их больше одного). Это нормально и грустно. Добавьте сюда, что нефундаментальные знания, вроде инструментов, библиотек и движков, приходится обновлять где‑то раз в 5–7 лет. Не вижу тут, что игрострой сильно отличается от других областей разработки. Если бы лет 15 назад «добрый я» скинул на почту список книг, которые придется прочитать и осмыслить, армия собранных граблей не была бы столь большой и разнообразной, и без ручек половинной длины. Осторожно, в конце статьи будет супердлинная картинка (взята с github отсюда, с разрешения автора).

У программиста нет цели, только путь.
Всего голосов 60: ↑60 и ↓0+60
Комментарии36

Переход с Vue-CLI и Webpack на Vite: ускоряем разработку Vue 3

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров12K

Одним из новых инструментов в арсенале Vue 3 является Vite - быстрый и легковесный бандлер, который значительно упрощает процесс разработки и ускоряет сборку проекта. В этой статье мы рассмотрим, как перейти от стандартного подхода с использованием Vue-CLI и Webpack к более продвинутому и эффективному методу работы с помощью Vite.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии12

Работа Apache Kafka на примерах. Поднимаем Kafka Cluster используя docker-compose

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров69K

В этой статье продемонстрирую и объясню работу Kafka, используя как можно меньше определений и больше практики. Мы рассмотрим 3 сценария работы с Kafka. Для последнего сценария мы поднимем Kafka Cluster в Docker и с помощью UI увидим, как происходит общение между сервисами.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии8

Носители английского языка — худшие коммуникаторы в мире

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров37K

Носители языка — худшие коммуникаторы в мире

В комнате, полной людей, для которых язык не является родным, «нет никаких шансов на понимание». Возможно, это их язык, которым они владеют, но послание часто теряется.

Читать далее
Всего голосов 67: ↑57 и ↓10+64
Комментарии142

Как на самом деле работает Async/Await в C# (Часть 1)

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров59K

Несколько недель назад в блоге «.NET Blog» появилась статья «Что такое .NET, и почему вы должны выбрать его?». В нем был представлен высокоуровневый обзор платформы, кратко описаны различные компоненты и архитектурные решения, а также обещаны более подробные посты по затронутым темам. Этот пост является первым таким продолжением, в котором подробно рассматривается история создания, архитектурные решения и детали реализации async/await в C# и .NET.

Читать далее
Всего голосов 17: ↑16 и ↓1+16
Комментарии8

Все хуки и концепты React в одной статье

Время на прочтение10 мин
Количество просмотров43K

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

Читать далее
Всего голосов 11: ↑10 и ↓1+11
Комментарии38

Нейронные сети для новичков и профи: топ бесплатных курсов по ИИ

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров92K

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

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

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

Приглашаем к прочтению!

Читать далее
Всего голосов 8: ↑7 и ↓1+8
Комментарии9

Архитектура unity проектов

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров19K

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

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

Не волнуйтесь, никаких SOLID и других изотерических практик. Коротко, по делу, подкрепленное использованием на нескольких проектах.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии18

Недельный геймдев: #145 — 29 октября, 2023

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.6K

Из новостей: движок от VK за основу взял Dagor Engine от Гайджинов, разработчик Dreams и LittleBigPlanet собирается сократить 15-20% сотрудников, Steam изменит валюты магазина в Турции и Аргентине на доллары.

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

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии1

Как типизировать Vuex Store

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров4.5K

Всем привет!

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

You are welcome!

Хочу типизировать Vuex
Всего голосов 2: ↑2 и ↓0+2
Комментарии3

Фэнтези и бизнес-показатели, Или хорошие игроки работают лучше, а увольняются реже

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.5K

— Я тебе за что плачу? За то, чтобы ты играл на рабочем месте!?
— Да.
— Действительно…Продолжай.

Люди играли, играют и будут играть. Но почему бы не играть с пользой и вместо «Танки Онлайн» приносить результат банку, а себе — денежку? Никаких причин отказываться от такой идеи нет, поэтому в 2020 году мы сделали пошаговую стратегию для сотрудников, чтобы поднять реальные показатели продаж и обученности. В игру мы зашили всё, что касается продаж продуктов малого бизнеса и обучения менеджеров, а интерфейс встроили в SFA — платформу, где мы проводим сделки.

И наш опыт легко повторим.

Привет, я — Мурат Абаев. В Альфе управляю отделом профобучения. Несколько лет назад я стал идейным вдохновителем проекта с игрой для менеджеров банка. Под катом расскажу о том, когда геймификация наконец сработала.

Читать далее
Всего голосов 26: ↑25 и ↓1+24
Комментарии5

Обновление состояния системы через Server-Sent Events (SSE) без затей

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров9.5K

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

Допустим, у нас есть список объектов, к примеру – список эпизодов для шоу. Один клиент на него смотрит, а другой в это время добавляет в список еще один эпизод. Хорошо бы факт добавления нового эпизода сразу отобразить у первого клиента. То же самое относится и к просмотру информации об отдельном эпизоде: если один клиент её просматривает, а другой – редактирует, было бы здорово результат редактирования сразу отображать у первого.

Для решения данной задачи очень удобно использовать механизм Server-Sent Events (SSE). О том как это сделать в проектах, у которых на беке Node, а на фронте React, я и хочу поговорить.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии5

Unity: 8 причин отказаться от Coroutine в пользу Async

Время на прочтение9 мин
Количество просмотров38K

Когда речь заходит об асинхронных операциях в Unity, на ум первым делом приходит coroutine. И это не удивительно, так как большинство примеров в сети реализованы именно через них. Но мало кто знает, что Unity поддерживает работу с async/await еще с 2017 версии.

Так почему же большинство разработчиков до сих пор использует coroutine вместо async/await? Во первых, как я уже упомянул, большая часть примеров написана с использованием coroutine. Во вторых, async/await кажется очень сложным для начинающих разработчиков. Ну и в третьих, когда речь заходит о коммерческих проектах, где основным из критериев является стабильность, предпочтение отдается проверенному годами подходу.

Но технологии не стоят на месте и появляются библиотеки, которые делают работу с async/await в Unity удобной, стабильной и самое главное высокопроизводительной.

Читать далее
Всего голосов 10: ↑9 и ↓1+10
Комментарии25

JavaScript триггеры и функции появились в Redis 7.2

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.9K

В Redis уже много лет используется язык программирования Lua для исполнения пользовательского кода налету (eval) или определении пользовательских функций. Lua действительно удобный язык, но скорее с точки зрения встраивания внутрь проекта на C/C++ для выполнение простых скриптов. Большинство же разработчиков, которые используют Redis, предпочли бы не учить новый язык, а работать с уже известным и более популярным скриптовым языком, таким как JavaScript. И это наконец-то случилось.

Предлагаю ознакомиться с тем, как команда Redis в релизе 7.2 дошла до долгожданного внедрения JavaScript и как сделать первый шаги по запуску триггеров и функций.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

MobX с MVVM упрощает жизнь Frontend разработчика гораздо сильнее Redux'а

Время на прочтение16 мин
Количество просмотров18K

В этой статье я бы хотел подискутировать о том, насколько хорошо паттерн MVVM подходит для разработки Web приложений на React. Вместе этим, я собираюсь описать какие преимущества могут быть при разработке с использованием MobX с паттерном MVVM в сравнении с Redux. Запаситесь кофе, это будет долгое чтиво.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии52

Рефлексия в JavaScript и TypeScript: обзор основных техник. Как сгенерировать CLI-интерфейс для класса

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров12K
Как и в любом достаточно динамическом языке, в JavaScript из коробки есть способы разобрать в рантайме структуру его значений — определить типы, ключи объектов, получить конструкторы и прототипы.

В этой статье я хочу рассмотреть основные такие возможности, плюс показать, как можно получить ещё больше информации о типах при использовании TypeScript, и как добавить классам и их полям собственные метаданные при помощи декораторов. Каждую из техник я покажу на примере небольшого CLI-фреймворка, работа с которым к концу статьи будет выглядеть как на картинке:

Читать дальше →
Всего голосов 42: ↑42 и ↓0+42
Комментарии0

Создание игры в стиле GameBoy в 13 КБ

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров7.1K

В прошлом году я решил поучаствовать в гейм-джеме js13kgames. Это длящееся один месяц ежегодное соревнование по созданию с нуля игры на JavaScript, которая должна уместиться в 13 КБ (в zip). Места как будто не очень много, но с достаточным количеством креативности при таких ограничениях можно достичь многого. Просто взгляните на потрясающие примеры прошлых лет:


Хотя в прошлом году моя игра заняла не такое высокое место, я всё равно хотел бы поделиться своими открытиями, сделанными в процессе её разработки.

Мне захотелось сделать игру, напоминающую о ретроэпохе игр на портативных консолях с их уникальным квадратным экраном, низким разрешением и видом сверху вниз. Я решил реализовать быстрый геймплей в стиле action-RPG с простым, но увлекательным геймплеем, мотивирующим игрока продолжать игру. С музыкой всё было очевидно — звуковые эффекты должны быть похожими на звуки аркадных автоматов.

Поиграть в мою игру можно на странице Gravepassing сайта JS13KGames. Полный код выложен на GitHub.
Читать дальше →
Всего голосов 34: ↑32 и ↓2+45
Комментарии1

Деплой приложения с nginx как по нодам

Время на прочтение10 мин
Количество просмотров21K

Привет, Хабр! В этом материале мы разберем деплой приложения на React, арендуем облачный сервер и настроим nginx. Здесь будет необходимый минимум для фронтенд-разработчика:

  • Заливка проекта на GitHub.
  • Аренда и настройка облачного сервера по SSH.
  • Настройка nginx для раздачи статических файлов.
  • Сжатие бандла.
  • Подключение домена.
  • Настройка HTTPS.
  • Настройка Docker.

Для этого материала также доступна видеоверсия.
Читать дальше →
Всего голосов 32: ↑28 и ↓4+37
Комментарии12

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Frontend Developer, Web Developer
Middle
Git
JavaScript
TypeScript
MongoDB
Redis
Svelte.js
CSS
HTML
Node.js
Express