Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Proyecto dx_lib32, libreria para el desarrollo de juegos en Visual Basic

Estas en el tema de Proyecto dx_lib32, libreria para el desarrollo de juegos en Visual Basic en el foro de Visual Basic clásico en Foros del Web. El proyecto dx_lib32 es un sencillo API de programación multimedia orientado para desarrollar juegos en Microsoft Visual Basic 6.0 . Se trata de una librería ...
  #1 (permalink)  
Antiguo 12/03/2006, 19:26
Avatar de [EX3]  
Fecha de Ingreso: marzo-2006
Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 18 años, 1 mes
Puntos: 1
Mensaje Proyecto dx_lib32, libreria para el desarrollo de juegos en Visual Basic

El proyecto dx_lib32 es un sencillo API de programación multimedia orientado para desarrollar juegos en Microsoft Visual Basic 6.0. Se trata de una librería DLL ActiveX que contiene 5 clases orientadas a diferentes propósitos: renderizado de gráficos en 2D, efectos de sonido y música, lectura de periféricos de entrada, reproducción de video y una colección de funciones complementarias para facilitar otras tareas.

El proyecto vio la luz por primera vez hace un par de años, entonces era una version semi-funcional de la idea y sin documentacion alguna, algo que echaba para a tras a los pocos que se aventuran a programar algo con esta herramienta, y era una version con ciertos errores dificiles de corregir por la forma en que estaba implementada.

Hace un par de semanas publique la version 2.0. Dicha versión ha sufrido grandes cambios respecto a sus versiones anteriores dando como lugar a una nueva versión mas robusta y estable, y mas completa. Algunas novedades son la implementación de una funcion de dibujo en perspectiva entre otras muchas.

La nueva versión viene acompañada al fin de una amplia y extensa documentación sobre las funciones que componen las 5 clases de la librería, y una serie de pequeños tutórales básicos que servirán de ayuda tanto a la gente que se inicia por primera vez con esta herramienta como los que ya la usaron en versiones anteriores. El sitio web tambien ha sido actualizado con un nuevo diseño de la interfaz y sus contenidos.

Para mas información sobre la nueva versión ir a la pagina del proyecto (enlace que encontrareis en la firma de este mensaje)

Por cierto, me gustaria que aunque no programarais en VB bajarais al menos la libreria y probarais los tutos, a ver que os parecen, y echarle un vistazo por encima al codigo fuente de los mismos (aunque sea con el notepad ) y de paso que ojearais por encima la documentacion (un archivo *.chm) y me dierais vuestra opinion.

Aviso: La version actual, la 2.0.976, posiblemente os de problemas el tutorial de sonido, es un ligero fallo de la libreria que ha sido corregido en la proxima version que viene de camino.

Salu2...

P.D.2.: Pondria unos enlaces a unas capturas de unos programas funcionando con dx_lib32 como hice en otros foros pero por restricciones mias debido a tener menos de 15 mensajes en estos foros no puedo colocar enlaces en el codigo de mis mensajes (sin animos de ofender pero me parece absurda esta restriccion )
__________________
Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX

Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra.

  #2 (permalink)  
Antiguo 12/03/2006, 22:59
 
Fecha de Ingreso: abril-2005
Mensajes: 351
Antigüedad: 19 años
Puntos: 3
Hola Compañero como estas, las pongo yo que ya tengo algunos mensages
Y para el resto del foro les recomiendo que vean dx_lib32 esta realmente muy buena



Saludos
  #3 (permalink)  
Antiguo 13/03/2006, 01:13
Avatar de [EX3]  
Fecha de Ingreso: marzo-2006
Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 18 años, 1 mes
Puntos: 1
Gracias Leandro

Salu2...
__________________
Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX

Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra.

  #4 (permalink)  
Antiguo 13/03/2006, 09:17
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Son interesantes estos proyectos. El tuyo por lo que veo es un simplificador de DirectX para VB6 (y VB.Net), ¿no?

Por otra parte, había visto ya varios de este tipo, pero sigo sin verles sentido alguno :( Bien para el 2D, pero para 3D... Visual Basic 6 (.Net se acerca aunque no llega) no es adecuado para este tipo de cosas, no soporta las características que debería soportar para tener un mínimo de funcionalidad.

El que termina aprendiendo DirectX es que normalmente se ha enfrentado a otros lenguajes más que a Visual Basic exclusivamente.
  #5 (permalink)  
Antiguo 13/03/2006, 11:28
Avatar de relasoft  
Fecha de Ingreso: mayo-2005
Ubicación: Santa Fe, Argentina
Mensajes: 660
Antigüedad: 19 años
Puntos: 3
Opino Igual que MaxExtreme.

C# incorpora las librerias DirextX y posee mayores recursos para la programacion de interfazes o aplicaciones que requieran el renderizado de graficos 3D, sonido, etc.

DirextX ya es una libreria mas que conocida dentro del mundo de los videojuegos y posee clases, metodos, etc, que estan actualizados para manejar las ultimas tecnologias (Pixel Shader 2.0, etc).

Es verdad que el aporte de EX3 es bueno, pero lamentablemente no le veo una apliacion práctica en VB, mas si tenemos en cuenta las deficiencias del lenguaje en ciertos aspectos comparado con el poderoso C#.

Saludos.
__________________
Deamon Technologies | Diseño Web » Programacion » Consulting | www.deamon.com.ar
Profesional Windows 2003 Server 3 Estrellas
Mi Curriculum
  #6 (permalink)  
Antiguo 13/03/2006, 21:56
Avatar de [EX3]  
Fecha de Ingreso: marzo-2006
Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 18 años, 1 mes
Puntos: 1
Cita:
Iniciado por MaxExtreme
Son interesantes estos proyectos. El tuyo por lo que veo es un simplificador de DirectX para VB6 (y VB.Net), ¿no?
"Wrapper" lo suelen llamar. En base no deja de ser eso, una forma de englobar eficientemente varias acciones en una y aislando al progrmador de muchas tareas que gestiona el propio componente de forma automatica. Sobre VB.NET, hace tiempo un usuario de la libreria logro hacerla funcionar sin muchas modificaciones en el codigo de los ejemplos sobre VB.NET.

Cita:
Iniciado por MaxExtreme
Por otra parte, había visto ya varios de este tipo, pero sigo sin verles sentido alguno :( Bien para el 2D, pero para 3D...
Exisitir existen varios y de todas las formas y colores, pero ninguno que en su momento (inclusive ahora) se adecuaba a mis necesidades y comodidades, razon de por que tuve que programarme yo mismo esta herramienta. Para 3D existe uno que si no es el mejor poco le quedaria para serlo para desarrollos sobre Visual Basic, TrueVision3D (como no puedo colgar enlaces aun podeis encontrar el enlace en mi pagina)

Cita:
Iniciado por MaxExtreme
Visual Basic 6 (.Net se acerca aunque no llega) no es adecuado para este tipo de cosas, no soporta las características que debería soportar para tener un mínimo de funcionalidad.
Totalmente deacuerdo en que Visual Basic 6.0 no es el lenguaje por excelencia para el desarrollo de videojuegos, soy consciente de ello y siempre que acuden a mi para consultarme lo dejo claro. Lo que hay que tener en cuenta es que sabiendo programar bien el lenguaje es lo de menos y se puede uno apañar para lograr grandes resultados, que no por ello llegar hacer barbaridades tipo Half-Life 2 o Unreal3, eso es ovio :P pero para cosas mas humildes y decentes (y no hablo del tipico 3 en raya que muchos ven como juego en VB :P) pero en 2D tiene mas que tirada de sobra y mas con la ayuda de DirectX.

Cita:
Iniciado por MaxExtreme
El que termina aprendiendo DirectX es que normalmente se ha enfrentado a otros lenguajes más que a Visual Basic exclusivamente.
De momento no me he visto necesitado de abandonar Visual Basic como plataforma de desarrollo, me da todo lo que necesito y de forma comoda. Esto no quiere decir que no haya programado en C++ durante un tiempo, lenguaje al que por supuesto pienso volver para quedarme

Salu2...
__________________
Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX

Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra.


Última edición por [EX3]; 13/03/2006 a las 22:11
  #7 (permalink)  
Antiguo 13/03/2006, 22:08
Avatar de [EX3]  
Fecha de Ingreso: marzo-2006
Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 18 años, 1 mes
Puntos: 1
Cita:
Iniciado por relasoft
C# incorpora las librerias DirextX y posee mayores recursos para la programacion de interfazes o aplicaciones que requieran el renderizado de graficos 3D, sonido, etc.
DirectX como bien sabes tambien es soportado por Visual Basic 6.0 y es DirectX y la tarjeta grafica la que realiza los calculos de los procesos graficos y no el lenguaje, con lo cual, en cuestiones graficas, el leguaje no supone un problema, es el resto de procesos como calculo de colisiones y fisica, procesado de los datos del juego en si lo que es dependiente del lenguaje.

Cita:
Iniciado por relasoft
DirextX ya es una libreria mas que conocida dentro del mundo de los videojuegos y posee clases, metodos, etc, que estan actualizados para manejar las ultimas tecnologias (Pixel Shader 2.0, etc).
Remarco que mi proyecto se apoya sobre DirectX, de no ser por el me hubiera sido totalmente imposible realizar con eficiencia nada de lo que permite hacer la libreria.

Cita:
Iniciado por relasoft
Es verdad que el aporte de EX3 es bueno, pero lamentablemente no le veo una apliacion práctica en VB, mas si tenemos en cuenta las deficiencias del lenguaje en ciertos aspectos comparado con el poderoso C#.
Oviamente no es posible comparar en potencia y funcionalidad Visual Basic 6.0 con cualquier lenguaje de la familia .NET (no se si sabreis que un programa escrito en VB.NET una vez compilado es igual que si lo hubieras escrito en C#), pero como dije, sabiendo programar y conociendo bien los pros y contras del lenguaje se pueden lograr resultados muy buenos, nunca equiparables a un lenguaje como C++ oviamente (como dije no te vas a programar el DooM4 - Revenge of the Imp en Visual Basic 6.0 ni con ayuda divina )

Y por cierto, comenten algo aunque sea por encima del proyecto (que me juego a que ni lo han probado), que de momento solo he leido teoria de lo que se da por echo que no se puede hacer con este lenguaje "arcaico"

Salu2...
__________________
Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX

Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra.

  #8 (permalink)  
Antiguo 14/03/2006, 00:50
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Cita:
Iniciado por [EX3]
"Wrapper" lo suelen llamar. En base no deja de ser eso, una forma de englobar eficientemente varias acciones en una y aislando al progrmador de muchas tareas que gestiona el propio componente de forma automatica. Sobre VB.NET, hace tiempo un usuario de la libreria logro hacerla funcionar sin muchas modificaciones en el codigo de los ejemplos sobre VB.NET.

Exisitir existen varios y de todas las formas y colores, pero ninguno que en su momento (inclusive ahora) se adecuaba a mis necesidades y comodidades, razon de por que tuve que programarme yo mismo esta herramienta. Para 3D existe uno que si no es el mejor poco le quedaria para serlo para desarrollos sobre Visual Basic, TrueVision3D (como no puedo colgar enlaces aun podeis encontrar el enlace en mi pagina)

Totalmente deacuerdo en que Visual Basic 6.0 no es el lenguaje por excelencia para el desarrollo de videojuegos, soy consciente de ello y siempre que acuden a mi para consultarme lo dejo claro. Lo que hay que tener en cuenta es que sabiendo programar bien el lenguaje es lo de menos y se puede uno apañar para lograr grandes resultados, que no por ello llegar hacer barbaridades tipo Half-Life 2 o Unreal3, eso es ovio :P pero para cosas mas humildes y decentes (y no hablo del tipico 3 en raya que muchos ven como juego en VB :P) pero en 2D tiene mas que tirada de sobra y mas con la ayuda de DirectX.

De momento no me he visto necesitado de abandonar Visual Basic como plataforma de desarrollo, me da todo lo que necesito y de forma comoda. Esto no quiere decir que no haya programado en C++ durante un tiempo, lenguaje al que por supuesto pienso volver para quedarme

Salu2...
No, no es un wrapper... Eso iba a poner al principio, pero vi que el proyecto "simplificaba" o organizaba el DirectX, porque ya se podía usar antes en VB (según he visto).

Visual Basic (sobre todo el 6), no es adecuado ni para videojuegos ni para muchas cosas, por eso te decía que es en general muy pesado programar algo "decente" que vaya a ser un videojuego... En cuanto trates de hacer árboles en memoria o algo similar, es impensable. Sobre lo de la potencia de cálculo... Creo que te equivocas. El dibujado lo hace DirectX, claro, pero los engines (según esto habría que hacerlo en VB) deben ser muy rápidos y suelen ser muy complejos, no podrían hacerse en VB. Uno sencillo, quizás sí. Pero nada, como dices, comparado a uno que se use en videojuegos 3D. Supongo que un Half Life 1 llegaría a funcionar sin parones, pero más allá ni soñando.
  #9 (permalink)  
Antiguo 14/03/2006, 00:51
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Cita:
Iniciado por [EX3]
Oviamente no es posible comparar en potencia y funcionalidad Visual Basic 6.0 con cualquier lenguaje de la familia .NET (no se si sabreis que un programa escrito en VB.NET una vez compilado es igual que si lo hubieras escrito en C#), pero como dije, sabiendo programar y conociendo bien los pros y contras del lenguaje se pueden lograr resultados muy buenos, nunca equiparables a un lenguaje como C++ oviamente (como dije no te vas a programar el DooM4 - Revenge of the Imp en Visual Basic 6.0 ni con ayuda divina )
No, no es el mismo código exactamente. Primero, por las optimizaciones. Segundo, porque VB.Net no admite punteros, C# sí (en zona insegura, vale).
  #10 (permalink)  
Antiguo 14/03/2006, 00:53
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Cita:
Iniciado por [EX3]
De momento no me he visto necesitado de abandonar Visual Basic como plataforma de desarrollo, me da todo lo que necesito y de forma comoda. Esto no quiere decir que no haya programado en C++ durante un tiempo, lenguaje al que por supuesto pienso volver para quedarme
Si te digo la verdad no sé que haces aún en Visual Basic 6 ;) Al menos estáte en VB.Net... ¿Cómo soportas no tener POO? ¿O arrays decentes? ¿O punteros?
  #11 (permalink)  
Antiguo 14/03/2006, 02:08
Avatar de [EX3]  
Fecha de Ingreso: marzo-2006
Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 18 años, 1 mes
Puntos: 1
Cita:
Iniciado por MaxExtreme
No, no es el mismo código exactamente. Primero, por las optimizaciones. Segundo, porque VB.Net no admite punteros, C# sí (en zona insegura, vale).
¿De veras interesa tanto programar en "unsafe mode"? Para no aprovechar en condiciones las ventajas de .NET programa mejor en C++ y no en C#

Cita:
Iniciado por MaxExtreme
Si te digo la verdad no sé que haces aún en Visual Basic 6 ;) Al menos estáte en VB.Net...
Para empezar por que a dia de hoy no me apetece tener que obligar a mucha gente tener que instalarse 22mb de librerias para poder ejecutar programas que no superan el mega en muchos casos. Cuando este algo mas implantado .NET, un año o dos a lo poco, entonces ya sera distinto. De momento sigo prefiriendo el instalar 3 mb como maximo por la runtime, 2 librerias nada mas (no suelo abusar de añadir componentes extra a mi proyectos y eso me evita instalar de mas) y eso teniendo en cuenta si el programa va a ejecutarse en versiones inferiores a Windows 2000, ya que a partir de esa version ya viene de serie instalada la runtime.

Cita:
Iniciado por MaxExtreme
¿Cómo soportas no tener POO? ¿O arrays decentes? ¿O punteros?
En 6 años programando mayoritariamente en VB y un año en C++, sinceramente, nunca he tenido una feroz necesidad de usar punteros como tal o arrays "decentes" como tu los llamas (aun no veo que tienen de malo los de VB...), o herencia y poliformismo de la programacion orientada a objetos de la que VB carece, etc...

Yo de siempre buscaba comodidad a la hora de desarrollar mis ideas y ser creativo sin necesidad de complicarme la vida y VB6 hasta el momento me ha venido como anillo al dedo, no veo todavia razones de peso para abandonar tal plataforma de desarrollo, aun me quedan 2 o 3 años a lo sumo para exprimir bien este lenguaje antes de dejen de darle soporte

Salu2...
__________________
Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX

Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra.

  #12 (permalink)  
Antiguo 14/03/2006, 03:03
Avatar de [EX3]  
Fecha de Ingreso: marzo-2006
Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 18 años, 1 mes
Puntos: 1
Cita:
Iniciado por MaxExtreme
No, no es un wrapper... Eso iba a poner al principio, pero vi que el proyecto "simplificaba" o organizaba el DirectX, porque ya se podía usar antes en VB (según he visto).
Imagino que sera una errata lo remarcado, por que si no no se que entenderas por "wrapper" ya que eso es lo que define a dx_lib32 y a cualquier herramienta que simplifica una interfaz de llamadas de un API o conjunto de ellos.

Cita:
Iniciado por MaxExtreme
Visual Basic (sobre todo el 6), no es adecuado ni para videojuegos ni para muchas cosas, por eso te decía que es en general muy pesado programar algo "decente" que vaya a ser un videojuego... En cuanto trates de hacer árboles en memoria o algo similar, es impensable.
Se tiende a generalizar mucho el concepto de videojuego, se compara con el desarrollo de aplicaiciones de gestion por ejemplo en cuanto a desarrollo y complejidad. Un grave error. El desarrollo de juegos es un campo muy abstracto, depende de muchos factores que determinan su complejidad o su sencillez. No puedes comparar el Flash-Back con el Far Cry por ejemplo. Son sistemas totalmente distintos y con fines diferentes. Uno gestiona mundos tridimensionales con una geometria muy compleja que requiere un calculo muy optimizado de visualizacion de espacio, que gestiona un motor de fisica muy complejo, que procesa grandes cantidades de entidades (objetos como vehiculos, items, personajes, etc...) de forma simultanea, etc... mientras que otro por la contra representa escenarios de una sencillez que se ve camuflada por unos buenos sprites, que tiene una fisica muy basica, y que procesa un numero muy escaso de entidades. Todo depende de la complejidad del programa y de sus elementos. Decir que Visual Basic 6 no vale para desarrollar juegos es un tremendo error. Decir que con Visual Basic 6 es totalmente imposible hacer la 3º entrega de Half-Life con unos resultados equiparables a los del Unreal Engine 3 es totalmente cierto. No se si me explico con toda esta parrafada que acabo de soltar :P

Cita:
Iniciado por MaxExtreme
Sobre lo de la potencia de cálculo... Creo que te equivocas. El dibujado lo hace DirectX, claro, pero los engines (según esto habría que hacerlo en VB) deben ser muy rápidos y suelen ser muy complejos, no podrían hacerse en VB.
Dirias que un motor para un juego plataformas similar al Flash-Back o el Prince of Persia, de graficos en 2D acelerados por hardware, procesando un numero escaso de entidades simultaneas, con una fisica basica de colision por cajas y mapas de durezas, no se podria desarrollar con Visual Basic 6 y DirectX? En los 6 años que llevo programando con VB y con DirectX, estudiando este API y realizando pruebas para desarrollar un juego de estas caracteristicas, creeme, los resultados son mas que aceptables. Sigo diciendo que sabiendo aprovechar bien las capacidades del lenguaje, se pueden obtener muy buenos resultados, por muy malo que sea el lenguaje.

Salu2...
__________________
Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX

Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra.

  #13 (permalink)  
Antiguo 14/03/2006, 08:30
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Cita:
Iniciado por [EX3]
¿De veras interesa tanto programar en "unsafe mode"? Para no aprovechar en condiciones las ventajas de .NET programa mejor en C++ y no en C#

Para empezar por que a dia de hoy no me apetece tener que obligar a mucha gente tener que instalarse 22mb de librerias para poder ejecutar programas que no superan el mega en muchos casos. Cuando este algo mas implantado .NET, un año o dos a lo poco, entonces ya sera distinto. De momento sigo prefiriendo el instalar 3 mb como maximo por la runtime, 2 librerias nada mas (no suelo abusar de añadir componentes extra a mi proyectos y eso me evita instalar de mas) y eso teniendo en cuenta si el programa va a ejecutarse en versiones inferiores a Windows 2000, ya que a partir de esa version ya viene de serie instalada la runtime.

En 6 años programando mayoritariamente en VB y un año en C++, sinceramente, nunca he tenido una feroz necesidad de usar punteros como tal o arrays "decentes" como tu los llamas (aun no veo que tienen de malo los de VB...), o herencia y poliformismo de la programacion orientada a objetos de la que VB carece, etc...

Yo de siempre buscaba comodidad a la hora de desarrollar mis ideas y ser creativo sin necesidad de complicarme la vida y VB6 hasta el momento me ha venido como anillo al dedo, no veo todavia razones de peso para abandonar tal plataforma de desarrollo, aun me quedan 2 o 3 años a lo sumo para exprimir bien este lenguaje antes de dejen de darle soporte

Salu2...
Puedes usar todas las ventajas de .Net en C++... Por cierto, no poder usar punteros NO es una ventaja, es una DESventaja.

Creo que dentro de un año o dos estará Windows Vista, que para entonces veremos si tiene aceptación o no. Toda la gente que tengo a mi alrededor le insto a no instalarlo, y mantenerse en Windows XP, o pasar a Linux. No sé tú, pero no pienso usar Windows Vista en mi vida.

Si llevas 1 año en C++ y dices que usar punteros o no sabes qué problema tienen los de VB, sinceramente no creo que lleves programando 1 año en C++, al menos seriamente.

La herencia y polimorfismo es lo más básico de la POO... Cuando lleves más tiempo en C++ u otro lenguaje similar en potencia (características) sabrás lo que puede ofrecer.

¿Soporte?¡VB6 ya no tiene soporte desde hace tiempo! En los próximos 2 o 3 años yo espero haber decidido qué hacer con mi vida (soy joven aún) y según eso podré ver si debo decidirme por algún lenguaje (si C++ sigue ahí, que seguirá, si Linux ha triunfado o ha fracasado)... Pero perder tres años en Visual Basic... ¡Ni hablar!
  #14 (permalink)  
Antiguo 14/03/2006, 08:36
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Cita:
Iniciado por [EX3]
Imagino que sera una errata lo remarcado, por que si no no se que entenderas por "wrapper" ya que eso es lo que define a dx_lib32 y a cualquier herramienta que simplifica una interfaz de llamadas de un API o conjunto de ellos.

Se tiende a generalizar mucho el concepto de videojuego, se compara con el desarrollo de aplicaiciones de gestion por ejemplo en cuanto a desarrollo y complejidad. Un grave error. El desarrollo de juegos es un campo muy abstracto, depende de muchos factores que determinan su complejidad o su sencillez. No puedes comparar el Flash-Back con el Far Cry por ejemplo. Son sistemas totalmente distintos y con fines diferentes. Uno gestiona mundos tridimensionales con una geometria muy compleja que requiere un calculo muy optimizado de visualizacion de espacio, que gestiona un motor de fisica muy complejo, que procesa grandes cantidades de entidades (objetos como vehiculos, items, personajes, etc...) de forma simultanea, etc... mientras que otro por la contra representa escenarios de una sencillez que se ve camuflada por unos buenos sprites, que tiene una fisica muy basica, y que procesa un numero muy escaso de entidades. Todo depende de la complejidad del programa y de sus elementos. Decir que Visual Basic 6 no vale para desarrollar juegos es un tremendo error. Decir que con Visual Basic 6 es totalmente imposible hacer la 3º entrega de Half-Life con unos resultados equiparables a los del Unreal Engine 3 es totalmente cierto. No se si me explico con toda esta parrafada que acabo de soltar :P

Dirias que un motor para un juego plataformas similar al Flash-Back o el Prince of Persia, de graficos en 2D acelerados por hardware, procesando un numero escaso de entidades simultaneas, con una fisica basica de colision por cajas y mapas de durezas, no se podria desarrollar con Visual Basic 6 y DirectX? En los 6 años que llevo programando con VB y con DirectX, estudiando este API y realizando pruebas para desarrollar un juego de estas caracteristicas, creeme, los resultados son mas que aceptables. Sigo diciendo que sabiendo aprovechar bien las capacidades del lenguaje, se pueden obtener muy buenos resultados, por muy malo que sea el lenguaje.

Salu2...
Mmm... Yo llamo "wrapper" a una interfaz-módulo-añadido-loquesea que permite usar una librería de X lenguaje en otro, de manera transparente. Como vi que tú reorganizabas un poco las DirectX, vi que no era un wrapper a pelo.

Entiendo y comparto esa opinión. Yo lo que digo es: Hay lenguajes mejores. Y para juegos sencillos, mejores que C++ por supuesto.

Y por supuesto, VB6 para ese tipo de juegos es perfectamente válido. Ahora bien, como antes he dicho, creo que es más sencillo hacer un juego en otro lenguaje (ya no hablo de C++ y juegos profesionales), como C# con su framework o algún otro que provea de un lenguaje algo básico. Es decir, yo me moría en VB para usar arrays y demás, no había manera de controlar el código, o de leerle al cabo de un tiempo (también es cierto que era muy pequeño cuando le usaba). En cambio, en C++, mi código es limpio, hace lo que quiero y muy controlado. Es difícil que cometa un error y no me entere. En cambio, en VB lo difícil es no cometerlos (exagerando un poco, pero para que se entienda).

En definitiva, lo que creo que ocurre siempre es que VB6 tiene algunos defectos en el diseño del lenguaje. Si hubiesen quitado cosas que realmente están MAL (como las que aparecen en la wikipedia, artículo Visual Basic) y tuviese un mínimo control de tipos y abstracción, manejo mejor de datos, ya tendríamos un lenguaje perfecto para este tipo de cosas sencillas.
  #15 (permalink)  
Antiguo 14/03/2006, 14:44
Avatar de [EX3]  
Fecha de Ingreso: marzo-2006
Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 18 años, 1 mes
Puntos: 1
Cita:
Iniciado por MaxExtreme
Puedes usar todas las ventajas de .Net en C++... Por cierto, no poder usar punteros NO es una ventaja, es una DESventaja.
No te lo niego en absoluto pero se puede sobrevivir sin punteros ;)

Cita:
Iniciado por MaxExtreme
Creo que dentro de un año o dos estará Windows Vista, que para entonces veremos si tiene aceptación o no. Toda la gente que tengo a mi alrededor le insto a no instalarlo, y mantenerse en Windows XP, o pasar a Linux. No sé tú, pero no pienso usar Windows Vista en mi vida.
No te preocupes, tampoco me hace mucha gracia que digamos el Windows Vista pero nunca digas "de ese agua no bebere" :P

Cita:
Iniciado por MaxExtreme
Si llevas 1 año en C++ y dices que usar punteros o no sabes qué problema tienen los de VB, sinceramente no creo que lleves programando 1 año en C++, al menos seriamente.
Creo que mal interpretastes lo que dije:
Cita:
Iniciado por [EX3]
En 6 años programando mayoritariamente en VB y un año en C++, sinceramente, nunca he tenido una feroz necesidad de usar punteros como tal o arrays "decentes" como tu los llamas (aun no veo que tienen de malo los de VB...) (...)
Yo me referia a los arrays en cuanto a compararlos con los de C++. Sobre punteros... VB como que carece en cierta forma de esa tecnica.

Cita:
Iniciado por MaxExtreme
La herencia y polimorfismo es lo más básico de la POO... Cuando lleves más tiempo en C++ u otro lenguaje similar en potencia (características) sabrás lo que puede ofrecer.
Ya pude ver las ventajas de la POO pero sigo sin necesitarlas "vitalmente" para desarrollar mis proyectos.

Cita:
Iniciado por MaxExtreme
¿Soporte?¡VB6 ya no tiene soporte desde hace tiempo!
Soporte como maximo hasta marzo del 2008. Puedes pasarte por la MSDN a comprobarlo. Lo que es ovio por supuesto es que a dia de hoy le den mas publicidad y mas soporte a las nuevas tecnologias como .NET, es algo totalmente logico, pero lo que no van hacer es cortar de golpe con una tecnologia que usa medio mundo para desarollar, y esto es cierto guste o no.

Cita:
Iniciado por MaxExtreme
En los próximos 2 o 3 años yo espero haber decidido qué hacer con mi vida (soy joven aún) y según eso podré ver si debo decidirme por algún lenguaje (si C++ sigue ahí, que seguirá, si Linux ha triunfado o ha fracasado)... Pero perder tres años en Visual Basic... ¡Ni hablar!
Para ti puede ser una perdida de tiempo, para mucha gente como yo, que sabemos sacarle partido todavia, no. Total, si el lenguaje cumple con las necesidades que tengo no hay razon alguna para abandonarlo. En lo laboral oviamente tendre que desarrollar sobre C++ y C# y posiblemente mayoritariamente en VB.NET (aunque todo esto dependera de las exigencias de la empresa, lo mismo me tiran a Java xP)

Sinceramente, lo unico que echo en falta a VB6 es el soporte para programacion multihilo, eso si que me seria de suma utilidad ;)

Salu2...
__________________
Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX

Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra.

  #16 (permalink)  
Antiguo 14/03/2006, 15:03
Avatar de [EX3]  
Fecha de Ingreso: marzo-2006
Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 18 años, 1 mes
Puntos: 1
Cita:
Iniciado por MaxExtreme
Mmm... Yo llamo "wrapper" a una interfaz-módulo-añadido-loquesea que permite usar una librería de X lenguaje en otro, de manera transparente. Como vi que tú reorganizabas un poco las DirectX, vi que no era un wrapper a pelo.
Ofrece ciertas operaciones mas o menos complejas en pocas llamadas. Digamos que el componente gestiona muchas de esas operaciones de forma autonoma, sin que el programador tenga que estar pendiente de ello. Yo veo eso algo mas que una simple reorganizacion de codigo. Resumidamente un "wrapper" es una capa de abstraccion sobre otra capa o conjunto de ellas.

Cita:
Iniciado por MaxExtreme
Y por supuesto, VB6 para ese tipo de juegos es perfectamente válido. Ahora bien, como antes he dicho, creo que es más sencillo hacer un juego en otro lenguaje (ya no hablo de C++ y juegos profesionales), como C# con su framework o algún otro que provea de un lenguaje algo básico. Es decir, yo me moría en VB para usar arrays y demás, no había manera de controlar el código, o de leerle al cabo de un tiempo (también es cierto que era muy pequeño cuando le usaba).
Si no hubiera desarrollado la dx_lib32, otra de las razones por las que me empeño en seguir en VB6 (no voy a tirar 6 años de desarrollo y aprendizaje a la basura) estaria seguramente programando mi juego en un lenguaje comodo y sencillo como Blitz3D o inclusive el nuevo Blitz Max (si no los conoces estan los enlaces en mi web). Blitz Max, de los lenguajes actuales orientados a desarrollo de juegos, con sintaxis en BASIC tradicional, orientado a objetos, 100% compilado (no se interpreta codigo ni bytecode alguno) y con sus severas optimizaciones es uno de los lenguajes de este estilo que mas se aproxima a la potencia y velocida de C++ segun diversas pruebas que realizaron.

Cita:
Iniciado por MaxExtreme
En cambio, en C++, mi código es limpio, hace lo que quiero y muy controlado. Es difícil que cometa un error y no me entere. En cambio, en VB lo difícil es no cometerlos (exagerando un poco, pero para que se entienda).
¿Sabias que se pueden desactivar todos los controladores de error de VB6? Controladores de rango de valores, de indices en arrays, redondeos en numeros decimales, etc... De esta forma si se produce un error de haber accedido por ejemplo a un elemento inexistente en un array se producira un error de acceso de memoria (esos maravillosos mensajes de error de windows que te cierran el programa) y no un aviso de VB que interrumpe la ejecucion. Ademas de ganar mucha velocidad con esto el programa se aligera un poco de peso al compilarse. Eso si, al igual que en C++ ya toca estar al loro de lo que escribes ;)

Cita:
Iniciado por MaxExtreme
En definitiva, lo que creo que ocurre siempre es que VB6 tiene algunos defectos en el diseño del lenguaje. Si hubiesen quitado cosas que realmente están MAL (como las que aparecen en la wikipedia, artículo Visual Basic) y tuviese un mínimo control de tipos y abstracción, manejo mejor de datos, ya tendríamos un lenguaje perfecto para este tipo de cosas sencillas.
Totalmente deacuerdo, yo sigo pensando que el fallo de planteamiento fue por querer orientar este lenguaje exclusivamente a programas basados en ventanas y controles, y sistemas para gestionar bases de datos. De ahi que en un principio sus limitaciones sean poco forzosas en comparacion con un lenguaje de proposito general como C/C++. En este caso Delphi salio ganando y mucho (lastima de no conocerlo en su dia xD)

Salu2...
__________________
Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX

Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra.

  #17 (permalink)  
Antiguo 15/03/2006, 01:11
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Cita:
Iniciado por [EX3]
Ofrece ciertas operaciones mas o menos complejas en pocas llamadas. Digamos que el componente gestiona muchas de esas operaciones de forma autonoma, sin que el programador tenga que estar pendiente de ello. Yo veo eso algo mas que una simple reorganizacion de codigo. Resumidamente un "wrapper" es una capa de abstraccion sobre otra capa o conjunto de ellas.

Si no hubiera desarrollado la dx_lib32, otra de las razones por las que me empeño en seguir en VB6 (no voy a tirar 6 años de desarrollo y aprendizaje a la basura) estaria seguramente programando mi juego en un lenguaje comodo y sencillo como Blitz3D o inclusive el nuevo Blitz Max (si no los conoces estan los enlaces en mi web). Blitz Max, de los lenguajes actuales orientados a desarrollo de juegos, con sintaxis en BASIC tradicional, orientado a objetos, 100% compilado (no se interpreta codigo ni bytecode alguno) y con sus severas optimizaciones es uno de los lenguajes de este estilo que mas se aproxima a la potencia y velocida de C++ segun diversas pruebas que realizaron.

¿Sabias que se pueden desactivar todos los controladores de error de VB6? Controladores de rango de valores, de indices en arrays, redondeos en numeros decimales, etc... De esta forma si se produce un error de haber accedido por ejemplo a un elemento inexistente en un array se producira un error de acceso de memoria (esos maravillosos mensajes de error de windows que te cierran el programa) y no un aviso de VB que interrumpe la ejecucion. Ademas de ganar mucha velocidad con esto el programa se aligera un poco de peso al compilarse. Eso si, al igual que en C++ ya toca estar al loro de lo que escribes ;)

Totalmente deacuerdo, yo sigo pensando que el fallo de planteamiento fue por querer orientar este lenguaje exclusivamente a programas basados en ventanas y controles, y sistemas para gestionar bases de datos. De ahi que en un principio sus limitaciones sean poco forzosas en comparacion con un lenguaje de proposito general como C/C++. En este caso Delphi salio ganando y mucho (lastima de no conocerlo en su dia xD)

Salu2...
Uf no me refería a eso con Visual Basic 6. Te pongo un ejemplo: Quiero un vector en C++, con control de errores, para cualquier tipo de dato, etc. Bueno, pues le programo (...) y luego le puedo usar donde quiera, cuando quiera, y tiene control de errores propio. Si el programa hace cualquier cosa mal en tiempo de ejecución me voy a enterar muy probablemente y me dirá qué y dónde ha fallado. (En realidad ya está hecho como en VB6 pero es un ejemplo sencillo). En cambio en VB6, si quiero un vector, no puedo hacerle.

Ya sé que los vectores existen como tal, pero cambiando de ejemplo: Un árbol.
  #18 (permalink)  
Antiguo 15/03/2006, 13:02
Avatar de [EX3]  
Fecha de Ingreso: marzo-2006
Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 18 años, 1 mes
Puntos: 1
Mas o menos te he entendido, y si, a ese punto quizas VB esta muy capado, pero siempre se pueden buscar alternativas mas o menos eficientes ;) (esos son los retos que a mi gustan xDD)

Salu2...
__________________
Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX

Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra.

  #19 (permalink)  
Antiguo 15/03/2006, 13:34
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Cita:
Iniciado por [EX3]
Mas o menos te he entendido, y si, a ese punto quizas VB esta muy capado, pero siempre se pueden buscar alternativas mas o menos eficientes ;) (esos son los retos que a mi gustan xDD)

Salu2...
Sí, alternativas siempre hay (podemos programar en asm todo ;).

Ahora bien, VB6 sin POO y punteros queda como un lenguaje muy capado, ya no comparado con C++, sino con cualquier otro.

PD: Sé que existen 2 funciones para obtener y manejar direcciones de memoria en VB, pero... no se puede decir que se puedan usar punteros.
  #20 (permalink)  
Antiguo 16/03/2006, 01:25
Avatar de [EX3]  
Fecha de Ingreso: marzo-2006
Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 18 años, 1 mes
Puntos: 1
Cita:
Iniciado por MaxExtreme
Sí, alternativas siempre hay (podemos programar en asm todo ;)
El ASM (en forma de una especie de variante muy practica) volvio a estar de moda en la actualidad, fijate la programacion avanzada de los efectos de las tarjetas graficas, los famosos shaders

Cita:
Iniciado por MaxExtreme
Ahora bien, VB6 sin POO y punteros queda como un lenguaje muy capado, ya no comparado con C++, sino con cualquier otro.
Totalmente deacuerdo. Total, como dije hace poco, VB seguramente se diseño simplemente para desarrollo rapido de aplicaciones de gestion mediante componentes. En teoria no era necesario el uso de punteros ni de muchos otros elementos tipicos de un autentico lenguaje de programacion.

Cita:
Iniciado por MaxExtreme
PD: Sé que existen 2 funciones para obtener y manejar direcciones de memoria en VB, pero... no se puede decir que se puedan usar punteros.
Esas funciones estan simplemente para poder usar algunas funciones de API's externas que requieren pasar como parametro punteros, realmente no sirven para mucho mas, aunque recuerdo que tengo por aqui guardado un supuesto ejemplo de uso de punteros en VB:
Código:
Option Explicit

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)

Private Sub Form_Load()
Const Cadena = "Hola Programadores" ' Definimos la cadena inicial.

Dim CadenaDestino As String 'Guardamos el contenido de la dirección de memoria.
Dim Length As Long ' Guardamos la longitud de la inicial.
Dim DirCadena As Long

Length = Len(Cadena)

CadenaDestino = Space(Length) 'Reservamos los espacios que necesitamos.

DirCadena = StrPtr(Cadena) 'Guardamos la dirección de memoria de Cadena

Call CopyMemory(ByVal StrPtr(CadenaDestino), ByVal DirCadena, LenB(Cadena))

MsgBox (" La Dirección de Memória de Cadena es: " & " " & DirCadena)

MsgBox ("El Contenido de " & DirCadena & " es: " & CadenaDestino)

End
End Sub
A lo menos esta curioso, aunque poco practico comparado a como seria en C++ jeje

Salu2...
__________________
Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX

Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra.

  #21 (permalink)  
Antiguo 16/03/2006, 08:02
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Cita:
Iniciado por [EX3]
El ASM (en forma de una especie de variante muy practica) volvio a estar de moda en la actualidad, fijate la programacion avanzada de los efectos de las tarjetas graficas, los famosos shaders
ASM siempre está de moda, y siempre hay que usarlo... Toda la gente que programa compiladores, crackers, compresores/decompresores, drivers, sistemas operativos y aparatos electrónicos, es su trabajo :D (preguntar a Eternal Idol).

Cita:
Iniciado por [EX3]
Esas funciones estan simplemente para poder usar algunas funciones de API's externas que requieren pasar como parametro punteros, realmente no sirven para mucho mas, aunque recuerdo que tengo por aqui guardado un supuesto ejemplo de uso de punteros en VB:

Código:
(... que rollo xD ...)
A lo menos esta curioso, aunque poco practico comparado a como seria en C++ jeje
C++:
Código:
char in[] = "Hola";
char * out = malloc(strlen(in));
strcpy(out,in);

// API: CopyMemory(out,in,strlen(in));
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:11.