Как сделать свет в unity 2d

Обновлено: 04.07.2024

Начнем с самого простого: загрузки и настройки Unity.

Загрузите последнюю версию с официального сайта или торрента и запустите установочный файл.

Выбор редактора в Unity

Полезно знать: невозможно использовать отладчик Visual Studio 2013 Express с Unity. Вы должны иметь Pro версию Visual Studio и купить UnityVS плагин. С версией Express, вы будете иметь лучший редактор кода, но отсутствие отладчика сведет на нет все его достоинства.

Mac OS X

MonoDevelop 4 - существенно лучше, чем старый MonoDevelop 2 в предыдущих версиях Unity. Он, конечно, далек от совершенства, но ничего лучшего под на Mac не придумано.

На каком языке программировать в Unity?

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

Вот несколько ссылок, которые могут быть вам полезными:

  • Изучение интерфейса Unitys : основа всех основ. Не зная интерфейса, вы не сможете создавать игры в Unity 3D
  • Создание сцены в Unity : изучение этого раздела поможет вам создать свою собственную сцену
Первая сцена. Создаем новый проект.

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

Создание нового проекта в Unity

Выберите 2D настройки. Как и прежде, вы можете изменить этот флаг в настройках проекта позже.

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

Разметка и панели Unity

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

Пустой проект

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

Чтобы держать все под рукой, советуем создать папки во вкладке Project (Проект). Эти папки будут созданы в папке Assets вашего проекта.

Папки в Unity

Внимание: папка Assets – это место, где хранится все, что вы добавляете во вкладке Project. Она может быть невидимой в Unity, в зависимости от выбранной разметки вкладки (одна или две колонки), но вы сможете увидеть ее, открыв приложение для экспорта файлов.

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

Ассеты проекта

В вашей панели Project, вы можете найти различные типы ассетов:

Префабы

Многоразовые игровые объекты (например: пули, враги, бонусы).

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

Сцены

Сцена содержит игровой уровень или меню.

В отличие от других объектов, создаваемых в панели "Проект", сцены создаются в меню "Файл". Если вы хотите создать сцену, нажмите на кнопку "Новая сцена" в подменю и не забудьте потом сохранить ее в папку Scenes.

Сцены должны быть сохранены вручную. Это классическая ошибка в Unity - сделать некоторые изменения в сцене и ее элементы и забыть сохранить их после. Ваш инструмент контроля версий не увидите никаких изменений до тех пор, сцена не сохранится.

Звуки

Тут все предельно просто. Увидите, если захотите раскидать музыку по разным папкам.

Scripts

Textures

Спрайты и изображения вашей игры. В 2D проекте вы можете переименовать эту папку в "Sprites".

Это неважно для 2D проекта, но, оставив название Textures (Текстуры), вы дадите возможность Unity автоматизировать некоторые задачи. Если вы хотите узнать подробную информацию по этой теме, вы можете прочитать об этом здесь , или здесь .

Заметка о папке Resources : если вы уже работали с Unity, вы знает, что Resources – полезная и уникальная папка. Она позволяет загрузить в скрипт объект или файл (с помощью статичного класса Resources ). Она понадобится нам в самом конце (в главе, посвященной меню). Проще говоря, пока мы не будем ее добавлять.

Наша первая игровая сцена

Панель Hierarchy (Иерархия) содержит все объекты, которые доступны в сцене. Это то, чем вы манипулируете, когда начинаете игру с помощью кнопки "Play".

Каждый объект сцены является игровым объектом для Unity. Вы можете создать объект в главной сцене, или в другом объекте игры. Также вы можете в любое время переместить объект чтобы изменить его родителя.

Логические объекты

Как вы можете видеть здесь, у нас здесь 3 потомка для объекта Level .

Пустые объекты

В Unity можно создать пустой объект и использовать его в качестве "папки" для других игровых объектов. Это упростит структуру вашей сцены.

Пустые объекты

Убедитесь, что все они имеют координаты (0, 0, 0) и тогда вы сможете легко их найти! Пустые объекты никак не используют свои координаты, но они влияют на относительные координаты их потомков. Мы не будем говорить об этой теме в этом уроке, давайте просто обнулим координаты ныших пустых объектов.

Заполнение сцены

По умолчанию, новая сцена создается с объектом Main Camera (Главная камера). Перетащите ее на сцену.

Для начала создайте эти пустые объекты:

Scripts Мы добавим наши скрипты сюда. Мы используем этот объект, чтобы прикрепить сценарии, которые не связаны с объектом – например, скрипт гейм-менеджера. Render Здесь будет наша камера и источники света. Level

В Level создайте 3 пустых объекта:

  • 0 - Background
  • 1 - Middleground
  • 2 - Foreground

Сохраните сцену в папке Scenes . Назовите ее как угодно, например Stage1 . Вот, что у нас получилось:

Первая сцена на Unity

Совет: по умолчанию игровой объект привязан к положению родителя. Это приводит к интересному побочному эффекту при использовании объекта камеры: если камера является дочерним объектом, она автоматически будет отслеживать положение родителя. Если же она является корневым объектом сцены или находится внутри пустого игрового объекта, она всегда показывает один и тот же вид. Однако если вы поместите камеру в движущийся игровой объект, она будет следовать за его передвижениями в пределах сцены. В данном случае нам нужна фиксированная камера, поэтому мы помещаем ее в пустой объект Render . Но запомните это свойство объекта камеры, оно может вам пригодиться. Мы подробно остановимся на этой теме в главе "Паралаксный скроллинг".

Мы только что создали базовую структуру нашей игры. На следующем этапе мы начнем делать забавные вещи: добавим на сцену фон и кое-что еще!

Добавляем фон в сцену

Наш первый фон будет статическим. Воспользуемся следующим изображением:

TGPA фон

Импортируйте изображение в папку Textures (Текстуры). Просто скопируйте файл в нее, или перетащите его из проводника. Не беспокойтесь сейчас о настройках импорта.

Создайте в Unity новый игровой объект Sprite на сцене.

Новый спрайт для игры в Unity

Что такое спрайт?

По сути, спрайт – это 2D-изображение, используемое в видео-игре. В данном случае это объект Unity для создания 2D-игр.

Добавляем текстуру спрайта

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

Выбор спрайта в Unity

Вы должны нажать на маленький круглый значок справа от поля ввода, чтобы появилось Select Sprite (Выбрать спрайт) в Инспекторе

Вид спрайта

Итак, мы создали простой спрайт отображающий облака на небе. Давайте внесем изменения в сцену. В панели Hierarchy (Иерархия) выберите New Sprite . Переименуйте его в Background1 или что-то такое, что легко запомнить. Переименуйте его в Background1 или что-то такое, что легко запомнить. Затем переместите объект в нужное место: Level -> 0 - Background . Измените координаты на (0, 0, 0) .

Фон установлен

Создайте копию фона и поместите его в (20, 0, 0) . Это должно отлично подойти к первой части.

Фон 2

Слои со спрайтами

Следующее утверждение очевидно, но обладает некими неудобствами: мы отображения 2D мир. Это означает, что все изображения на одной и той же глубине, то есть 0 . И вы графический движок не знает, что отображать в первую очередь. Слои спрайтов позволяют нам обозначить, что находится спереди, а что сзади.

В Unity мы можем изменить "Z" наших элементов, что позволит нам работать со слоями. Это то, что мы делали в этом руководстве перед обновлением до Unity 5, но нам понравилась идея идея использовать слои со спрайтами. У вашего компонента Sprite Renderer есть поле с именем Sorting Layer с дефолтным значением. Если щелкнуть на нем, то вы увидите:

Сортировка списка слоев

Давайте добавим несколько слоев под наши нужды (используйте кнопку + ):

Добавить сортировку слоя в Unity

Добавьте фоновый слой к вашему спрайту фона:

Установить сортировку слоя

Настройка Order in Layer - это способ ограничить подслои. Спрайты с меньшим номером оказываются перед спрайтами с большими числами.

Слой Default нельзя удалить, так как это слой, используемый 3D-элементами. Вы можете иметь 3D-объекты в 2D игре, в частности, частицы рассматриваются как 3D-объекты Unity, так что они будут рендериться на этом слое.

Добавление элементов фона

Также известных как props. Эти элементы никак не влияют на геймплей, но позволяют усовершенствовать графику игры. Вот некоторые простые спрайты для летающих платформ:

Спрайты для платформ

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

Получение двух спрайтов из одного изображения

Выполняйте следующие действия:

  1. Импортируйте изображения в папку "Текстуры"
  2. Выберите спрайт Platform и перейдите к панели Инспектор
  3. Измените "Sprite Mode" на "Multiple"
  4. Нажмите на кнопку Sprite Editor (Редактор спрайта)

В новом окне ( Sprite Editor ) вы можете рисовать прямоугольники вокруг каждой платформы, чтобы разрезать текстуру на более мелкие части:

Редактор спрайтов

Кнопка Slice в левом верхнем углу позволит вам быстро и автоматически проделать эту утомительную работу:

Автоматическая нарезка

Unity найдет объекты внутри изображения и будет нарежет их автоматически. Вы можете установить дефолтное значение для точки вращения или минимальный размер каждого фрагмента. Для простого изображения без артефактов, это необычайно эффективно. Тем не менее, если вы используете этот инструмент, будьте осторожны и проверьте результат, чтобы убедиться, что вы получили то, что хотели.

В этом уроке проделаем эту операцию вручную. Назовите платформы platform1 и platform2 . Теперь, под файлом изображения, вы должны увидеть два спрайта отдельно:

Результат редактора спрайтов

Добавим их в сцену. Для этого мы будем выполнять те же действия что и для фона: создадим новый спрайт и выберим platform1 . Потом повторим эти действия для platform2 . Поместите их в объект 1 - Middleground . Убедитесь, что их позиция по оси Z равна нулю.

Две новые платформы

Prefabs (Префабы)

Сохранить эти платформы как префабы. Просто перетащите их в папку Prefabs :

Префабы

Таким образом вы создадите Prefab , точно отвечающий оригинальному игровому объекту. Вы увидите, что игровой объект, который вы конвертировали в Prefab , представляет собой новый ряд кнопок прямо под его именем:

соединение префабов

Заметка о кнопках "Prefab": При последующей модификации игрового объекта, вы можете использовать кнопку "Apply", чтобы применить эти изменения к Prefab , или кнопку "Revert", чтобы отменить все изменения игрового объекта в свойстваъ Prefab . Кнопка "Select" переместит выбранные свойства в ассет Prefab в окне проекта (они будут выделены).

Создание префабов с объектами-платформами упростит их повторное использование. Просто перетащите Prefab на сцену, чтобы добавить копию. Попробуйте добавить другую платформу таким же образом.

Теперь вы можете добавить больше платформ, меняющих свои координаты, размеры и плоскости (вы можете поместить их на заднем или переднем плане, просто установите координату Z для платформы на 0 ).

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

Прежде чем двигаться дальше, мы модифицируем наши слои, чтобы избежать каких-либо проблем с порядком их отображения. Для этого просто измените позицию игровых объектов по оси Z во вкладке Hierarchy (Иерархия) следующим образом:

Слой Позиционирование по оси Z
0 - Задний фон 10
1 - Средний фон 5
2 - передний фон 0

При переключении из 2D режима в 3D, в окне "Scene" (Сцена) вы будете четко видеть слои:

Кликнув на игровом объекте Main Camera , вы увидите, что флажок Projection установлен на Orthographic . Эта настройка позволяет камере визуализировать 2D игру без учета трехмерных свойств объектов. Имейте в виду, что даже если вы работаете с 2D объектами, Unity по-прежнему использует свой 3D движок для визуализации сцены. Рисунок выше это наглядно демонстрирует.

В следующем уроке:

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

Продолжим "природную" тематику. Ранее, мы учились делать деревья, построили простой домик, а сегодня добавим чуточку света! Создав простую сцену, мы научимся основам работы с динамическим освещением, различными видами источников света и создадим фонарик.

Материалы к уроку здесь. Ну что, поехали!

Порядок выполнения

Начнем с нового проекта, и, для экономии времени и сил, добавим в него ассет Nature Starter Kit 2.


Удалим из неё камеру, добавим игрока от первого лица из ассета Characters, и импортируем дом из прошлого урока.


Видно, что дом абсолютно белый и мы проходим сквозь него. Перейдём в настройки импорта модели и выставим галочку Generate Colliders.


Далее, перейдём во вкладку материалов модели и сменим тип импорта материалов с Internal на External. Кликаем "принять", при этом происходит импорт материалов из папок SketchUp. В итоге, дом становится материальным и раскрашивается в нормальные цаета.


Но дом "просвечивает" по углам - давайте избавимся от этой проблемы:

Для этого выставим компонентам Mesh Renderer параметр Cast Shadows в значение Two sided. Теперь, свет проходит только через окна.


Уберём синеву и снизим яркость света. Для этого откроем панель Lighting и выставим Ambient Color значение пониже.


Теперь, найдём источник направленного света и изменим его цвет и интенсивность. Сделаем почти чёрный цвет с лёгким синеватым оттенком.

Добавим на вход светильник — создадим сферу и новый для неё материал, выставим светимость материала в виде светло-серого цвета.

У сферы отключим отбрасывание теней.

Внутри сферы создадим Point Light, у которого увеличим дальность и выставим тип теней Soft Shadows.

Теперь, займёмся созданием фонарика. Для этого в игрока, во вложенный объект, который содержит камеру, добавим компонент Light и выставим его в режим Spot.

Добавим фонарику дальности и направим всего игрока на стену — так проще настраивать.

Зачастую, не обязательно увеличивать интенсивность света, бывает достаточно добавить дальность — это убережёт от "пересветов" на ближних дистанциях.
Также, свету можно добавить в параметр Cookie световое пятно. Импортированный пак содержит как минимум 2 готовые текстуры.

Это световое пятно добавит нашему фонарику необходимый эффект.

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

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


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


Код тоже придётся модифицировать, добавив обращение к AudioSource.

На этом этапе разбор динамического света и основных его источников можно считать завершённым.

В начале статьи, вы найдете ссылку на полный проект, но в случае с неустановленным SketchUp на ваш компьютер, модель дома не распознается.

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


отключать [свет] не в том смысле, что на сцене будет темно, а в том смысле, что не будет никакого освещения - я боюсь, что в нашем мире это невозможно) Основываясь на моем жизненном опыте, обычно там, где нет света, становится темно, я могу ошибаться. А вообще, если хотите выключать свет, то в чем проблема отключить его через SetActive(false); ?

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

1 ответ 1

В редакторе во вкладке Scene view - окно где происходит редактирование сцен - можно отключить освещение нажав копку в левом верхнем углу со значком лампочки.

Если нужно сделать то же самое но, с компонентами и в удобном редакторе для освещения тогда Window/Rendering/LightExplorer все удобства для дизайнера.

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

Находим список объектов Light - производный класс всех источников освещения (возможно всех), и начинаем изменять - за один кадр. Допустим вы могли бы вывести себе далее некий Editor для некоторых общих манипуляций но, LightExplorer все равно лучше.

GameDev.Unity3d.Урок 2.Освещение,Персонаж,Фонарь

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

Можешь подсказать, к какому разделу прикреплять скрипт с фонариком: К персонажу, к камере или спатлайту?

Здравствуйте, у меня Юнити 5.1.2f1 Personal. Немного отличается от вашей, поэтому есть затруднения. Вот в чем проблема: не могу создать персонажа, вроде импортировал, в папке он тоже есть, но вот как его перенести в иерархию не пойму. HELP

Ты пишешь урок
Но ты не можешь отличить JAVA от JavaScript. (А на самом деле Unity Script)
Тебе не надо писать уроки.


Packer - как скопировать игру, и не оплошать

Здравствуйте, хотел бы поделиться свой историей создания игры.

2019 год. Я - начинающий разработчик (и остаюсь таковым), искал идею для игры. Которую вскоре и предложил мне мой друг. Говорит мол:
- Была такая игра на Siemens - Stack Attack. Мне очень нравилась.
К моему сожалению, эта игра прошла мимо меня.

Вкратце объяснив мне её суть, она меня очень заинтересовала. На том и порешал, возьму её за основу.
Отличия от оригинала я хотел добиться, динамичностью, разнообразием в блоках, сохранив при этом простоту.

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

Packer - как скопировать игру, и не оплошать Gamedev, Unity, Инди, Инди игра, Разработка, Мобильные игры, Android, Google Play, Видео, Гифка, Длиннопост, Siemens

В погоне за динамичностью. Были добавлены разные типы блоков:
- Тяжелый, его нельзя двигать
- Взрывной

Packer - как скопировать игру, и не оплошать Gamedev, Unity, Инди, Инди игра, Разработка, Мобильные игры, Android, Google Play, Видео, Гифка, Длиннопост, Siemens

Для того же был сделан отвлекающий задний план.

Packer - как скопировать игру, и не оплошать Gamedev, Unity, Инди, Инди игра, Разработка, Мобильные игры, Android, Google Play, Видео, Гифка, Длиннопост, Siemens

Дальше был перерыв почти в год. А игру ждала переработка с нуля.

И вот спустя год я серьёзно решил закончить игру во чтобы то не стало.

И первым изменением относительно прошлого прототипа - стало управление. Его я реализовал касаниями:

- tap по правой части - шаг вправо

- tap по левой - шаг влево

- tap в центре - прыжок

А дальше мне предстояло связаться с графикой.

У меня есть два старших брата, и оба они относятся к творческой специальности. И какова была моя радость, когда они решили помочь мне в разработке. Так и появился первый арт к игре.

Packer - как скопировать игру, и не оплошать Gamedev, Unity, Инди, Инди игра, Разработка, Мобильные игры, Android, Google Play, Видео, Гифка, Длиннопост, Siemens

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

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

Примерно 75% у меня уходило на графику. Мне пришлось буквально научиться рисовать.
Так из под моего пера и появился игровой персонаж.

Packer - как скопировать игру, и не оплошать Gamedev, Unity, Инди, Инди игра, Разработка, Мобильные игры, Android, Google Play, Видео, Гифка, Длиннопост, Siemens

Кран, который в дальнейшем я перерисую.

Packer - как скопировать игру, и не оплошать Gamedev, Unity, Инди, Инди игра, Разработка, Мобильные игры, Android, Google Play, Видео, Гифка, Длиннопост, Siemens

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

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

Packer - как скопировать игру, и не оплошать Gamedev, Unity, Инди, Инди игра, Разработка, Мобильные игры, Android, Google Play, Видео, Гифка, Длиннопост, Siemens

И я принялся это копировать, по мере возможности.

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

Всё же я довел игру до беты, добавив несколько новых механик и блоков.

Я очень хочу чтобы игра получилось хорошей. Если вам не сложно можете поучаствовать в открытом бета-тесте. Поделится своим мнением.

Принимаются любая критика и предложения.

Спасибо за внимание!


Геймдизайн: Как начать делать свою игру?

Мы с другом в свободное время разработали и выпустили в Steam две небольших игры:

Я собрал несколько советов из нашего опыта разработки игр. Возможно, они помогут и вам. Если вы собираетесь делать игру в одиночку или небольшой командой единомышленников.

В видео я постарался рассказать подробнее. Ниже - более короче и текстом.

1) Не пытайтесь работать как большие корпорации

Процессы, которые работают в компаниях на 1000+ человек вряд ли подойдут вашей команде из 1+ человек. А на их организацию вы поможете потратить очень много времени и креативной энергии. Плюс, если вы работаете в IT, то дополнительный слой проджект-менеджмента, от которого и так устаешь на работе, добавит демотивации. Настройте процесс как можно проще и не планируйте не слишком большой срок.

2) Используйте Git

Капитанский совет, но все-таки. Начали проект - настройте гит сразу. Обидно будет потерять работу даже одного единственного дня.

3) Не делайте графику параллельно с геймплеем

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

4) Начните с чего-то небольшого и доведите до конца

Очень часто небольшие команды в качестве первого проекта выбирают игру мечты или убийцу дума. Это верный путь к тому, чтобы перегореть и ничего не доделать. Начните с малого, поймите каково это - сделать всю игру от начала до конца, пусть даже очень маленькую.

5) Старайтесь не давить на тиммейтов

Кажется, что некое давление может замотивировать ваших тиммейтов. Это только кажется. На деле это такое давление бывает часто причиной ссор и развала начинающих команд.

6) Не думайте об игроках, метриках и тд - думайте о себе. Важно, чтобы интересно было вам

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

7) Показывайте прогресс

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

8) Придумайте простой и понятный синопсис. Без подробностей и ограничений

Важно уметь быстро и понятно объяснить хотя бы самому себе, о чем ваша игры. Постарайтесь придумать краткое описание, в идеале - одно предложение, о чем ваша игра. Без усложнений, вроде "с элементами РПГ" и в "Сеттинге Стимпанк". Например "Отец одного парня попросил его сходить за пивом". Имея простую и внятную идею игры, будет проще придумать для нее все остальное.

9) Гоните перфекционизм прочь

Нездоровый перфекционизм тормозит разработку. Если есть выбор между "Не выпустить идеальную игру" и "выпустить среднюю игру" выбирайте второе.

10) Старайтесь не бросать. Выделите время каждый день чтобы двигать разработку понемногу вперед

Тут без комментариев. Это, наверное, самый важный совет из всех :)

Надеюсь, кому-то это окажется полезным. Спасибо за внимание!)


Крошки рыцари. Подведение итогов за год разработки

Крошки рыцари. Подведение итогов за год разработки Gamedev, Инди игра, Разработка, Pixel Art, Длиннопост

Привет, инди - разработчик! В этом посте я поведаю о том, что усвоил за год разработки в соло. Собранно. Кратко. Без воды.

КРАНЧИ
Данные приведены с учётом основной работы с ненормированным графиком, не связанной с геймдевом.
— Общее время с момента начала разработки: 11 месяцев.
Из которых:
— 1-2 месяца кранчи по 50-70 ч/в неделю;
— 3-4 месяца застои;
— 6 месяцев средняя занятость проектом по 10 ч/в неделю;
Общее время на разработку: 80 рабочих дней.
Из которых:
— 60 раб/дней ушло на проектирование и работу над ошибками.
— 20 раб/дней составляют основную работу над проектом.
Маленький вывод: Не смотря на застои и выгорание после кранчей, они окупились прибавкой в целый месяц высокопродуктивной работы и предоставили пассивное время для до/ и переосмысления проекта.

ЗАСТОИ
Помимо основных причин, вроде выгорания, главной причиной стало отсутствие опыта и навыков. Об этом я подробнее расскажу абзаце про ошибки.

РЕЛИЗ
Так близко и так далеко одновременно. Не могу назвать себя идеалистом. Просто хочется, чтобы было хорошо. Только начав разработку этого проекта, я определил для себя главное правило: готовая игра должна нравится именно мне, и расходящиеся с моим, мнения окружающих, учитываться будут лишь во вторую очередь. Однако, при этом, подавляющему большинству игроков, в финальном тестировании, должно быть удобно и весело играть. Все это также сказалось на растягивании сроков и работе в холостую.
Маленький совет: У меня имеется четко сформулированная система меры и оценки качества всех основных составляющих игры. И если вопрос встаёт о том, а нужно ли это улучшать, я просто обращаюсь к ней и трезво принимаю нужное решение.

Пример можно скачать тут ДОКУМЕНТ

ПРОКАЧКА СКИЛЛОВ
Имея за плечами 2 года каждодневной практики и 1 год работы с пиксельной анимацией и работы с графическим редактором, уделяя при разработке примерно одинаковое количество времени на код и дизайн, могу сделать следующие выводы:
— я научился не забрасывать проекты один за другим, пусть и приходится много всего переделывать.
— теперь, при написании игровой логики, моей базы и навыков полностью достаточно, чтобы не замедлять разработку. А с периодичностью раз в три-четыре месяца, хватает двух дней, чтобы произвести полный рефакторинг кода и освежить его в памяти (на конкретном проекте).
— навыки рисовальщика, юишника и дизайнера тоже не остались в стороне. Приведу пример ниже, в котором покажу прототипы меню в начале разработки и на текущий момент.

Крошки рыцари. Подведение итогов за год разработки Gamedev, Инди игра, Разработка, Pixel Art, Длиннопост

Крошки рыцари. Подведение итогов за год разработки Gamedev, Инди игра, Разработка, Pixel Art, Длиннопост

Крошки рыцари. Подведение итогов за год разработки Gamedev, Инди игра, Разработка, Pixel Art, Длиннопост

Крошки рыцари. Подведение итогов за год разработки Gamedev, Инди игра, Разработка, Pixel Art, Длиннопост

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

ОШИБКИ, ВОЗНИКШИЕ СЛОЖНОСТИ И ПУТИ ИХ РЕШЕНИЯ
— Уход единственного художника с проекта. Разработка затянулась, а отсутствие рабочих концептов приводило к задержке задач для художника. Как итог, редкая разовая работа, параллельные заказы, повышение уровня мастерства и отсутствие интереса к мелким задачкам. Выводы из этой ситуации для себя каждый сможет сделать сам, дабы обезопасить себя в дальнейшем. (Кстати, я в поиске художника по фонам. Актуально в течение 2 недель, с момента публикации статьи).
— Отсутствие опыта в проектировании UI/UX интерфейсов. В прототипировании мне не приходилось с этим сталкиваться, а отдельный экран не должен был сочетаться со всей игровой стилистикой. Решение банальное, просто набивать руку. Наличие референсов мне никак не помогло. Но не брать их во внимание тоже не стоит. В интернете масса интересных решений, которые порой в десятки раз лучше тех, чем те, которые мы только можем себе представить.
— Отсутствие опыта в планировании игрового цикла и игровых меню. Также, все просто. Ни один проект дальше прототипирования основной механики не доходил.
— Отсутствие опыта в работе с хранилищами и базами данных, при проектировании магазина торговли и вывода информации. Наверное, единственное место в проекте, где предварительная работа с диздоком действительно принесла бы свои плоды.
— Отсутствие готового прототипа игровых меню и невозможность демонстрации проекта/ невозможность продолжать разработку. Так уж получилось, что проект включает 2 главные механики, замечательно уживающиеся друг без друга, такие как бой на арене и менеджмент в главном меню. Вот только уживание это происходит не долго. Все работает, но ничего нельзя протестировать, из-за сильного переплетения и зависимости одной части от другой.

ПРИШЛОСЬ ПЕРЕДЕЛАТЬ
Все игровые меню и интерфейсы перерабатывались, без преувеличения, десятки раз, и что-то до сих пор нуждается в доработке. Но даже основная игровая механика, бой на арене, прототип который был сделан ещё 3 марта 2021 года, также неоднократно подвергалась модификациям. Однако тут, кардинальных изменений не было. В основном различные дополнения и улучшения. Изначально система получилась не очень гибкой, но неоднократный рефакторинг это исправил.

ПЛАНЫ НА БУДУЩЕЕ
Как ни странно, за последний год совсем ничего не изменилось. Что это, постоянство, как признак мастерства, или ленивое ковыряние в носу. В любом случае, в моих планах остается также, сведение боевки с менеджментом и покорение Стима. Когда релиз, гадать не буду. Предварительно, через пол года. Ровно столько я себе рассчитал, только начав разработку. Ну а там уже, как получится.

Маленький совет: Вы можете стать мастером прототипирования игровых механик. Но это вам никак не поможет, при полном цикле создании игры от идеи и до релиза.

Спасибо, что дочитали до конца. Всем интересных игр и успешных релизов!

Если хотите меня поддержать или вам просто интересно следить за проектом, заглядывайте в паблик ВКОНТАКТЕ.

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

Если у вас есть другие способы достижения этого результата, обязательно поделитесь.

1 ответ

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

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

«введите

Это спрайт, который мы использовали в игре (он встроен в альфа, который необходим для эффекта свечения):

Это шейдер, который я сделал для эффекта:

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

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

Читайте также: