Какая разница между развитием игры и развитием бизнеса?
Как и большинство разработчиков, я являюсь бизнес-разработчиком, который, по сути, состоит из поглаживания пользовательского интерфейса в каком-то внутреннем хранилище данных. (Мы все знаем там гораздо больше, чем это, но обычно это то, к чему это сводится.)
Я понимаю, что разработка игр сильно отличается от развития бизнеса, но мне сложно объяснить это моему другу. Я надеялся, что сообщество SO поможет мне здесь.
Для меня современные разработчики игр много разбираются в манипулировании трехмерной графикой. В игровом коде (и я угадываю здесь) вы собираете многоугольники (или что-то в этом роде), вращая их и т.д. Это включает в себя другой способ мышления от манипулирования реляционными данными (например). На самом деле я не знаю. Я просто знаю, что это разные.
EDIT:
Я должен подчеркнуть, что под "развитием" я подразумеваю "программирование", а не все аспекты, связанные с созданием игры или программного обеспечения для бизнеса. Простите, что я не сделал этого ясно изначально.
Спасибо!
Ответы
Ответ 1
Я занимаюсь разработкой игр, но пришел из бизнеса давно. Разработка игр очень сложна в математике, если вы работаете с физикой или графикой. Даже для ИИ может потребоваться довольно много математики для низкоуровневого материала. Аппаратное обеспечение, как правило, заботится о большом количестве манипуляций с полигоном, поскольку рисунок на экране идет. Существует также большая вовлеченность в генерирование внутриигровых данных с помощью (часто) многих инструментов, которые выполняются на этапе предварительной обработки, и это тоже может быть математически интенсивным, если вы создаете данные видимости.
Ответ 2
Что касается доменов программирования, среди прочего, мы имеем дело с:
- Графическое программирование (включая разработку шейдеров)
- Анимация
- Физическое моделирование
- AI и игровой процесс
- Аудио
- Сеть (обычно довольно низкоуровневая)
Некоторые из них связаны с довольно серьезными знаниями в области математики и алгоритмов. Помимо всего этого, мы сталкиваемся с чрезвычайно жесткими ограничениями скорости и, как правило, должны быть очень осторожны с использованием памяти. Мы сталкиваемся с постоянно меняющимся оборудованием, и поскольку мы пытаемся довести аппаратное обеспечение до предела, это может быть довольно сложно - вы не можете просто отвлечь его. Большая часть разработки игр по-прежнему является довольно низкоуровневой работой на С++. Вероятно, мы имеем дело с базами данных меньше, чем большинство других программистов в настоящее время (хотя онлайн-игры меняют это)!
Программисты часто являются меньшинством в современных игровых проектах: все это касается создания контента (анимация, моделирование, текстурирование, аудио и дизайн). Это означает, что многие программисты посвящают себя созданию процесса создания контента, а не работе над самим игровым кодом. Эта работа может иметь более расслабленную скорость и ограничения памяти, хотя ей приходится иметь дело с массивными наборами данных.
Создание игры "забава" - одна из самых сложных вещей - в деловой терминологии это означает "крайне неустойчивые требования", поскольку дизайнеры постоянно передумывают, как все должно работать, чтобы преследовать этот неуловимый весовой фактор.
Наконец, игры - это, как правило, корабль - один раз, нет возможности исправить нечто вроде сделки. Это на самом деле означает очень небольшое обслуживание кода, поэтому традиционно, возможно, меньше внимания уделяется вопросам качества кода. Сейчас это меняется с ростом добавочного контента после запуска, онлайн-игр и огромных размеров современных проектов.
В целом это невероятно захватывающее поле для бизнеса, недостатком является то, что он часто менее хорошо оплачивается (потому что это очень сложный бизнес для разработчиков, и потому, что он популярен, всегда есть новые люди, ищущие работу).
Ответ 3
Просто некоторые случайные мысли о том, что отличает игра. Обратите внимание, что в этом может быть какой-то сарказм, хотя я пытался подавить желание.
- Если вы не счастливый сотрудник одной из тех студий нового стиля (например, Eidos Montreal или Blizzard), всегда есть крайний срок, чтобы бояться, что это слишком мало. В бизнес-программировании вы в основном делаете свой срок для себя.
- Бизнес-приложение удовлетворяет определенные потребности. Цель игры - развлечь людей. Вы не можете предсказать, закончится ли игра, пока она не закончится.
- Производительность важна во всех аспектах игры. Написание кода, который хорош для обслуживания, является вторым приоритетом. В бизнес-программировании хороший код, который работает, является главным приоритетом.
- Для бизнес-приложения блестящий интерфейс - это бонус. Для игры это обязательно.
- Отладка игр намного сложнее, потому что всегда есть некоторая аппаратная зависимость, которая приводит к ошибкам, которые могут быть воспроизведены только на некоторых машинах, ни одна из которых не принадлежит вашей компании. И игра всасывает гораздо большую производительность, чем типичное деловое приложение.
- У вас есть люди, предназначенные для создания искусства, истории, музыки, звука, фона и дизайна, ни один из которых не обязательно требует знания программирования (сценарии немного отличаются), то есть у вас много контента, который является тем, что пользователи ( игроки). Никто не заботится о том, насколько хорош ваш код, если производительность не плоха или нет ошибок. Остальные получают похвалу.
- Для больших игр у вас есть программисты, посвященные только 3D-графике, сети, аудио, инструментам, сценариям, физике и т.д. Большинство из них являются высокоспециализированными, и каждый из них может привести к катастрофе. Вам нужны только продвинутые математические навыки, если вы - графический или физический парень. Ну, или AI.
- Большинство игр являются fire-and-forget, помимо некоторых исправлений, если только это не одна из более успешных игр, которые получают пакет расширения или продолжение.
- Безопасность - важная проблема для онлайн-игр, поскольку есть гораздо более раздражающие люди, пытающиеся отбросить людей, чем есть для бизнес-приложений, многие из которых предназначены для (более или менее) внутренних нужд у клиента.
- Ожидается, что вы будете работать гораздо больше, чем при написании бизнес-приложений.
- Чтобы поместить задание на титул AAA, вам нужно было поработать, по крайней мере, с тремя отправленными заголовками AAA (нет, нет опечаток здесь, когда-либо читал некоторые описания должностных обязанностей в Blizzard или LucasArts?: P)
Но вот идут хорошие вещи:
- Вы можете притворяться, что работаете, когда играете в игры.
- И, наконец, программирование игр - это весело. Бесценный.
Ответ 4
Одна большая разница между развитием бизнеса и развитием игры - это количество задействованных дисциплин. Большинство бизнес-программ создано командой разработчиков, у которых все те же базовые навыки. Напротив, игра создается командой разработчиков игр, визуальных художников, 3D-модельеров, аниматоров, музыкантов и разработчиков.
Ответ 5
Нужно иметь бесконечные циклы, не следует.
Ответ 6
Нужно иметь бесконечные циклы, не следует. - Богатый Брэдшоу
Богатый право. В сущности, с точки зрения кодирования игровой цикл создает "фрейм" действия, в котором действия принимаются на основе состояния игры, такого как вход контроллера, столкновения объектов и т.д. Этот цикл бесконечно повторяется, пока не будет некоторое состояние какого-либо игрового элемента или ввод сообщает, что он останавливается или "завершает". Этот подход удерживает процессор и графическую карту довольно занятой, следовательно, рынок для геймеров с быстрыми процессорами и даже более быстрыми видеокартами.
Бизнес-приложения не имеют активного цикла. Вместо этого они сидят без дела в ожидании события, такого как клик, сообщение от клиента веб-службы, запрос HTTP GET и т.д. Затем они отвечают на событие.
Конечно, игры, как правило, более геометрически интенсивны, чем бизнес-приложения, но это не совсем так. Рассмотрите инструменты для редактирования изображений, САПР и графики. Для многих это бизнес-приложения. Но по большей части бизнес-приложение связано с запросом данных, отображением этих данных, принятием ввода пользователя и изменением данных на основе ввода пользователем. Во многих случаях бизнес-приложение делает это по всей сети или даже через Интернет, но это не так.
Навык и умение разработчика бизнес-приложений и разработчика игр часто различны. Разработчик игры имеет ограниченное количество входных конструктов, которые следует учитывать с точки зрения создания пользовательского интерфейса с неограниченным выбором контекста или "мира", если хотите. Разработчик бизнеса - это противоположность, с ограниченным набором потенциальных контекстов, обычно на веб-странице или в базовом окне, и неограниченный (или почти такой) набор комбинаций ввода и отображения данных для создания пользовательского интерфейса, совершенно отличного от разработчика игры чтобы достичь.
Ответ 7
Развитие бизнеса, как правило, гораздо более прощает.
В основном это причина; как правило, люди ПЛАТИТ использовать коммерческое программное обеспечение. Люди платят за использование игрового программного обеспечения.
Это может звучать так, будто он не отвечает на ваш вопрос, но это действительно так. Когда мой босс говорит "используйте слово microsoft для этого документа", они предоставляют программное обеспечение, и я обязан использовать слово micosoft. Итак, при использовании, когда он решает перенумеровать все заголовки моих разделов "только потому, что", или сохранение на диск занимает 30 секунд, пока оно решает OLE-ссылки (это ТОЛЬКО ОДИН РАЗРЕШЕНИЕ EXCEL SPREADSHEET, ради меня!), Я просто скрежет мои зубы и напомнить себе, что мне платят за это.
В то время как, если я в игре, я ожидаю развлечений. Я ожидаю, что опыт будет работать правильно, плавно и чисто, без каких-либо серьезных заиканий или проблем.
Опять же, чтобы понять, почему это проблема для программирования; эти петли и структуры в игре лучше были DAMN, чтобы убедиться, что не происходит серьезного замедления, не заикается в игровом движке, ничего, что заставляет потребителя, который только что потратил X суммы своих с трудом заработанных долларов, сказал: "Это кусок от дерьма" и уйти. С помощью программного обеспечения для бизнеса вы можете уйти от такого рода вещей; в некотором смысле, это почти ожидалось. Снова посмотрим на производительность Microsoft Word; если бы это была игра, это было бы смешно от существования.
Я знаю, что мне кажется, что я выбираю Microsoft Word, и, как правило, я это чувствую, потому что считаю это отвратительным, но дело в том, что так много программ. Еще одним примером является программное обеспечение САПР. То же самое происходит и в играх, но в целом с ним трудно работать и без труда тренироваться.
Разница сводится к полировке и ожидаемому уровню блеска. Да, в большей степени гибкость в программном обеспечении для бизнеса, чем в играх; но более того, и что более важно с точки зрения кодирования, код имеет GOT для эффективной и чистой работы в игре; бизнес-программное обеспечение, как правило, более прощает неаккуратный код.
В бизнес-приложении обычно принимаются неоптимизированные и медленные алгоритмы; и в то время как они никогда не предпочтительнее, часто бизнес-решение получает возможность добавить еще одну функцию вместо улучшения производительности. Но в играх производительность - это функция, а одна - make-or-break.
Ответ 8
Хорошие моменты в математике и интеграции художников и других специалистов в команде. Кроме того, я бы сказал, что:
-
Разработка игр, в некоторой степени, будет более зависимой от аппаратного обеспечения. Во многих случаях игры создаются одновременно на нескольких платформах и консолях (не говоря уже о мобильных телефонах) с разными архитектурами. Это абстрагируется до определенной степени, но разработчики не могут полностью избежать этого факта.
-
Разработка игр часто более чувствительна к производительности, или, по крайней мере, требования к производительности различны. Вы имеете дело с опытом в реальном времени, поэтому потрачено много времени на оптимизацию этих досадных fps.
-
Во многих случаях разработка игр не заботится о повторном использовании и ремонтопригодности. Возможно, игровой движок будет повторно использован, но база кода приложения, вероятно, не доживет до версии v2.0. На последнем этапе проекта происходит много быстрой и грязной отладки. Если он отлично выглядит для конечного пользователя, нет никаких дополнительных преимуществ при создании элегантного исправления за два дня до релиза.
Ответ 9
Давайте начнем с цели - целью развития игры является создание развлекательного продукта. Он должен быть точным до тех пор, пока он выглядит хорошо и работает плавно. Цель программного решения для бизнеса - моделировать рабочий процесс. Это должен быть инструмент, который работает достаточно быстро. Стабильный продукт, который выполняет абсолютно точные и надежные задачи, которые он должен выполнять.
Поскольку мы нацелены на разные цели, мы используем разные подходы к построению игры и программного обеспечения для бизнеса. Переходим к требованиям. Требования к игре определяются игровым дизайнером. Для программного продукта бизнес определяет процесс и требования. Для игры требования не являются окончательными - у нас есть маленькие рисунки мультфильмов или реальные человеческие модели - это не имеет значения для игрового движка, например. Но для программного продукта требования должны строго соблюдаться и очищаться до максимально возможной детали до разработки.
Из разных требований применяется другой подход к разработке и разработке программного обеспечения. Для игры производительность и игровой процесс имеют решающее значение, и качество графики и звуков (например) может быть уменьшено только для совместимости с более слабым оборудованием. Кроме того, физическую модель можно было бы упростить, чтобы обеспечить более плавный и улучшенный игровой процесс. Для делового программного обеспечения все должно быть точным, а функции резки означают, что ваш продукт не будет таким функциональным, как он был разработан больше.
Для игры безопасность не важна - нет важных данных клиента, которые должны быть сохранены. Для делового программного обеспечения должна быть обеспечена хорошая система безопасности - начиная с шифрования данных (при сохранении при хранении данных или передачи по сети), перемещаясь через систему резервного копирования и упоминая (но не последнюю) совместимость с предыдущими версиями.
Я мог бы продолжить другие аспекты, но я думаю, это уже слишком много для одной записи...
Ответ 10
Программное обеспечение для бизнеса (которое не является программным обеспечением для упаковки в термоусадочную пленку), как правило, может быть гораздо хуже написано, но все же считается коммерческим успехом из-за странного разъединения между качеством продукта и продажей продукта. С другой стороны, игровое программное обеспечение должно быть хорошим, чтобы выжить на рынке.
Бар для качества в специализированном программном обеспечении для бизнеса обычно намного ниже.
Ответ 11
Программное обеспечение для бизнеса должно быть надежным, поддерживаемым, последовательным, не слишком раздражающим и медленным, и может основываться на множестве уже написанных материалов, таких как базы данных, элементы управления, формы и т.д.
Программист игр часто начинает с чистого листа - справочные руководства по аппаратным средствам, некоторую документацию об оборудовании и обычно тонкие библиотеки поставщиков по некоторым передовым аппаратным средствам, которые полностью отличаются от последнего задания.
Из этого они должны строить то, что вы видите, и делать большую часть работы в течение 20 мс, надежно и часто в течение смехотворно короткого периода времени, сталкиваясь с изменяющимися требованиями и часто очень тяжелым сроком, работая с неисчислимыми числами часов для сравнительной гроши.
Это не говоря уже о том, что нужно часто освоить довольно сложную математику и физику.
Ответ 12
Производительность - это действительно разница, что я могу сказать.
В технологическом плане игры обычно управляются Windows/С++.
Ответ 13
Игровое программирование имеет больше общего с научным программированием. Вы моделируете поведенческие системы и ожидаете результатов, основанных на ограниченном наборе входных данных.