Почему вы не можете разрабатывать игры XNA в VB.Net? - PullRequest
13 голосов
/ 07 февраля 2012

Я знаю, что нет никакого типа проекта VB.Net для игр XNA, но в качестве простого теста я собрал решение VB, которое ссылается на Microsoft.XNA.*.У него есть класс, который реализует Microsoft.XNA.Framework.Game.Затем в C # Game1.cs я просто удалил весь шаблонный код и изменил его, чтобы наследовать от моего класса VB ...

namespace MyGame {
    public class Game1 : GameEngine.Engine {
    }
}

, который наследует ...

Public Class Engine
    Inherits Microsoft.Xna.Framework.Game

    Protected Overrides Sub Update(GameTime As Microsoft.Xna.Framework.GameTime)
        If GamePad.GetState(PlayerIndex.One).Buttons.Back = ButtonState.Pressed Then
            Me.Exit()
        End If

        For Each Element In Elements
            Element.Update(GameTime)
        Next

        MyBase.Update(GameTime)
    End Sub

   ...

Кажется, это работает, и я смог загрузить контент, визуализировать модель, взять данные от геймпада и т. Д.некоторые расширенные функции, не поддерживаемые в VB.Net, или просто отсутствуют шаблоны / поддержка проекта?

Есть ли некоторая оптимизация производительности при компиляции в MSIL, которую пропускает компилятор VB?

Ответы [ 2 ]

14 голосов
/ 07 февраля 2012

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

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

Существуют также некоторые различия в производительности между C # и VB.NET , которые могли повлиять на решение Microsoft.

Обновление: Также выясняется, что VB.NET не поддерживает небезопасный код .Вы часто найдете случаи, когда небезопасный код необходим в программировании игр по соображениям производительности.У меня такое ощущение, что решение Microsoft было принято на основании сложного списка причин.

8 голосов
/ 08 февраля 2012

XNA поддерживает VB.Об этом было объявлено еще в мае 2011 года -> http://blogs.msdn.com/b/vbteam/archive/2011/05/25/vb-support-for-the-xna-platform.aspx

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