Pull to refresh
4
0
Алексей Иванов @FallenOne

User

Send message

Процедурная генерация трёхмерных моделей

Reading time9 min
Views70K


Процедурная генерация — замечательная штука! Интереснее всего работать именно с графикой, особенно трёхмерной — сразу видно результат. Всего пары инструкций достаточно, чтобы создать облако треугольников как на картинке выше.

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

На примере движка Unity и C# я покажу как можно работать с моделями и превращать текст в графику. Большинство приводимого кода легко портируется на другие фреймфорки и языки.

Треугольник


Начнём с простейшей формы — треугольника. В Unity и во многих других движках используется популярный способ описания моделей: с помощью массивов вершин, треугольников и нормалей. Дополнительно для текстурирования используются uv-координаты вершин. Для работы с моделями есть класс Mesh, в котором для каждого набора данных имеется отдельный массив. В Mesh.vertices хранятся координаты вершин, в Mesh.triangles — индексы вершин группами по три. А в Mesh.normals и Mesh.uv лежат векторы нормалей и координаты uv-карт, индексы которых должны совпадать с индексами соответствующих вершин, т. е. порядок в массивах должен быть одинаковым. Покажу на примере, чтобы было понятнее.
Читать дальше →
Total votes 35: ↑26 and ↓9+17
Comments7

Не слишком ли много текста в вашей игре?

Reading time5 min
Views14K
image
TLDR.jpg (Заметьте: эта огромная простыня текста нужна всего лишь для выбора пола персонажа.)

«Слишком длинно. Вырежьте половину».
«Какую половину?»
«Ту, которая лишняя».

Их звёздные полтора часа

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

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

Нам нужно принять множество решений, поэтому я много думал о текстах в играх, и пришёл к некоторым выводам.

Для справки


Роман приличного размера содержит примерно 100 тысяч слов. В Библии около миллиона слов.

В самой разговорчивой и популярной игре Avernum 3, над ремастерингом которой я сейчас работаю, примерно 200 тысяч слов. После её выпуска люди говорили, что в ней очень-очень-очень много текста. Однако по современным стандартам она предельно лаконична.

Для сравнения, в одной из лучших с точки зрения подачи сюжета RPG последнего времени The Witcher 3 около 450 тысяч слов. Для The Witcher 3 «лучшая подача сюжета» означает, что в ней одна очень хорошая сюжетная линия и множество других, вполне неплохих сюжетных линий. (если честно, я считаю, что дополнение Heart of Stone написано действительно хорошо.)

Раздувание текстов продолжается. В Divinity: Original Sin было всего-то 350 тысяч слов. В Tyranny — уже 600 тысяч слов, рассказывающих о том, как вы становитесь самым злобным в мире менеджером среднего звена, пытаясь разобраться во всех 73 фракциях игры.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments33

История компании Lionhead

Reading time64 min
Views16K
В октябре 2008 года Microsoft выпустила игру Fable 2 студии Lionhead. Она имела коммерческий успех и была хорошо принята критиками. На вечеринке в честь выпуска игры эмоциональный Питер Молиньё (Peter Molyneux) поделился хвалебными отзывами и поблагодарил свою уставшую команду разработчиков, в течение четырёх лет вкладывавшую все свои силы в игру. Позже Fable 2 выиграла BAFTA и стала самой продаваемой RPG для Xbox 360. Lionhead была на вершине мира.


Семь с половиной лет спустя сотню сотрудников Lionhead созвали на совещание в кафе компании. На ней Ханно Лемке (Hanno Lemke), генеральный менеджер Microsoft Studios Europe, объявил, что выпуск Fable Legends отменяется и Lionhead будет закрыта. Знаменитая студия, которую Питер Молиньё создал почти 20 лет назад, умерла.

Подробная история расцвета и падения Lionhead запутанна, но важна. Работавшие в студии описывают её как место, пропитанное духом творчества, в котором сокрушительные поражения часто сопровождались потрясающим успехом. Они описывают неистовую британскую культуру, выигравшую и пострадавшую от своего американского властителя, одержимого победой в войне консолей. И они рассказывают о студии как о творении человека, столь же вдохновляющего, сколь и раздражающего. Это непростая история. Но её стоит рассказать.
Total votes 21: ↑20 and ↓1+19
Comments13

Игры, в которых нужно писать код: Grid Garden, Elevator Saga и другие

Reading time3 min
Views137K

В детстве мы постигаем премудрости жизни через игру. Это важнейший элемент развития личности, социальных навыков, получения знаний об окружающем мире. Игры — хороший «контейнер» для донесения и закрепления каких-либо знаний. Яркий пример — игры, в которых нужно писать код. Наверняка все вы о них слышали, а в некоторые даже играли. Их первичная задача — развлечь людей, уже владеющих навыками программирования, но они могут использоваться и для обучения. Эти игры помогут освежить свои знания по тому или иному языку, отвлечься и заняться более простой алгоритмической задачей.

Total votes 72: ↑72 and ↓0+72
Comments46

Распутывая историю Ады Лавлейс (первого программиста в истории)

Reading time43 min
Views81K

Перевод поста Стивена Вольфрама "Untangling the Tale of Ada Lovelace".
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации.

Содержание


Ранние годы Ады
Чарльз Бэббидж
Уровень развития этой области
Возвращаемся к Аде
Возвращаясь к Бэббиджу
Статья Ады
После статьи
После смерти Ады
Что стало с Бэббиджем?
Повторное открытие
О чем на самом деле писала Ада
Вычисление чисел Бернулли
Бэббидж vs. Ада?
Секретный ингредиент Бэббиджа
В большем масштабе
А что, если...
Какими они были?
Заключение
Ада Лавлейс родилась 200 лет назад. Для некоторых она является знаменательной фигурой в истории вычислительной техники; для других — изрядно переоцененной личностью. В течение долгого времени я пытался разобраться, как всё было на самом деле. И вот, к её двухсотлетию, я решил разобраться в том, что называл для себя "тайной Ады".

Получилось намного сложнее, чем я ожидал. Историки расходятся во мнениях. Личности в истории сложно изучать. Технологии трудно понять. Вся история переплетается с обычаями 19-го века британского высшего общества. И есть удивительное количество ошибочных сведений и неверных трактовок.

Но после некоторого исследования, в том числе просмотра большого количества оригинальных документов, я чувствую, что я, наконец, понял, кто есть Ада Лавлейс, и какова ее история. Эта история полна как увлекательных, захватывающих моментов, так и трагичных, разочаровывающих.

Это сложная история, и чтобы в ней разобраться, нужно будет о многом рассказать.
Подробнее об Аде Лавлейс...
Total votes 60: ↑58 and ↓2+56
Comments28

DIY Face Averaging

Reading time6 min
Views26K

Узнали кого-нибудь? Всех людей выше не существует: это не фотография, а результат работы несложного алгоритма, усредняющего тысячи разных лиц. В этой статье мы поговорим о том, как легко в кратчайшие сроки набросать такой алгоритм и получить интересные результаты.
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments78

Epson представили офисный аппарат для переработки бумажных отходов в чистые листы

Reading time2 min
Views15K
image

Компания Epson, чья продукция обычно предназначена для нанесения на бумагу различных знаков, рисунков и следов, представила уникальный продукт PaperLab. Это персональная фабрика по переработке офисной бумаги, способная создавать на основе бумажных отходов чистую бумагу форматов А4 и А3.

По заверениям компании, пользователь сможет не только выбирать размер получающейся бумаги, но и задавать её плотность и толщину. Скорость выдачи агрегата при наличии достаточного количества исходного материала составляет 14 листов А4 в минуту (а это уже 6720 листов за рабочий день).

Обычно в процессе изготовления бумаги используется много воды — но в Epson умудрились усовершенствовать его так, чтобы PaperLab не нужно было подключать к водопроводу. По-видимому, именно этот процесс описан в патенте Epson на переработку бумаги от 2013 года.

В компании поясняют, что для работы устройства необходимо небольшое количество воды, чтобы поддерживать заданный уровень влажности внутри камеры переработки (судя по всему, воду нужно будет доливать в какой-либо резервуар).
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments16

Windows Remote Arduino — управляем настольной лампой прямо из универсального приложения Windows

Reading time8 min
Views37K
Завершая неделю интернета вещей на хабре и в продолжение предыдущего поста о партнерстве с Arduino, расскажу вам о подключении устройств к Windows. Я уже писал про различные сценарии подключения датчиков к облаку, но бывают сценарии, когда нам хочется просто подключить датчики или устройства к нашему компьютеру и удаленно ими управлять. Например, мы хотим сделать приложение, которое будет включать и выключать настольную лампу. В этих случаях самым простым решение будет использование Windows Remote Arduino.


Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments4

Визуальные эффекты для Skyforge: теория и практические советы

Reading time16 min
Views39K


Художник по эффектам — это алхимик. Его задача: за неимением золота это золото добыть. В любом случае это будет фейк, но от опыта художника зависит, насколько он будет правдоподобным. Художник по эффектам — универсал. Если задача не укладывается в стандартный пайплайн художников, значит эта задача для художника по спецэффектам. Нужно уметь как можно больше и не бояться нестандартных решений, но только если они дадут выгоду. В этой статье я постараюсь подробно рассказать, чем руководствуются художники по эффектам на нашем проекте. Расскажу о некоторых хитростях. Затрону сторону оптимизации арта и расскажу о взаимоотношениях в команде.
Читать дальше →
Total votes 62: ↑60 and ↓2+58
Comments9

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

Reading time2 min
Views101K
Привет, Хабр!
Ничего не писал со времен своей первой статьи, решил, что пора это исправить.

Существует мнение, что про геймдев внятной литературы почти нет, все знания надо получать практическим путем. С моей точки зрения, в этом мнении есть зерно истины, тем не менее, я не могу полностью с ним согласиться.

Ниже я даю рецензии на книжки, которые считаю очень полезными в различных разделах computer science, которые используются в геймдеве. Я намеренно опускаю книги по C++ и алгоритмам: мне кажется, эта тема уже настолько изучена и освещена, что больше про нее не стоит рассказывать.

Я старался покрыть максимальное количество разных топиков, особенно тех, что спрашивают на собеседованиях. Я старался воздерживаться от domain-specific литературы: профессионалы и так знают. Все картинки содержат ссылки на амазон.

А какие книжки нравятся вам?
Также в комментах можете писать, на какие темы вам были бы интересны посты.

Читать дальше →
Total votes 67: ↑62 and ↓5+57
Comments12

Шум Перлина (Perlin Noise)

Reading time10 min
Views71K
Доброго времени суток. Предлагаю Вашему вниманию перевод статьи про шум Перлина (вот этой). Ссылки на эту статью уже мелькали на хабре (тут), но перевод статьи мне не попался. Так что надеюсь кому-либо он может оказаться полезен.

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

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

Для создания функции шума Перлина, вам нужны две вещи, функции шума и функция интерполяции.
Читать дальше →
Total votes 67: ↑52 and ↓15+37
Comments22

Создание игрового персонажа

Reading time5 min
Views166K


В данной статье описывается процесс создания персонажа для игрового движка. Статья в первую очередь адресована тем, кто интересуется процессом разработки next gen моделей, а также всем, кто хочет заглянуть за кулисы современного игродела. Персонажа я делал для портфолио, на персонажей переключился совсем недавно, можно сказать, что это первый доведенный до ума персонаж. Поскольку данная работа — мой личный проект, то я установил ограничение треугольников в 20 000, текстуры в 2048*2048, работа планировалась под PBR.
Читать дальше →
Total votes 87: ↑85 and ↓2+83
Comments47

Бесплатная книга «Game Programming Patterns» от программиста Electronic Arts Боба Найстрома

Reading time1 min
Views84K
Боб Найстром, программист, проработавший восемь лет в компании Electronic Arts, закончил работу над книгой «Game Programming Patterns». Она доступна бесплатно на сайте gameprogrammingpatterns.com. Писать книгу Боб Найстром начал четыре года назад. Большинство книг, посвящённых программированию игр, говорит он во введении, либо подробно раскрывают какой-то из аспектов создания игры — физический движок, графику, искусственный интеллект, либо описывают процесс создания игры в определённом жанре от начала до конца. Ему очень не хватало книги, рассказывающей о решении типовых задач, возникающих перед программистом, книги достаточно универсальной, не привязанной к жанрам или конкретным подсистемам игр. И поэтому он решил написать такую книгу сам.
Читать дальше →
Total votes 95: ↑94 and ↓1+93
Comments30

ООП — Организация Освобождения Палестины

Reading time5 min
Views16K
Эта статья является изложением в письменном виде моего личного восприятия программирования и Объектно-ориентированного программирования в частности. Здесь собраны и душевные негодования, и переживания за программистов всего мира. Всё, конечно же, подкреплено исходным кодом.


Читать дальше →
Total votes 113: ↑76 and ↓37+39
Comments64

Генерация музыки в реальном времени

Reading time6 min
Views135K


«Как автоматизировать сочинение музыки?» — этот вопрос тревожит умы музыкантов еще со времен средневековья. Кеплер превращал траектории движения планет в музыку; Моцарт и его современники изобрели игру в «музыкальные кости» — они броском кубиков выбирали из большой таблицы такты и составляли из них менуэты. Но только с появлением компьютеров алгоритмическая генерация музыки получила настоящее развитие. Теория вероятности, марковские цепи, искусственные нейронные сети — все это стало инструментами создания музыки.
Читать дальше →
Total votes 233: ↑224 and ↓9+215
Comments193

Делаем твёрдый переплёт для любимых книжек

Reading time6 min
Views522K
Небольшое вступление

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

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

Большое вступление

Некоторое время назад мне захотелось прочитать цикл Дугласа Адамса «Автостопом по галактике». Я попробовал почитать несколько переводов и не один меня не устроил. Поэтому было принято решение — читать на английском! Найти эти книги в оригинале в наших книжных магазинах довольно сложно. А если и есть, то только первая часть цикла. В электронном виде найти несколько проще. Но я предпочитаю читать с бумаги (читалку на E-ink куплю обязательно — очень нравятся), поэтому книги я распечатываю.

Первые две книги выглядели так:
image

Я их прочитал с огромным удовольствием, но выглядели они не очень хорошо. И я решил, что «Life, the Universe, and Everything» нужно делать книжкой.

Процесс с картинками и комментариями под катом. Осторожно, действительно много картинок.
Читать дальше →
Total votes 348: ↑337 and ↓11+326
Comments142

Information

Rating
Does not participate
Location
Новочебоксарск, Чувашия, Россия
Date of birth
Registered
Activity