Pull to refresh
@n0th1ngread⁠-⁠only

User

Send message

Математика для 3D-приложений. Урок 1

Reading time6 min
Views26K

Это первый, вводный урок по линейной алгебре для разработки 3D-приложений от Александра Паничева — ведущего разработчика логики в UNIGINE. В этом уроке разберемся зачем 3D-разработчикам вообще нужна линейная алгебра, а также рассмотрим основные операции над векторами.

Читать далее
Total votes 24: ↑23 and ↓1+22
Comments12

Пора обновить ваш монитор

Reading time16 min
Views174K

Иллюстрация: Юлия Прокопова

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

Поэтому я оптимизирую настройки, чтобы показывать действительно, действительно хорошие буквы. Для этого необходим хороший монитор. Не просто нужен, а ОБЯЗАТЕЛЕН. А под «хорошим» я имею в виду настолько хороший, насколько это возможно. Это мои мысли, основанные на моём собственном опыте того, какие мониторы лучше подходят для программирования.
Читать дальше →
Total votes 181: ↑148 and ↓33+115
Comments991

Как написать собственный игровой движок на C++

Reading time11 min
Views127K

Перевод статьи Джеффа Прешинга (Jeff Preshing) How to Write Your Own C++ Game Engine.


Как написать собственный игровой движок на C++


В последнее время я занят тем, что пишу игровой движок на C++. Я пользуюсь им для создания небольшой мобильной игры Hop Out. Вот ролик, записанный с моего iPhone 6. (Можете включить звук!)



Hop Out — та игра, в которую мне хочется играть самому: ретро-аркада с мультяшной 3D-графикой. Цель игры — перекрасить каждую из платформ, как в Q*Bert.


Hop Out всё ещё в разработке, но движок, который приводит её в действие, начинает принимать зрелые очертания, так что я решил поделиться здесь несколькими советами о разработке движка.


С чего бы кому-то хотеть написать игровой движок? Возможных причин много:

Total votes 39: ↑39 and ↓0+39
Comments17

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

Reading time3 min
Views176K
Процесс создания in-game модели персонажа от эскиза до релиза.

image

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

Гаджеты для сна

Reading time6 min
Views40K
image

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

На Хабре бурно обсуждают в комментариях «искусственные рассветы», умные автоматические шторы:


Под катом — краткий обзор новинок гаджетов для сна 2019 года.
Total votes 28: ↑24 and ↓4+20
Comments34

Менеджмент памяти или как реже стрелять себе в ногу

Reading time20 min
Views28K

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


Зачем это необходимо? Программа — это последовательность команд по обработке данных (в самом общем случае). Эти данные необходимо некоторым образом хранить, загружать, передавать и т.д. Все эти операции не происходят мгновенно, следовательно, они непосредственно влияют на скорость работы вашего конечного приложения. Умение оптимально управлять данными в процессе работы позволит вам создавать весьма нетривиальные и очень требовательные к ресурсам программы.


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



Невозможно все держать в памяти. Но если не успел подгрузить, то получишь мыло

Читать дальше →
Total votes 63: ↑62 and ↓1+61
Comments49

Ограничения 16-битных игр и их воссоздание в Unity

Reading time10 min
Views14K
image

В нашем первом туториале по ретро-играм мы показали, как настраивать инструмент 2D Pixel Perfect и как создавалась графика в эпоху 8-битных игр. В этом посте мы перенесёмся в 16-битную эру. С помощью Mega Cat Studios мы узнаем, как создавать аутентичную графику для игр в стиле Sega Genesis (Mega Drive) и Super NES при помощи параметров, графических структур и цветовых палитр Unity.

Создание аутентичной графики в стиле Genesis


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

Палитры и субпалитры


Переход от 8-битных к 16-битным консолям благодаря усложнению оборудования предоставил разработчикам больше возможностей. Тем не менее, принципы создания качественной NES-графики всё ещё остаются в силе. Вся графика по-прежнему хранится в тайлах, например, размером 8×8, и собирается из них в большие изображения — спрайты и элементы фона. Художники по-прежнему ограничены субпалитрами с общим прозрачным цветом, но 16 бита обеспечивают бОльшую гибкость работы с палитрами. Вас скорее всего порадует то, что у 16-битных консолей не было жёстко заданной цветовой палитры, то есть по сравнению с NES количество доступных цветов сильно расширилось.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments4

Текстурирование, или что нужно знать, чтобы стать Художником по поверхностям. Часть 3. PBR и материалы

Reading time13 min
Views83K
В прошлой части тутора мы разобрали принцип работы масок, что такое «текстура», и что абсолютно для всего используются каналы — параметры пикселя. Теперь рассмотрим всеми любимый PBR И соберем текстуры для создания мокрого грязного асфальта.

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

Также, если что-то совсем будет не понятно — очень прошу сообщить об этом, чтобы я мог раскрыть эту тему более подробно.

Часть 1. Пиксель здесь
Часть 2. Маски и текстуры здесь
Часть 3. PBR и Материалы — вы ее читаете.
Часть 4. Модели, нормали и развертка здесь.
Часть 5. Система материалов здесь.

Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments14

Повесть о создании классической RTS в домашних условиях с нуля + разбор основных этапов разработки (AI, сеть и т.д.)

Reading time38 min
Views75K
image

В статье речь пойдет об одном очень не новом проекте, который создавался совсем в другое время и совсем в других условиях. Это моя старенькая RTS под названием Земля онимодов (Onimod land). Чтобы было сразу понятно, что она собой представляет, можно посмотреть коротенькое видео:
Читать дальше →
Total votes 117: ↑116 and ↓1+115
Comments119

Введение в новую систему тайловых карт Unity

Reading time12 min
Views103K

Знакомство с систему двухмерных тайловых карт Unity даёт отличную возможность экономии времени инди-разработчиков и игровых студий на прототипирование и создание качественных 2D-игр.

Без этой системы можно потратить дни, если не недели на написание собственной системы тайловых карт или переработку чужой. И это только программирование, а как насчёт редактора тайловых карт?

Новая система бесплатна и встроена непосредственно в редактор Unity. Она предоставляет множество возможностей, которые мы рассмотрим в этом туториале.

В этой статье мы воспользуемся простой тайловой 2D-игрой, чтобы узнать следующее:

  • Как работают тайловые карты.
  • Как включать тайловые карты в Unity и настраивать сетку.
  • Как добавлять в проект спрайты, преобразовывать их в тайлы, а затем добавлять их в палитру тайлов.
  • Как использовать инструменты редактора тайлов для создания уровней.
  • Как сортировать тайлы и размещать их в разных слоях.
  • Как добавить тайлам физику Unity.
  • Как динамически окрашивать тайлы.
  • Как изменять тайлы-префабы с помощью собственного кода и логики.
  • Как добавлять в проект собственные расширения и скрипты тайловых карт.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments0

Как перенести лицензионную Windows 10 на другой компьютер

Reading time3 min
Views309K


Если вы когда-нибудь самостоятельно собирали компьютер и покупали лицензию на Windows, вам, вероятно, не захочется покупать ещё одну лицензию для следующего компьютера. Но, используя команду slmgr, можно деактивировать старый ПК и активировать новый.

Деактивируйте старый ПК вместо покупки новой лицензии


Лицензии на Windows стоят дорого. Цена официального ключа от Microsoft, от $100 до $200, может сравниться с ценой терабайтного твердотельного накопителя, 16 Гб RAM или материнской платы. А покупать дешёвые ключи с сомнительных веб-сайтов – это не очень хорошая идея. Поэтому платить за очередную лицензию, когда вы избавляетесь от старого компьютера в пользу нового – не очень интересная идея. Но хорошая новость в том, что можно деактивировать ПК, который вы больше не будете использовать, и перенести лицензию на новый.
Читать дальше →
Total votes 61: ↑50 and ↓11+39
Comments181

Великий исход из индустрии видеоигр

Reading time13 min
Views17K

История о том, как Фрэнк Д'Анджело попал в индустрию видеоигр, трогательна и типична одновременно.

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

Классический пианист Д'Анджело думал о том, как можно превратить свои хобби в карьеру — он начал участвовать в жизни онлайн-форумов о музыке в видеоиграх, записал и выложил онлайн больше 200 партитур разных игровых мелодий. На последнем курсе обучения звукотехнике в 2010 году его наняла интерном компания Volition, работавшая над Saint’s Row и Red Faction Armageddon. «Это была карьера моей мечты», — рассказывает Фрэнк. «Наверно, это был самый счастливый для меня момент — результат многих лет движения к цели и её достижение».

Оглядываясь назад, Д'Анджело говорит, что считал это событие концом своих трудностей, но оно оказалось самым началом. «Я был наивен, считал, что после попадания в индустрию всё встанет на свои места. На самом деле это оказалось самым простым», — говорит он.
Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments11

Физика игрового торнадо: как реализована аэродинамика в Just Cause 4 (трафик)

Reading time23 min
Views9.8K
Жак Кернер — старший инженер-разработчик ПО в Avalanche Studios.


Как будто раньше игра была недостаточно безумной

Введение


Серия игр Just Cause и Avalanche Studios известны своей технологией открытого мира, обеспечивающего разнообразный и увлекательный игровой процесс. В последней версии игры — Just Cause 4 — добавлены ветер и погодные катаклизмы, ставшие новинкой в стеке технологий, углубляющих игровой процесс. Но экстремальные природные условия изначально задумывались не просто как способ симуляции более правдоподобного мира. Ярость природы управляется силами зла, противостоящими Рико Родригесу. Мы намеревались сделать так, чтобы ветер проявлялся более явно и экстремальные погодные условия не выглядели как внезапные события, чуждые этому миру. В этой статье представлены техники, разработанные нами для реализации ветра во всех его проявлениях с физической точки зрения, а также реакции на него всех объектов.

[Под катом около 120 МБ файлов GIF]
Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments5

Итоги эксперимента с четырёхдневной рабочей неделей для офисных работников Новой Зеландии

Reading time3 min
Views82K
В ноябре 2018 года новозеландская компания Perpetual Guardian стала одной из первых в мире, кто перешёл на четырёхдневную рабочую неделю, в которой количество рабочих часов уменьшено с 37,5 до 30. Это сделано по результатам предварительного эксперимента, который помогли провести и оценить учёные из Технологического университета Окленда.

Анализ одного из самых масштабных испытаний четырёхдневной рабочей недели не выявил снижения объёма производства, если для офисных работников можно говорить о «производстве». Но суть в том, что бизнес компании продолжался без изменений. Объём работ, который выполнялся при пятидневке, сохранился и при четырёхдневной неделе, при этом зафиксировано снижение стресса и увеличение вовлечённости персонала.
Читать дальше →
Total votes 105: ↑104 and ↓1+103
Comments284

Книга «Unity в действии. Мультиплатформенная разработка на C#. 2-е межд. издание»

Reading time8 min
Views37K
image Привет, Хаброжители! Второе издание «Unity в действии» было полностью переработано, чтобы познакомить вас с новыми подходами и идеями, позволяющими максимально эффективно использовать Unity для разработки игр. Больше внимания уделено проектированию двумерных игр, фундаментальные концепции которых читатель может применить на практике и построить сложный двумерный платформер. Эту книгу можно смело назвать введением в Unity для профессиональных программистов. Джозеф Хокинг дает людям, имеющим опыт разработки, всю необходимую информацию, которая поможет быстро освоить новый инструмент и приступить к созданию новых игр. А учиться лучше всего на конкретных проектах и практических заданиях.

Unity зачастую представляют как набор компонентов, не требующих программирования, что в корне неверно. Для создания успешной игры необходимо многое: великолепная работа художника, программистские навыки, интересная история, увлекательный геймплей, дружная и слаженная работа команды разработчиков. А еще нельзя забывать про безупречную визуализацию и качественную работу на всех платформах — от игровых консолей до мобильных телефонов. Unity объединяет мощный движок, возможности профессионального программирования и творчества дизайнеров, позволяя воплотить в жизнь самые невероятные и амбициозные проекты.
Осваивайте Unity и быстрее приступайте к созданию собственных игр!
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments11

Введение в программирование: простой 3D-шутер с нуля за выходные, часть 1

Reading time8 min
Views75K
Этот текст предназначен для тех, кто только осваивает программирование. Основная идея в том, чтобы показать этап за этапом, как можно самостоятельно сделать игру à la Wolfenstein 3D. Внимание, я совершенно не собираюсь соревноваться с Кармаком, он гений и его код прекрасен. Я же целюсь совсем в другое место: я использую огромную вычислительную мощность современных компьютеров для того, чтобы студенты могли создавать забавные проекты за несколько дней, не погрязая в дебрях оптимизации. Я специально пишу медленный код, так как он существенно короче и просто понятнее. Кармак пишет 0x5f3759df, я же пишу 1/sqrt(x). Мы преследуем разные цели.

Я убеждён, что хороший программист получается только из того, кто кодит дома в своё удовольствие, а не только просиживает штаны на парах в университете. В нашем университете программистов учат на бесконечной череде всяких библиотечных каталогов и прочей скукоте. Брр. Моя цель — показать примеры проектов, которые интересно программировать. Это замкнутый круг: если интересно делать проект, то человек проводит над ним немало времени, набирается опыта, и видит вокруг ещё больше интересного (оно же стало доступнее!), и снова погружается в новый проект. Это называется проектное обучение, вокруг сплошной профит.

Простыня получилась длинная, поэтому я разбил текст на две части:


Выполнение кода из моего репозитория выглядит вот так:


Это не законченная игра, но только заготовка для студентов. Пример законченной игры, написанной двумя первокурсниками, смотрите во второй части.
Читать дальше →
Total votes 74: ↑74 and ↓0+74
Comments65

256 строчек голого C++: пишем трассировщик лучей с нуля за несколько часов

Reading time8 min
Views142K
Публикую очередную главу из моего курса лекций по компьютерной графике (вот тут можно читать оригинал на русском, хотя английская версия новее). На сей раз тема разговора — отрисовка сцен при помощи трассировки лучей. Как обычно, я стараюсь избегать сторонних библиотек, так как это заставляет студентов заглянуть под капот.

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

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

Итак, сегодня я покажу, как отрисовывать подобные картинки:


Читать дальше →
Total votes 241: ↑241 and ↓0+241
Comments124

Нужно больше разных Blur-ов

Reading time5 min
Views13K
Размытие изображения посредством фильтра Gaussian Blur широко используется в самых разных задачах. Но иногда хочется чуть большего разнообразия, чем просто один фильтр на все случаи жизни, в котором регулировке поддаётся только один параметр — его размер. В этой статье мы рассмотрим несколько других реализаций размытия.


Читать дальше →
Total votes 54: ↑53 and ↓1+52
Comments11

Трехмерный движок на формулах Excel для чайников

Reading time9 min
Views69K


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

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

Также я сделал небольшое веб-приложение, где можно потренироваться в создании формул для произвольных фигур и сгенерировать свой файл Excel.

Осторожно: 19 картинок и 3 анимации под катом.
Читать дальше →
Total votes 211: ↑209 and ↓2+207
Comments54

Математика в Gamedev по-простому. Векторы и интегралы

Reading time7 min
Views50K
Всем привет! Сегодня хотелось бы поговорить о математике. Математика очень интересная наука и она может сильно пригодиться при разработке игр, да и в целом при работе с компьютерной графикой. Многие (особенно новички) просто не знают о том, как она применяется при разработке. Существует множество задач, не требующих глубокого понимания таких понятий как: интегралы, комплексные числа, группы, кольца и др, но благодаря математике вы можете решать многие интересные задачи. В этой статье мы рассмотрим векторы и интегралы. Если интересно, добро пожаловать под кат. Иллюстрирующий Unity проект, как всегда, прилагается.


Total votes 23: ↑18 and ↓5+13
Comments15
1
23 ...

Information

Rating
Does not participate
Registered
Activity