Жизнеспособность C # /. NET как новой стандартной игровой платформы?

На странице документации для php_sapi _name четко указано, как это работает:

Возвращает строчную строку, описывающую тип интерфейса (API-интерфейс сервера, SAPI), который использует PHP. ..

Хотя это и не является исчерпывающим, возможные возвращаемые значения включают aolserver, apache, apache2filter, apache2handler, caudium, cgi (до PHP 5.3), cgi-fcgi, cli, непрерывность, встраивание, isapi, litespeed, milter , nsapi, phttpd, pi3web, roxen, thttpd, tux и webjames.

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

Кроме того, Бобби сказал:

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

В описании для примера указано:

В этом примере проверяется для подстроки cgi, поскольку она также может быть cgi-fcgi.

23
задан Jason Miesionczek 10 December 2008 в 13:39
поделиться

13 ответов

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

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

C# является хорошим языком для использования для игровой разработки. Игровая разработка производит приложения, которые требуют звуковой, усовершенствованной графики, AI, Физики, и т.д. Все, что требует мощной и довольно быстрой языковой среды. В то время как большая часть ПК высшего ранга и консольных игр записаны в C++, C# имеет план действий, который, вероятно, оставит C++. Ближайшие изменения в C++ 0x несомненно повторно поддержат C++ на некоторое время, но C# выглядит готовым настигнуть его.

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

Изучают C++ и предпочтительно OpenGL:), Как только Вы знаете OpenGL, можно изучить DirectX довольно легко.

C# является куском пирога, как только Вы знаете C++.

17
ответ дан Brock Woolf 10 December 2008 в 13:39
поделиться

Как продолжение этого вопроса, я начал смотреть на базирующиеся 3D механизмы некоторого OpenGL, записанные в C++ (CrystalSpace, Irrlicht, Panda3D), и они все выглядят довольно твердыми. Интересное примечание о Panda3D - то, что он записан в C++, но основной способ, которым Вы используете его, через Python. Мне кажется, что метод дал бы лучший из обоих миров до быстрого механизма, записанного в C++, объединенном с простотой программирования в Python. Я поставлю другой вопрос, сравнивающий эти механизмы. Спасибо за ответы.

3
ответ дан Jason Miesionczek 10 December 2008 в 13:39
поделиться

Как упомянутый плакат, XNA в настоящее время ограничивается платформами Microsoft, но можно все еще использовать C#.NET и любые языки программирования.NET для разработки игр межплатформенным способом.

Моно время выполнения действительно обеспечивает межплатформенный механизм, который может использоваться для выполнения C# (или код.NET) под множеством настольных платформ (Windows, MacOS, Linux), а также игровые консоли (Wii, поддерживаемый Novell, PS3, прибывающий скоро и Xbox360 "самостоятельно").

существует также коммерческая играющая платформа по имени Unity3D, который сделал чудеса, использующие Моно. Они - игровой IDE, который превосходит XNA как среду разработки игр: физика, графика, световые сигналы, модели, коллизии обрабатываются все в собственном коде C++, в то время как вся играющая логика (AI, управление камерой, представления и так далее) обрабатывается управляемым кодом, записанным обычно в C# или UnityScript (реализация JavaScript со строгим контролем типов, которая дает Вам лучший из обоих миров: синтаксис JavaScript, но сильные типы, которые улучшают производительность).

10
ответ дан miguel.de.icaza 10 December 2008 в 13:39
поделиться

Я работал в месте под названием Newfire в конце 90-х. Прежде чем финансирование высохло, у нас был механизм, который мог представить иммерсивный мир, который составлял 10 000 квадратных километров с разрешением 10 см. Вы могли вложить огромное число игроков сразу и постоянно деформировать среду. Этот механизм работал в частоте кадров на P200 с картой Voodoo 2.

большая часть механизма была записана в тщательно настроенном C++. Весь игровой код был записан в C или C++ или Java. У меня также был код прототипа, который мог определить поведение объекта с помощью нажатия вниз автоматы, которые могли сделать очень достойный AI. Не потребовалось почти процессорного времени. Выполнение игровой логики затмилось путем рендеринга.

Однажды, у меня была демонстрация Игры Conway Жизни, работающей в Java с помощью нашего рендерера программного обеспечения. Ячейки были кубами, положенными в плоскости, которая появилась или исчезла и изменила цвет как их в возрасте большего количества поколений. В то время как игра работала с фиксированной скоростью генерации 4 поколений в секунду, 3D дисплей достигал 20 + кадр/с, снова на P200 с программное обеспечение рендерер.

, Таким образом, ответ не является определенно C++. Ответ, как любая проблемная область, является языком, который работает лучшее в том домене. C++ работает хорошо в том домене для механизма визуализации, но для фактической игровой логики и правил, много языков работает хорошо. Python является большим. C# является большим. Java является большим.

10
ответ дан plinth 10 December 2008 в 13:39
поделиться

Ну, между теми также я думаю, что C#/XNA является явным победителем на основе поддержки библиотеки и действительно зрелости, данной опыт Microsoft в DirectX. Однако я не вижу, что C#/XNA заменяет C++ в качестве лингва франка серьезного 3D игрового программирования (т.е. большими зданиями разработки) в течение очень долгого времени, если когда-либо.

1
ответ дан BobbyShaftoe 10 December 2008 в 13:39
поделиться

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

3
ответ дан annakata 10 December 2008 в 13:39
поделиться

Это не просто студии для рассмотрения, это - аудитория. Возможности состоят в том, что, пока Sony и Nintendo вокруг, они вряд ли переместят платформу C#/XNA. По крайней мере, для Nintendo, когда у Вас есть обращение массового рынка, которое они в настоящее время делают, они продолжат диктовать свою платформу разработки.

я люблю XNA, так как я могу теперь записать приложения для своего Zune, но C++ для всеобъемлющей платформы разработки для игр будет вокруг в течение долгого времени. Мог бы быть приток новых инди-разработчиков для устройств Microsoft, но мы - далекий путь от наблюдения XNA использоваться через плату, если когда-либо.

1
ответ дан Joseph Ferris 10 December 2008 в 13:39
поделиться

Я думаю, что существует своего рода элитизм БАКАЛАВРА НАУК, который происходит, когда люди говорят о XNA или платформах java игры или pygame или что бы то ни было. Да, профессиональные игровые здания будут использовать C++ в течение долгого, долгого времени. Но Atmospherian спрашивает о чем-то для его собственного проекта, таким образом, я собираюсь предположить, что он - любитель (если бы он был генеральным директором Эпопеи или чего-то, что я сомневаюсь, что он отправил бы на ТАК)

Так или иначе, просто потому что Вы не могли кодировать FarCry в нем, не означает, что это - бесполезная платформа. Игры уровня главной студии требуют миллионов долларов и десятков людей, но XNA/Java/pygame/etc позволили любителям делать некоторый довольно потрясающий материал. Любительские игры и игры главной студии являются двумя различными зверями и призывают к двум различным наборам инструментов.

Для ответа на вопросы, Atmospherian:

- Да, XNA может сделать, некоторый довольно интересный материал и люди использовали его для создания некоторых прохладных игр.

- Если Вы хотите, чтобы XNA был кросс-платформенным и работал с моно, я думаю, что это технически возможно, но я не задержал бы дыхание.

- Если Вы хотите закончить с заданием в игровой промышленности, Вы собираетесь должны изучить C++.

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

5
ответ дан Ryan 10 December 2008 в 13:39
поделиться

В то время как некоторое время назад о Профессионале XNA объявили, Microsoft теперь, кажется, фокусируется на выпуске Экспресса (хотя это потеряло "Экспресс" на имя), и это, кажется, нацелено на рынок человека, увлеченного своим хобби, а не коммерческий рынок. Среди прочего это в основном приносит пользу сообществу XBox 360, потому что они теперь позволяют разработчикам человека, увлеченного своим хобби, разрабатывать свои игры для Windows и XBox 360, и затем к продают их игры в сети XBox , и это - хорошая вещь.

я действительно любил бы видеть, что XNA развивает скорость в профессиональном мире, но этого не произойдет, если это не будет доступно для других крупнейших играющих платформ (PS3 и Wii). Проблемой не является только платформа XNA / API, это - язык / требование платформы, таким образом, Вы не можете даже записать игру в C# и затем использовать XNA на платформах Microsoft и OpenGL на других платформах.

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

Редактирование:

, Если Ваш вопрос на самом деле, "должен я использовать XNA теперь для моего проекта с бюджетом намного меньше чем миллион", мой ответ - определенно да. Пойдите испытывают его, это свободно. И это мощно.

13
ответ дан OregonGhost 10 December 2008 в 13:39
поделиться

Просто добавьте к разговору... C#/.NET, конечно, доступен на других платформах не-Microsoft.

Между теми двумя тут же, можно быть нацелены на Linux, Mac, Wii... Я уверен, было ли достаточно финансирования/интереса в нем, они могут стать Моно для работы ps3 также. В той точке Вы были бы в состоянии записать для всех крупнейших игровых платформ с помощью C# (хотя, вероятно, не с серовато-синим XNA).

кроме того, любому задающемуся вопросом о производительности... много больших вещей находится в работах, таких как новая поддержка Mono быстрых математических операций с плавающей точкой с помощью их расширений SIMD (x86 только на данный момент, конечно): http://tirania.org/blog/archive/2008/Nov-03.html

5
ответ дан Joel Martinez 10 December 2008 в 13:39
поделиться

Я думаю, что C++ пойдет вышедший из моды за следующие 10 лет просто тот же путь, как блок сделал. Я - профессиональный игровой программист в течение больше этих 15 лет. В начале партии 90-х людей сказал, что C не достаточно эффективен для игр. В конце 90-х те же люди сказали, что C в порядке, но C++ является просто слишком медленным для важных приложений производительности, таких как игры. Теперь C++ является стандартным высокопроизводительным языком, и люди утверждают, что другие языки были бы слишком медленными. Тем временем сегодняшние игры используют языки сценария как Lua, Python или Unrealscript для игровой логики, которые в десять раз медленнее, чем C# или Java.

C++ намного быстрее, когда Вы делаете математику в своей игре. Выполнение линейной алгебры является крайне медленным в C# или Java. Однако это - только часть (10 - 25%) игры. Когда дело доходит до игры узкое место логики является доступом к памяти, настолько использующий другой язык значительно не уменьшает производительность. Сторона инструмента игры, которые используют, чтобы быть 50-80% кода, действительно не требует никакого C++. Это счастливо работает в C#, который достаточно быстр почти для любого инструмента.

также нельзя забывать, что C++ получен из C, который сделан в начале 70-х. Таким образом, C++ является устаревшим во многих отношениях. Самой раздражающей вещью является, вероятно, препроцессор, который уничтожает прозрачность и вызывает безумно долгое время компиляции. Средний уровень техники игровой механизм C++ компилирует за 30-60 минут. В такое время Вы могли скомпилировать каждый C# и проект Java, когда-либо сделанный людьми. Отсутствие саморефлексии и динамического создания кода является также недостатком. Это часто стоит большого количества времени разработки для преодоления на этих недостатках.

, Тем не менее, затраты на разработку C++ много это стоило бы еще больше, чтобы игровая студия рискнула отказом путем переключения на новую технологию, которая еще не доказана в разработке игр. Это - также важный фактор, что большинство опытных игровых программистов использует только C/C++, и у них нет опыта с другими языками, которые определенно увеличили бы риск переключения. Из-за них Вы, вероятно, не будете видеть игровые студии через следующие несколько лет, переключаясь на C#. Однако вероятно, что студия, находящаяся в собственности Microsoft сделает большой хит с игрой C# за следующие 5 лет, которые убедят другие студии, что выполнимо сделать заголовки AAA в C#, и затем Вы будете видеть, что все больше студий переключается на C#.

На данный момент, мой совет: Если Вы хотите сделать многоплатформенный заголовок AAA, у Вас нет никакого другого выбора, чем C++ для части во время выполнения игры. Рассмотрите использование C# для стороны инструмента. Это немного хитро для эффективного соединения управляемого и неуправляемого кода, но на длительном периоде это стоящий усилия Вы тратите на него. Если Вы делаете проект хобби или заголовок B, где производительность менее важна, чем затраты на разработку / время затем забывают C++ и просто используют C# для всего и проводят некоторое дополнительное время для оптимизации математики.

67
ответ дан Joel Martinez 10 December 2008 в 23:39
поделиться
  • 1
    Ughhhh, почему делает ширину и высоту, должен быть явно определен для флажка, но для любого другого представления I' ve использовал форму definied в (прямоугольном) drawable для ее фонового ресурса, view' s цвет фона принял бы shape' s " solid" значение атрибута и " stroke" нарисовал бы view' s периметр отлично. Я нахожу с флажком, если ширина/высота опущена, то коллапсы формы к 0!!! Спасибо. – samis 25 May 2013 в 07:12

Я не разработчик игр (если Вы не считаете игру Reversi, я записал в ассемблере Atari 6502 в ~1982), но у меня действительно есть большой опыт, пишущий программное обеспечение коммерческого применения в блоке-> C-> Objective C (кто-либо помнит Следующий Куб?)-> C++-> Java и теперь C#.

я не могу сравнить игровые библиотеки, но у меня действительно есть некоторые мысли о C++ по сравнению с C#.

IMO, аргумент в пользу C++ по C# из-за производительности не так прост, как некоторые сделали бы, чтобы Вы верили. Программное обеспечение я продолжаю работать, является очень важной производительностью. Мы конкурируем с продуктами, скомпилированными в собственный код (по-видимому, записанный в C / C++ / блок), и мы побеждаем на производительности до такой степени, что наши конкуренты даже используют наше программное обеспечение по своему собственному для определенные приложения .

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

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

я полагаю, что это - только вопрос времени перед переходами разработки игр к C# и / или Java и / или некоторый другой язык, который более продуктивен, чем C++. Используя Java в течение нескольких лет и теперь C# в течение нескольких лет, которые я поставил бы на C# - но это - просто предположение.

, Если бы я начинал в разработке игр сегодня, я определенно держал бы пари на Silverlight и / или WPF. WPF основан на Direct3D. Microsoft уже объявила, что Silverlight 3 будет поддерживать 3D рендеринг аппаратных средств, которому помогают. Silverlight работает на различных браузерах и Mac. С Лунным светом это работает на Linux. Об этом объявили для некоторых телефонных платформ. Благодаря тому, что Silverlight является по существу легкой версией WPF (это было первоначально представлено как "WPF/E", где "E" означает Везде) можно быть нацелены на обоих без большого дополнительного усилия. У Вас может быть легкая версия (свободный или поддерживаемый путем рекламы) игры с помощью Silverlight в браузере и реальном соглашении для серьезных геймеров, которое использует WPF и работает на Windows.

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

, В то время как я не видел официального объявления, трудно полагать, что следующее поколение Xbox не будет поддерживать Silverlight. Конечно, я не искал бы его на Sony или Nintendo, играющей системы.

10
ответ дан Joe Erickson 10 December 2008 в 23:39
поделиться

Lua должен представлять интерес для Вас, поскольку можно встроить его в C# и получить доступ объектам от LuaScript.

-1
ответ дан David Robbins 10 December 2008 в 23:39
поделиться
Другие вопросы по тегам:

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