¿Cuáles son las principales limitaciones de VB.Net para evitar que las personas quieran usarlo como lenguaje para desarrollar juegos?Desarrollo de juegos en vb.Net
Respuesta
La velocidad de los lenguajes de nivel superior generalmente los mantiene fuera del desarrollo de juegos "serios", donde reina C y C++. Sin embargo, cada vez más juegos exponen la lógica del juego a lenguajes de scripting como Lua y Python.
He oído hablar de los juegos independientes que se están desarrollando en VB, por ejemplo, la serie Zombie Smashers fue desarrollada en VB por James Silva, quien recientemente hizo el juego Dishwasher Dead Samurai en C# .net.
Es posible que desee ver en el marco de Xbox Live Arcade (XNA) Microsoft apagó. Puedes usar eso en VB o C#.
No es VB.NET ese es el problema principal, es .NET Framework.
Específicamente, el desarrollo de juegos generalmente se realiza en C/C++ donde se puede obtener cada onza de rendimiento. El framework .NET no se presta a esto.
Dicho esto hay juegos que se han desarrollado en .NET
subido por la verdad. Aunque amo el framework .NET, la mayoría de los desarrolladores más importantes han dejado constancia de que si quieres involucrarte en el desarrollo de juegos, conoce bien C++ y tus estructuras de datos/algos son aún mejores (Blizzard). – bdd
Correcto, pero ¿realmente vas a competir con Blizzard si eres el único programador que trabaja en un juego de hobby? –
VB.NET no es diferente de cualquier otro lenguaje .NET.
La percepción de que VB es lento ya no es el caso.
Aquí hay un list of tutorials para VB.NET con XNA (juego de herramientas de desarrollo).
Parte de esto es el estigma todavía asociado a vb en general de ser un lenguaje lento. (Que no es tan cierto como solía ser debido a lo común del framework .net)
Para ser sincero, aunque depende de qué tipo de juego desarrolles, si estás haciendo una alta velocidad de cuadros, alta Gráficos de nivel 3-D, juego de vanguardia, estás atrapado escribiéndolo en C o C++ para obtener el rendimiento necesario. Pero si estás haciendo algo más parecido a lo que ves hoy en muchos juegos basados en flash, o incluso cosas que podrías ver en juegos anteriores, en mi humilde opinión, podrías hacerlo en casi cualquier idioma.
Sí, realmente depende del alcance de su proyecto. Use la herramienta correcta para lo que quiere lograr. –
Tardó mucho tiempo para que los programadores de juegos incluso aceptaran C++ sobre C debido a que es "lento". Creo que muy pronto la era multinúcleo hará que esto se desvanezca lentamente porque correr en paralelo será mucho más importante que ejecutar un solo hilo lo más rápido posible.
Tenga en cuenta también que actualmente se realiza un gran procesamiento en la GPU con sombreadores de píxel/vértice/geometría. Así que estamos viendo algunos juegos bastante avanzados escritos en lo que podrían considerarse idiomas "lentos".
Por último, .NET no es lento. Lo que lo hace problemático para el desarrollo del juego es la imprevisibilidad del recolector de basura (GC se activa durante una gran pelea entre jefes y causa retraso, no tan bueno) y cualquier clasificación que se produce entre C# y el código nativo.
Afortunadamente, con una comprensión profunda de cómo funciona .NET, incluido el GC y los tiempos de ejecución, ambos obstáculos se pueden superar.
En todo caso, sería muy recomendable crear un prototipo de un juego en un lenguaje administrado, ya sea VB.NET, C#, python, ruby, etc. ... y luego, si se descubre que es demasiado lento, puede partes de ella a C++.
.NET ha administrado C++, lo que hace que la interoperabilidad entre el código nativo y el administrado sea bastante fluida. Esto permite que las partes realmente críticas se escriban de forma nativa si es necesario. Pero dudo que este sea el caso. Las optimizaciones más importantes al principio vendrán de estructuras de datos, algoritmos y arquitectura general.
Como otros han señalado, .Net no es lento, pero hay algunas cosas que se destacan en contra de ella para el desarrollo del juego:
- no determinismo de la recolección de basura
- bajo la portabilidad (en comparación con C)
- La falta de herramientas/dev bibliotecas juego maduro/marcos
cuanto al uso de VB.Net específicamente. Querido señor, ¿por qué? :-)
Puede usar Microsoft XNA Framework para gráficos y una aplicación regualr WinForms para contener todo su código. Simplemente instale XNA Framework y agregue una referencia desde su aplicación VB WinForms.
Si desea aprovechar todas las características que XNA tiene para ofrecer, deberá usar C# con el que XNA se integra muy bien.
En cuanto a la parte de velocidad, los motores como el Visual3D.NET basado en XNA me han convencido de que no es imposible obtener un buen rendimiento de un motor de juego administrado. Más importante aún, la CPU no parece ser un cuello de botella en ninguna de las demostraciones, que es la única parte en la que el uso de C# tiene algún efecto. E incluso cuando su CPU está limitada, solo está presionando un 50-60% ya que el motor aún tiene un solo subproceso, por lo que hay mucho margen de mejora en las CPU actuales de doble y cuádruple núcleo, y en los núcleos octo y hexadeca de mañana. Creo que la optimización de los algoritmos para escalar bien en la era de muchos núcleos será más importante que el lenguaje utilizado.
Y lo bueno de utilizar un lenguaje administrado para todo el motor es que es fácil usar el mismo lenguaje de alto nivel para la lógica/IA del juego, mientras que los motores nativos pueden usar lenguajes de scripting mucho más lentos para esto.
El uso de un lenguaje administrado como C#/VB.NET puede ser limitante para cosas basadas en la CPU como la física, pero estoy impresionado por la biblioteca de física totalmente administrada JigLibX para XNA.
Esto es todo C#, pero supongo que se aplica a VB.NET también, ya que están compilados en la misma IL al final, a menos que haya algunas limitaciones en el compilador de VB que desconozco.
- 1. Desarrollo de juegos de Iphone
- 2. Trigonometría y desarrollo de juegos
- 3. Desarrollo de juegos Android SDK?
- 4. Desarrollo de juegos para Android en C#
- 5. HTML 5 herramientas de desarrollo de juegos
- 6. Código abierto para desarrollo de juegos Android
- 7. NES Desarrollo de juegos: tutoriales ASM6?
- 8. ¿Usando Cython para el desarrollo de juegos?
- 9. ¿Por qué no puedes desarrollar juegos XNA en VB.Net?
- 10. Manejo de efectos de combate en el desarrollo de juegos
- 11. Desarrollo de juegos de PlayStation 2 en cualquier consola?
- 12. Desarrollo de juegos de estrategia en tiempo real Java
- 13. Libros prácticos sobre desarrollo de juegos en C++?
- 14. plataforma/herramientas sugeridas para el desarrollo rápido de juegos y prototipos de juegos
- 15. Modelado de vectores 2D para desarrollo de juegos
- 16. ¿Cómo creo un gran equipo de desarrollo de juegos?
- 17. Desarrollo de juegos para Android: detección de colisiones fallidas
- 18. ¿Cuál es el mejor framework de desarrollo de juegos .NET?
- 19. ¿Silverlight 2.0 es una plataforma de desarrollo de juegos viable?
- 20. Necesito ayuda para el desarrollo de juegos multijugador android
- 21. ¿Qué tan "lento" es Python para el desarrollo de juegos?
- 22. Opciones para el desarrollo de juegos con MonoTouch
- 23. OCaml y Scheme para el desarrollo de juegos
- 24. Para comenzar con el desarrollo de juegos usando js/html5
- 25. Desarrollo de juegos para Android - Mover el teléfono
- 26. SharpDX vs SlimDX para el desarrollo de juegos?
- 27. programación de juegos en 3D en Java
- 28. Programación de juegos en 3D en Java
- 29. ¿Hay algún ejemplo de juegos en Scala?
- 30. ¿Cuáles son las ventajas/desventajas de Canvas vs. DOM en el desarrollo de juegos de JavaScript?
Como advertencia al respecto, no puede usar VB.NET para desarrollar juegos para Xbox 360 utilizando XNA. Solo C# 3.0 es compatible. http://creators.xna.com/en-us/xnags_islive –
No sabía que Ed, pero puede hacer juegos de PC en ambos. Esta puede ser la razón por la que Silva cambió a C# para Dishwasher, se vio forzado a salir de VB. –