#.net #vb.net #directx #sdl #slimdx
#.net #vb.net #directx #sdl #slimdx
Вопрос:
Для тех, у кого есть опыт работы с VB.NET проще использовать SlimDX или SDL? Руководства по SlimDX уже написаны для .NET, но я читал, что SDL намного проще, чем сам DirectX. В моем случае мне просто нужна 2D графика.
Кроме того, какой язык вы рекомендуете. Я обычно использую VB.NET но, вероятно, большинство руководств по Интернету на C #, и я не думаю, что было бы сложно изучить его, поскольку я знаю C и PHP. 🙂
Комментарии:
1. c#.NET почти такой же, как VB.NET функционально. Единственное различие заключается в синтаксисе, который через неделю или две станет привычным. Вероятно, лучше всего освоиться с C#.NET поскольку вы будете свободно владеть языком, который знают больше программистов.
Ответ №1:
SDL может быть проблемой для пользователей со старыми видеокартами, которым, как правило, не хватает приличного ускорения OpenGL. .NET-оболочки для SDL также устарели, когда я проверял их в прошлый раз.
Когда я искал приличную библиотеку с аппаратным ускорением 2D для своих .NET-проектов, я в конечном итоге использовал библиотеку под названием Gorgon. Он основан на SlimDX и направлен на то, чтобы сделать SlimDX более объектно-ориентированным и простым в использовании для 2D-приложений.
Он поддерживает рендеринг любого элемента управления, который вам нравится, вы можете свободно смешивать его с материалами Windows Forms. Производительность в основном такая же, как у SlimDX, поскольку это, по сути, оболочка SlimDX.
Вот несколько ссылок, если вам интересно:
Комментарии:
1. Просто любопытно, откуда вы взяли информацию о том, что SDL потенциально может быть проблемой для старого оборудования? Я никогда не слышал об этом раньше, и, учитывая долгую историю SDL, я бы подумал, что эта информация неверна. Исходя из моего опыта работы с SDL, в конечном итоге это приводит к большой работе в программном обеспечении, потому что получение аппаратных поверхностей казалось сложным (по крайней мере, на всем оборудовании, на котором я мог протестировать).
2. У меня есть несколько старых компьютеров, которые полностью перегружены приложениями SDL, но отлично запускают SlimDX. Проблема не в том, что это не работает, но вы получаете действительно потрясающую производительность, поскольку аппаратного ускорения нет, а процессор работает довольно медленно. Преимущество DirectX в том, что он отлично работает даже с устаревшими видеокартами, поэтому вы можете получить приемлемую производительность даже на устаревших системах. Конечно, это не имеет значения, если вы не беспокоитесь о старом оборудовании, таком как P2-4s, поскольку все современное может адекватно запускать SDL только в программном режиме.
3. Не знал об этой библиотеке. Я попробую, кажется, это хорошо. Спасибо. 🙂
Ответ №2:
Чтобы ответить на вторую часть вопроса:
VB.NET и C #, по большей части, одинаковы.
Они компилируются в один и тот же конечный код и имеют одинаковую производительность (если вы измените проверку переполнения для каждого из них на соответствие). Вот некоторые различия:
VB.NET
- Без учета регистра
- Более подробный, чем C#
- Унаследовав плохую репутацию от своих БАЗОВЫХ предшественников, многие программисты (в основном, я думаю, на C ), похоже, смотрят на VB.NET как уступающий.
- Используется реже, чем C#
- Имеет «With… Заканчивать на «, чего я действительно бы хотел, чтобы у C # было.
- По умолчанию включена проверка переполнения
- «Мое» пространство имен
C#
- Чувствителен к регистру
- Немного худшее удобство использования — использовав C # и VB в VS08, я обнаружил, что C # intellisense немного менее интеллектуальен.
- C # требует от вас намного большего приведения типов данных, хотя это обеспечивает вам большую гибкость.
- Более популярный
- Тесно связан с другими языками, такими как Java
- Содержит несколько вещей, которых нет в VB, таких как ключевое слово «unsafe».
- /* Простые многострочные комментарии */
- По умолчанию отключен флажок переполнения
- Нет «Моего» пространства имен
Существует очень мало сценариев, в которых имело бы значение, выбрали ли вы VB.NET или C #, основные различия заключаются просто в синтаксисе и том факте, что многие программисты склонны смотреть на VB.NET как «низший» (который, я думаю, просто является языком программирования, но, к сожалению, так оно и есть)
Тем не менее, вероятно, стоит переключиться с VB.NET для C #, потому что:
- Это не будет слишком сложным изменением, поскольку они во многом одинаковы
- Изучение другого языка всегда полезно
- Как вы сказали, в C # доступно больше руководств, что сэкономит вам время на переводе кода
- С точки зрения карьеры, возможность сказать, что вы кое-что делали на C #, будет полезной
Почему бы не попробовать? Единственный недостаток, о котором я могу подумать, заключается в том, что вы изучаете две вещи одновременно (SDL / SlimDX C #), но на самом деле C # чертовски прост.
Комментарии:
1. Я не думаю, что изучение C # не будет для меня сложным, потому что у меня уже есть некоторый опыт чтения кода C # и перевода его на VB.NET вручную (иногда код настолько прост, что я даже не использую никаких автоматических инструментов). У меня также есть опыт работы с языками с синтаксисом, подобным C #. Основная проблема в том, что я уже начал свой проект в VB.NET , но это не имеет значения. Я начну это снова. Это не должно быть сложно. 🙂
Ответ №3:
Вероятно, стоит отметить, что VB
теперь есть поддержка XNA
фреймворка:
Руководство по началу работы:http://create.msdn.com/en-US/education/gamedevelopment/VBSupportForXNA
Комментарии:
1. Да, я уже слышал об этом, но для меня это не важно, потому что я планирую использовать WinForms. В любом случае спасибо. 🙂
2. @Scorch Это может представлять интерес.
3. Не знал, что это возможно. Но есть ли какие-либо зависимости? Это потому, что я создаю библиотеку, которая, вероятно, будет дестрибутед.
4. @Scorch только на
XNA
самом себе, я думаю.
Ответ №4:
SlimDX — это библиотека относительно низкого уровня. Это позволяет вам получить доступ ко всей мощи DirectX, и вы можете использовать как старое устаревшее оборудование, так и новые топовые компоненты. Это также означает, что сложно настроить что-либо, и вам нужно намного больше кода для рисования простых вещей, таких как спрайты и текст.
Если вы смотрите строго с точки зрения удобства использования, SDL, вероятно, лучший выбор для вас.