99

С чего начать изучать "Игрострой" и так ли это страшно.

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

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

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

Спасибо, что прочитали и начнём!

С чего начать изучать "Игрострой" и так ли это страшно. Программирование, Игрострой, IT, Gamedev, Обучение, Книги, Текст, Длиннопост

Пришёл этот светлый день! Вы решились стать программистом. Долго думали, взвешивали все за и против, кучу раз себя переспросили, но решились. Следующим этапов является выбор специализации в которой вы будете развиваться. Благо сфер у нас много, есть где разгуляться. Сегодня подробно остановимся на разработке игр.


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

С чего начать изучать "Игрострой" и так ли это страшно. Программирование, Игрострой, IT, Gamedev, Обучение, Книги, Текст, Длиннопост

Давайте сразу определимся, что сегодня мы разбираем геймдев с точки зрения программирования, мы не рассматриваем дизайн и прочее, мы разберёмся с этой стороной игростроя.


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


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


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

1) математика

2) навыки программирования

3) библиотеки

4) компьютерная графика

5) тестирование


Теперь каждый пункт отдельно с объснениями, ссылками и советами.


Математика

Начнём со страшных вещей, с линейной алгебры. Стартуем отсюда. А тут есть основы линейной алгебры в pdf. Хорошо бы знать и понимать школьный курс геометрии и алгебры, если всё совсем плохо, то вернитесь к нему и разберитесь. Во время разработки будет встречаться множество формул, не всегда сложных, которые зависят от текущего кадра в игре. Чтобы было более понятно, рассмотрим на примере простых движений, подчиняющихся законам физики в Unity3D. Взять простейший 2D платформер, в котором два объекта будут соудоряться, встроенная в движок физика нам тут не поможет и придётся писать собственную формулу. В самом начале вы не встретите особых затруднений с математикой, они возникнут в дальньйшем, при работе с крупными проектами, в которых сложная физика движений, что приводит к более сложной математике.


Навыки программирования

Желательно начать с книг: Программирование трёхмерных игр для Windows, Coding4Fun, Фрэнка Луна. Далее разберитесь с Unity3D. Эту платформу не стоит списывать со счетов и она очень помогает в раскрытие творческого потенциала, так как не требует на прям досканального разбора и можно довольно быстро вникнуть.

Далее советую копать в сторону C++, а конкретно:

- Программирование. Принципы и практика использования C++

- Язык программирования С++. Лекции и упражнения

- Язык программирования C++. Базовый курс

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

Так же стоит уделить внимание разору ООП в С++: Объектно-ориентированное программирование в С++


Библиотеки

Знать их нужно, очень нужно. DirectX и OpenGL. Шейдеры- HLSL, GLSL. Плюсом будет знать некоторые популярные движки, типа Unity3d, cocos2d-x, Unreal Engine, поэтому учить их всё равно придётся. Причём знать придётся не на уровне, я в курсе, что они есть, а именно уметь под них программировать, понимать, как всё это работает и зачем это нужно. Так же хочу отметить, что нужно будет знать API к разным ОС, как например WinAPI для Windows. Вы должны понимать, как работает мультипоточность, поэтому загляните сюда. Знать основные алгоритмы - поиск пути, генерация ландшафта и тому подобное. И нужно будет понять и знать более специфичные библиотеки например такие, как Steamworks SDK. И понимать основные паттерны и архитектуру приложений.


Компьютерная графика

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


Тестирование

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

С чего начать изучать "Игрострой" и так ли это страшно. Программирование, Игрострой, IT, Gamedev, Обучение, Книги, Текст, Длиннопост

Несколько советов

Игровой рынок стремительно развивается, места под солнца хватит всем. Чтобы скорее реализовать себя и набраться опыта я бы хотел посоветовать вам уже на ранних этапах обучения, когда вы сможете делать хоть что-то вминяемое, постучаться в какой-нибудь "игродельный" opensource проект. Обычно такие проекты всегда рады новым людям, особенно находящимся на этапе обучения, там вы сможете набраться опыта, завести новые знакомства в сфере игр, получить много советов и рекомендаций. Реализовывайте любую свою, даже самую бредовую идею, просто посмотрите на стим в разделе инди, гарантирую, любая ваша "наркоманская" идея станет гениально адеватной, по сравнению с играми там) Просто посмотрите видео по этой ссылке. Никогда не переставайте учить что-то новое. Делайте то, что вам нравится и тогда из этого будет толк.


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


Специально для Pikabu, vishcode!

Дубликаты не найдены

+5

Здравствуй автор, очень информативный пост. А можешь сделать пост с названием "С чего начать локализацию игр и так ли это страшно.") Ну что то в этом роде. Благодарю.

раскрыть ветку 2
+8
Могу, но немного позднее, соберу материал для этого. +)
раскрыть ветку 1
+1
Ух ты! Буду ждать)
+1
Привет автор. Отличные посты. Можешь плиз написать пост пржо программирование на смартфоны/планшеты для начинающих ?
З.Ы. подписался на тебя !)
З.З.Ы. или запилить пост про веб программирование
раскрыть ветку 1
+2

Тоже будет, и мобдев и веб, в скором времени)

0
Очень крутая тема. Не знаю почему не могу сохранить и поставить плюс с телефона, поэтому напишу тут коммент. Спасибо
0

а на js можно сделать так: http://johnnys.hol.es/FASTA15/

это ж можно считать игрой? я пару часиков потратил

раскрыть ветку 1
0
ну как бы да и нет)
0
Линейная алгебра и геометрия для простой игры? Смешно.
Старая книга Фрэнка Луны (про DirectX), чистый DirectX/OpenGL... Зачем?
Знание WinAPI? Многопоточность? Ноунейм SDK? cocos-2dx? Паттерны проектирования? Просто намешаны разные слова, которые автор где-то прочитал. Наглядное пособие, как НЕ надо начинать писать игры.
раскрыть ветку 1
-1

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

0
Можно подробнее, а то не совсем понял про:
"Тут важно понимать, что компьютерная графика - это не графический дизайн"
Ну и жду поста про Дизайн / специальности в игрострое.
0

я бы вопрос в заголовке немного видоизменил с "так ли это страшно" на "так ли это нужно"

0

А тематика будет только о игроиндустрии или программировании в общем?) Просто интересует веб тематика.

раскрыть ветку 1
0

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

0
Чет так мало комментов и плюсов. Жаль) именно геймдев у нас в стране не популярен. Игры популярны, а их разработка к сожалению нет. Поэтому так мало годноты
раскрыть ветку 5
+1

Если ты программируешь - ты находишь себе работу.
Если ты моделируешь \ рисуешь - ты находишь себе работу.
Если ты начинаешь делать игру - ты не работаешь и, соответственно, не можешь оплачивать счёт за квартиру, ком.услуги, своё проживание, блять!

Понимаешь? Твоему желудку похуй, что ты делаешь игру. Он жрать хочет сейчас, а не через год - два, когда игра ,возможно(!), окупится.

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

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

раскрыть ветку 3
0

ТЫ абсолютно прав. Я согласен с тобой) Но с условием, если говорить о более менее серьезных проектах. К примеру...
Условно разобьем все игры на три части. Большие, средние, малые. Большие делают крупные и не очень компании, вкладываются и т.д. Средние делают возможно достаточно солидные инди студии. И малые, которые делают простой инди-люд. (флаппи берд допустим)

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

-2

"захуячить за пару вечеров ахуительную игру" - за пару вечеров? Тетрис что ли?

раскрыть ветку 1
0
Может недостаточно понятно написано.
0

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

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