Пишу тулкит для процедурной генерации:
Procedural Toolkit

Делаю игры. Например такие:
The Swordest Sword
Goldberg
Hammerspace
Scramble
Telemetronomic
Royal Defenestrator
Контакты

Достижения

Все достижения (20)

Наибольший вклад в теги

Все теги (120)

Лучшие ответы пользователя

Все ответы (670)
  • С чего начать изучение Unity3D?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Начинать нужно с мануала, тут без вариантов. Всё подряд можно не читать, всё равно потом к нему ещё вернётесь.
    docs.unity3d.com/Manual
    Потом посмотрите официальные туториалы, особенно в категории Intermediate, они годные и постоянно обновляются.
    unity3d.com/learn/tutorials/modules
    unity3d.com/learn/tutorials/projects
    Ещё очень советую почитать статьи на Catlike Coding. Нет лишней воды и много хороших примеров.
    catlikecoding.com/unity/tutorials
    Ответ написан
  • Как реализованы порталы в игре Portal?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Честные порталы делать очень сложно, нужно хорошо понимать физику и весь пайплайн рендера. Есть очень много граничных случаев, каждый из которых нужно отдельно поддерживать: портал внутри портала, пересечение границ внутреннего и внешнего портала, несколько внутренних порталов, повороты плоскости портала, перемещение предметов, тени и освещение, прозрачные материалы и т. п. Есть две основные техники реализации отрисовки порталов: через рендер текстуры и стенсильный буфер.

    Порталы на рендер текстурах делаются проще, но они дороже по производительности, даже на простой геометрии несколько порталов могут оказаться непосильной задачей для компьютера. Основной принцип следующий: когда вы смотрите на портал, на другой стороне портала камера рисует картинку в текстуру, эта текстура натягивается на плоскую геометрию, и со стороны кажется, будто бы через дырку видно другую часть сцены. Примитивную реализацию такой схемы можно собрать руками в редакторе, но дальше начинаются сложности. Если у конечного портала "за спиной" будет геометрия, она попадёт во вьюпорт камеры и будет странно смотреться. Чтобы это предотвратить нужно ближнюю плоскость отсечения у камеры сдвигать в плоскость портала с помощью CalculateObliqueMatrix. Для вычисления положения камеры и пересчёта матрицы есть удобный колбэк OnRenderObject. После корректировки матрицы порталы будут смотреться более-менее корректно, но будут всплывать всевозможные косяки при перемещении через плоскость портала из-за буфера глубины и nearClipPlane основной камеры.

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

    Прошу заметить, что всё вышесказанное касается чисто графической части, для простейшего случая, когда мы имеем FPS камеру без анимаций, без дополнительных механик, которая просто ездит по уровню и может заглядывать в порталы. Что уж говорить про миллион потенциальных багов, если вы захотите включить рядом с порталом систему частиц или взять в руки кубик. Посему советую либо купить плагин и довольствоваться тем, что он умеет, либо приготовиться потратить несколько месяцев на разработку своей портальной системы. И в том и другом случае ограничения движка не позволят вам в разумные сроки получить Portal, в лучшем случае это будет Narbacular Drop.
    Ответ написан
  • В каком порядке изучать математические дисциплины?

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

    Если ещё не читали, то прочтите статью Линейная алгебра для разработчиков игр, ещё могу посоветовать этот доклад с GDC. Для лучшего понимания трёхмерной графики очень полезно научиться моделить примитивные вещи в трёхмерном редакторе, а ещё лучше попробовать процедурно сгенерировать какую-нибудь сферу или кубик.

    Кроме того, для расширения кругозора советую погулять по ссылкам википедии про вычислительную геометрию. Какие-то вещи стоит попробовать написать самому (например, алгоритм пересечения отрезков), а про какие-то достаточно просто знать - с той же триангуляцией можно месяцами возиться, для таких вещей лучше брать готовую библиотеку.
    Ответ написан
  • GameDev - куда "шагнуть", и как туда попасть для обучения?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    С чего начать путь в Game Dev?
    Что нужно, чтобы стать разработчиком игр?
    Какое должно быть портфолио?

    Хотите делать игры - делайте игры. Участвуйте в геймджемах (Ludum Dare, itch.io, Global Game Jam) и выкладывайте всё в интернет. Есть хороший канал про игры на YouTube, буквально на днях они начали серию роликов про разработку, очень полезно, посмотрите. Походите на собеседования, там вам скажут чего не хватает.
    Ответ написан
  • Игровой движок для инди-студии и карьеры, что выбрать?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Unreal и CryEngine всю жизнь были ориентированы на большие студии, какие-то подвижки в сторону инди начались только в последний год, когда на юнити стали делать чуть ли не половину всех новых игр. Скрипты на плюсах дело усугубляют, сферический скрипт в вакууме на плюсах писать и поддерживать дороже чем на шарпе. Да, возможно есть преимущество в производительности, но, чтобы упереться в эту планку, нужно либо очень хреново писать, либо иметь огромный мир с морем свистелок. Кроме того, у юнити есть Asset Store с кучей плагинов и готовых проектов, которые экономят кучу времени. Marketplace по наполнению даже рядом не стоит. В целом у юнити перспективы хорошие: Microsoft открывает исходники .Net, а юнити переходит на технологию IL2CPP.

    Это всё было про движок, помимо этого вам нужно учитывать другие направления, которые вам придётся изучить за два года: разработка игр, управление командой, монетизация, маркетинг. Начинать делать игры с MMO это самоубийство, лучше не надо. Есть миллион вариантов реализации каждой механики, и понять, какой какой вариант нужен вам можно только на практике. Для этого нужно набивать руку на мелких поделках, делать прототипы, участвовать в геймджемах. Навык завершения игр очень важен и сложен в освоении.

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

    Наконец, остаётся ещё денежная сторона разработки, без которой долго делать игры не получится. Статистика в этой области плачевная: окупается лишь очень малая часть из всех создаваемых игр, а те, что окупаются, не делают разработчиков миллионерами. Забывать про это нельзя, особенно, если вы хотите внедрить монетизацию в саму игру. Есть много историй, когда изначальные предположения разработчиков не оправдывались, они начинали крутить монетизацию и в итоге убивали геймплей.

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