Каковы причины за и против разработки игры на Java / C # (включая XNA) / Unity? - PullRequest
4 голосов
/ 21 февраля 2011

Я думаю о создании игры просто для удовольствия.Каковы преимущества программирования на этих языках?
Я полагаю, что и Unity, и Java имеют свои собственные встраиваемые апплеты, а C # имеет программный пакет (XNA Game Studio), готовый для разработки игр для Windows Phone, XBOX 360 и ПК.

Только некоторые критерии:

  • Насколько совместим с платформой язык (может ли он работать на Mac, я хочу, чтобы он определенно мог работать на ПК)
  • есть ли библиотеки для разработки игр (включите их, пожалуйста)?
  • Какова базовая производительность среды выполнения?(Часто ли происходят сбои?)
  • Можно ли запустить его в веб-браузере?
  • Нужно ли пользователю устанавливать среду выполнения?
  • Любые другие вещи, которые делают языкхорошо ...

Я хочу разрабатывать игры для ПК.

Ответы [ 5 ]

9 голосов
/ 21 февраля 2011

Позвольте мне поддержать C # и особенно XNA.

С использованием Mono (включая платные библиотеки, такие как MonoTouch и MonoDroid), вы можете заставить C # работать в значительной степени в любом месте ( например ). C #, безусловно, достаточно быстр для разработки игр. И время выполнения очень стабильно. Он может работать в браузере через Silverlight.

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

XNA - это библиотека для разработки игр (похожая на DirectX по объему), и для XNA также создано множество библиотек. Кроме того, он имеет далеко лучшую библиотеку образец кода .

XNA изначально работает на Windows, Xbox 360, Windows Phone 7 и (более старой версии) на Zune.

На ПК C # и XNA каждый требует времени выполнения. Microsoft ClickOnce установщик делает это очень легко. Он дает вашему пользователю установщик начальной загрузки, который затем загружает и устанавливает среды выполнения от Microsoft по мере необходимости. Клиентский профиль .NET 4.0 - 41 МБ, а XNA 4.0 - 7 МБ. Этот ответ содержит более подробную информацию .

Кроме того, есть проекты, которые переносят XNA (только 2D API) на другие платформы. Я в настоящее время финансирую проект под названием ExEn с целью внедрения высококачественной реализации 2D XNA в браузер (Silverlight), iOS, Android и Mac.

Если вы не можете дождаться ExEn, вы можете попробовать некоторые библиотеки, на которых он основан - SilverSprite (Silverlight) и XnaTouch (iOS). SilverSprite довольно глючит, XnaTouch немного лучше.

(На данный момент, если вы хотите сделать игру 3D на этих платформах, Unity, возможно, является лучшим вариантом.)

5 голосов
/ 21 февраля 2011

Чтобы было ясно, Unity - это не язык (как C # и Java), это инструмент разработки и среда выполнения. Вы пишете логику своей игры на C #, UnityScript (разновидность JavaScript) или Boo (разновидность Python). Авторский инструмент достаточно стабилен и мощен и дает небольшим командам фантастический конвейер для добавления 3D-моделей, текстур, звуков, шейдеров и т. Д.

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

В мире Java нет эквивалента Unity, о котором я знаю. XNA даст вам преимущество, если вы будете писать прямо на C #, но вам все равно придется создавать / интегрировать множество фундаментальных вещей (физика, системы частиц, обнаружение столкновений), прежде чем вы даже приблизитесь к тому, чего вы могли бы достичь день 1 с Unity.

Автономные игры Unity могут быть построены для Mac или Windows. Автономная сборка не требует от пользователя установки Mono, и она очень стабильна в моем опыте. Существует также Unity Web Player, который позволяет запускать игры в браузерах класса A на Mac и Windows. Веб-плеер установлен только примерно на 35 миллионов браузеров (звучит как много, но учтите, что у Facebook более 500 миллионов пользователей).

Я знаю, что звучит как шил, но Unity действительно отличный инструмент.

1 голос
/ 22 февраля 2011

Для разработки игр C # намного лучше, чем Java или JavaScript.
Если вы используете Unity3D , вы можете использовать C # поверх JavaScript, и вам следует.

Unity3D

Плюсы:

  • Unity3D работает на: Windows, Mac, XBOX, PS3, WII, iPhone, Android
  • Unity имеет встроенную физикудвижок (если вы хотите использовать это в 2D игре, вам нужно программно найти ось).

Минусы:

  • Стоит денегдля любой другой платформы, кроме ПК или Mac.

XNA

Плюсы:

  • XNA работает на: Windows, XBOX, Phone7.
  • XNA бесплатна для всех платформ.

Минусы:

  • Ограничено продуктами Microsoft.Требуется больше кодирования.

Если вы только начинаете и хотите сделать 3D-игру , я бы посмотрел на Unity3D.
Если вы хотите сделать 2D-игра XNA или Unity3D была бы хороша.
К сожалению, ни одна из них не работает на Linux.(

1 голос
/ 21 февраля 2011

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

  • xbox + pc> xna, .net
  • android> java
  • html5> javascript
0 голосов
/ 21 февраля 2011

Я достаточно широко использовал Unity, и я бы настоятельно рекомендовал его.Он распространяется на все платформы (вам нужно купить лицензии), но это очень хороший движок.Стоит посмотреть!Плюс тот факт, что вы можете разрабатывать в C #, поскольку он использует моно, является огромным плюсом.

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