Как стать автором
Обновить

Комментарии 28

не «почему», а «для чего» ;-)
вопрос совершенно некорректно поставлен

XNA — это не аналог интерфейсов DirectX или OpenGL, а относительно высокоуровневая обертка над DirectX9

а если мне надо использовать DirectX10, то никакая, простите, ХN'я мне не поможет

с другой стороны, заюзать DirectX10-интерфейсы в C# через C++/CLI или даже автоматический COM-маршаллинг — дело пары десятков минут, сам пробовал
Я так понял, вопрос больше про технологию чем про инструментарий. Советую вам использовать для начальной обрисовки идеи использовать OpenGL, а потом, когда опыта будет боболе, то перенесете на DirectX. XNA всетаки больше для бизнес-приложений. Я так понимаю вопрос был создан под действием топика про халфу :)
Таких бизнес-приложений: www.youtube.com/watch?v=TgChURF5fQE? :)
На платформе xbox360 XNA используется вовсю уже давно (думаю в играх типа Halo 3 — тоже).
если же включить режим телепата и предположить, что вы собираетесь делать что-то, использующее GPU под Windows (исходя из предложенных вариантов)

то я бы рекомендовал DX10 via C#

очень чистый интерфейс в отличие от предыдущего DX9, полностью пересмотрен API, стало более… эээ, cohesive (сгруппировано по функциональности)

выкинут весь fixed-function анахронизм, и — внимание — выкинут концепт «hardware capabilities», теперь гарантируется, что железяка (точнее, драйвер) должна реализовывать весь API

программировать его — одно удовольствие

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

а, ну ещё OpenGL используют гики — для демок, юзающих vendor-specific фичи железяк (которые, понятное дело, недоступны из DirectX)
Хм… следуя вашему рассуждению приходим к Ruby + DX10 — используя компилятор Ruby написанный на C++, или лучше на ASM.
получим такого же франкенштейна как firefox, зато скорость разработки будет невероятной :))))
при чем тут Ruby, какой-то ASM и Firefox?
1. На данный момент Ruby является самым перспективным языком в платформе, заточенной под быстрое создание приложений — дальше нам нужно определиться с тем кто нам все это будет показывать — поскольку речь идет только об одной платформе — то смело можно писать компилятор — а чтобы работал быстрее — на assembler (который с моей легкой руки был назван ASM-ом)
2. Что касается firefox — как мы все знаем ядро firefox состоит из интерпретатора XUL, к которому подключаются различные плагины и модули. Очень удачная и расширяемая архитектура — в итоге очень удачный проект.

Мой предыдущий комментарий — не более чем размышление на интересную тему и никак не попытка Вас задеть :)
Ruby не подходит для работы с DirectX, не тот уровень

с C# это ещё как-то реально без заметного performance hit (биндинги к C-коду через C++/CLI, unsafe-блоки для работы с сырой памятью, P/Invoke)

а игровую логику делать на чем-то вроде Ruby это фи… немодно уже

в конторах, где я работал, использовали Virtools и Quest3D — графические визуальные языки, для ультра-high-level кодинга (редактирование кода на живой системе — это убойная фича)

а можно по-подробнее?
у нас есть идея создания OpenSource online 3D игры и мы ищем наиболее удачную и расширяемую платформу.
Посоветуете?
И почему Ruby не модно?
идея хорошая, потом будет что в резюме показывать, когда пойдете на реальный проект спустя пару лет, когда энтузиазм пропадет

а насчет наиболее «удачной и расширяемой» — пишите на C#, и клиента, и сервер

до performance-оптимизаций у вас дело просто не дойдет

насчет немодного Ruby я пошутил, но, в любом случае, я не вижу смысла в лишнем языке — C# достаточно хорош сам по себе, чтобы не париться насчет каких-то еще языков
насчет оптимизаций — код который острее всего в ней нуждается мы выделим в отдельный модуль — для OpenSource очень даже хорошо — туда будут суваться только самые отьявленные умельцы, а все остальное будет идейно и на более высоком уровне :)
Virtools хорош для того, для чего он предназначен — маленькие игры а-ля пинг-понг и интерактивные 3D-презентации

для чего-либо побольше — оно непригодно

это же framework, а любой framework он как рельсы — шаг влево, шаг вправо и расстрел
а проводили независимые тесты производительности?
производительности чего именно?

на рендеринге у него abstraction penalty минимальный, но толку с этого, если платформа не дает мне той выразительности, что необходима

на этой штуке удобно описывать вещи вроде: «вот у нас объект, машинка, сделано из таких-то моделек, налеплены такие-то материалы; вот у нас кнопка, нажали кнопку, машинка поехала»

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

но я бы даже не смотрел в их сторону

работа с графикой — это настолько интимная часть проекта, что тут нет смысла какие-то готовые абстракции использовать, с учетом того, что современный DirectX сам по себе достаточно высокоуровневый

про игровую логику я уже даже не говорю
НЛО прилетело и опубликовало эту надпись здесь
Извинения приняты.

Мы говорим не о личных предпочтениях, а об архитектуре платформы.
Что лучше, молоток или отвёртка? Ну если гвозди забивать, то молоток.
Я к тому, что «лучше-хуже» понятия относительные и существующие только в каком-то контексте.
ну если в списке вариантов есть C# и XNA, то это по-любому Windows, а там OpenGL только гик будет использовать
Я думаю, если вам не нужна кроссплатформенность и если вы не поклонник Кармака, то забудьте про OpenGL.
Забавно читать комменты после голосования.

по-любому Windows, а там OpenGL только гик будет использовать


OpenGL — 61.86 %
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Вопрос какой-то странный — Какой овощь лучше в супе? Марковка? Свекла? Редиска?

PS: Все зависит от того «какой суп» вы собираетесь готовить… ИМХО
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации