Как изучить c для unity
Перейти к содержимому

Как изучить c для unity

  • автор:

Программирование в Unity для опытных программистов

В Unity скрипты можно использовать для разработки практически любого элемента игры или интерактивного контента с графикой реального времени. Unity поддерживает скрипты на C#, созданные в соответствии с одним из двух основных подходов: традиционным и широко использующимся объектно-ориентированным подходом и информационно-ориентированным подходом, который теперь тоже поддерживается в Unity в отдельных случаях благодаря нашему высокопроизводительному многопоточному стеку информационно-ориентированных технологий (DOTS).

На этой странице

  • Если у вас есть опыт программирования на C++
  • Объекты GameObject и компоненты
  • Программирование компонентов в Unity
  • Преимущества информационно-ориентированного подхода
  • Современное оборудование
  • Отладка в Unity
  • Системы программирования в Unity
  • Настройка редактора Unity

Знакомитесь с Unity, имея знания C++?

Unity поддерживает C#, стандартный в отрасли язык программирования, в некоторой степени похожий на Java или C++.

По сравнению с C++, C# легче в изучении. Кроме того, он относится к категории языков «с управлением памятью», то есть он автоматически распределяет память, устраняет утечки и так далее.

Как правило C# удобнее C++, если вам нужно в первую очередь разработать игру, а потом уже работать над различными сложными аспектами программирования.

Объекты GameObject и компоненты в Unity

Вся интерактивность и игровой процесс в Unity строятся на основе трех фундаментальных блоков: объекты GameObject, компоненты и переменные.

Любой объект в игре является GameObject, будь то персонажи, источники света, спецэффекты, декорации и все остальное.

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

Компоненты (Component) определяют поведение игровых объектов, к которым они прикреплены, и управляют ими. Простой пример — создание источника света, включающее прикрепление компонента Light к GameObject (см. ниже). Таким же примером может быть добавление компонента Rigidbody к объекту, чтобы он мог падать.

Компоненты имеют ряд свойств или переменных, которые можно настроить в окне Inspector редактора Unity и/или с помощью скрипта. В примере выше к свойствам источника света относятся дальность, цвет и интенсивность.

Программирование компонентов в Unity

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

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

Демофильм Unity Megacity создан на основе DOTS

Преимущества информационно-ориентированного подхода с DOTS

Традиционная модель «игровой объект — компонент» хорошо работает и сегодня, поскольку она проста как для программистов, так и других пользователей, а также удобна для создания интуитивных интерфейсов. Добавите компонент Rigidbody к объекту GameObject — он начнет падать, добавите компонент Light — GameObject начнет излучать свет. Все остальное также подчиняется этой простой логике.

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

Компоненты и игровые объекты относятся к «тяжелым объектам C++». Все объекты GameObject имеют имя. Их компоненты представляют собой оболочки для C# поверх компонентов на C++. Это упрощает работу с ними, но может влиять на производительность, если они будут храниться в памяти без явной структуры. Объект C# может находиться на любом участке памяти. Объект C++ также может находиться в любом участке памяти. Группировка и последовательное размещение объектов в памяти отсутствуют. При каждой загрузке в центральный процессор для обработки объект приходится собирать по частям из разных участков памяти. Это может сильно замедлить загрузку, а оптимизация потребует много усилий.

Для решения этих проблем мы начали перерабатывать базовые системы Unity на основе высокопроизводительного, многопоточного стека информационно-ориентированных технологий или DOTS (в настоящее время в статусе предварительной версии).

DOTS позволяет вашей игре эффективно использовать все возможности новейших многоядерных процессоров. Стек состоит из следующих компонентов:

  • система задач C# для эффективного исполнения кода на многопоточных системах;
  • Entity Component System (ECS) для разработки высокопроизводительного кода по умолчанию;
  • компилятор Burst для компиляции скриптов в оптимизированный нативный код.

ECS — это новая система компонентов в составе DOTS; все традиционные объектно-ориентированные манипуляции над GameObject отражаются на экземпляре в новой системе. Название «Компонент» никак не изменилось. Важнейшее отличие — в структуре данных. Подробнее об этом можно узнать из статьи «О DOTS: Entity Component System».

Демофильм Unity Megacity создан на основе DOTS

Используйте все возможности современного оборудования

Помимо того, что это улучшенный подход к написанию кода игры с точки зрения дизайна, ECS позволяет вам использовать систему задач C# Unity и компилятор Burst и тем самым полностью использовать преимущества современного оборудования.

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

Некоторые из технологий DOTS все еще находятся в статусе предварительной версии, поэтому мы советуем разработчикам использовать стек для решения отдельных вопросов производительности проекта, не строить на базе DOTS весь проект. См. раздел «Дополнительные ресурсы» в конце этой страницы, где указаны ссылки на ключевые ресурсы DOTS.

Unity Profiler для оптимизации производительности

Отладка в Unity

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

Вот несколько полезных ресурсов по оптимизации в Unity:

Наилучшие методики для общих случаев (включая подробные советы по оптимизации системы интерфейса Unity)

Научитесь программированию в Unity

Хотите программировать собственные компьютерные игры? Начните с бесплатных наборов и обучающих материалов по программированию на Unity Learn, а также не забывайте про наше замечательное сообщество.

Unity Microgame: шутер от первого лица

Unity FPS Microgame

Программируйте игры с Unity

Новички могут загрузить Unity бесплатно и начать с готовых ресурсов Unity Microgame и Mod. Затем углубите знания с помощью обучающих материалов и изучите структуру C#, языка программирования игр в Unity. Научитесь разрабатывать простые скрипты на C# для программирования игрового процесса, механики, визуальных эффектов, систем ИИ и других элементов.

Создавайте красивые игры

Реализуйте свои способности к программированию в Unity! Это может стать началом вашей успешной карьеры. Unity — самая популярная платформа разработки игр в мире: 50% всех мобильных игр созданы в Unity! Профессия Unity-разработчика находится в первой десятке по росту востребованности в США согласно данным LinkedIn.

Введение в программирование на C# в Unity

Introduction to C# scripting in Unity

Что такое C#?

Скрипты в Unity разрабатываются на языке C# (произносится как «си-шарп»), который имеет богатые возможности и прост в изучении. Предлагаем вашему вниманию простое и понятное введение в программировании на C# в Unity, которое также включает информацию о базовом синтаксисе языка, то есть о переменных, функциях и классах.

Unity Creator Kit: программирование

Unity Creator Kit: Code

Создайте свой первый скрипт в Unity

Наборы Creator Kit — это простые игровые проекты, доступные на Unity Learn. Каждый из них можно изучить и освоить за несколько часов В наборе Creator Kit для начинающих программистов вы познакомитесь с основами разработки скриптов на C# для Unity в контексте игры жанра экшен-RPG.

Курс «Творите, программируя», от Unity

Create with Code course from Unity

Полный курс: Create with Code in Unity

Create with Code — это официальный вводный курс Unity по программированию, содержащий более 37 часов насыщенного образовательного контента. В процессе разработки прототипа, решения задач по программированию и ответов на вопросы вы освоите базовые принципы программирования на примере разработки собственного игрового проекта на C# с нуля.

Другие способы учиться программированию в Unity

Обучающие материалы по программированию на C# в Unity

Обучающие материалы по программированию на C# в Unity

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

C# в Unity. С чего начать?

Всем доброго времени суток, форумчане.
Мне 29 лет, работаю в гос учреждении, не программист от слова совсем.
Хочу стать человеком-оркестром и начать делать свои игры на юнити.
До этого не кодил вообще, только по урокам из ютуб, но знаний оттуда подчерпнуть не удалось, ибо все подается хаотично или по крупицам.
В связи с чем вопрос!
С чего начать изучать юнити, если я хочу сам программировать?
Книг по С# много, но все ли они подходят конкретно под юнити? не хотелось бы погрязнуть в трясине коддинга, через N-е количество времени поняв, что я изучаю не то направление.
То есть как вы изучали/изучаете С# для юнити? Какие книги или курсы изучали?
Заранее спасибо за советы, всем здоровья!

#1
15:31, 5 июля 2021

IvanBoykov01
> Книг по С# много, но все ли они подходят конкретно под юнити? не хотелось бы
> погрязнуть в трясине коддинга, через N-е количество времени поняв, что я изучаю
> не то направление.
Книг много и прочитать придется много. Можешь начать с Шилдта он староват и простоват, но зато это настоящий учебник.

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

Чтобы нормально на нем работать нужно еще знать паттерны проектирования. Это х2 времени обучения. Ну а раз берешь такой язык, то значит хочешь производительности? А это алгоритмы и структуры данных — х3 времени обучения. Без этого шарпа скорее будет тормозить чем помогать.

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

Если же тебя больше привлекает сама разработка по себе. Лучше взять что нибудь динамическое: JS, LUA, Python.

Да и вообще не замахиваться на движки с начала, а взять моды или UGC.

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

  • IvanBoykov01
  • Постоялец

#2
16:12, 5 июля 2021

qGrin
Спасибо за развернутый ответ.
Но отсюда вытекает несколько вопросов.
1. Стоит ли тратить время на моды или UGC (изучая иные ЯПы), если я хочу сделать небольшой проект в юнити, потом проект побольше, большой и т.д.? И все это не денег ради, но мечты для, всегда мечтал делать игры, а не работать непонятно на кого и зачем.
2. Можно ли изучая тот же JS с уклоном на игры, потом уйти в другие сферы? И можно ли вообще чисто на JS сделать полноценную игру и в какой среде разработки?

Но вообще не советую связываться с статически типизированными языками типо шарпа

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

#3
16:38, 5 июля 2021

Мое маленькое ИМХО
шарп довольно популярен не только в gamedev если устанешь есть шанс уйти
на фулстек или на микросервисы есть хорошие вакансии именно по шарпу
Тем более для себя все же лучше понять что такое ООП и др приколюшки чем
«быдлокодить» на JS
Насчет игр все же сначала лучше изучить сам язык и начинать делать свою «змейку»
именно основывая на языке а не на визуальном программировании которые можно эту змейку
построить если скачать какой нить мод это для геймдизигнеров

  • IvanBoykov01
  • Постоялец

#4
17:54, 5 июля 2021

DanQuimby
Спасибо за Ваше мнение.
Тем не менее, Вы бы с чего начали все таки если выбор пал бы на шарп?

#5
19:56, 5 июля 2021

IvanBoykov01
> 1. Стоит ли тратить время на моды или UGC (изучая иные ЯПы), если я хочу
> сделать небольшой проект в юнити, потом проект побольше, большой и т.д.? И все
> это не денег ради, но мечты для, всегда мечтал делать игры, а не работать
> непонятно на кого и зачем.
Стоит. Если ты не «пришел-поковырял-забил».

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

Ты решил, что юнити, но это «пальцем в небо». Я тоже 8 лет назад начал с юнити, в итоге чем только не позанимался, а сейчас в Анриле и посматриваю на мод сцену(гмод2/кор).

Изначально ты делаешь не игру. Ты делаешь прототип или демо-версию. Моды хотя и не обладают всеми возможностями движков, но позволяют довольно много и на старте скорее всего возможностей хватит. Стартовать с ними проще, небольшие прототипы делать тоже проще. Если отыщешь «нужную формулу» или поймешь, что мод тебя сильно ограничивает, то пойдешь дальше.

IvanBoykov01
> 2. Можно ли изучая тот же JS с уклоном на игры, потом уйти в другие сферы?
Конечно, JS сейчас вообще везде пихают. Но в любом случае, если захочешь работать кодером придется учить несколько ЯПов.

IvanBoykov01
> И можно ли вообще чисто на JS сделать полноценную игру и в какой среде
> разработки?
Babylon.js, Three.js. В анриле есть Unreal.js. Да поди что и к юнити можно что то подключить(мне там не зачем я хз =)

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

IvanBoykov01
> 3. Но именно такой язык поддерживает юнити, самая популярная среда разработки
> инди игр, почему бы тогда не погрязнуть с головой все таки в шарп?
С чего вдруг самая?
Ну я уже в первом посте объяснил проблемы статической типизации. Но опять же мб это твой путь, тут я хз.

DanQuimby
> Тем более для себя все же лучше понять что такое ООП и др приколюшки чем
> «быдлокодить» на JS
Быдлокодить можно и на С++, только на JS ты стартанешь через месяцок, а на шарпе меяцев через шесть.

#6
2:17, 6 июля 2021

IvanBoykov01
> С чего начать изучать юнити, если я хочу сам программировать?

Поскольку «не программист от слова совсем», то, я думаю, с собственно программирования, не залезая сильно в Unity.

> Книг по С# много, но все ли они подходят конкретно под юнити? не хотелось бы
> погрязнуть в трясине коддинга, через N-е количество времени поняв, что я изучаю
> не то направление.

Советовать не буду, не в курсе книг. Замечу только, что тут надо будет как бы три отдельных навыка получить:

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

2. Научиться конкретному языку программирования и знать его базовые библиотеки. Научиться излагать свои мысли на этом языке. По аналогии с естественными языками ― выучить их грамматику и базовую лексику.

3. Выучить предметную область, т.е. о чём и какими терминами ты на этом языке будешь говорить (Unity, MonoGame, WinForms, WPF, ASP.NET. ) Аналогия ― выучить физику, математику или биологию.

Навык программирования более-менее универсален. Язык C# в Unity тот же самый, что и вне Unity. Библиотеки функций, которые придётся использовать, какие-то общие, какие-то отличаются. Для всех новичков неочевидная проблема понять, где проходит граница между изучаемым языком и доступными для использования библиотеками.

#7
3:42, 6 июля 2021

IvanBoykov01
Я сначал изучал GML (язык, встроенный в Game Maker, тогда еще без приставки Studio) по хелп файлу со словарем.

Затем после пары-тройки лет ковыряния этого замечательного инструмента пробовал Python на Panda3D. базовый Python после ковыряний в GML дался довольно легко поле прочтения 5 страниц на intuit.ru. Но с Panda3D не задалось — это 3D, т.е. чтобы сделать что-то сложнее куба ездящего по тиррейну — надо моделить, а у меня с этим тогда было намного хуже, чем с 2D артом.

Затем через некоторое время (спустя 3-4 года после начала экспериментов с Game Maker) познакомился с «настоящими программистами» (не из геймдева), которые пишут на PHP и Java и стал учить Java по книжке Хорстманна. Книжка была безумно интересная — после опыта с GML было все понятно с полустрочки, а примеры аналогий с C/C++/C# откладывались в памяти, потом позволяя без страха лазить и в эти языки. Через год Java стала моим вторым родным языком и я перешел работать из McDonalds в аутсорсинг софта для американских стартапов java-джуном.
А в рамках хобби Game Maker был навсегда брошен и я стал экспериментировать с играми на jMonkeyEngine.

Не прошло и года, как я прознал про Unity (это была 4 версия) и это были ворота в мир настоящих игр. Зная Java, писать на C# не составляет вообще никаких проблем. хотя нет, есть 1 проблема — в шарпе было очень плохо с IDE по сравнению с Java, а к хорошему привыкаешь быстро. Rider еще не было, а ReSharper безбожно тормозил (и кроме своей стоимости еще требовал купить Visual Studio). Но вполне терпимо (сжимая зубы кодил в MonoDevelop), учитывая что получаешь взамен.

Профессиональным разработчиком игр я так и не стал (разве что на игровом бэкенде поработал) — меня затянуло в ынтерпрайз. Но свободное время часто посвящаю как раз таки геймдев-человек-оркестровству, особенно последние пару лет.

В общем, что я могу сказать. Роль ЯП в разработке игр не так велика, как это было во времена Кармака и как все еще оно остается в проф сегменте для мобилок и топовых немобильных. Сразу оговорюсь — да, в проф мобилках и в немобилках с хай-энд графикой, нужен нормальный программист (причем для немобилок это все еще обычно C++, а не C#). Нормальный программист и человек-оркестр в одном лице — это очень много лет самоотдачи, включая «лучшие года». Вы таким стать уже не успеете. Выбирайте — либо нормальным программистом (может быть успеете), либо оркестром.

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

В общем, я вижу 2 взаимоисключающих сценария для вас:

===
1. Путь хорошего программиста

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

Выбрать ЯП, и не обязательно шарп. Выучив Java, имхо, у вас в голове сформируется гораздо более толковый нравственный каркас. Но при этом, у вас не будет НИКАКИХ проблем писать на C# для Unity. Не надо бояться на этом этапе «выучить не то» — между изучением всех популярных промышленных языков дичайшая синергия.

А далее просто досконально осваивать этот ЯП. Читайте хорошую основательную книжку по основам. Не «40 советов для чайников», а именно учебник. Не трогать движок пока, а начинать делать сначала консольные программы, потом либо GUI, либо веб, либо игры на примитивных функциях отрисовки. И лишь потом, когда сам язык станет литься из ваших пальцев (вполне возможно, вы к тому моменту уже смените работу и станете джуном прогером или QA автоматизатором), уже можно. да вы сами уже будете ориентироваться в том, что вам можно и нужно. До этапа, когда новый ЯП будет литься из ваших пальцев (по внутренним ощущениям), должно пройти год-два, не больше. Если не успеете — значит не ваше.

1Б. Если за пару месяцев C#/Java для вас все еще кажется сложным и вы начинаете прокрастинировать его, но при этом все еще верны пути «стать хорошим программистом», то советую переключиться временно на языки с более щадящим порогом вхождения. Например попишите полгодика-год игры на Lua (Love2d, Defold). Да, язык казуальный, но опыт программировная на нем сделает очень многие вещи в C#/Java гораздо более понятными.

(Про кресты пока забудьте — вам уже поздно. А если у вас талант и лично вам — не поздно, то изучение сперва C#/java никак вам не помешает, а лишь послужит трамплином)

===
2. Путь геймдев-универсала.

«Учить» язык только по ошибкам компилятора, примерам из документации и StackOverflow. В топку ООП. В топку Шилдта. Вот реально, забудьте. оно не нужно — это пустая трата времени в этом сценарии. Рассматривайте C# просто как временный инструмент, решающий проблемы здесь и сейчас
Да, вам придется освоить базовые программерские навыки — понимать что такое переменная, чем она отличается от поля и тому подобное. Но не надо лезть в архитектуру и пытаться все запилить красиво.
Делайте все тупо на куче простеньких MonoBehaviour. Т.е. просто открываете Unity, создаете куб (как создавать куб — надо понять самому, ковыряя менюшки, доки и гугол — это основной навык). Накидываете на этот куб скрипт. И просто пытаетесь в этом скрипте что-то сделать с кодом — поменять по кнопке текстуру или сдвинуть его. Внимательно читаете ошибки компилтора в консоли редактора — это ваш основной учитель програмимрования, сравниваете с примерами построчно. В итоге, ваше куб будет вас слушаться — ездить по полю. Если все компилится, но куб не слушается — обмазываете код Debug.Log. В итоге и другие кубы будут пулыяться в вас еще другими кубами. Никаких абстракций — просто маленькие скриптики, которые вы вешаете на кубы, которые делают самым тупым способом то, что вы хотите. Вместо кубов можно сразу ассеты какиенить скачать — как хотите.

Через полгода вы уже освоите «скриптовый C#». И этого знания языка вам будет достаточно для инди-игр — да, посмотрев на ваш код, скажут «фууу, лютое говнище!» (и будут правы), но в отличие от этих чистюль-синьёров, вы будете делать игры, а не воображаемые замки в облаках. Хотя, конечно, за полгода умение сформулировать воображаемую игровую логику в виде кода только начнет появляться и будет улучшаться с практикой.
Но в основном, вам нужно осваивать другие (не связанные с кодом напрямую) вещи: как и зачем запекать свет, как импортить модели, как блендить анимации, зачем нужны разные виды шейдеров (пока просто выбирать из готовых и копипастить из инета те которых «из коробки» нет). В общем, вы должны ориентироваться в том кол-ве галочек и ползунков которое есть в редакторе и понимать какие из них нужны для вашей игры.

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

  • endeavour_pr
  • Постоялец

Где можно изучить Unity + C# с нуля?

Я пока не умею программировать, но есть идея игры и хотелось бы воплотить ее в жизнь.
Насколько я понимаю, Unity + С# — лучший вариант для новичка.
Для начала скачал книгу «Изучаем C#», но как бы ни старался, совершенно не понимаю, чего там от меня хотят.
Тогда я задумался: а действительно ли сначала нужно изучить C#, или это можно сделать по ходу изучения Unity?
Подскажите пожалуйста хорошие курсы/книги и в каком порядке их учить, учитывая, что я пока совершенно ничего не понимаю в программировании.

  • Вопрос задан более трёх лет назад
  • 42373 просмотра

1 комментарий

Оценить 1 комментарий

Vaspingui2002 @Vaspingui2002
Зайди на ютуб видео и выбири книгу там есть и установка в описании https://youtu.be/8eYqpPM6jLY
Решения вопроса 3

Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity and C#
https://www.amazon.com/Introduction-Game-Design-Pr.
интересная книжка вообще по геймдизайну, C# и unity
теория геймдизайна + коротко про C# (и вообще про кодинг) + 8 прототипов игр разных жанров с детальным описанием.
написано легко и с подробными объяснениями для полных нулей, есть полезный раздел с программистскими трюками «useful concepts». достаточно объемная, так что советую запастись терпением. по факту, материала на 800 страниц где-то.
для меня, как новичка, книга идеальна.
если проблемы с английским, то начинай осваивать его по ней.

Ответ написан более трёх лет назад
Нравится 4 2 комментария

MrNexeon

Согласен, для начала начал идеально
А можешь скинуть ссылку на перевод книги, все что я искал на английском, пожалуйста.
xmoonlight @xmoonlight
https://sitecoder.blogspot.com

Официальные туториалы (вначале списка) и вот этот сайт — очень хороший для совокупного обучения Unity3D вместе с C#: null-code.ru

Ответ написан более трёх лет назад
Нравится 1 2 комментария

LINKeRxUA

Последняя ссылка — примитивщина! Но именно по точечных и в то же время быстро реализуемых примерах мелких проектов легче всего учиться! 🙂 Даже для себя на заметку возьму

xmoonlight @xmoonlight
LINKeR UA: весь сайт — режим сниппетов. иногда очень выручает.

Сегодня разработка игр очень перспективная область. Поэтому если вы решили изучить Юнити — это очень классно. Литературы по изучению очень много, в частности:

Unity for Absolute Beginners. Sue Blackman

Unity Game Development in 24 Hours. Mike Geig

Learning Unity Android Game Development. Thomas Finnegan

Learning Unity iOS Game Development. Kyle Langley

Learn Unity3D Programming with UnityScript: Unity’s JavaScript for Beginners. Janine Suvak

Learning C # Programming with Unity 3D. Alex Okita

Unity 2D Game Development. Dave Цалабресе

еще если вы больше любите интерактивное изучение, можно взять приложения для мобильных, например нашла
https://play.google.com/store/apps/details?id=com.
достаточно хорошие уроки для изучения с нуля. там и тесты после каждого урока и общий тест и задачи какие-то .. мне понравилось

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 1

Насколько я понимаю, Unity + С# — лучший вариант для новичка.

Нет это ошибочное мнение. Для начала нужно изучить алгоритмику. Это не просто вам перечисление процедур и тп. Там много есть заковык.
Далее — хоть в принципе узнать что такое переменные, циклы, процедуры, функции, не говоря уже о объектах, класса и прочем.
А движок с которого легче начать- Construct2 — он 2D. Но. освойте его, и когда в нем наберетесь опыта и скажут вам — ты парень можешь! — лишь тогда беритесь за Unity.
Нет я не нравоучитель, но легкая дорога только .. надеюсь понятно куда.
И каким бы движком вы не пользовались — Инди(одиночка) сделать игру сумеет лишь если будет потеть над не1 25/24 и 8/7. Кроме программирования нужно еще что? Графика(вы умеете делать 3d персонажей с риггингом и анимацией?) Звук. Да и сам сюжет — У меня есть идея игры. Я думаю идея такая — Отважный СуперБой спасает мир от Плохого Плохиша.
Ну вот в принципе, не все написал, но(не падать духом) — прежде чем что-то предпринять взвесить — хочу и могу!
Удачи в игростое!

Ответ написан более трёх лет назад
Нравится 1 1 комментарий
Andrey_Epifantsev @Andrey_Epifantsev

Для начала нужно изучить алгоритмику.

Нафиг не нужно. Этот только для профессиональных программистов и то не для всех. Для создания инди-игр знание алгоритмов не нужно.

А движок с которого легче начать- Construct2 — он 2D

— только по нему уроков (особенно на русском) на порядок меньше чем по Unity. Готовы ассетов тоже на порядок или на два меньше.

И каким бы движком вы не пользовались — Инди(одиночка) сделать игру сумеет лишь если будет потеть над не1 25/24 и 8/7..

В Ютубе полно уроков вида «Игра в Unity за полчаса», за час, за 24 часа.

Графика(вы умеете делать 3d персонажей с риггингом и анимацией?) Звук.

— в Unity есть магазин ассетов, где всё это есть в готовом виде. Вам остаётся сосредоточится на игре и не отвлекаться на вещи, в которых вы плохо разбираетесь.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *