Depende de quão forte você é com matemática e conceitos de programação de jogos em 3D .
Em 2D, você pode usar apenas os conceitos de posições e velocidades x, y (adicionando e subtraindo-os - basicamente vetores) e colisão de caixa 2D.
Em 3D, você precisa se preocupar com muito mais matemática: matrizes de projeção, matrizes de visualização, frusta ..
Além disso, você precisa interagir com um conjunto muito mais rico de funções da API de desenho que está usando (apenas em virtude do fato de estar fazendo 3D, então você precisa aprender muito mais funções que lidam com o 3D )
O Microsoft XNA possui excelente suporte para iniciar em 2D e facilita a renderização usando o SpriteBatch . Assim que você se aventura no 3D, precisa aprender automaticamente o VertexBuffer , ou Model , e depois vem o ModelBones e tudo o mais que o acompanha.
É melhor iniciar o 2D apenas porque os conceitos que você precisa entender são menores (sprites em 2D? Uma caminhada!). Depois de ter alguma experiência, você deve ficar bem em 3D.