Con el fin de los exámenes, estoy volviendo a recuperar tiempo para mis hobbies, y entre ellos está programar. Programar por placer, claro, no programar hasta que te salga sangre por los ojos de buscar el error que imprime un segmentation fault en nuestra querida terminal.
Estoy empezando a portar mi motor que, lo siento por Ulo, tendrá que llamarse Melt. Fusion es el motor que se usó para el Descent3 y el Freespace, y creo que no se merece que le pise el nombre. Ayer intenté configurar el Visual Studio para poder ir haciendo las dlls y utilizar SDL como middleware. Me tiré un buen rato intentando que eso funcionara y ni siquiera había empezado a programar. Entonces recordé que programar en C++ sería algo parecido, todo lleno de .h y .cpp, de estúpidos errores por culpa de no cerrar con ‘;’ una línea y similares. Hasta Waaghman (acérrimo defensor de la programación eficiente) quiere usar C# para su nuevo proyecto. Desde luego, puede que quitemos rendimiento utilizando estos lenguajes, pero lo ganamos en tiempo invertido con creces.
El caso es que tenía mis dudas de qué librería utilizar en vez de SDL si programaba usando un lenguaje ‘administrado’. Empecé a buscar librerías y wrappers para C# o Java. He de reconocer que me gusta mucho más Java como lenguaje, por su simplicidad a la hora de hacer las cosas, aunque tenga peor rendimiento (o eso dicen) que C#. Sin embargo, el hecho de que sea portable lo hace ganar enteros. Además, recordé que había una librería bastante maja que ya había estado a punto de utilizar una vez: LWJGL. Básicamente es un wrapper de OpenGL, DirectInput y OpenAL (o FMOD). Probé un par de demos y parecía funcionar bien. Los tutoriales no son demasiado reveladores, pero la documentación está bastante bien.
De momento, ya he portado el módulo de carga de ficheros, aunque es lo más sencillo porque no tiene dependencias de ningún tipo. A ver lo que tardo en portar el resto, en especial el módulo de gráficos, que tiene unas cuantas líneas de código. Lo bueno es que prácticamente es copiar y pegar el código cambiando algunas cosillas y encontrando métodos alternativos para las llamadas a DirectX. Ya me vuelven a entrar las ganas de programar porque, aunque a veces gracias a algunas asignaturas de la carrera sea algo que se olvide, programar puede ser divertido.
- Entro al trapo: Java vs Mono
- Si es niño, Juan, si es niña, María
- GUI en SDE
- ¡Que viene Java!
- Java2Rtf
- 8 de Julio de 2007 a las 2:56 am
KnudoW dice:
Una cosa… que soy muy ignorante en esto. Un motor gráfico lo que hace es simplificar al usuario el uso de librerías y cosas así, no?
Por ejemplo, que en vez de tener que hacer en OpenGL un cuadrado e ir poniendo cada pixel en su pocisión, simplemente digas: “crear_cuadrado(ancho)” o algo así, no?
Miguel Herrero dice:
En mi caso hace mucho más que eso. Pásate por los tutoriales de sdengine.sf.net y te haces una idea.
Por ejemplo, yo puedo tener un coche cargado y añadir los modelos de coche como hijos. Así, cuando el coche se mueva trasladará el movimiento también a los hijos. Ese es un ejemplo de cosas que se pueden hacer. También tiene sistemas de partículas y muchas otras cosas.
Miguel Herrero dice:
No tiene sobrecarga de operadores, no tiene preprocesador, no tiene propiedades, no tiene delegados, etc. Por eso digo que es más simple.
He probado los dos, pero la filosofía de java me gusta más eso es todo
. C# es más como un C++ administrado. Me gustan ambos, pero ya programé mucho con C# y java no lo he usado salvo para prácticas de la facultad. Me apetecía
¿Qué opináis vosotros? Todavía estoy a tiempo de usar C#

