Как стать автором
Обновить
42
0
Cougar @Cougar

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

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

Создание концепт-артов в 3D

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

Бен Николас поделился секретами своего рабочего процесса и рассказал об источниках вдохновения для ярких экспериментов с 3D.

Введение


Я начал заниматься 3D, когда мне было 13 лет. Мой хороший друг детства тогда баловался с 3D, и он вдохновил меня на его самостоятельное изучение. Сначала я работал в Bryce, потом довольно быстро перешёл к 3ds Max и Maya. В старшей школе я уже занимался 3D на фрилансе и выполнял случайные работы, пользуясь обретёнными знаниями. Больше всего меня притягивало hard surface-моделирование, потому что я вырос рядом с самолётными и вертолётными ангарами, ведь мой отец был пилотом. Он же научил меня любить научную фантастику. Думаю, оба этих аспекта стали основой моего вкуса в искусстве.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии1

Простая работа со Steamworks

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


Unity, C#, Steamworks.NET и Facepunch.Steamworks


Введение


Как и большинству разработчиков игр, мне очень хочется выложить мою игру в Steam.

Как и большинству инди-разработчиков игр, мне не хватает доступа к ресурсам/знаниям, которые дали бы мне чётко понять, что же действительно значит «быть в Steam».

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

Поэтому я решил написать высокоуровневый обзор для людей, которые только начинают разбираться в том, как заставить Steam работать с их играми. В частности, я подробно рассмотрю Steamworks SDK, программную библиотеку Valve, предоставляющую доступ к таким аспектам, как мастерская (Workshop), таблицы лидеров (Leaderboards), достижения (Achievements) и так далее.

Steamworks хорошо задокументирована компанией Valve, но документация написана с точки зрения человека, использующего нативную библиотеку C++ и уже имеющего представление о том, как все эти функции пересекаются. Если это не ваш случай, то так даже лучше! Ниже представлено объяснение для другого человека, который пишет игру на языке более высокого уровня и просто хочет обеспечить простую интеграцию со Steamworks (а это возможно, я гарантирую!). Конкретнее, этот пост предназначен для людей, использующих в той или иной форме C#, а в идеале — работающих в игровом движке Unity.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии2

Планетарный ландшафт

Время на прочтение51 мин
Количество просмотров21K
Трудно поспорить, что ландшафт — неотъемлемая часть большинства компьютерных игр на открытых пространствах. Традиционный метод реализации изменения рельефа окружающей игрока поверхности следующий — берем сетку (Mesh), представляющую из себя плоскость и для каждого примитива в этой сетке производим смещение по нормали к этой плоскости на значение, конкретное для данного примитива. Говоря простыми словами, у нас есть одноканальная текстура размером 256 на 256 пикселей и сетка плоскости. Для каждого примитива по его координатам на плоскости берем значение из текстуры. Теперь просто смещаем по нормали к плоскости координаты примитива на полученное значение(рис.1)


Рис.1 карта высот + плоскость = ландшафт

Почему это работает? Если представить, что игрок находится на поверхности сферы, и радиус этой сферы чрезвычайно велик по отношению к размеру игрока, то искривлением поверхности можно пренебречь и использовать плоскость. Но что если не пренебрегать тем фактом, что мы находимся на сфере? Своим опытом построения такого рода ландшафтов я хочу поделиться с читателем в данной статье.
Читать дальше →
Всего голосов 82: ↑82 и ↓0+82
Комментарии16

Введение в октодеревья

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


Что такое октодеревья? Если вам совершенно неизвестно это понятие, то рекомендую прочитать статью в Википедии (это займёт около пяти минут). Она даёт достаточное представление, но едва ли её будет достаточно, чтобы понять, для чего они используются и как их реализовать.

В этой статье я постараюсь рассказать обо всех этапах, необходимых для создания структуры данных октодеревьев, на примере объяснения концепций, иллюстраций и кода. Также я опишу свои решения, которые принимал на каждом из этапов. Не думайте, что эта статья будет единственно верным руководством к реализации октодеревьев, но она должна дать вам хороший фундамент и её можно использовать для справки.
Читать дальше →
Всего голосов 49: ↑49 и ↓0+49
Комментарии17

Конспект лекции про дизайн игровых механик сэндбокс-проектов от создателя Life is Feudal

Время на прочтение6 мин
Количество просмотров11K
В феврале в Высшей школе бизнес-информатики НИУ ВШЭ проходила однодневная лекционная сессия по игровой индустрии, открытая для посещения всем желающим. Своим опытом с гостями делились преподаватели программы «Менеджмент игровых интернет-проектов» и приглашенные эксперты. Предлагаем вашему вниманию конспект и видео с лекции генерального и технического директора компании Bitbox, создателя популярной игры Life is Feudal: Your Own Владимира Пискунова.


Всего голосов 23: ↑19 и ↓4+15
Комментарии13

Маленькие трюки DirectX и HLSL

Время на прочтение9 мин
Количество просмотров21K
Привет, Хабр! Решил написать статью-заметку о небольших трюках, которые использую в своем скромном движке. Это скорее заметка самому-себе, и матёрые программисты лишь усмехнутся, но, думаю, новичкам она может пригодится.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии8

Руководство начинающего программиста графических шейдеров

Время на прочтение8 мин
Количество просмотров43K
Умение писать графические шейдеры открывает перед вами всю мощь современных GPU, которые сегодня уже содержат в себе тысячи ядер, способных выполнять ваш код быстро и параллельно. Программирование шейдеров требует несколько иного взгляда на некоторые вещи, но открывающийся потенциал стоит некоторых затрат времени на его изучение.

Практически каждая современная графическая сцена являет собой результат работы некоторого кода, написанного специально для GPU — от реалистичных эффектов освещения в новейших ААА-играх до 2D-эффектов и симуляции жидкости.

image
Сцена в Minecraft до и после применения нескольких шейдеров.

Цель этой инструкции


Программирование шейдеров иногда кажется загадочной черной магией. Тут и там можно встретить отдельные куски кода шейдеров, которые обещают вам невероятные эффекты и, возможно, вправду способны их обеспечить — но при этом совершенно не объясняют, что именно они делают и как добиваются столь впечатляющих результатов. Данная статья попробует закрыть этот пробел. Я сфокусируюсь на базовых вещах и терминах, касающихся написания и понимания шейдерного кода, так что впоследствии вы сами сможете менять код шейдеров, комбинировать их или писать свои собственные с нуля.
Читать дальше →
Всего голосов 94: ↑90 и ↓4+86
Комментарии40

Генерирование полигональных карт для игр

Время на прочтение24 мин
Количество просмотров57K
Я хотел научиться генерировать интересные игровые карты, которые не обязательно были бы реалистичными, а также попробовать техники, с которыми раньше не работал. Обычно я создаю карты с другой структурой. Что можно сделать с тысячей полигонов вместо миллиона тайлов? Отчётливо различимые игроком области могут быть полезны для геймплея: местоположения городов, места квестов, территории для захвата или колонизации, ориентиры, точки поиска пути, зоны с разной сложностью и т.д. Я генерировал карты с помощью полигонов, а затем растеризировал их вот в такие карты:

image

Во многих процедурных генераторах карт, в том числе и некоторых моих предыдущих проектах, для генерирования карты высот используются функции шума (midpoint displacement, фракталы, diamond-square, шум Перлина и т.д.). Здесь я их не применял. Вместо неё я использовал структуру графов для моделирования элементов, определяемых ограничениями геймплея (высота, дороги, течение рек, места квестов, типы монстров) и функции шума для моделирования того, что не ограничивается геймплеем (форма побережья, расположение рек и деревьев).
Читать дальше →
Всего голосов 100: ↑99 и ↓1+98
Комментарии11

Почему люди играют в игры

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

10+1 причина того, почему мы делаем то, что делаем.


Статья из серии «хулиганский геймдизайн». О геймдизайне пишет системный аналитик и программист, работавший какое-то время назад в геймдеве (ни разу не гейм дизайнер).


Статья написана в соавторстве с капитаном Очевидность. При этом спорная и изобилует авторской экстраполяцией. Хотя ничего, что опровергалось бы известными мне фактами, я стараюсь не писать.


Поехали?

Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии60

Генерация ландшафтов в Unity3d

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

Думаю все заметили, что сейчас стало появляться множество всяких бродилок с выживанием в стиле Minecraft. Сделать такую решился и я. Начало было лёгким — Unity3d имеет огромный функционал для сознания простеньких игр (и не только). Персонаж, игровые объекты, в общем основу сделать быстро. Но какой minecraft без рандомно генерируемого мира? Это стало первой трудной задачей. И думаю не только для меня. Просмотрев весь гугл и потратив кучу времени на эту бесполезную вещь я решил написать эту статью дабы сократить страдания других.
Читать дальше →
Всего голосов 31: ↑26 и ↓5+21
Комментарии16

Ambient Occlusion Volumes для прожженных самоваров

Время на прочтение7 мин
Количество просмотров14K
Скитаясь по интернету в поисках алгоритмом освещения, которые бы удовлетворили мои потребности, я наткнулся на весьма новый алгоритм, разработанный компанией NVIDIA, название которого AOV (Ambient Occlusion Volumes). Имея в своём распоряжении тёмные осенние ночи и несколько чашек горячего кофе, я решился изучить данный алгоритм, следствием чего является данная статья. Прежде чем я начну, хотелось бы отметить своё удивление по поводу того, что данный алгоритм имеет незаслуженно малую популярность в кругах разработчиков игр, в отличии от всеми знакомого нам SSAO. Содержание данной статьи будет, по большей мере, состоять из теории.
Читать дальше →
Всего голосов 40: ↑38 и ↓2+36
Комментарии11

Создание материалов для Unity в Substance Designer

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

Ужасные мучения


Текстурирование и создание игровых материалов всегда были интересной… и мучительной работой одновременно. До перехода на Substance Designer я использовал для создания всех нужных карт Photoshop и xNormal. Приходилось много раз переключаться между двумя этими приложениями, и это надоедало. Теперь я избавился от этой проблемы.

Substance Designer (SD) — это программное обеспечение, позволяющее создавать материалы и текстуры «на лету». В нём используется удивительно простая система узлов. Я художник, и обычно меня очень пугала работа с узлами (и вообще всем, кроме кисти). Честно говоря, когда я впервые увидел SD, то слегка вздрогнул. К счастью, у авторов программы есть видео, демонстрирующие её возможности. Они дают такого мотивирующего «пинка», что вам приходится совершить «прыжок веры».
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии10

Игровая индустрия: полезные материалы для геймдевелопера от A до Z

Время на прочтение10 мин
Количество просмотров160K
В последнее время мы часто сталкиваемся с вопросами о том, как попасть в игровую индустрию, какие полезные материалы на эту тему можно почитать и посмотреть, с чего начать изучение геймдева. Когда начальные знания появляются, то возникают уже более конкретные вопросы, например «где найти единомышленников для создания игры», «как продвигать свой проект с минимальным бюджетом», «на каких издателей стоит выходить, как это делать и стоит ли вообще», «как улучшить ретеншн в нашей игре» и так далее.

Друг наших образовательных программ Михаил Пименов,  CEO компании Wonder Games и Team Lead инди-проекта "Guard of Wonderland" сам не раз задававший себе эти вопросы, создал для себя выборку всевозможных материалов по индустрии геймдева. От полезных ресурсов, до сообществ, подкастов, книг и фильмов, которые призваны помочь понять, с чего начинается и чем заканчивается разработка игрового проекта. Объединив наши силы, мы с Мишей сделали эту статью с подборкой полезных материалов по игровой индустрии. Вы найдете подборку под катом.


Читать дальше →
Всего голосов 58: ↑54 и ↓4+50
Комментарии26

Советы и рекомендации по работе с Unity3D

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


Я опубликовал первую статью «50 советов по работе с Unity» 4 года назад. Несмотря на то, что бóльшая её часть всё ещё актуальна, многое изменилось по следующим причинам:

  • Unity стал лучше. Например, теперь я могу доверять счётчику FPS. Возможность использования Property Drawers снизила необходимость написания пользовательских редакторов (Custom Editors). Способ работы с префабами стал меньше требовать заданных встроенных префабов (nested prefabs) и их альтернатив. Скриптуемые объекты стали более дружелюбными.

  • Улучшилась интеграция с Visual Studio, отладка стала намного проще и уменьшилась потребность в «обезьяньем» дебаггинге.

  • Стали лучше сторонние инструменты и библиотеки. В Asset Store появилось очень много ассетов, упрощающих такие аспекты, как визуальная отладка и логирование. Большая часть кода нашего собственного (бесплатного) плагина Extensions описана в моей первой статье (и многое из него описано здесь).

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

  • Я стал более опытным. За последние 4 года я поработал над многими проектами в Unity, в том числе над кучей прототипов игр, завершёнными играми, такими как Father.IO, и над нашим основным ассетом Unity Grids.

Эта статья является версией первоначальной статьи, переработанной с учётом всего вышеперечисленного.
Читать дальше →
Всего голосов 45: ↑42 и ↓3+39
Комментарии41

Диаграмма Вороного и её применения

Время на прочтение25 мин
Количество просмотров120K
Доброго всем времени суток, уважаемые посетители сайта Хабрахабр. В данной статье я бы хотел рассказать вам о том, что такое диаграмма Вороного (изображена на картинке ниже), о различных алгоритмах её построения (за , — пересечение полуплоскостей, — алгоритм Форчуна) и некоторых тонкостях реализации (на языке C++).



Также будет рассмотрено много интересных применений диаграммы и несколько любопытных фактов о ней. Будет интересно!
Читать дальше →
Всего голосов 92: ↑89 и ↓3+86
Комментарии49

Компенсация лагов для оружия в MechWarrior Online

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


Задержка в сети (лаг) — это реальность, которую нужно учитывать в многопользовательских играх. Сообщениям, передаваемым через Интернет, требуется время, чтобы достичь точки назначения. В зависимости от маршрута и его длины передача этих сообщений может занять довольно долгое время. Это может негативно влиять на процесс игры, особенно в динамичных клиент-серверных играх, таких как FPS. То, что кажется очень простой задачей (стреляй, пытаясь попасть в цель), внезапно становится очень сложным в создании плавного игрового процесса для всех игроков. Думаю, не нужно говорить, что создавать многопользовательские игры сложно, при этом возникает множество проблем, которые разработчики должны решить. В этой статье я расскажу, как система вооружения MechWarrior Online справляется с лагом.
Читать дальше →
Всего голосов 49: ↑48 и ↓1+47
Комментарии18

Input lag во время рендеринга и как его побеждать

Время на прочтение6 мин
Количество просмотров34K
Привет всем. Многие из вас знакомы с лагом ввода. Это бывает, когда вас в очередной раз убивают в компьютерной игре, и вы кричите: «Ну я же нажал блок/атаку/уворот». Ну а затем джойстик летит в стену. Знакомо? Происходит это потому, что между нажатием клавиш и появлением результата на экране проходит значительное время. Фактически, когда вы смотрите в экран — вы видите прошлое состояние, которое может абсолютно не отражать действительность.

Если вы разрабатываете собственную игру, или вообще занимаетесь рендером, и хотите уменьшить задержки ввода, то крайне советую заглянуть под кат.
Поехали
Всего голосов 65: ↑64 и ↓1+63
Комментарии37

Прокачка pointlight теней в Unity

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

Аналогов подобных теней для точечного источника света (Pointlight с эффектом размытия на расстоянии, имитирующий arealight) в компьютерных играх я почему-то до сих пор не встречал. Везде — либо полностью запечённые тени, либо «лампочки» вообще без теней, максимум — обыкновенная PCF-фильтрация. Хотя для направленного солнечного света уже давно применяются PCSS-тени (GTA5, например). В Unreal есть интересный алгоритм сродни рейтрейсингу, который рисует красивые arealight-тени, но только для статической геометрии (требуется генерация дополнительных объёмов). В Unity же всё совсем плохо — мягко фильтруется только солнечный свет, а «прожекторы» и «лампочки» в пролёте.
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии22

Создание миникарты на Unity

Время на прочтение3 мин
Количество просмотров36K
Всем привет. Представляю вашему вниманию перевод статьи из блога, посвященному разработке на Unity — The Knights of Unity. В ней пойдет речь о создании миникарты. Я также реализовал описанное в статье и выложил это на Битбакете.


Что требуется для создания миникарты в игре на Unity? Наверно вы будете удивлены, но это проще, чем вы думаете и даже не требует навыков программирования! Далее я постараюсь шаг за шагом объяснить, как это сделать.
Читать дальше →
Всего голосов 29: ↑16 и ↓13+3
Комментарии20

Процедурно генерируемые карты мира на Unity C#, часть 4 (трафик)

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

Это последняя статья из цикла о процедурно генерируемых с помощью Unity и C# картах мира. Осторожно, под катом 7 МБ картинок.
Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии10
1
23 ...

Информация

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