5 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программист и рисование. Как создать графику для игры, советы программиста

Разработка игр и работа с графикой — с чего лучше начинать и на что обратить внимание

    Ответы экспертов, 27 мая 2015 в 23:42

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

Дмитрий Кунин , ведущий Front-End разработчик в AT Consulting

Разработка игр – дело непростое, многогранное. Я уверен, что тот, кто задумал разработать игру, может подступиться к этому вопросу с совершенно разных сторон. И, на мой взгляд, начинать с технической стороны не совсем верно. Ты можешь быть гением Unity или двухмерного движка типа phaser.js и все равно сделать неинтересную игру низкого качества. Игры – это не только техническая реализация: любая хорошая игра – это синергия звука, цвета, движения и, на мой взгляд, самого главного – сценария, истории. Именно она позволяет игрокам полноценно окунуться в мир игры, забыв обо всем на свете. В данном разрезе я призываю игнорировать игры вроде Счастливого фермера или Candy Crush. У них нет толковой сценарной составляющей, но они все равно ужасно затягивают, не благодаря их качеству, а потому что «играют» на умении мозга получать удовольствие от малейшего стимула. Такие игры, сочетая простоту и красочность, делают зависимыми от них. Кто-то из гейм-индустрии сказал о том, что игра, которая заставляет тебя думать о ней все время, плохая, наркотик.

С чего начать разрабатывать игру? С истории и сюжета. Любая техническая сторона вспомогательна. Если кто-то скажет, что только гигантские корпорации, разрабатывающие 3D игры и миры, выпускают качественные продукты, то они не слышали об успешных инди-играх вроде Hotline Miami 1/2, Meat Boy, Fez. Они, может быть, не блещут графикой, но зато сверкают своим глубоким миром, который приглашает миллионы людей окунуться в волшебное пространство игры.

Читать еще:  Сколько лет сыну стоцкой. Биография, карьера, дети и муж стоцкой насти

Джозеф Браун , профессор Университета Иннополис

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

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

Егор Шубин , программист, команда сервера Skyforge

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

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

Книжек по алгоритмам и структурам данных огромное множество. Очень хороша книжка Роберта Седжвика про алгоритмы. Как java-разработчик, могу ее рекомендовать.

Читать еще:  Сэр Артур Конан Дойл. Как сын алкоголика стал рыцарем ее величества

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

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

В принципе, все эти навыки/знания будут полезны любым программистам. Но при разработке игр без них просто никак.

Ну и главное, нужно любить игры 🙂

Александр Акбашев , специалист по тестированию в Mail.Ru Group

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

Если мобильная разработка, то ничего учить особо не нужно – нужен просто знакомый художник и куча времени 🙂

В тех же статьях на хабре есть подборка литературы по теме графики.

Сергей Зефиров , программист с широким опытом работы, энтузиаст и евангелист языка Haskell

Попробуйте написать интересную вам игру. А дальше приложится.

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

Внимание, вопрос: можем ли мы избежать полностью или уменьшить количество обращений в произвольные (не последовательные) адреса памяти?

Источники:

https://tproger.ru/experts/11/

Ссылка на основную публикацию
Статьи c упоминанием слов:
Для любых предложений по сайту: [email protected]