Как стать автором
Обновить
249
0
Денис Ольшин @deNULL

Пользователь

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

Skyforge: технологии рендеринга

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


Всем привет! Меня зовут Сергей Макеев, и я технический директор в проекте Skyforge в команде Allods Team, игровой студии Mail.Ru Group. Мне хотелось бы рассказать про технологии рендеринга, которые мы используем для создания графики в Skyforge. Расскажу немного о задачах, которые стояли перед нами при разработке Skyforge с точки зрения программиста. У нас свой собственный движок. Разрабатывать свою технологию дорого и сложно, но дело в том, что на момент запуска игры (три года назад) не было технологии, которая могла бы удовлетворить всем нашим запросам. И нам пришлось самим создать движок с нуля.
Читать дальше →
Всего голосов 139: ↑132 и ↓7+125
Комментарии51

Пирожки в дистрибутивной семантике

Время на прочтение6 мин
Количество просмотров23K
Уже несколько месяцев с любопытством гляжу в сторону дистрибутивной семантики — познакомился с теорией, узнал про word2vec, нашёл соответствующую библиотеку для Питона (gensim) и даже раздобыл модель лексических векторов, сформированную по национальному корпусу русского языка. Однако для творческого погружения в материал не хватало душезабирающих данных, которые было бы интересно через дистрибутивную семантику покрутить. Одновременно с этим увлечённо почитывал стишки-пирожки (эдакий синтез задиристых частушек и глубокомысленных хокку) — некоторые даже заучивал наизусть и по случаю угощал знакомых. И вот, наконец, увлечённость и любопытство нашли друг друга, породив воодушевляющую идею в ассоциативных глубинах сознания — отчего бы не совместить приятное с полезным и не собрать из подручных средств какой-нибудь «поэтичный» поисковик по базе пирожков.
из ложных умозаключений
мы можем истину сложить
примерно как перемножают
два отрицательных числа
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии44

Эмуляторы советских процессорных систем

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

В этой статье я собрал обобщающую информацию по некоторым программным эмуляторам советских компьютерных систем - начиная от больших ЭВМ типа БЭСМ-6 и заканчивая микропроцессорными электронными играми.

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

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

Процедурная генерация 3D миров в Godot Engine при помощи GPU. Часть 1

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

Привет!

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

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

Как писать bash-скрипты надежно и безопасно: минимальный шаблон

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

Скрипты на Bash. Как много в этом слове. Любому разработчику рано или поздно приходится их писать. Почти никто не скажет "да, я люблю писать bash-скрипты", и поэтому этой теме уделяют мало внимания.

Я не буду пытаться сделать из вас эксперта в Bash, а просто покажу минимальный шаблон, который поможет сделать ваши скрипты более надежными и безопасными.

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

Как я «напрограммировал» себе скилл рисования диаграмм в скетч-стиле

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

По работе мне часто приходится рисовать разные схемы, диаграммы процессов и графики, в том числе и те, которые потом используются в качестве иллюстраций для сайта, статей и презентаций. Всё бы ничего, но есть у диаграмм и графиков, сделанных в популярных онлайн-сервисах наподобие draw.io или lucidcharts одна беда — они выглядят как-то слишком уныло и «олдскульно», в духе «90-х». Всю эту инфографику хотелось бы сделать более заметной, привлекательной и душевной (и, желательно, без привлечения дизайнера).

Так у меня возникла идея создания инструмента для отрисовки диаграмм и графиков в стиле «нарисовано от руки». Об истории создания сервиса и «подводных камнях» я расскажу в этой заметке.

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

Алгоритм генерации тайловых карт Model Synthesis

Время на прочтение7 мин
Количество просмотров4.1K
image

Я много писал об алгоритме коллапса волновой функции (Wave Function Collapse). Этот алгоритм, разработанный Максимом Гуминым в 2016 году, генерирует тайловые карты и пиксельные текстуры на основании удовлетворения ограничениям с дополнительной рандомизацией [перевод на Хабре]. Но знали ли вы, что большинство основных идей для него взято из статьи, написанной больше десятка лет назад? Сегодня мы рассмотрим диссертацию 2007 года на степень PhD Пола Меррела Model Synthesis и некоторые из разработанных им расширений алгоритма, в частности, Modifying in Blocks.

Model Synthesis


Идея Model Synthesis очень похожа на WFC, по которому я написал целый туториал. Но в этой статье мы опишем идею с нуля.

Model Synthesis начинает с передачи примера тайловой карты, которая используется алгоритмом для того, чтобы учиться, какие тайлы могут располагаться друг рядом с другом при построении модели. Затем для выходного результата инициализируется пустая сетка ячеек. Каждая ячейка имеет список «потенциальных» тайлов, которые могут её заполнить.

Изначально допустим любой тайл. Основной цикл выбирает ячейку и выбирает для неё заданный тайл, помечая все остальные как недопустимые. Затем он распространяет последствия этого выбора при помощи алгоритма AC4, то есть помечает тайл как недопустимый для текущей ячейки, если все его валидные смежные ячейки уже недопустимы. После распространения цикл сбрасывается и мы выбираем другую ячейку, для которой нужно выбрать тайл.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии3

Идеальная светодиодная лампа за 21 рубль

Время на прочтение3 мин
Количество просмотров79K
Удивительно осознавать, что достаточно сложное электронное устройство, которым является светодиодная лампочка, может стоить 21 рубль.

Ещё сложнее поверить, что эта лампочка безукоризненна по всем параметрам.

Читать дальше →
Всего голосов 227: ↑225 и ↓2+223
Комментарии204

Симуляция 4,5 миллиардов лет эволюции планеты на GPU

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

Введение

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

Всего голосов 62: ↑60 и ↓2+58
Комментарии18

Я выпустил Grafar — JS-библиотеку для визуализации

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

После пяти лет в столе я готов представить свою библиотеку для визуализации — grafar. У нас есть: 3D, реактивные вычисления и самое простое АПИ для построения математических графиков прямо в браузере. В статье рассказываю, что я сделал и как этим пользоваться.

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

Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel

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

Разбираемся, как на самом деле считаются суммы и проценты в клиентском приложении.

Собираем все данные по портфелю и по всем операциям через Tinkoff API.

Строим огромную Excel таблицу со всеми данными.

Узнаём, сколько комиссий и налогов с нас уже содрали и что нам останется при выводе.

Пытаемся понять, что нам с этим делать.

Read more
Всего голосов 158: ↑155 и ↓3+152
Комментарии112

Умная квартира на JavaScript. От светодиода до распознавания лица в камере домофона

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

Привет! Меня зовут Антон, я ведущий разработчик в команде рекламного фронтенда ВКонтакте. Мои рабочие задачи связаны с развитием рекламного кабинета и возможностей для продвижения сообществ в приложении VK. Здесь результаты можно видеть только в браузере и телефоне, но мне давно хотелось научиться управлять объектами и в реальном мире — например, в своей квартире. Таким опытом я и хочу поделиться в этой статье: опишу, как создал и развивал свой умный дом, с какими проблемами столкнулся по ходу проекта и как их решал.

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

MarkedText — маркдаун здорового человека

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

Здравствуйте, меня зовут Дмитрий Карловский и все свои статьи (и презентации) пишу я в MarkDown разметке. И знаете что? Она уже порядочно меня подзаелозила! Тексты я пишу на русском, но большая часть спецсимволов есть только в английской раскладке клавиатуры. А редактирование таблиц - это вечная пизанская башня из вертикальных линий. Короче, есть у него проблемы как с удобством редактирования, так и с наглядностью представления. Так что давайте попробуем спроектировать его с нуля, не таща за собой килотонны головоломных конструкций.

Поехали..
Всего голосов 91: ↑72 и ↓19+53
Комментарии155

Ультимативный список инструментов для разработчиков и опытных пользователей для Windows

Время на прочтение6 мин
Количество просмотров70K
Можете ли вы поверить, что с момента моего последнего списка инструментов прошло 6 лет? Инструменты изменились, многие из них доступны онлайн, но, честно говоря, для составления нового списка инструментов требуется ОЧЕНЬ МНОГО РАБОТЫ. Но я смог, вот список на 2020-2021 годы. Это инструменты в моей папке Utils. Я создал папку d:\dropbox\utils и добавил ее в свой PATH. Таким образом, он будет на всех моих компьютерах, и я могу мгновенно добраться до любого из них.

Это обновленный до версии 2020-21 мой список 2003, 2005, 2006, 2007, 2009, 2011 и 2014 годов, который в настоящее время включает все остальные мои списки. Я занимаюсь этим более 17 лет. Вау. Думаю, стоит тратить на это больше времени.

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

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

Эту статью написал наш коллега Скотт. Вот версия на английском. Ну а сам список под катом.

Читать дальше →
Всего голосов 63: ↑56 и ↓7+49
Комментарии164

Программист учится рисовать. Дневник Емели

Время на прочтение16 мин
Количество просмотров34K
Так получилось, что моим основным хобби на лихой 2020-й год стало освоение ремесла рисования.

Еще в январе я дал себе некое обещание в виде цели к концу года — прокачать навык рисования (звучит конечно абстрактно и совсем не по SMART-у, я думаю, это и повлияло в дальнейшем на то, как я развивал этот навык весь год и что получилось в итоге).

spoiler
В конце года я остался доволен собой и окончательно понял, что я хотел бы прокачиваться и дальше!

image
Так выглядел мой уровень изобразительных навыков в ноябре предыдущего (2019-го) года

Формат подачи данной статьи — это на 95% личный дневник, который я вел в гугл-доке, записывая, что я делал каждый месяц, свои ощущения и как-то фиксируя собственный прогресс — смотрел, сколько работ мне удалось нарисовать и какого они были качества — нравились ли они мне лично или были совсем так себе по исполнению.
Читать дальше →
Всего голосов 144: ↑143 и ↓1+142
Комментарии123

Самодельная портативная консоль microByte

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

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

Введение


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

Может, разработать брелок, на котором можно будет играть в Pokemon?

В этот момент зародилась примитивная идея microByte. Спустя более семи месяцев идея брелока эволюционировала в полнофункциональную портативную консоль, способную эмулировать:

  • NES
  • GameBoy
  • GameBoy Color
  • Sega Master System
  • GameGear

И всё это в крошечном размере картриджа первого GameBoy. Самое важное, что тексты в игре читаемы, нужна только лупа. Размеры устройства: 78x17x40 мм
Всего голосов 41: ↑41 и ↓0+41
Комментарии9

Освобождаем свои данные из корпоративного рабства. Концепция личного хранилища

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

Автор программы Mathematica Стивен Вольфрам около 40 лет ведёт цифровой лог многих аспектов профессиональной и личной жизни

Сейчас практически всем стала понятна сущность некоторых интернет-корпораций, которые стремятся получить от людей как можно больше личных данных — и заработать на этом. Они предлагают бесплатный хостинг, бесплатные мессенджеры, бесплатную почту — лишь бы люди отдали свои файлы, фотографии, письма, личные сообщения. Наши данные приносят огромные деньги, а люди стали продуктом. Поэтому техногиганты Google и Facebook — самые крупные корпорации в истории человечества. Это неудивительно, ведь в их распоряжении миллиарды единиц бесплатного «сырья», то есть «пользователей» (кстати, этим словом users называют людей только в двух областях: наркоиндустрии и индустрии программного обеспечения).

Настало время положить этому конец. И вернуть данные под свой контроль. В этом суть концепции личных хранилищ данных (personal data services или personal data store, PDS).
Читать дальше →
Всего голосов 67: ↑61 и ↓6+55
Комментарии92

Визуализация при помощи генеративных алгоритмов: дифференциальная сетка (2D и 3D) и трещины

Время на прочтение6 мин
Количество просмотров4.5K
image

Это развитие идей из публикации Визуализация при помощи генеративных алгоритмов: гифа, деревья, повторяющиеся и дифференциальные линии (на Python), однако вам необязательно читать ее — все проекты, описанные здесь самодостаточны.

Все что вам необходимо знать: последнее время автору были особенно интересны биологические образы и дифференциальный рост. В посте есть результаты экспериментов с различными биологическими и физическими закономерностями, в частности дифференциальной сеткой, в том числе в 3D, и трещинами.
Осторожно, тяжелые красивые картинки
Всего голосов 18: ↑18 и ↓0+18
Комментарии1

Реализация маневрирования юнитов в играх (избегание столкновений)

Время на прочтение6 мин
Количество просмотров16K
Задача движения юнитов в играх является одной из ключевых задач, стоящих перед разработчиками игр. От того, как двигаются игровые юниты, во многом зависит восприятие всего геймплея в целом.

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

На практике же мы имеем совсем другую ситуацию.

Алгоритмы поиска пути разобраны досконально.

Нужен поиск пути с весами? A*. Нужен поиск для большого количества юнитов? Flow Field или кластеризация.

По большому счету по поиску пути не осталось не разобранных вопросов.

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

Эти проблемы и будем сегодня решать.



Disclaimer
Данная статья не претендует на исчерпывающее решение обозначенной проблемы.
Я лишь рассказываю о том, как конкретно мне видится решение, над которым я работал. Это решение в оттюнингованном виде попало в один из зарелизенных в этом году РТС проектов, но осталось ли там на данный момент я не знаю. Комментарии и дополнения приветствуются.
Всего голосов 49: ↑49 и ↓0+49
Комментарии55

Вы не знаете как должны работать модальные окна

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

Уверен, многие хоть раз создавали всплывающее модальное окно. Но задумывались ли вы об определении этого компонента? Как он должен работать?


В этом материале я постарался собрать максимально полный свод правил, рекомендаций и примеров реализации по которым модальные окна должны работать.


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


Этот список сформирован на основе спецификаций WAI-ARIA, HTML Living Standard и моего личного опыта. И хотя я буду говорить про веб, большинство правил и рекомендаций применимы для модальных окон где угодно.

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

Информация

В рейтинге
Не участвует
Откуда
Саратов, Саратовская обл., Россия
Зарегистрирован
Активность