Программист игр - это тот, кто воплощает видение дизайнера в жизнь, заставляя его работать в игровом движке. Я работаю в команде мобильного программирования игр в Kwalee, и для нас это в основном Unity. Например, если дизайнер хочет, чтобы кубик катился особым образом, я напишу сценарий для обработки логики. Мы также сотрудничаем с художниками игр, чтобы наши игры выглядели потрясающе и работали с высокой производительностью на устройствах.
В этом блоге я поделюсь опытом работы в Kwalee, чтобы дать важные советы о программировании игр. Я расскажу о языках, инструментах и принципах, которые мы используем, а также о карьерных советах и советах для начинающих и продвинутых.
Что делает программист игр?
Мы пишем код и помогаем игре стать реальностью. Пока дизайнеры создают концепции, а художники - активы, программист создает функциональный, игровой опыт. Мы оптимизируем производительность игры и устраняем проблемы.
Мы гарантируем, что игра работает с высокой производительностью. Для этого код должен быть чистым и расширяемым. Мы используем стандарты кодирования для поддержания качества. Однако иногда приходится мыслить нестандартно, чтобы уложиться в сроки.
Наши задачи включают обеспечение работы игры на пользовательском оборудовании. Например, в мобильных играх мы стараемся не перегревать старые устройства, оптимизируя количество draw calls. Draw call - это команда от CPU к GPU для отрисовки объекта на экране. Мы минимизируем их количество, чтобы избежать падения FPS и лагов. Это особенно важно для мобильных устройств, так как они имеют разные технические характеристики.
Какие основные языки программирования игр?
Большую часть времени мы проводим за скриптованием на разных языках программирования. Есть много языков на выбор. Некоторые кажутся проще, но освоив один, вы можете освоить и другие.
Введение в популярные языки программирования игр:
- C# - универсальный и популярный язык, широко используемый в разработке игр. Он прост для начинающих и имеет автоматическую сборку мусора.
- C++ - язык без управления, что делает его более сложным, но он позволяет достичь большей скорости и производительности.
- Java - как и C#, Java имеет управление памятью, что упрощает работу разработчиков. Широко используется в веб-разработке и корпоративных приложениях.
- Swift - родной язык Apple для создания приложений и игр для iOS и macOS. Менее полезен для кросс-платформенной разработки.
Как стать программистом игр?
Существует много способов стать программистом игр. Мой путь был обычным - я изучал дизайн и программирование игр в Университете Стаффордшира. Я думал, что стану художником, но в университете обнаружил, что мне нравится создавать геймплей.
Программирование игр доступно многим, даже если вы не пришли через традиционный путь. У нас в Kwalee есть сотрудники, которые учились в основном через видео на YouTube. Возможностей для свежих талантов много.
Вопрос, который вас, вероятно, интересует - повлияет ли ИИ на программирование как карьеру? Он может быть очень полезен для объяснений и устранения ошибок. Но, оценивая портфолио, мы хотим видеть вашу работу.
Каков типичный день программиста игр?
Пример из моей жизни. Я - ведущий программист, это отличное сочетание практической работы и управления другими программистами.
Типичный день: я прихожу, беру латте, проверяю ошибки для QA команды. Затем общаюсь с командой. Включаю музыку и приступаю к задачам. Мы делимся видео прогресса через slack для быстрого фидбэка, поддерживаем 2-3 проекта.
Советы начинающим программистам игр
Если вы начинаете, вот мои советы!
- Многое можно узнать онлайн. Популярные движки бесплатны и их весело использовать!
- Прочитайте книгу "Design Patterns: Elements of Reusable Object-Oriented Software".
- Начинайте с простого.
- Создайте портфолио. Не загружайте стандартные университетские работы.
- Создайте свою игру. Это недорого и поможет вам выделиться.
- Изучайте не только программирование, но и искусство, дизайн, QA.
Советы продвинутым программистам
Советы, которые помогли мне.
- Учитесь на ошибках!
- Можно специализироваться, например, на шейдерах и рендеринг.
- Создайте что-то крутое и покажите это.
- Можно пойти по пути управления и наставничества.
Какие ключевые принципы программирования игр?
Некоторые ключевые темы для блога о программировании игр.
Контроль версий
Как и в играх, в разработке есть точки сохранения. Это хранилище для проекта, позволяющее нескольким программистам работать над системой одновременно.
Объектно-ориентированное программирование
Этот тип программирования мы используем в Kwalee. Он использует объекты для представления вещей и организует код по принципам, отражающим взаимодействие с объектами в реальном мире.
Паттерны программирования
Это полезные решения для общих проблем. Например, шаблон Singleton гарантирует, что существует только один экземпляр класса.
Надеюсь, этот блог дал вам представление о программировании игр! Узнайте больше о Kwalee careers.








