Pull to refresh
139
0
Павел Галаничев @old_gamer

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

Send message

Моя версия «прибора для осознанных сновидений» – краткая история и описание первой версии

Reading time8 min
Views45K
Примечание: статья написана исключительно в ознакомительных целях, и не является призывом к повторению подобных экспериментов дома ввиду потенциального риска причинения вреда физическому здоровью (в случае использования в приборах Li-ion аккумуляторов и фоторезисторов).

Доброго времени суток, уважаемые хаброюзеры и хаброчтители) Это – моя первая серьезная статья на Хабре, посему СУДИТЕ МАКСИМАЛЬНО СТРОГО, обещаю работать над стилем и содержанием.
Читать дальше →

Пример проектирования цифрового устройства «на пальцах»

Reading time3 min
Views29K
Привет, Хабр! Это начало небольшого цикла из двух статей с пошаговым проектированием цифрового устройства с уклоном на практику. Минимум «воды» и максимум практики!

Читать дальше →

Численные методы решения систем нелинейных уравнений

Reading time9 min
Views86K

Введение


Многие прикладные задачи приводят к необходимости нахождения общего решения системы нелинейных уравнений. Общего аналитического решения системы нелинейных уравнений не найдено. Существуют лишь численные методы.

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

Для численного решения применяются итерационные методы последовательных приближений (простой итерации) и метод Ньютона в различных модификациях. Итерационные процессы естественным образом обобщаются на случай системы нелинейных уравнений вида:

(1)

Обозначим через вектор неизвестных и определим вектор-функцию Тогда система (1) записывается в виде уравнения:

(2)

Теперь вернёмся к всеми любимому Python и отметим его первенство среди языков программирования, которые хотят изучать [1].



Этот факт является дополнительным стимулом рассмотрения числительных методов именно на Python. Однако, среди любителей Python бытует мнение, что специальные библиотечные функции, такие как scipy.optimize.root, spsolve_trianular, newton_krylov, являются самым лучшим выбором для решения задач численными методами.

С этим трудно не согласится хотя бы потому, что в том числе и разнообразие модулей подняло Python на вершину популярности. Однако, существуют случаи, когда даже при поверхностном рассмотрении использование прямых известных методов без применения специальных функций библиотеки SciPy тоже дают неплохие результаты. Иными словами, новое- это хорошо забытое старое.
Читать дальше →

Учим Искусственный Интеллект играть в игру

Reading time6 min
Views14K
Доброго времени суток, дорогой читатель!

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



Примечание: данная статья не объясняет термин "нейронная сеть" и всё, что с ним связано, а также не предоставляет базовую информацию об обучении сети методом трассировки. Рекомендуем кратко ознакомиться с этими понятиями до прочтения статьи
Читать дальше →

Вирусы для MS-DOS в действии

Reading time1 min
Views57K
image

На своем YouTube-канале danooct1 Дэниель Уайт уже пять лет собирает видео с демонстрацией работы старых вирусов. На сегодняшний день он записал уже 450 штук; испытанные им вирусы охватывают период с MS-DOS до конца 90-ых и расцвета Windows, и в то время как одни из его видео вызывают ностальгию по прошлому, другие удивляют.

Под катом — анимации, демонстрирующие работу некоторых из вирусов, разработанных для MS-DOS. Осторожно, трафик.
Читать дальше →

Обзор и сравнение квантовых программных платформ гейтового уровня

Reading time47 min
Views13K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Overview and Comparison of Gate Level Quantum Software Platforms" автора Ryan LaRose.


Квантовые компьютеры доступны для использования в облачной инфраструктуре, но в тоже время недавний бурный рост квантовых программных платформ может быть ошеломляющим для тех, кто будет принимать решение, что использовать. В этой статье предлагается текущая картина быстро развивающегося ландшафта квантовых вычислений путем сравнения четырех программных платформ — Forest (pyQuil), QISKit, ProjectQ и комплекта Quantum Development Kit, — которые позволяют исследователям использовать реальные и моделируемые квантовые устройства. Этот анализ охватывает требования и установку, синтаксис языка на примере программ, поддержку на уровне библиотек и возможности квантового симулятора для каждой платформы. Для платформ с поддержкой квантового компьютера мы сравним аппаратные средства, квантовые ассемблерные языки и квантовые компиляторы. В заключение мы рассмотрим особенности каждого из них и кратко упомянем другие пакеты программного обеспечения для квантовых вычислений.

Читать дальше →

«Во все тяжкие 3» — Поставить крестик над Dark Forester

Reading time8 min
Views5.8K
image

«Во все тяжкие» или суровые реальности инди разработки Dark Forester
«Во все тяжкие 2», Dark Forester — игра на дистанции в маленький плюс

«Never back down»


Год сменялся годом, а игра все не выходила.

Первые десять лет детства сколько я мог себя помнить, я хотел стать футболистом, я просыпался с мячом от фирмы «Select» и я отыграл 10 лет своей жизни в футбол, 2 года из них на профессиональном уровне. Четыре раза в промежутке с 8 до 14 лет я пробовал пройти отбор в Московский Спартак. И три раза из четырех меня не должны были брать, но один раз должны были дать хотя бы месяц. Просмотр мне было суждено пройти, идя в СДЮШ, а попасть в совсем другую команду. Заплутав в зимних Лужниках, мы с матерью попали в манеж, где легендарный советский тренер Новиков тренировал юношеский состав Локомотива. Так месяц потренировавшись с парнями на 3 года старше меня в одном из манежей Лужников и на беговых дорожках стадиона в Черкизово, я очутился в Свиблово, в самой ужасной инфраструктуре на постсоветском пространстве, с командой своего года рождения. Год прошел мягко говоря неудачно, следующий год я уже начинал в четвертой лиге в московских Филях, где по сути и закончил «Карьеру» разорвав на ногах связки, не играя в футбол а, понтуясь во дворе продольным шпагатом. Появились другие интересы: качалка, университет, да и естественно компьютерные игры похоронили во мне часть футболиста.
Читать дальше →

Сортировка… хэш-таблицей (ещё подсчётом-деревом и HashMap'ом)

Reading time6 min
Views7.9K
Три дня назад я задумался об объединении сортировки подсчётом и деревом. Обсудив её с коллегой, пришли к следующему решению: вместо TreeSet использовать HashMap (при чём здесь вообще TreeSet, можно посмотреть ниже). Но и этого мне показалось мало, так что я решил реализовать собственную хэш-таблицу и посмотреть, что из этого выйдет. Результаты показались мне довольно интересными.
Читать дальше →

Сетевой код Age of Empires: 1500 лучников на модем 28,8 кбит/с

Reading time19 min
Views39K
image

Примечание переводчика: этой статье уже 17 лет, и интересна она только с исторической точки зрения. Любопытно узнать, как удавалось разработчикам добиться плавной сетевой игры в эпоху 28,8k-модемов и первых «Пентиумов».

В этой статье рассказывается об архитектуре и реализации, а также о некоторых уроках, полученных при создании многопользовательского (сетевого) кода игр Age of Empires 1 и 2. Также в ней излагаются современные и будущие подходы с созданию сетевой архитектуры, используемые Ensemble Studios в своих игровых движках.

Мультиплеер Age of Empires: требования к структуре


В начале работы над многопользовательским кодом Age of Empires в 1996 году мы поставили перед собой очень конкретные цели, необходимые для реализации требуемого игрового процесса.
Читать дальше →

Игровой интерфейс и с чем его едят

Reading time12 min
Views45K
Всем привет! Данная статья — об игровых интерфейсах и порядку работы с ними. Она предназначена в первую очередь для тех, кто работает в игровой индустрии и в том или ином виде влияет на разработку интерфейса, но при этом сам не является UI/UX специалистом. Проект-менеджеры, продюсеры, геймдизайнеры, программисты, работающие с GUI, художники — я писал этот текст, думая о вас, ребята.
Читать дальше →

Лайфхаки изготовления двухслойных плат (ЛУТ)

Reading time8 min
Views65K

Потребность делать железо периодически возникает у многих технарей. Иногда задача позволяет нафигачить всё проводами на макетке, а иногда, к сожалению, нужно нечто посерьёзнее. Вот и меня однажды настигла потребность делать печатные платы… Лазерно-утюжная технология кустарного изготовления плат по началу сильно отталкивает своей рандомностью (на чём печатать, как греть, с какой силой давить, как отдирать, и т.д.), но друзья поделились опытом, и оказалось, что это действительно не так уж сложно. ЛУТ бесспорно дешевле любого другого варианта, и (внезапно) вполне подходит для двухслойных плат.


Кому интересно посложнее, подороже и поточнее, можно делать фоторезистом, но наша методика (основным элементом которой является особая бумага) позволяет стабильно прорабатывать шины 0.3/0.3 мм, так что в нашем сообществе бытует мнение что тян фоторезисты не нужны.


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


Под катом я поделюсь детерминированной методикой изготовления двухслойных печатных плат по технологии ЛУТ с различными резервными схемами на случай косяков. От идеи до включения. Будем работать с KiCad, Inkscape, наждачкой, утюгом, персульфатом аммония и гравёром.


Learn OpenGL. Урок 5.6 – Parallax Mapping

Reading time20 min
Views21K
OGL3

Parallax Mapping


Техника текстурирования Parallax Mapping по своему эффекту несколько схожа с Normal Mapping’ом, но основана на другом принципе. Схожесть в том, что, как и Normal Mapping, данная техника значительно увеличивает визуальную сложность и детализацию поверхности с нанесенной текстурой заодно создавая правдоподобную иллюзия наличия на поверхности перепадов высот. Parallax Mapping отлично работает в связке с Normal Mapping для создания весьма достоверных результатов: описываемая техника передает эффект рельефа гораздо лучше Normal Mapping, а Normal Mapping дополняет его для правдоподобной имитации динамического освещения. Parallax Mapping вряд ли можно считать техникой, прямо относящейся к методам имитации освещения, но все же я выбрал этот раздел для его рассмотрения, поскольку метод является логическим развитием идей Normal Mapping. Также отмечу, что для разбора этой статьи требуется хорошее понимание алгоритма работы Normal Mapping, в особенности понятия касательного пространства или tangent space.

Создание мультяшного шейдера воды для веба. Часть 1

Reading time11 min
Views9.5K
В своём туториале «Создание шейдеров» я в основном рассматривал фрагментные шейдеры, которых достаточно для реализации любых 2D-эффектов и примеров на ShaderToy. Но существует целая категория техник, требующих использования вершинных шейдеров. В этом туториале я расскажу о создании стилизованного мультяшного шейдера воды и познакомлю вас с вершинными шейдерами (vertex shaders). Также я расскажу о буфере глубин и о том, как использовать его для получения дополнительной информации о сцене и для создания линий морской пены.

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


Этот эффект состоит из следующих элементов:

  1. Просвечивающий меш воды с разбитыми на части (subdivided) полигонами и смещёнными вершинами для создания волн.
  2. Статичные линии воды на поверхности.
  3. Имитируемая плавучесть лодок.
  4. Динамические линии пены вокруг границ объектов в воде.
  5. Постобработка для создания искажений всего, что находится под водой.

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

«Разработка игр и теория развлечений»: основные тезисы книги Рэфа Костера

Reading time8 min
Views28K
image

В июне 2018 г. в России был опубликован перевод последнего издания книги Рэфа Костера “Разработка игр и теория развлечений” (A Theory of Fun for Game Design).

Рэф Костер — один из наиболее известных и авторитетных теоретиков геймдизайна, обладатель титула “Легенда онлайн-игр” (2012). Хотя первое издание книги Костера о разработке игр было выпущено более 10 лет назад, его работа об этиологии любви человека к играм и о том, зачем нам нужны игры и какими они должны быть в современных условиях, до сих пор актуальна.
Под катом — тезисный пересказ русскоязычного издания книги.
Читать дальше →

Как мы писали сетевой код мобильного PvP шутера: синхронизация игрока на клиенте

Reading time13 min
Views35K
В одной из предыдущих статей мы провели обзор технологий, которые используются на нашем новом проекте — fast paced шутере для мобильных устройств. Теперь хочу поделиться, как устроена клиентская часть сетевого кода будущей игры, с какими трудностями мы столкнулись и как их решали.


Читать дальше →

Сортировки вставками

Reading time7 min
Views196K


Общая суть сортировок вставками такова:

  1. Перебираются элементы в неотсортированной части массива.
  2. Каждый элемент вставляется в отсортированную часть массива на то место, где он должен находиться.

Траффик

Нерегулярные тайлы на поверхности процедурно-генерируемых планет

Reading time7 min
Views4.2K
Здесь будет рассмотрен способ деления сферической поверхности процедурно-генерируемой планеты нерегулярными тайлами, и, как его следствие, подразделение океана и континентов на отдельные участки (сектора). Мы предполагаем, что на поверхности планеты уже задана структура участков суши с помощью какой-либо GIS и возможен экспорт векторных данных в ESRI shapefiles или непосредственно в PostgreSQL базу данных с расширением PostGIS. Сам процесс создания секторов осуществляется средствами PostGIS.
Читать дальше →

Сортировки обменами

Reading time8 min
Views61K


Если описать в паре предложений по какому принципу работают сортировки обменами, то:

  1. Попарно сравниваются элементы массива
  2. Если элемент слева* больше элемента справа, то элементы меняются местами
  3. Повторяем пункты 1-2 до тех пор, пока массив не отсортируется

* — под элементом слева подразумевается тот элемент из сравниваемой пары, который находится ближе к левому краю массива. Соответственно, элемент справа находится ближе к правому краю.
Траффик

Изучаем ферзя (часть 3)

Reading time8 min
Views31K


Ну вот, мы и дошли до ферзя. Пожалуй это самая легкая после ладьи и слона в объяснении ходов фигура, но далеко не самая простая для понимания. Сила, мощь, пространство — вот слова которые можно применить к этой фигуре. Но научиться пользоваться ферзем — это то же самое что научиться ездить на Ferrari — кажется просто, но с силой двигателя надо еще совладать.

А теперь давайте приступим к ферзю. Вперед!
Читать дальше →

Information

Rating
Does not participate
Location
Paris, Paris, Франция
Registered
Activity