O reilly издательство

O reilly издательство

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

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

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

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

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. И понимать основные паттерны и архитектуру приложений.

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

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

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

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


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

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