Каково различие между разработкой игр и развитием бизнеса?

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

const DEFAULT_VAL = 37;

// get a function and an optional default value to override
function getAnyDepth(func, def) {
    try {
        return func();
    } catch (e) {
        return typeof def !== "undefined" ? def : DEFAULT_VAL;
    }
}

var obj = { a: 45 }

console.log(getAnyDepth(() => obj.a))
console.log(getAnyDepth(() => obj.a.b.c.d.e))
console.log(getAnyDepth(() => obj.c.d.e, { b: 100 }))

[116 ]

Ссылка: Как избежать «Невозможно прочитать свойство« имя »из неопределенного» в JavaScript

14
задан Gregory Higley 16 October 2008 в 19:22
поделиться

13 ответов

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

12
ответ дан 1 December 2019 в 06:05
поделиться

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

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

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

Это не говоря уже о часто необходимости освоить некоторую довольно сложную математику и физику....

1
ответ дан 1 December 2019 в 06:05
поделиться

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

0
ответ дан 1 December 2019 в 06:05
поделиться

Производительность является действительно различием, от того, что я могу сказать.

Technologywise, игры являются обычно управляемым Windows/C++.

0
ответ дан 1 December 2019 в 06:05
поделиться

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

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

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

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

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

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

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

9
ответ дан 1 December 2019 в 06:05
поделиться

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

5
ответ дан 1 December 2019 в 06:05
поделиться

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

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

, Но здесь прибывают хорошие вещи:

  • можно симулировать работать, когда Вы играете в игры.
  • И наконец, программирование игр является забавой. Бесценный.
6
ответ дан 1 December 2019 в 06:05
поделиться

Развитие бизнеса является обычно намного более прощающим.

причина - в основном это; обычно, люди ARE ЗАПЛАТИЛИ для использования программного обеспечения для бизнеса. Люди ПЛАТЯТ для использования компьютерных игр.

Это может казаться, что не отвечает на Ваш вопрос, но это действительно. Когда мой босс заявляет, "используют Microsoft Word для того документа", они предоставляют программное обеспечение, и я обязан использовать micosoft слово. И так, при использовании его, когда это решает перенумеровать все мои заголовки главы "просто, потому что" или сохранение на диск занимает 30 секунд, в то время как это разрешает ссылки OLE (это - ВСЕГО ОДНА ДОЛБАНАЯ ЭЛЕКТРОННАЯ ТАБЛИЦА EXCEL, ради Бога!), я просто песок мои зубы и напоминают мне, что я становлюсь заплаченным, чтобы сделать это.

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

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

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

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

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

6
ответ дан 1 December 2019 в 06:05
поделиться

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

5
ответ дан 1 December 2019 в 06:05
поделиться

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

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

2
ответ дан 1 December 2019 в 06:05
поделиться

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

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

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

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

3
ответ дан 1 December 2019 в 06:05
поделиться

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

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

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

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

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

2
ответ дан 1 December 2019 в 06:05
поделиться

нужно иметь бесконечные циклы, каждый не был должен. - Rich Bradshaw

Rich прав. Существенно, с точки зрения кодирования, игровой цикл создает "кадр" действия, в котором меры приняты на основе состояния игры, такой как вход контроллера, объектные коллизии, и т.д. Этот цикл повторяется бесконечно, пока некоторое состояние некоторого игрового элемента или входа не говорит ему останавливать или "выходить". Этот подход сохраняет плату ЦП и видеокарту довольно занятыми, следовательно рынок для машин геймера с быстрыми процессорами и еще более быстрыми видеокартами.

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

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

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

5
ответ дан 1 December 2019 в 06:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: