В чем разница между разработкой игр и развитием бизнеса? - PullRequest
14 голосов
/ 16 октября 2008

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

Я понимаю, что разработка игр очень отличается от развития бизнеса, но мне трудно объяснить это моему другу. Я надеялся, что Сообщество поможет мне здесь.

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

EDIT:

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

Спасибо!

Ответы [ 13 ]

12 голосов
/ 16 октября 2008

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

9 голосов
/ 16 октября 2008

С точки зрения областей программирования, помимо прочего, мы имеем дело с:

  • Графическое программирование (включая разработку шейдеров)
  • Анимация
  • Физическая симуляция
  • ИИ и игровой процесс
  • Audio
  • Сеть (обычно довольно низкоуровневые вещи)

Некоторые из них включают в себя довольно серьезные знания математики и алгоритмов. Кроме того, мы сталкиваемся с очень жесткими ограничениями скорости и, как правило, должны быть очень осторожны с использованием памяти. Мы сталкиваемся с постоянно меняющимся оборудованием, и, поскольку мы пытаемся довести оборудование до предела, это может быть довольно сложно - вы не можете просто абстрагироваться от него. Большая часть разработки игр все еще довольно низкоуровневая C ++. Мы, вероятно, имеем дело с базами данных меньше, чем большинство других программистов в настоящее время (хотя онлайн-игры меняют это)!

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

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

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

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

6 голосов
/ 17 октября 2008

Развитие бизнеса, как правило, гораздо более щадящее.

Причина в основном такова; обычно людям платят за использование программного обеспечения для бизнеса. Люди платят за использование игрового программного обеспечения.

Может показаться, что он не отвечает на ваш вопрос, но это действительно так. Когда мой босс говорит «используйте Microsoft Word для этого документа», они предоставляют программное обеспечение, и я обязан использовать Microsoft Word. И поэтому, когда он используется, когда он решает изменить нумерацию всех заголовков моих глав «просто потому, что» или сохранение на диск занимает 30 секунд, в то время как он разрешает ссылки OLE (это просто ОДИН ИЗ ФИЛЬТРОВ EXCEL SPREADSHEET, ради всего святого!), Я просто грит мои зубы и напоминаю себе, что мне платят за это.

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

Опять же, приступим к вопросу, почему это проблема программирования; эти петли и структуры в игре должны быть ЧЕРТНЫ хороши, чтобы убедиться, что нет никакого серьезного замедления, никакого заикания в игровом движке, ничего такого, что заставляет потребителя, который просто потратил X сумму своих с трудом заработанных долларов, сказать: «Это часть дерьма "и уйти. С программным обеспечением для бизнеса вы можете избавиться от подобных вещей; в некотором смысле, это почти ожидаемо. Опять же, посмотрите на производительность Microsoft Word; если бы это была игра, ее бы засмеяли.

Я знаю, что звучит так, как будто я использую Microsoft Word, и обычно так и есть, потому что я нахожу это отвратительным, но это верно для многих программ. Программное обеспечение САПР является еще одним примером. Те же самые базовые вещи, что и в играх, но в целом работать медленно и тяжело без большого обучения.

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

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

6 голосов
/ 16 октября 2008

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

  • Если вы не везучий сотрудник одной из тех студий нового стиля (таких как Eidos Montreal или Blizzard), всегда есть крайний срок, чтобы опасаться, что он слишком короткий. В деловом программировании вы в основном сами устанавливаете срок.
  • Бизнес-приложение удовлетворяет определенным потребностям. Цель игры - развлекать людей. Вы не можете предсказать, выйдет ли игра из строя, пока она не выйдет.
  • Производительность необходима во всех аспектах игры. Написание кода, который хорошо поддерживать, является вторым приоритетом. В бизнес-программировании хороший код, который работает, является главным приоритетом.
  • Для бизнес-приложений блестящий интерфейс является бонусом. Для игры это обязательно.
  • Отладка игр намного сложнее, потому что всегда существует некоторая аппаратная зависимость, которая приводит к ошибкам, которые могут быть воспроизведены только на некоторых машинах, ни одной из которых нет в вашей компании. И игра потребляет гораздо больше производительности, чем типичное бизнес-приложение.
  • У вас есть люди, посвятившие себя созданию искусства, истории, музыки, звука, фона и дизайна, ни один из которых не обязательно нуждается в знаниях программирования (скриптинг немного отличается), то есть у вас есть много контента, которым пользуются пользователи ( игроки) увидим. Никто не заботится о том, насколько хорош ваш код, кроме случаев, когда производительность плохая или есть ошибки. Остальные получают похвалу.
  • Для более крупных игр у вас есть программисты, предназначенные только для 3D-графики, сетей, аудио, инструментов, сценариев, физики и так далее. Большинство из них являются узкоспециализированными, и каждый из них может привести игру к катастрофе. Вы будете нуждаться только в продвинутых математических навыках, если вы парень по графике или физике. Ну или ИИ.
  • Большинство игр запускаются и забываются, за исключением некоторых исправлений, если только это не одна из самых успешных игр, которые получают пакет расширения или продолжение.
  • Безопасность - важная проблема для онлайн-игр, поскольку гораздо больше раздражающих людей пытаются оттолкнуть людей, чем для бизнес-приложений, многие из которых предназначены для (более или менее) внутреннего использования у клиента.
  • Ожидается, что вы будете работать намного больше, чем при написании бизнес-приложений.
  • Чтобы получить работу на звание AAA, вам нужно поработать, по крайней мере, на трех отправленных титрах AAA (нет, здесь нет опечаток, когда-либо читать описания некоторых должностей в Blizzard или LucasArts?: P)

Но вот и хорошие вещи:

  • Вы можете притворяться, что работаете, когда играете в игры.
  • И, наконец, программирование игр - это весело. Бесценный.
5 голосов
/ 16 октября 2008

Нужно иметь бесконечные петли, не должно быть. - Рич Брэдшоу

Рич прав. По сути, с точки зрения кодирования игровой цикл создает «кадр» действия, в котором действия предпринимаются на основе состояния игры, такого как ввод контроллера, столкновения объектов и т. Д. Этот цикл повторяется бесконечно до некоторого состояния некоторого игрового элемента. или ввод подсказывает остановить или «выйти». Благодаря такому подходу процессор и видеокарта довольно загружены, поэтому на рынке есть игровые автоматы с быстрыми процессорами и даже более быстрыми видеокартами.

Бизнес-приложения не имеют активного цикла. Вместо этого они бездействуют в ожидании события, такого как щелчок, сообщение от клиента веб-службы, запрос HTTP GET и т. Д. Затем они отвечают на событие.

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

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

5 голосов
/ 16 октября 2008

Нужно иметь бесконечные петли, не должно.

5 голосов
/ 16 октября 2008

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

3 голосов
/ 16 октября 2008

Хорошие моменты о математике и интеграции художников и других специалистов в команде. Кроме того, я бы сказал, что:

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

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

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

2 голосов
/ 17 октября 2008

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

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

2 голосов
/ 16 октября 2008

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...