Llegó el día. Godot 3.0 salió a la luz. Se trata de una versión con muchas mejoras respecto a Godot 2.x. Godot es un motor de videojuegos software libre compatible con la mayoría de sistemas operativos (y consolas a través de una compañía privada). Aprovechando la ocasión voy a explicar cómo hacer un juego simple usando C# y el motor 2D de Godot. Este tutorial sirve para familiarizarse con el motor.
|
etiquetas: tutorial , godot , godot 3.0 , juego de snake , c# , c sharp , motor videojuegos
docs.godotengine.org/en/3.0/index.html
youtu.be/QWoQe9ZOwTU
Siento que te cause tristeza, pero te puedo decir que de ser así, cada vez vas a estar más triste por la expansión de .NET/C#... Hasta las teles Tizen (4.0) nuevas se van a programar con C#
Qué raro se me hace que alguien hable mal de C#, un lenguaje que te proporciona unas oportunidades para realizar código asíncrono lineal y trabajo en código limpio de este nivel. Y además tipado, proporcionando robustez y seguridad.
Creo que ese tipo de comentarios deben ser defendidos con algo más de una línea.
Fdo. Un informático
Algo de rendimiento se estará perdiendo por algún sitio, y no solo por C#
La idea es básicamente no destruir objetos de juego, sino darles un estado "inactivo" o "destruido" dentro del pool de objetos para que el juego los ignore, y cuando haya la necesidad de crear uno nuevo, resetear sus propiedades a un estado válido de nuevo.
Dicho pool de objetos nunca crecerá más allá de lo necesario y de hecho es más eficiente (en tiempo) que destruir los objetos en memoria, pagando el pequeño precio de que no se libera memoria en este concepto hasta que se decide destruir el pool entero.
De esta forma nunca salta el recolector de basura hasta que el objeto es realmente destruido, lo cual debería ocurrir al terminar el nivel/pantalla/partida lo que sea y se evitan los parones.
La técnica no se utiliza únicamente en lenguajes con recolector de basura ya que es igual de válida para C++ y similares y es más eficiente que destruir los objetos durante la partida.
Ya saliese en Menéame si mal no recuerdo, pero de todas formas:
www.blackicemod.org/download.html
De hecho no conozco motor/creador de videojuegos 3D más fácil que ese. Hace años había uno que era el Klik & Play, que era un poco infantil, pero le podías sacar bastante potencial. Para hacer un juego de naves, space invaders, pangs, puzzle bubble, juegos de plataformas, era más que suficiente.
Obviamente hay otra versión bastante mejor, pero no es gratuita, llamada FPS Reloaded y conocida ahora como Game Guru. De hecho sus creador "The Games Creators", pues ya lo dice el nombre, se dedican a crear muchos programas para crear videojuegos, y crear esos videojuegos claro.
Salu2
Pero al final volvemos a lo mismo. Tenemos que andar complicando el código con cosas raras para evitar el garbage collector, porque el propio lenguaje limita tus opciones.
Lo de si es más eficiente, depende. Porque un pool siempre qued en el heap, mientras que utilizando el stack das la posibilidad de que el objeto se cree y se destruya en la propia caché.
Aparte, como dice #17, el object pooling puede solucionarte los problemas que el GC pueda causar.
Llevo usando Godoy varios meses y estoy alucinando con lo fácil que es desarrollar videojuegos con él. Tiene además una comunidad hispana muy importante que ha traducido toda la documentación y además los cambios para Godoy 3.0 son alucinantes.
En fin,una maravilla de programa y además software libre
www.youtube.com/watch?v=0i_XgWZuVcY
Aunque si veo que el Godot se me hace muy cuesta arriba, igual sí que me paso al rpgmaker. Hice algunas chorradillas con él hace cosa de 15 años, pero nunca hice nada serio, solo pequeñas pruebas.
Lo mejor es cuando luego empecé a currar de esto en consultoras y sitios de mierda similares y prácticamente todo el código que me tocaba retocar / arreglar tenía CERO comentarios (y en ocasiones también CERO documentación).
alternativeto.net/software/rpg-maker/
Personalmente yo también prefiero C++ a C#, pero me cansan muchísimo las guerras éstas, especialmente cuando no se aportan argumentos ni contexto.
Solo que me pone triste...
Que tiempos!