Curso de Programación de Videojuegos con DarkBasic Pro Temas contenidos en el curso www.MentoringWeb.com
Mejoras con su predecesor DarkBasic Pro es un lenguaje de programación orientado al desarrollo de Videojuegos 2D y 3D. DarkBasic Pro utiliza la potencia que brinda DirectX 9 a diferencia de su predecesor DarkBasic que trabaja con DirectX 7. Debido a problemas de compatibilidad y a la constante competencia con lenguajes similares en el mercado (Blitz3D por ejemplo), DarkBasic fue reescrito completamente desde cero, dando origen a DarkBasic Pro. De esta forma se lograron notables mejoras en el lenguaje, p or ejemplo: Los ejecutables son compilados con la máxima optimización para ganar velocidad. El Debugger permite utilizar Breakpoints, Step Through y Observación de los valores de las variables. La Encriptación de contenidos Multimedia dentro de los ejecutables provee rapidez. Provee soporte para la incorporación de Librerías Dinámicas DLLS dentro de nuestros proyectos. Mejor soporte para comandos Multiplayer dentro de una Red. www.MentoringWeb.com
Formatos de archivo que interpreta el lenguaje Los formatos de archivo soportados son: 3D: x, 3ds, mdl, md2, md3, quake2map, quake3map, halflifemap 2D:dds, jpg, bmp, tga, png, dib Sonido:Wav(con cualquier tipo de compresión), aiff, au, snd Música: Mp3,Midi Video: DVD,avi, indeo, cinepack  www.MentoringWeb.com
Soporte para archivos BSP Este formato 3D (Binary Space Partitioning) permite renderizar un escenario tridimensional de forma muy rápida.  DarkBasic provee algunas funciones para trabajar con este tipo de archivos, inclusive para detectar colisiones dentro estos escenarios.  Existen numerosos juegos que utilizan este tipo de formato para representar sus niveles. (Quake3, Return to Castle Wolfenstein, Half-Life).  www.MentoringWeb.com
Si bien DarkBasic Pro facilita la representación de los escenarios soportando la lectura de algunos formatos populares, siempre obtendremos mejores resultados si modelamos los mismos con alguna herramienta profesional de diseño. Lightwave 3D 9 en nuestro caso. www.MentoringWeb.com
SphereMapping es un efecto aplicable a los modelos 3D, el cual funde una textura alterna y la mueve en base al movimiento de la cámara para simular efectos de reflexión del metal. El consumo de procesamiento por parte de la placa aceleradora es mínimo, debido a que solo requiere que ésta soporte el multitexturado, existente inclusive, en aceleradoras de baja gama. SphereMapping www.MentoringWeb.com
Cube Mapping es una técnica similar al SphereMapping, excepto que ésta utiliza una textura dividida en 6 partes y permite una calidad superior de detalle. Se utiliza puntualmente para generar un entorno que será reflejado por el objeto. La mayoría de las placas aceleradoras soportan esta técnica. CubeMapping www.MentoringWeb.com
Bump Mapping es otro de los efectos soportados por DarkBasic Pro. Mediante esta técnica podemos añadir mas detalle a nuestros modelos 3D utilizando una textura alternativa especial que tratará y alterará la forma en que el objeto refleja la luz. De esta manera, podemos obtener objetos con pocos polígonos (Ideal para Juegos) pero que simulen relieves mu detallados. Lo llamativo de esta técnica es el poco procesamiento que requiere por parte de la placa aceleradora. Tal es así, que es posible utilizarlo inclusive en aceleradoras más viejas. BumpMapping www.MentoringWeb.com
DarkBasic Pro permite la combinación de varias capas de texturas por modelo. Esto se denomina MultiTextura. Generalmente éste efecto es utilizado para añadir efectos gráficos a la textura original. Ej: Sombras, luces, manchas, etc. MultiTexture www.MentoringWeb.com
LightMapping es otra característica soportada por DarkBasicPro, en la cual se utiliza un mapa o textura que contiene información para la iluminación de cada polígono de un escenario u objeto. De esta manera, al combinar el Lightmap con la textura original, podemos dotar la escena con efectos de luces y sombras muy detallados y con nulo esfuerzo por parte de la placa aceleradora, debido a que no es necesario calcular el efecto de las luces en el momento. LightMapping www.MentoringWeb.com
Otra de las características que podemos encontrar en el lenguaje, es el procesamiento de partículas. Es posible definir aspectos específicos de las mismas como su comportamiento, gravedad, velocidad, tiempo de vida, imagen que tendrá la partícula, etc. Sistema de Partículas www.MentoringWeb.com
DarkBasic permite crear efectos reflejantes reales, es decir, si bien es posible generar el efecto de reflexion utilizando CubeMapping y SphereMapping, también podemos lograr efectos que no solo puedan reflejar el entorno en el que están inmersos, sinó también cualquier objeto que esté cerca como otros modelos 3D, partículas y escenarios. Reflexión Real www.MentoringWeb.com
Es posible calcular colisiones entre objetos de forma muy sencilla asignándoles a cada uno de ellos formas de colisión esféricas y Cúbicas. También es posible utilizar colisión por polígonos en el caso de necesitar demasiado detalle. BoundingBox y Sphere Collision www.MentoringWeb.com
El lenguaje también posee un sistema de sombras que utiliza el stencil buffer de la aceleradora para generar volúmenes de sombras inclusive en objetos animándose. Sombras en tiempo real www.MentoringWeb.com
Provee funciones para animar objetos. La animación esqueletal es un tipo de deformación que puede aplicarse a cualquier modelo 3D. Utilizando un conjunto de huesos invisibles distribuidos dentro del objeto, es posible animarlo y deformarlo. Al momento de modelar un personaje, distribuir los huesos necesarios para las animaciones es tan importante como el diseño visual. Animación Esqueletal www.MentoringWeb.com
Es sabido que mientras más rápido sea un motor para dibujar un sprite, más cantidad de ellos podemos tener en un juego. Con DarkBasic puede procesar cientos de sprites sin que la velocidad decaiga, inclusive si éstos son inmensos. Esto es debido a que el lenguaje utiliza Sprites 3D, delegando el procesamiento a la placa aceleradora. Los sprites pueden ser rotados, escalados, detectar colisiones y poseer transparencia. Sprites 2D www.MentoringWeb.com
Otra característica muy potente del lenguaje es la habilidad de acoplarse perfectamente con librerías dinámicas. De esta forma el programador puede expandir el lenguaje con sus propios comandos y funciones con tan solo colocar la DLL en la carpeta del programa. Existen muchas librerías gratuitas y comerciales que pueden incorporarse al lenguaje. Nosotros utilizaremos una librería gratuita para expandir las funciones de colision. SparkyCollisions DLL. Soporte para DLL www.MentoringWeb.com
Otras características que soporta el lenguaje Píxel shaders Vertex shaders Manipulación de objetos a nivel de vértice Reflejos y sombras reales Luces dinámicas en tiempo real Manejo de matrices (Para creación de terrenos) Soporte multicamara Colisiones por polígonos, esferas, o cubos Sistema de partículas Soporte para multijugador Manejo de archivos Manipulación directa de memoria Funciones matemáticas especificas para 3D (realmente impresionante y muy rápidas) www.MentoringWeb.com

Dark Basic Pro

  • 1.
    Curso de Programaciónde Videojuegos con DarkBasic Pro Temas contenidos en el curso www.MentoringWeb.com
  • 2.
    Mejoras con supredecesor DarkBasic Pro es un lenguaje de programación orientado al desarrollo de Videojuegos 2D y 3D. DarkBasic Pro utiliza la potencia que brinda DirectX 9 a diferencia de su predecesor DarkBasic que trabaja con DirectX 7. Debido a problemas de compatibilidad y a la constante competencia con lenguajes similares en el mercado (Blitz3D por ejemplo), DarkBasic fue reescrito completamente desde cero, dando origen a DarkBasic Pro. De esta forma se lograron notables mejoras en el lenguaje, p or ejemplo: Los ejecutables son compilados con la máxima optimización para ganar velocidad. El Debugger permite utilizar Breakpoints, Step Through y Observación de los valores de las variables. La Encriptación de contenidos Multimedia dentro de los ejecutables provee rapidez. Provee soporte para la incorporación de Librerías Dinámicas DLLS dentro de nuestros proyectos. Mejor soporte para comandos Multiplayer dentro de una Red. www.MentoringWeb.com
  • 3.
    Formatos de archivoque interpreta el lenguaje Los formatos de archivo soportados son: 3D: x, 3ds, mdl, md2, md3, quake2map, quake3map, halflifemap 2D:dds, jpg, bmp, tga, png, dib Sonido:Wav(con cualquier tipo de compresión), aiff, au, snd Música: Mp3,Midi Video: DVD,avi, indeo, cinepack www.MentoringWeb.com
  • 4.
    Soporte para archivosBSP Este formato 3D (Binary Space Partitioning) permite renderizar un escenario tridimensional de forma muy rápida. DarkBasic provee algunas funciones para trabajar con este tipo de archivos, inclusive para detectar colisiones dentro estos escenarios. Existen numerosos juegos que utilizan este tipo de formato para representar sus niveles. (Quake3, Return to Castle Wolfenstein, Half-Life). www.MentoringWeb.com
  • 5.
    Si bien DarkBasicPro facilita la representación de los escenarios soportando la lectura de algunos formatos populares, siempre obtendremos mejores resultados si modelamos los mismos con alguna herramienta profesional de diseño. Lightwave 3D 9 en nuestro caso. www.MentoringWeb.com
  • 6.
    SphereMapping es unefecto aplicable a los modelos 3D, el cual funde una textura alterna y la mueve en base al movimiento de la cámara para simular efectos de reflexión del metal. El consumo de procesamiento por parte de la placa aceleradora es mínimo, debido a que solo requiere que ésta soporte el multitexturado, existente inclusive, en aceleradoras de baja gama. SphereMapping www.MentoringWeb.com
  • 7.
    Cube Mapping esuna técnica similar al SphereMapping, excepto que ésta utiliza una textura dividida en 6 partes y permite una calidad superior de detalle. Se utiliza puntualmente para generar un entorno que será reflejado por el objeto. La mayoría de las placas aceleradoras soportan esta técnica. CubeMapping www.MentoringWeb.com
  • 8.
    Bump Mapping esotro de los efectos soportados por DarkBasic Pro. Mediante esta técnica podemos añadir mas detalle a nuestros modelos 3D utilizando una textura alternativa especial que tratará y alterará la forma en que el objeto refleja la luz. De esta manera, podemos obtener objetos con pocos polígonos (Ideal para Juegos) pero que simulen relieves mu detallados. Lo llamativo de esta técnica es el poco procesamiento que requiere por parte de la placa aceleradora. Tal es así, que es posible utilizarlo inclusive en aceleradoras más viejas. BumpMapping www.MentoringWeb.com
  • 9.
    DarkBasic Pro permitela combinación de varias capas de texturas por modelo. Esto se denomina MultiTextura. Generalmente éste efecto es utilizado para añadir efectos gráficos a la textura original. Ej: Sombras, luces, manchas, etc. MultiTexture www.MentoringWeb.com
  • 10.
    LightMapping es otracaracterística soportada por DarkBasicPro, en la cual se utiliza un mapa o textura que contiene información para la iluminación de cada polígono de un escenario u objeto. De esta manera, al combinar el Lightmap con la textura original, podemos dotar la escena con efectos de luces y sombras muy detallados y con nulo esfuerzo por parte de la placa aceleradora, debido a que no es necesario calcular el efecto de las luces en el momento. LightMapping www.MentoringWeb.com
  • 11.
    Otra de lascaracterísticas que podemos encontrar en el lenguaje, es el procesamiento de partículas. Es posible definir aspectos específicos de las mismas como su comportamiento, gravedad, velocidad, tiempo de vida, imagen que tendrá la partícula, etc. Sistema de Partículas www.MentoringWeb.com
  • 12.
    DarkBasic permite crearefectos reflejantes reales, es decir, si bien es posible generar el efecto de reflexion utilizando CubeMapping y SphereMapping, también podemos lograr efectos que no solo puedan reflejar el entorno en el que están inmersos, sinó también cualquier objeto que esté cerca como otros modelos 3D, partículas y escenarios. Reflexión Real www.MentoringWeb.com
  • 13.
    Es posible calcularcolisiones entre objetos de forma muy sencilla asignándoles a cada uno de ellos formas de colisión esféricas y Cúbicas. También es posible utilizar colisión por polígonos en el caso de necesitar demasiado detalle. BoundingBox y Sphere Collision www.MentoringWeb.com
  • 14.
    El lenguaje tambiénposee un sistema de sombras que utiliza el stencil buffer de la aceleradora para generar volúmenes de sombras inclusive en objetos animándose. Sombras en tiempo real www.MentoringWeb.com
  • 15.
    Provee funciones paraanimar objetos. La animación esqueletal es un tipo de deformación que puede aplicarse a cualquier modelo 3D. Utilizando un conjunto de huesos invisibles distribuidos dentro del objeto, es posible animarlo y deformarlo. Al momento de modelar un personaje, distribuir los huesos necesarios para las animaciones es tan importante como el diseño visual. Animación Esqueletal www.MentoringWeb.com
  • 16.
    Es sabido quemientras más rápido sea un motor para dibujar un sprite, más cantidad de ellos podemos tener en un juego. Con DarkBasic puede procesar cientos de sprites sin que la velocidad decaiga, inclusive si éstos son inmensos. Esto es debido a que el lenguaje utiliza Sprites 3D, delegando el procesamiento a la placa aceleradora. Los sprites pueden ser rotados, escalados, detectar colisiones y poseer transparencia. Sprites 2D www.MentoringWeb.com
  • 17.
    Otra característica muypotente del lenguaje es la habilidad de acoplarse perfectamente con librerías dinámicas. De esta forma el programador puede expandir el lenguaje con sus propios comandos y funciones con tan solo colocar la DLL en la carpeta del programa. Existen muchas librerías gratuitas y comerciales que pueden incorporarse al lenguaje. Nosotros utilizaremos una librería gratuita para expandir las funciones de colision. SparkyCollisions DLL. Soporte para DLL www.MentoringWeb.com
  • 18.
    Otras características quesoporta el lenguaje Píxel shaders Vertex shaders Manipulación de objetos a nivel de vértice Reflejos y sombras reales Luces dinámicas en tiempo real Manejo de matrices (Para creación de terrenos) Soporte multicamara Colisiones por polígonos, esferas, o cubos Sistema de partículas Soporte para multijugador Manejo de archivos Manipulación directa de memoria Funciones matemáticas especificas para 3D (realmente impresionante y muy rápidas) www.MentoringWeb.com