Как стать автором
Обновить
63
0
Андрей @Smi1e

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

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

О трехмерных шутерах на CSS +HTML [перевод]

Время на прочтение3 мин
Количество просмотров15K
Привет, Хабр! Представляю вашему вниманию перевод статьи Building a 3D Game with CSS + HTML автора Michael Bromley.

Не так давно я изучал редко используемые функции CSS — функцию анимации и 3D, а после общения в конференции по JavaScript я собрал вот это demo. Пока я трудился над ним, мне стало любопытно, как далеко можно зайти в конструировании трёхмерной графики на чистом CSS.

image
(скриншот выполнен переводчиком)
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии10

Линейная алгебра для разработчиков игр

Время на прочтение19 мин
Количество просмотров764K
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →
Всего голосов 314: ↑296 и ↓18+278
Комментарии61

Раскрашиваем чёрно-белую фотографию с помощью нейросети из 100 строк кода

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

Перевод статьи Colorizing B&W Photos with Neural Networks.

Не так давно Амир Авни с помощью нейросетей затроллил на Reddit ветку /r/Colorization, где собираются люди, увлекающиеся раскрашиванием вручную в Photoshop исторических чёрно-белых изображений. Все были изумлены качеством работы нейросети. То, на что уходит до месяца работы вручную, можно сделать за несколько секунд.

Давайте воспроизведем и задокументируем процесс обработки изображений Амира. Для начала посмотрите на некоторые достижения и неудачи (в самом низу — последняя версия).
Всего голосов 62: ↑61 и ↓1+60
Комментарии35

Знакомство с WebAssembly

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


Эта статья основана на моём выступлении на ITSubbotnik, прошедшем в Рязани 14 октября 2017 года. На русском пока что довольно мало материала на эту тему, надеюсь что статья будет вам полезна.


Disclaimer: Автор не является экспертом ни в WebAssembly, ни в JavaScript. Данная статья есть компиляция мыслей и идей, полученных из выступлений других людей на данную тему, плюс эпизодического опыта изучения WebAssembly в течение нескольких месяцев.

Читать дальше →
Всего голосов 70: ↑68 и ↓2+66
Комментарии121

Интернет: всё очень плохо

Время на прочтение18 мин
Количество просмотров72K
Неведомая фигня проникает в мозги сотням миллионов детей и мы все соучастники этого.

image


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

Как человек, выросший в Интернете, я считаю, что сеть оказала одно из самых важных влияний на то, кем я являюсь сегодня. В моей комнате был компьютер с доступом в Интернет с 13 лет. Это дало мне доступ ко многим вещам, которые были совершенно неуместны для подростка, но все было в порядке. Культура, политика и межличностные отношения, которые я считаю главными для моей личности, формировались в Интернете, таким образом, каким я всегда считал полезным для себя лично. Я всегда был критическим сторонником Интернета и всего, что он принес, и в целом считал его эмансипационным и полезным. Я заявляю об этом с самого начала, потому что, размышляя о последствиях проблемы, я, в значительной степени, буду опираться на свои собственные обобщения и предрассудки.
Всего голосов 110: ↑66 и ↓44+22
Комментарии397

За пять дней я прошел собеседования в пяти компаниях Силиконовой долины и получил пять предложений о работе

Время на прочтение12 мин
Количество просмотров118K
За пять дней, с 24 по 28 июля 2017 года, я прошел собеседования в LinkedIn, Salesforce Einstein, Google, Airbnb и Facebook; все пять компаний предложили мне работу. Это был замечательный опыт и я понимаю, как мне повезло, что мои усилия оправдали себя, поэтому решил написать об этом. Здесь я расскажу о том, как готовился к собеседованиям, как они проходили и какое впечатление произвели на меня компании.



Как все началось


Я отработал в Groupon почти три года. Это моя первая работа, там были и прекрасные люди, и отличные проекты. Мы делали всякие интересные штуки, вводили перемены внутри компании, публиковали материалы и все в таком духе. Но со временем я стал ощущать, что темп моего самообразования стал затухать (попросту говоря, замедляться), мне не хватало пищи для ума. К тому же, как и всякого разработчика ПО из Чикаго, меня тянуло в Область залива Сан-Франциско — ведь там столько известных компаний.

Жизнь коротка, а профессиональная жизнь еще короче. Обговорив все с женой и заручившись ее полной поддержкой, я решил сделать решительный шаг и в первый раз в жизни поменять работу.
Читать дальше →
Всего голосов 95: ↑88 и ↓7+81
Комментарии98

Просто о D3.js

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


70 тысяч звездочек на гитхабе и сотни интересных проектов. Кажется, что D3 это что-то большое и очень сложное, но это не так. Я расскажу об основах D3 и поделюсь опытом разработки инфографики Бюростат.

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

4 слова

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

В нашей компании на данный момент есть три вакансии:

Frontend-разработчик
QA Инженер
Младший UX/UI-дизайнер

И почти всю эту неделю мы проводим в нашем офисе собеседования кандидатов, некоторые из которых получаются довольно забавными. Например, один кандидат спросил, во что мы играем по локалке. На фоне этого в паблике ВК решили устроить небольшую развлекуху: «Провалите собеседование в компанию мечты (должность на выбор: фронтендер / бэкендер / дизайнер / сисадмин) с помощью 4 слов?». С первых минут в комментариях стало смешно — мы даже решили сделать небольшую подборку.
Читать дальше →
Всего голосов 78: ↑59 и ↓19+40
Комментарии166

Caesar3 все таки open

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


Некоторое время назад, примерно с 2008 года, у меня был хобби-проект по воссозданию довольно знаменитого конце ХХ века ситибилдера Caesar III ©, в процессе работы над игрой был написан ряд статей по механике игры и её внутреннему устройству (например эта).
Дайте же сорцы, наконец
Всего голосов 76: ↑76 и ↓0+76
Комментарии30

[DotNetBook] Реализация IDisposable: правильное использование

Время на прочтение22 мин
Количество просмотров37K
С этой статьей я начинаю публиковать целую серию статей, результатом которой будет книга по работе .NET CLR, и .NET в целом. Тема IDisposable была выбрана в качестве разгона, пробы пера. Вся книга будет доступна на GitHub: DotNetBook. Так что Issues и Pull Requests приветствуются :)

Disposing (Disposable Design Principle)



Сейчас, наверное, практически любой программист, который разрабатывает на платформе .NET, скажет, что ничего проще этого паттерна нет. Что это известный из известнейших шаблонов, которые применяются на платформе. Однако даже в самой простой и известнейшей проблемной области всегда найдется второе дно, а за ним еще ряд скрытых кармашков, в которые вы никогда не заглядывали. Однако, как для тех, кто смотрит тему впервые, так и для всех прочих (просто для того, чтобы каждый из вас вспомнил основы (не пропускайте эти абзацы (я слежу!))) — опишем все от самого начала и до самого конца.

IDisposable



Если спросить, что такое IDisposable, вы наверняка ответите что это

public interface IDisposable 
{
	void Dispose();
} 


Для чего же создан интерфейс? Ведь если у нас есть умный Garbage Collector, который за нас чистит всю память, делает так, чтобы мы вообще не задумывались о том, как чистить память, то становится не совсем понятно, зачем ее вообще чистить. Однако есть нюансы.

Примечание


Глава, опубликованная на Хабре не обновляется и возможно, уже несколько устарела. А потому, прошу обратиться за более свежим текстом к оригиналу:




Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Комментарии66

Создаём собственный физический 2D-движок: части 2-4

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


Оглавление


Часть 2: ядро движка

  • Интегрирование
  • Метки времени
  • Модульная архитектура
    • Тела
    • Формы
    • Силы
    • Материалы
  • Широкая фаза
    • Отсечение дубликатов контактных пар
    • Система слоёв
  • Проверка пересечения полупространств

Часть 3: трение, сцена и таблица переходов

  • Трение
  • Сцена
  • Таблица переходов коллизий

Часть 4: ориентированные твёрдые тела

  • Математика вращения
  • Ориентированные формы
  • Распознавание коллизий
  • Разрешение коллизий

Всего голосов 52: ↑51 и ↓1+50
Комментарии8

Некоторые особенности программирования временных событий в играх

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

Дóжили. Недавно была обнаружена проблема синхронизации игрового процесса с реальным временем не где-нибудь, а в игре "Quake Champions". Название игры "Quake" раньше было синонимом чего-то крутого, высокотехнологичного и идеального. И в голову не могло придти, что через какую-то пару десятков лет и камня на камне не останется от былого превосходства, а в новой игре с именем "Quake" появятся грубые ошибки, приводящие к тому, что один из игроков может получить преимущество только потому, что у него лучше "железо". Дело в том, что скорость стрельбы в новом шутере зависит от fps, то есть, количество пуль, выпущенных игроками с разным значением fps за один и тот же промежуток времени будет разным, а значит один из них может получить преимущество.


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

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

Создаём собственный физический 2D-движок. Часть 1: основы и разрешение импульсов силы

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


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

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

В этой части туториала мы рассмотрим следующие темы:

  • Простое распознавание коллизий
  • Генерирование простого многообразия
  • Разрешение импульсов силы
Всего голосов 42: ↑41 и ↓1+40
Комментарии21

Как рендерит кадр движок Unreal Engine

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


Однажды я искал исходный код Unreal и, вдохновлённый отличным анализом того, как популярные игры рендерят кадр (перевод статьи на Хабре), я решил тоже сделать с ним что-то подобное, чтобы изучить, как движок рендерит кадр (с параметрами и настройками сцены по умолчанию).

Поскольку у нас есть доступ к исходному коду, мы можем изучить исходники рендерера, чтобы понять, что он делает, однако это довольно объёмная часть движка, а пути рендеринга сильно зависят от контекста, поэтому проще будет исследовать чистый низкоуровневный API (иногда заглядывая в код, чтобы заполнить пробелы).
Читать дальше →
Всего голосов 64: ↑62 и ↓2+60
Комментарии14

UX-дизайн: 50 вещей, которые вы наверняка забыли сделать

Время на прочтение8 мин
Количество просмотров37K
«Я не злюсь, я просто разочарован.»
— PM

image


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

Представляем вам чеклист из 50 пунктов для самопроверки. Вот примерные подразделы:

  1. Логин и регистрация
  2. Первый опыт
  3. Важные детали
  4. Запуск
  5. Профиль
  6. Безумные потоки


Всего голосов 33: ↑26 и ↓7+19
Комментарии37

Полный цикл создания модели персонажа для игры

Время на прочтение3 мин
Количество просмотров176K
Процесс создания in-game модели персонажа от эскиза до релиза.

image

Доброго времени суток. Меня зовут Ivan. Сегодня я поделюсь с вами деталями разработки игр, а именно расскажу о полном цикле создания персонажа. Итак, поехали!
Читать дальше →
Всего голосов 54: ↑51 и ↓3+48
Комментарии38

Time Travel Debugging в новом WinDbg

Время на прочтение3 мин
Количество просмотров12K
Возможно, вы уже слышали о том, что Microsoft выпустила обновлённую версию своего известного отладчика WinDbg, который и раньше был хорош, но слишком уж отстал по интерфейсу от современных тенденций. Новая версия WinDbg, к счастью, не пошла настолько далеко, чтобы получить новомодный UWP-интерфейс, но вот классические риббон-бары в стиле Microsoft Office — ей очень идут. Приложение распространяется только через Microsoft Store и работают на Win10 как минимум с Anniversary Update. Microsoft говорит, что это сделано для удобства установки и обновления, но я как-то не помню, чтобы с классическим WinDbg были какие-то проблемы с установкой. Скорее это выглядит как ещё один способ приучения разработчиков и пользователей к привычке пользоваться только самой последней версией Windows. Ну ок, пусть так.

WinDbg выглядит симпатично:

image

И вся его мощь в виде команд, отладки драйверов, удалённой отладки, скриптов и прочего — осталась при нём. Более того, 25 сентября было выпущено обновление, добавляющее в новый WinDbg важную фичу — отладку с возможностью двигаться по ходу работы программы в обратном направлении (Time Travel Debugging). Возможность интересная, поскольку попав в некоторое невалидное состояние программист часто задаётся вопросом «А как же так вышло?». Ранее получить на него ответ можно было либо проигрывая в уме команды в обратном порядке, либо перезапуская отладку снова и снова с добавлением логов и новых контрольных точек. Всё это занимало время. Давайте посмотрим, как это работает сейчас.
Читать дальше →
Всего голосов 49: ↑48 и ↓1+47
Комментарии27

Дизайн UI в играх на примере NieR:Automata

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


Привет, меня зовут Хисаёси Кидзима, я дизайнер UI и мехов для NieR:Automata. Игровой UI (интерфейс пользователя) часто остаётся незамеченным, поэтому я рад услышать, что фанаты нашли дневник разработчиков NieR:Automata и спросили о моей работе!

Когда директор NieR:Automata Йоко Таро работает над играми, он всегда чётко знает, чего хочет, и UI не стал исключением. Я хочу рассказать вам о моей работе над UI для NieR:Automata, а также о тех заданиях, которые мне давал Йоко-сан.
Всего голосов 35: ↑34 и ↓1+33
Комментарии4

Вертикальный ритм

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

Сетка 8pt — это мощная система для создания последовательных и визуально привлекательных пользовательских интерфейсов. Этот пост о том, как установить вертикальный ритм и типографию в сетке 8pt. Чтобы лучше понимать материал, зацените статью "Введение в систему 8pt сеток" и "Сетка на основе 8pt: обводка и разметка".

Что же такое вертикальный ритм и почему он так важен


Ритм достигается тогда, когда элементы вашего дизайна состоят из повторяющихся шаблонов. Это позволяет вашему окончательному дизайну выглядеть преднамеренно, профессионально и последовательно.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии4

Про 112, и как оно работает теперь

Время на прочтение4 мин
Количество просмотров45K
Не дождавшись юбилея чуть ли не единственного поста про службу 112 от 2009 года (здесь), хочу обновить информацию по этой симпатичной мне службе. Под катом описал текущее состояние службы у нас в Воронеже, но можно считать, что в течение года под это описание будет подходить система-112 в 80% субъектов РФ. А для тех, кому читать не интересно, скажу коротко: «В любой непонятной ситуации звоните в 112!»
Читать дальше →
Всего голосов 89: ↑88 и ↓1+87
Комментарии184

Информация

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