Страницы

суббота, 31 августа 2013 г.

Как написать концепцию игры

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

Например:
В "Trick or Treat", персонажи игрока оказались в ловушке лабиринта, старого дома с привидениями. Они должны сбежать из дома, уничтожая встречающихся монстров, избегая ловушек и решая загадки. "Trick or Treat" это игра жанра action, с видом от третьего лица.

Цель этого текста состоит в том, чтобы дать читающему понять смысл игры. Он должен отвечать на несколько основных вопросов:
  • Каковы цели игры?
  • Как можно будет достичь этих целей?
  • В чем будет сложность игры?
  • Где происходит действие игры? 

Коллективная разработка на Unity3D и GitHub

Данная статья рассматривает подготовку проекта
Unity3D к работе с GitHub на Windows.

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

Один из вариантов - это Unity Asset Server, однако для его использования, каждому пользователю необходимо купить Team License, стоимостью $500. По понятным причинам, это не является лучшим решением для начинающих команд и компаний с малым бюджетом.

Вторым вариантом, является использование бесплатных систем контроля версий, а Unity3D с некоторых пор, как раз таки начала их поддерживать во Free версии. По статистике, лучшим, на данный момент, себя показывает Git.

пятница, 30 августа 2013 г.

Unity3D.basic.Step_1 – Создание/Открытие проекта

 [<]назад[<] -- [^]оглавление[^] -- [>]вперед[>]

Терминология:

  • Ассеты (Assets) – ресурсы игры любых типов: файлы кода, текстуры, музыка, модели, шейдеры и т.д.;
  • Пакет (Package) – набор ассетов(в т.ч. различных типов), упакованных в один файл, для удобства процесса импорта-экспорта;
  • Проект – набор файлов, состоящий из ассетов, метаинформации, настроек и других данных, которые будут влиять на создание конечного приложения. В узком смысле проект – это файлы и свойства нескомпилированной игры;
  • Папка проекта – корневая папка, в которой находятся все файлы проекта.


После запуска Unity3D откроет диалоговое окно, состоящее из двух вкладок.

В первой "Open project" можно открыть готовый проект, выбрав из списка последних или нажав на "Open other..."

Unity3D.basic.Step_2 – Взаимодействие с окнами Unity3D

Терминология:

  • Сцена (Scene) – условно это игровой уровень. Это список игровых объектов находящихся в данный момент в памяти. Подробнее о структуре объектов читайте на следующей странице;
  • Камера – объект сцены, который выполняет роль настоящей кинокамеры. То что видит в пространстве камера, то и будет выведено на экран пользователя.


После того, как проект откроется, вы увидите рабочее пространство Unity3D, состоящее из нескольких областей:

Каждая область имеет свою иконку и название на вкладке в верхнем левом углу. Вы всегда можете переместить любую из этих областей в другое место.
В верхнем правом углу каждой области есть маленький символ стрелочки с выпадающим меню(это меню можно открыть и нажатием правой кнопки мыши по вкладке области), через которое область можно развернуть на все окно(Maximize), закрыть (Close Tab), либо добавить новую (Add Tab).

Unity3D.basic.Step_3 – Структура приложения Unity3D

Перед тем как приступить к созданию игры на Unity3D, необходимо понять каким же образом тут все устроено:

В основе всего лежит Игровой объект (Game Object, часто сокращаемый до аббревиатуры GO). Объекты следует ассоциировать с физическими объектами из реального мира.

Unity3D.basic.Step_4 - Создание и расстановка объектов

 [<]назад[<] -- [^]оглавление[^] -- [>]вперед[>]

Терминология:

  • Материал (Material) - это компоненты Unity3D, обеспечивающие связку шейдера с текстурами. Почти все компоненты прорисовывающие графику, принимают не текстуры, а именно материалы. Подробнее о материалах в конце статьи(чтобы лучше понять их смысл - посмотрите изображение в статье по ссылке);
  • Меш (Mesh) - "набор вершин и многоугольников, определяющих форму трёхмерного объекта". Проще говоря - трехмерная модель;
  • Рендеринг (англ. rendering — «визуализация») - превращение неких данных(даже не обязательно изначально графических), в изображение сохраняемое или выводимое, к примеру, на экран;
  • Спрайт (Sprite) - это не напиток, а "графический объект в компьютерной графике". Проще говоря картинка;
  • Шейдер (Shader) - программная инструкция видеокарте, о том как именно нужно прорисовывать картинки. Обычная текстура, в зависимости от выбранного шейдера, может оказаться размыта, деформирована или изменена намного более сложными алгоритмами, однако обо всем этом заботится шейдерный программист. Это редкий случай, когда необходимо писать свой шейдер, а не пользоваться готовыми.


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

четверг, 29 августа 2013 г.

Менеджеры в Unity3d, новый подход

Как я уже говорил в предыдущем посте, разработчикам использующим Unity3d, свойственно использовать игровые объекты в их сценах, содержащие компоненты, которые действуют, как синглтоны, не так ли?
Обычно нам нужно, чтобы этот игровой объект был на сцене изначально, чтобы мы успели провести инициализацию(например найти все нужные инстансы на сцене) и после этого он будет готов принимать запросы. Кроме того, хотелось бы, чтобы этот объект существовал все время, для этого мы можем вызвать DontDestoyOnLoad(this); в нем.

Файловое I/O в Unity3D

В настоящее время, не существует платформенно-независимого способа сохранения данных в Unity3D. Если вам необходимо открыть файл для чтения или записи, то нужно задавать правильный путь. Описанный ниже трюк будет работать на PC, Mac, iOS и Android:

среда, 28 августа 2013 г.

Первонах aka Hello World!

Окей. Переезжаю на новую блоговую платформу.
Теперь буду постить статейки и переводы сюда.
В основном о GameDev, IT и возможно немного личных оффтоп бредней..