Программирование видеоигр

редактировать

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

Содержание

  • 1 Процесс разработки
    • 1.1 Прототипирование
    • 1.2 Дизайн игры
    • 1.3 Производство
    • 1.4 Тестирование
    • 1.5 Близится к завершению
    • 1.6 Техническое обслуживание
    • 1.7 Продолжительность
  • 2 Инструменты
    • 2.1 Языки программирования
    • 2.2 API и библиотеки
      • 2.2.1 Графические API
      • 2.2.2 Другие API
  • 3 Структура игры
  • 4 Любители
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
    • 7.1 Wikis

Процесс разработки

Профессиональная разработка игр который обычно начинается с дизайна игры, сам имеет несколько источников источников. Иногда процесс разработки игры начинается не с четкого дизайна, а с серии экспериментов. Например, геймдизайнер Уилл Райт начал использовать The Sims с того, что попросил программистов поэкспериментировать с территориями идеями.

Прототипирование

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

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

Дизайн игры

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

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

Производство

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

Продолжительность

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

Инструменты

Как и другое программное обеспечение, программы разработки игр генерируют знакомство с программой для игр, выпущенных до середины 1990-х годов, большинство игр AAA теперь имеют полную Трехмерная графика, даже для игр, которые по своей природе в основном двухмерные, например, Civilization III. Однако чисто 2D-графика пережила эпоху Возрождения с появлением инди-игр.

Хорошо зарекомендовавшей себя платформой для персональных компьютеров является Microsoft Windows. Поскольку он был предустановлен почти на девяносто процентов проданных ПК, теперь у него самая большая база пользователей. Два самых популярных API трехмерной графики для Microsoft Windows - это Direct3D и OpenGL. Преимущества и недостатки каждого API горячо обсуждаются среди программистов Windows игр.

В настоящее время самой популярной вычислительной платформой является Google Android. Поскольку он предустановлен почти на восьмидесяти процентах проданных смартфонов, Android занимает второе место по величине пользовательской базы и продолжает расти. Android использует OpenGL ES и Vulkan (API).

DirectX - это набор игровых API. Direct3D - это 3D API DirectX. Direct3D бесплатно доступен от Microsoft, как и остальные API DirectX. Microsoft разработала DirectX для программистов игр и продолжает добавлять функции в API. Спецификация DirectX не контролируется открытым арбитражным комитетом, и Microsoft может добавлять, удалять или изменять функции. Direct3D не переносится; он разработан специально для Microsoft Windows и никакой другой платформы (хотя форма Direct3D используется на смартфонах Microsoft Xbox, Windows Phone 7.5 и мобильных устройствах, работающих под управлением операционной системы Pocket PC ).

OpenGL - это переносимая спецификация API. Код, написанный с помощью OpenGL, легко переносится между платформами с совместимой реализацией. Например, Quake II, использующий OpenGL, был перенесен с Windows на Linux фанатом игры. OpenGL - это стандарт, поддерживаемый Советом по обзору архитектуры OpenGL (ARB). ARB периодически собирается для обновления стандарта, добавляя новую поддержку функций новейшего 3D-оборудования. Поскольку OpenGL основан на стандартах и ​​существует дольше всех, он используется и преподается в колледжах и университетах по всему миру. Кроме того, инструменты разработки, предоставляемые производителями некоторых игровых консолей (например, Nintendo GameCube, Nintendo DS и PSP), используют графические API-интерфейсы, похожие на OpenGL. OpenGL часто отстает в обновлении функций из-за отсутствия постоянной группы разработчиков и требования, чтобы реализация начиналась после публикации стандарта. Программисты, которые решат использовать его, могут получить доступ к новейшим 3D-функциям некоторых аппаратных средств, но только через нестандартные расширения. Ситуация может измениться в будущем, поскольку комиссия по обзору архитектуры OpenGL (ARB) передала контроль над спецификацией Khronos Group в попытке решить проблему.

Другие API

Для разработки в Microsoft Windows различные API DirectX могут использоваться для ввода, звуковых эффектов, музыки, работы в сети и воспроизведения видео. Для выполнения этих задач доступно множество коммерческих библиотек, но, поскольку DirectX доступен бесплатно, он является наиболее широко используемым.

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

Структура игры

Центральным компонентом любой игры с точки зрения программирования является игровой цикл. Игровой цикл позволяет игре работать плавно независимо от ввода пользователя или его отсутствия.

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

Игры, с другой стороны, должны продолжать работать независимо от действий пользователя. Игровой цикл позволяет это. Сильно упрощенный игровой цикл в псевдокоде может выглядеть примерно так:

в то время как (пользователь не выходит) проверить ввод пользователя запустить AI переместить врагов разрешить коллизии рисовать графику играть звуки end while

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

Игровые циклы различаются в зависимости от платформы, для которой они разработаны. Например, игры, написанные для DOS и многих консолей, могут доминировать и использовать доступные ресурсы обработки без ограничений. Однако игры для современной операционной системы ПК, такой как Microsoft Windows, должны работать в рамках ограничений планировщика процессов. Некоторые современные игры запускают несколько потоков, так что, например, вычисление ИИ персонажа может быть отделено от создания плавного движения в игре. Недостатком этого является (немного) увеличение накладных расходов, но игра может работать более плавно и эффективно на гиперпоточных или многоядерных процессорах и на многопроцессорных платформах. Учитывая, что компьютерная индустрия делает упор на ЦП с большим количеством ядер, которые могут выполнять больше потоков, это становится все более важным. Такие консоли, как Xbox 360 и PlayStation 3, уже имеют более одного ядра на процессор и выполняют более одного потока на каждое ядро.

Любители

Единственными платформами, широко доступными для программирования любителями, являются потребительские операционные системы, такие как Android, iOS, Windows, Mac, Linux и т. Д. Это потому, что разработка на игровых консолях требует специальной системы разработки, которая стоит тысячи долларов. Часто они должны быть получены от производителя консоли и продаются или сдают в аренду только профессиональным студиям разработки игр. Однако Microsoft распространяла платформу разработки игр XNA, которая работает как в Microsoft Windows, так и в Xbox 360. Поддержка XNA прекращена, но другие проекты, такие как MonoGame, пытаются разрешить такой же доступ для кодирования игр. В последнее время Android является самой популярной платформой для любителей мобильных устройств. Некоторые любители также разрабатывают самодельные игры, особенно для портативных систем или модифицированных консолей.

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

Некоторые любители могут использовать пакеты программного обеспечения, которые помогают с игрой разработка, например Adobe Animate, Unity, Android Studio, pygame, Adventure Game Studio, GameMaker Studio, Godot, Unreal Engine или Construct.

См. Также

  • Портал видеоигр

Ссылки

Внешние ссылки

Wikis

Последняя правка сделана 2021-06-18 12:57:51
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте