Blitz BÁSICO
Blitz BASIC es el dialecto del lenguaje de programación de los primeros compiladores de Blitz, ideado por el desarrollador con sede en Nueva Zelanda Mark Sibly. Al derivar de BASIC, la sintaxis de Blitz fue diseñada para ser fácil de aprender para los principiantes que aprenden a programar por primera vez. Los lenguajes están orientados a la programación de juegos, pero a menudo se encuentran lo suficientemente generales como para usarse para la mayoría de los tipos de aplicaciones. El lenguaje Blitz evolucionó a medida que se lanzaron nuevos productos, con encarnaciones recientes que ofrecen soporte para técnicas de programación más avanzadas, como la orientación a objetos y los subprocesos múltiples. Esto llevó a que los idiomas perdieran su apodo BASIC en años posteriores.
Historia
La primera iteración del lenguaje Blitz fue creada para la plataforma Amiga y publicada por la firma australiana Memory and Storage Technology. Volviendo a Nueva Zelanda, Blitz BASIC 2 fue publicado varios años después (alrededor de 1993 según este comunicado de prensa) por Acid Software (un editor local de juegos de Amiga). Desde entonces, los compiladores de Blitz se han lanzado en varias plataformas. Tras la desaparición de Amiga como plataforma comercialmente viable, el código fuente de Blitz BASIC 2 se lanzó a la comunidad de Amiga. El desarrollo continúa hasta el día de hoy bajo el nombre de AmiBlitz.
BlitzBásico
Idigicon publicó BlitzBasic para Microsoft Windows en octubre de 2000. El lenguaje incluía una API integrada para realizar operaciones básicas de gráficos y audio en 2D. Tras el lanzamiento de Blitz3D, BlitzBasic a menudo se conoce como sinónimo de Blitz2D.
El reconocimiento de BlitzBasic aumentó cuando un rango limitado de "gratis" las versiones se distribuyeron en revistas informáticas populares del Reino Unido, como PC Format. Esto resultó en una disputa legal entre el desarrollador y el editor que finalmente se resolvió de manera amistosa.
Blitz Plus
En febrero de 2003, Blitz Research Ltd. lanzó BlitzPlus también para Microsoft Windows. Carecía del motor 3D de Blitz3D, pero aportó nuevas características al lado 2D del lenguaje al implementar el soporte de control limitado de Microsoft Windows para crear GUI nativas. También se amplió la compatibilidad con versiones anteriores del motor 2D, lo que permitió que los juegos y aplicaciones compilados de BlitzPlus se ejecutaran en sistemas que solo podrían tener DirectX 1.
BlitzMax
El primer compilador de BlitzMax se lanzó en diciembre de 2004 para Mac OS X. Esto lo convirtió en el primer dialecto de Blitz que podía compilarse en plataformas *nix. Los compiladores para Microsoft Windows y Linux se lanzaron posteriormente en mayo de 2005. BlitzMax trajo el cambio más grande de estructura de lenguaje a la gama moderna de productos Blitz al extender el sistema de tipos para incluir conceptos orientados a objetos y modificar la API de gráficos para adaptarse mejor a OpenGL. BlitzMax también fue el primero de los lenguajes de Blitz en representar cadenas internamente usando UCS-2, lo que permitió el soporte nativo para cadenas literales compuestas de caracteres que no son ASCII.
El conjunto de comandos independiente de la plataforma de BlitzMax permite a los desarrolladores compilar y ejecutar el código fuente en múltiples plataformas. Sin embargo, el compilador oficial y la cadena de compilación solo generarán archivos binarios para la plataforma en la que se está ejecutando. Extraoficialmente, los usuarios han podido hacer que Linux y Mac OS X realicen una compilación cruzada en la plataforma Windows.
BlitzMax es también la primera versión modular de los lenguajes Blitz, lo que mejora la extensibilidad del conjunto de comandos. Además, todos los módulos estándar enviados con el compilador son de código abierto y, por lo tanto, el programador puede modificarlos y volver a compilarlos si es necesario. El módulo GUI multiplataforma oficial de BlitzMax (conocido como MaxGUI) permite a los desarrolladores escribir interfaces GUI para sus aplicaciones en Linux (FLTK), Mac (Cocoa) y Windows. Varios módulos aportados por los usuarios amplían el uso del lenguaje al incluir bibliotecas como wxWidgets, Cairo y Fontconfig, así como una selección de módulos de bases de datos. También hay una selección de módulos 3D de terceros disponibles, a saber, MiniB3D, un motor OpenGL de código abierto que se puede compilar y usar en las tres plataformas compatibles de BlitzMax.
En octubre de 2007, se lanzó BlitzMax 1.26, que incluía la adición de un módulo de reflexión. BlitzMax 1.32 envió nuevos módulos de subprocesos y secuencias de comandos Lua y la mayoría de las funciones de la biblioteca estándar se han actualizado para que sean compatibles con Unicode.
SDK de Blitz3D
Blitz3D SDK es un motor de gráficos 3D basado en el motor de Blitz3D. Se comercializó para su uso con C++, C#, BlitzMax y PureBasic; sin embargo, también podría usarse con otros lenguajes que sigan convenciones de llamadas compatibles.
Módulo Max3D
En 2008, el código fuente de Max3D, un motor 3D multiplataforma basado en C++, se publicó con una licencia BSD. Este motor se centró en OpenGL pero tenía un backend abstracto para otros controladores de gráficos (como DirectX) y utilizaba varias bibliotecas de código abierto, a saber, Assimp, Boost y ODE.
A pesar de la emoción en la comunidad de Blitz de que Max3D era el sucesor ansiosamente esperado de Blitz3D, el interés y el apoyo desaparecieron poco después de que se lanzó el código fuente y, finalmente, el desarrollo se detuvo. No hay indicios de que Blitz Research retome el proyecto.
Lanzamiento de código abierto
BlitzPlus se lanzó como código abierto el 28 de abril de 2014 bajo la licencia zlib en GitHub. Blitz3D siguió poco después y se lanzó como código abierto el 3 de agosto de 2014. BlitzMax se lanzó más tarde como código abierto el 21 de septiembre de 2015.
Ejemplos
Programa Hello World que se imprime en la pantalla, espera hasta que se presiona una tecla y luego termina:
Imprimir "Hola Mundo" ; Impresos a la pantalla.Espera.() ; Pausa la ejecución hasta que se presiona una llave.Final ; Programa final.
Programa que demuestra la declaración de variables utilizando los tres principales tipos de datos (cadenas, enteros y flotantes) e imprimiéndolos en pantalla:
Nombre$ = "John" ; Crear una variable de cadena ($) Edad = 36 ; Crear una variable entero (No Suffix)temperatura# = 27.3 ; Crear una variable flotante (#)impresión "Mi nombre es " + Nombre$ + "y yo soy " + Edad + " años de edad".impresión "Hoy, la temperatura es " + temperatura# + " grados".Espera.() ; Pausa la ejecución hasta que se presiona una llave.Final ; Fin de programa.
Programa que crea una aplicación en ventana que muestra la hora actual en formato binario y decimal. Consulte a continuación las versiones de BlitzMax y BlitzBasic:
BlitzBasic version | Versión BlitzMax |
---|---|
AppTitle "Bloqueo Bruto"Gráficos 150,80,16,3;crear un temporizador que significa que el bucle principal será; ejecutado dos veces al segundoSecondtimer=CreateTimer()2) Repito Hora = Izquierda()Hora actual$(),2) Minute = Mid()Hora actual$(),4,2) Segundo = Bien.()Hora actual$(),2) Si Hora >= 12 Entonces... PM = 1 Si Hora ■ 12 Entonces... Hora = Hora - 12 Si Hora = 0 Entonces... Hora = 12 ; debe hacer esto de otra manera el punto PM será ;izquierda una vez que el reloj gire a la medianoche! Cls Color()0,255,0) ; hacer el texto verde para la parte PM Si PM = 1 Entonces... Texto 5,5,"PM" ; volver al color de texto al blanco para el resto Color()255,255,255) Para bit=0 A 5 xpos=20*()6-bit) binario Máscara=2^bit ; horas de trabajo Si ()bit.4) Si ()hora Y binario Máscara) Texto xpos,5,"1" Else Texto xpos,5,"0" EndIf EndIf ; hacer los minutos Si ()minuto Y binario Máscara) Texto xpos,25,"1" Else Texto xpos,25,"0" EndIf ; hacer los segundos Si ()segundo Y binario Máscara) Texto xpos,45,"1" Else Texto xpos,45,"0" EndIf Siguiente ; Hacer el texto rojo para el tiempo decimal Color()255,0,0) Texto 5,65,"Decimal: " + Hora actual$() ; volver el texto al blanco para el resto Color()255,255,255) ; esperará medio segundo WaitTimer()SecondTimer)Para siempre | AppTitle = "Bloqueo Bruto"Gráficos 145,85"Crea un temporizador que significa que el bucle principal será"ejecutado dos veces por segundoSecondtimer = CreateTimer()2)Repito Hora = Hora actual()[..2].ToInt() Minute = Hora actual()[4..6].ToInt() Segundo = Hora actual()[6..].ToInt() Si Hora >= 12 Entonces... PM = 1 Si Hora ■ 12 Entonces... Hora = Hora - 12 Si Hora = 0 Entonces... Hora = 12 'debería hacer esto de otra manera el punto PM será ' ¡Se fue una vez que el reloj pasa a la medianoche! Cls SetColor()0,255,0) 'Hacer el texto verde Para la parte PM Si PM = 1 Entonces... DrawText "PM",5,5 'devuelve el color del texto Para blanco Para el resto SetColor()255,255,255) Para bit=0 Hasta luego 6 xpos=20*()6-bit) binario Máscara=2^bit 'do hours Si ()bit . 4) Si ()hora " binario Máscara) DrawText "1",xpos,5 Else DrawText "0",xpos,5 EndIf EndIf Haz los minutos Si ()minuto " binario Máscara) DrawText "1", xpos,25 Else DrawText "0", xpos,25 EndIf Haz los segundos Si ()segundo " binario Máscara) DrawText "1",xpos,45 Else DrawText "0",xpos,45 EndIf Siguiente 'Hacer el texto rojo Para el tiempo decimal SetColor()255,0,0) DrawText "Decimal: " + Hora actual(),5,65 Devuelve el texto Para blanco Para el resto SetColor()255,255,255) Flip Esperará medio segundo WaitTimer()SecondTimer) Si KeyHit()KEY_ESCAPE) Entonces... ExitPara siempre |
Software escrito con BlitzBasic
- Eschalon: Libro I - BlitzMax
- Eschalon: Libro II - BlitzMax
- Fairway Solitaire - BlitzMax
- GridWars - BlitzMax
- TVTower (clon de fuente abierta de MadTV) - BlitzMax
- Platypus - Blitz2D (puerto principal, BlitzMax)
- SCP – Breach de Contención - Blitz3D
- Worms - originalmente titulado Total Wormage y desarrollado en Blitz Basic sobre el Amiga antes de su liberación comercial
Legado
En 2011, BRL lanzó un nuevo lenguaje de programación multiplataforma llamado Monkey y su primer módulo oficial llamado Mojo. Monkey tiene una sintaxis similar a BlitzMax, pero en lugar de compilar directamente en código ensamblador, traduce los archivos fuente de Monkey directamente a código fuente para un lenguaje, marco o plataforma elegidos, p. Windows, Mac OS X, iOS, Android, HTML5 y Adobe Flash.
El desarrollo de Monkey X se detuvo en favor de Monkey 2, una versión actualizada del lenguaje de Mark Sably.
Contenido relacionado
Vóxel
Compiladores: principios, técnicas y herramientas
Núcleo de Dublín