NIGHT.FILIN

NIGHT.FILIN

Пикабушник
поставил 234 плюса и 44 минуса
отредактировал 0 постов
проголосовал за 1 редактирование
Награды:
5 лет на Пикабу
6832 рейтинг 14 подписчиков 13 подписок 6 постов 0 в горячем

Видимо ссылки на комментарии отлетели?

#comment_138954102

Работает ли?

"Да делай, что хочешь!"

"Да делай, что хочешь!" Светофор, Пермь, Выбор, Знаки

Пермь. На пересечении ул. Екатерининская и ул. Максима Горького.

Показать полностью 1

Что мы говорим смерти?

Что мы говорим смерти? Косари, Комиксы, Мат
Показать полностью 1

Первый опыт "ГеймДева". Часть два.

Доброго времени суток. Это продолжение поста http://pikabu.ru/story/razrabotka_igr_ili_pervyiy_opyit_quot...

И так, допустим вы определились какая мерность у вашей игры будет, какой сеттинг, каковы основные события будут. Славно. Если вы с движками еще не работали вам стоит "побаловаться" с ними.

Сегодня будет немного кода и то, как я учился всему что умею в этой сфере.

Лично мое мнение о движках:
Unity - Более простой, с относительно низкой графикой (Хотя есть очень достойные работы, опять же, от разработчика зависит), проще в освоении и менее требовательный в плане ресурсов.
UnrealEngine - Более сложный, с хорошей графикой, сложнее в освоении, требует больше времени на изучения материала и возможностей движка. Требователен к ресурсам.
CryEngine - Далеко не простой движок, нужно смотреть уроки, коих на русском языке не так много, графический потенциал, а так же возможности очень велики, но думаю стоит учесть что он очень требователен к ресурсам.

Как я говорил, я буду показывать на примере Unity. Все эти движки - бесплатны.

И так, как получить юнити - заходите на офф. сайт: https://unity3d.com/ru , регистрируйтесь, скачивайте бесплатную версию. Так же можно сделать и с остальными движками.

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

Первый опыт "ГеймДева". Часть два. Длиннопост, Инди, Unity, Gamedev

Ждем, долго ждем, зависит от процессора и жесткого диска.

Ждем запуск юнити и получаем примерно такое:

Первый опыт "ГеймДева". Часть два. Длиннопост, Инди, Unity, Gamedev

Я не буду рассказывать как все работает и тем более объяснять что за что отвечает. Первое, потому что я пишу эти посты не как уроки по unity, а как напутствие с чего начать.

Второе, вы могли выбрать и не Unity.

Тыкаемся, пробуем, создаем объекты и понимаем чего мы можем (ничего скорей всего, но это пока) и что может движок.
Вдоволь поигравшись перейдем к практике. Сначала хочу сказать железное мое правило: Не использовать чужие работы. Это касается Моделей, Текстур, Кода и т.д.
Исключение - это шейдеры (Если коротко, инструкция для видеокарты как отображать объект), до меня с трудом доходит как они работают, потому я использую или стандартные или бесплатные, чьи-то наброски и пытаюсь их доработать. Так же исключение это когда я смотрю примеры, как сделали другие, забираю себе код и дорабатываю под свои нужды или под свой лад. Последний раз так было года пол назад. Главное в коде понимать как он работает, это придет со временем.

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

Код. Код проблема многих. Многие не понимают как что либо сделать. Не пытайтесь сразу писать всю массу работы, если не понимаете как оно вообще работает все. Придумайте простую цель, например, по нажатию на "E" объект должен начать вращаться\уменьшаться\увеличиваться\двигаться, все что угодно. Простые задачи.
Процесс написания кода:
В Unity есть свой редактор кода, но по желанию можете привязать к более удобному для вас редактору.

Первый опыт "ГеймДева". Часть два. Длиннопост, Инди, Unity, Gamedev

Я пишу на C#, есть JS, но особой разницы, прям ощутимой, я не заметил. Лучше, как по мне, использовать C#. (Начинал с JS, а еще раньше, с версток сайтов на HTML).



Теперь, у нас есть задача. По нажатию "E"(Англ) делать что-то с объектом. Есть сайт https://docs.unity3d.com/Manual/index.html , он поможет с решением проблем из за не знания какие методы (команды движку) существуют.

Так же, вопросы лучше задавать в гугле, и запомнить что в 90% нам поможет docs.unity3d.com , потому в списке ответов искать его. Если не найдете, есть еще русскоязычный форум по Юнити.

Решим же нашу простую задачу про кнопку E.

Начнем с начала, у нас есть кнопка, на клавиатуре, по ее нажатию что-то должно произойти.

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

Первый опыт "ГеймДева". Часть два. Длиннопост, Инди, Unity, Gamedev

Кликаем на первые два. Находим это:

Первый опыт "ГеймДева". Часть два. Длиннопост, Инди, Unity, Gamedev

По описанию не совсем понятно, но вот по коду, уже больше информации. Debug.Log(Тут то что вам нужно вывести в консоль); - Это команда вывода информации в консоль. По переводу с англ поймем: Первое: "Пробел(Тут имеется ввиду клавиша) нажат"; второе: "Пробел поднят (Фактическое поднимание клавиши наверх)". По факту, мы копипастим весь кусок "void Update" (Обновление, все что будет в его фигурных скобках будет выполняться каждый кадр. В нормальной ситуации в секунду происходит 30-60 кадров, за кол. кадров отвечает FPS. Frame Per Second, Кадров в секунду.). То что выше копировать не нужно. Это класс Скрипта, у каждого скрипта свой класс (уникальное название класса), класс можно наследовать (Это пока вам не так нужно).

Создаем на нужном объекте-испытуемом скрипт:

Первый опыт "ГеймДева". Часть два. Длиннопост, Инди, Unity, Gamedev

Дальше ищем как взаимодействовать с объектом. Залетаем на первый форму из списка результата гугла по запросу "изменение масштаба объекта unity" и находим это: "transform.localScale = new Vector3(3.0f, 0.0f, 0.0f);". Vector3, это такой тип переменной, где имеется 3 значения. x, y , z.

Добавляем в кода сначала наш if с его условием. И да, if - команда проверки, если можно так сказать. Имеет вид if(){}. В круглых скобках - условие. Например 2 + 2 == 4 или a + b == c (a,b,c переменные, которые указать можно перед void Start и void Update, сразу после class и его названия, в его теле (Тело - то что между фигурных скобок), это я покажу мельком в другом уроке, можете сами поискать виды переменных в C#, знайте, что вам придется заниматься самообучением). То что в теле if - будет происходить если условие верно, и не выполниться если не верно. Про if можете опять же поискать в гугле по запросу "if C# Unity".

После чего в тело if добавляем действие над объектом.

Получим примерно такое:

Первый опыт "ГеймДева". Часть два. Длиннопост, Инди, Unity, Gamedev

Идем в Unity, запускаем сцену, нажимаем E, радуемся результатам.

Первый опыт "ГеймДева". Часть два. Длиннопост, Инди, Unity, Gamedev

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

Пробуйте, задавайте может быть и глупые задачи, но все же, практикуйтесь. Больше запросов в интернет, там много информации. При поиске указывайте "C# Unity", если ответов не находите, убирайте "C#", если и так ответов не находите, попробуйте убрать и "Unity".

Скажу одно, к видео лучше прибегать в крайних случаях. Не бойтесь главное и волю фантазии. Следующий пост сделаю в рамках 2д проекта.

Спасибо большое за внимание, я рад что эта тема кому-то интересна. Прошу отписаться, стоит ли делать такие большие посты или все же меньше? Если есть ошибки в посте, прошу простить меня.

Удачи от FWS!

Первый опыт "ГеймДева". Часть два. Длиннопост, Инди, Unity, Gamedev
Показать полностью 9

Разработка игр или первый опыт "ГеймДева"

Доброго времени суток.

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

Если этот пост "зайдет" то продолжу делать такого рода посты. Если нет.. Ну тогда это будет сигналом писать о чем-то другом. (Или вообще не писать)

Начать хочу разумеется с теории и подготовки. Самое главное, если вы можете обдумывать как что либо может работать, если можете придумать устройство какой либо системы, то этого будет достаточно, возраст не так важен (Я маленький, рано мне еще. Мне уже 49 лет (Тут есть такие?), мне поздно уже что либо новое изучать), нужна адекватность. Верьте в себя или передайте свою идею тому, кто может создать что либо на основе вашей идеи.

Приступим к основной теме поста.

Изначально нужно понять какую игру Вы собираетесь делать. Первый ваш выбор (Дальше Вы их будете делать еще много) это выбор какой мерности будет ваша игра. Двумерная или трехмерная. В дальнейшем это даст понять какой движок выбрать и какова будет структура мира. Есть, наверное три направления. 2D, 2.5D, 3D.

Разработка игр или первый опыт "ГеймДева" Gamedev, Unity, Инди, Длиннопост

2D - Двухмерные миры. Картинка сбоку или сверху.
2.5D - Псевдо3д, используются плоские спрайты уже давно нарисованные для достижения 3д эффекта.
3D - Трехмерные миры. Используются текстуры и 3д модели. Прототипы реального мира.

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

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

Разработка игр или первый опыт "ГеймДева" Gamedev, Unity, Инди, Длиннопост

Двухмерные движки - Лично посоветовать ничего не могу, Я в серии этих постов буду говорить о 3х мерных движках, а именно о Unity, так как для меня он оказался самым простым в освоении и при этом имеет достаточно большой потенциал.

Трехмерные движки - UnrealEngine (Для более продвинутых и желающих более красивую картинку), Unity (Для тех кто только осваивается и подойдет средняя графика), CryEngine (Достаточно сложноватый движок, если вы хотите создать свой проект. Но при этом имеет много визуальных "Плюшек" и выглядит очень даже хорошо), NeoAxisEngine (Лично я с ним знакомился очень давно, лично для он ничем не выделился).
Хочу сразу сказать, что Unity, что UE, что CryEngine могут дать одинаково хорошую картинку, если разработчик постарается. Перечисленные движки бесплатны.
На другие движки (Ссылки на них) можете посмотреть в посте на хабре: https://habrahabr.ru/post/257019/

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

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

Я в постах буду показывать разработку игры, которую сейчас делаю. Буду затрагивать 2д, 2.5д, 3д миры Unity. В чем отличия и т.д.

На данный момент на разработке у меня стоит Room Hero.
2D игра с видом с боку, с процедурно генерируемым миром и предметами.

Разработка игр или первый опыт "ГеймДева" Gamedev, Unity, Инди, Длиннопост

Смысл игры это просто побегушки по подземельям (Пока), геноцид монстриков, добыча лута и продажа\покупка лута.

Так же был проект WithoutOxygen, который я благополучно забросил, но там был первый опыт программирования.

Разработка игр или первый опыт "ГеймДева" Gamedev, Unity, Инди, Длиннопост

И Type_Null. Так же закрыт.

Разработка игр или первый опыт "ГеймДева" Gamedev, Unity, Инди, Длиннопост


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

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

Следующим постом я буду разбирать сам Unity, JS, C# и другие вещи присущие разработке.

Если этот пост не зайдет, эх, ну не судьба значит.

Спасибо всем за внимание, буду рад адекватной критике и вопросам.

Удачи от FWS.

Разработка игр или первый опыт "ГеймДева" Gamedev, Unity, Инди, Длиннопост
Показать полностью 6
Отличная работа, все прочитано!