Blitz BASIC es el dialecto del lenguaje de programación de los primeros compiladores de Blitz, ideados por el desarrollador con sede en Nueva Zelanda Mark Sibly. Derivado de BASIC , la sintaxis de Blitz fue diseñada para que los principiantes aprendan a programar fácilmente. Los lenguajes están orientados a la programación de juegos, pero a menudo se encuentran lo suficientemente generales como para usarse en 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 el subproceso múltiple . Esto llevó a que los idiomas perdieran su apodo BÁSICO en años posteriores. [1]
Desarrollador (es) | Investigación Blitz . |
---|---|
Escrito en | Compilado en C ++ , pero los lenguajes son dialectos de BASIC |
Sistema operativo | Microsoft Windows |
Plataforma | Microsoft Windows |
Disponible en | inglés |
Tipo | Sistema de creación de juegos |
Licencia | licencia zlib |
Sitio web | www |
Historia
La primera versió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 más tarde (alrededor de 1993 según este comunicado de prensa [2] ) 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. [3]
BlitzBasic
Idigicon publicó BlitzBasic para Microsoft Windows en octubre de 2000. El lenguaje incluía una API incorporada para realizar operaciones básicas de audio y gráficos 2D. Tras el lanzamiento de Blitz3D, BlitzBasic a menudo se conoce como sinónimo de Blitz2D.
El reconocimiento de BlitzBasic aumentó cuando se distribuyó una gama limitada de versiones "gratuitas" en revistas de informática 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.
BlitzPlus
En febrero de 2003, Blitz Research Ltd. lanzó BlitzPlus también para Microsoft Windows. Carecía del motor 3D de Blitz3D, pero traía nuevas funciones al lado 2D del lenguaje al implementar un 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 permite que los juegos y aplicaciones compilados de BlitzPlus se ejecuten en sistemas que solo pueden tener DirectX 1.
BlitzMax
Paradigma | imperativa , orientada a objetos , modular , reflectante |
---|---|
Diseñada por | Mark Sbly |
Desarrollador | Blitz Research Ltd. |
Apareció por primera vez | 2004 |
Lanzamiento final | 1.51 / 21 de septiembre de 2015 |
Disciplina de mecanografía | Estático , débil , fuerte (opcional) |
SO | Microsoft Windows , Mac OS X , Linux |
Sitio web | www |
Dialectos | |
BlitzMax oficial, bmx-ng | |
Influenciado por | |
BlitzBasic | |
Influenciado | |
Mono |
El primer compilador BlitzMax fue lanzado en diciembre de 2004 para Mac OS X . Esto lo convirtió en el primer dialecto de Blitz que se pudo compilar en plataformas * nix. Los compiladores para Microsoft Windows y Linux se lanzaron posteriormente en mayo de 2005. BlitzMax trajo el mayor cambio 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 Blitz en representar cadenas internamente usando UCS-2 , permitiendo el soporte nativo para cadenas literales compuestas de caracteres no ASCII .
El conjunto de comandos independiente de la plataforma de BlitzMax permite a los desarrolladores compilar y ejecutar código fuente en múltiples plataformas. Sin embargo, el compilador oficial y la cadena de compilación solo generarán binarios para la plataforma en la que se está ejecutando. Extraoficialmente, los usuarios han podido hacer que Linux y Mac OS X se compilen de forma cruzada en la plataforma Windows.
BlitzMax es también la primera versión modular de los lenguajes Blitz, mejorando la extensibilidad del conjunto de comandos. Además, todos los módulos estándar que se envían con el compilador son de código abierto, por lo que 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 el usuario amplían el uso del lenguaje al incluir bibliotecas como wxWidgets , Cairo y Fontconfig , así como una selección de módulos de base de datos. También hay una selección de módulos 3D de terceros disponibles, a saber, MiniB3D [4] , 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 . [5] 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 . [6]
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 lanzó bajo una licencia BSD . Este motor se centró en OpenGL pero tenía un backend abstracto para otros controladores de gráficos (como DirectX) y hacía uso de varias bibliotecas de código abierto, a saber , Assimp , Boost y ODE .
A pesar de la emoción en la comunidad Blitz de que Max3D es el sucesor ansiosamente esperado de Blitz3D, el interés y el apoyo se desvanecieron 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 nuevamente.
Lanzamiento de código abierto
BlitzPlus se lanzó como código abierto el 28 de abril de 2014 bajo la licencia zlib en GitHub . [7] [8] Blitz3D siguió poco después y fue lanzado como Open Source el 3 de agosto de 2014. [9] [10] BlitzMax fue lanzado más tarde como Open Source el 21 de septiembre de 2015. [11]
Ejemplos de
Programa Hello World que se imprime en la pantalla, espera hasta que se presiona una tecla y luego termina:
Imprimir "Hola mundo" ; Imprime en la pantalla. WaitKey () ; Pausa la ejecución hasta que se presiona una tecla. Fin ; Finaliza el programa.
Programa que demuestra la declaración de variables utilizando los tres tipos de datos principales (Strings , Integers y Floats ) e imprimiéndolos en la pantalla:
nombre $ = "Juan" ; Cree una variable de cadena ($) edad = 36 ; Cree una variable entera (sin sufijo) temperatura # = 27,3 ; Crea una variable flotante (#)imprimir "Mi nombre es" + nombre $ + "y tengo" + edad + "años". imprimir "Hoy, la temperatura es" + temperatura # + "grados".Waitkey () ; Pausa la ejecución hasta que se presiona una tecla. Fin ; Finaliza el programa.
Programa que crea una aplicación en ventana que muestra la hora actual en formato binario y decimal. Vea a continuación las versiones BlitzMax y BlitzBasic:
Versión BlitzBasic | Versión BlitzMax |
---|---|
AppTitle "Clock Binary" Gráficos 150 , 80 , 16 , 3 ; crea un temporizador que significa que el ciclo principal será ; ejecutado dos veces por segundo segundo temporizador = CreateTimer ( 2 ) ; ########################## ######################### Repetir ; BUCLE PRINCIPAL Hora = Izquierda ( Hora Actual $ (), 2 ) Minuto = Medio ( Hora Actual $ (), 4 , 2 ) Segundo = Derecha ( 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 lo contrario, el punto PM quedará ; ¡se dejará arriba una vez que el reloj pase de la medianoche! Cls Color ( 0 , 255 , 0 ) ; hacer que el texto sea verde para la parte PM Si PM = 1 Entonces Texto 5 , 5 , "PM" ; volver a establecer el color del texto en blanco para el resto Color ( 255 , 255 , 255 ) Para bit = 0 To 5 xpos = 20 * ( 6 - bit ) binaryMask = 2 ^ bit ; hacer horas If ( bit < 4 ) If ( hora Y binaryMask ) Texto xpos , 5 , "1" Else Text xpos , 5 , "0" EndIf EndIf ; hacer los minutos If ( minute And binaryMask ) Text xpos , 25 , "1" Else Text xpos , 25 , "0" EndIf ; hacer los segundos If ( second And binaryMask ) Text xpos , 45 , "1" Else Text xpos , 45 , "0" EndIf Next ; poner el texto en rojo para el tiempo decimal Color ( 255 , 0 , 0 ) Texto 5 , 65 , "Decimal:" + CurrentTime $ () ; volver a poner el texto en blanco para el resto Color ( 255 , 255 , 255 ) ; esperará medio segundo WaitTimer ( secondTimer ) Forever ; #################################### ############### | AppTitle = Gráficos "Reloj binario" 145 , 85 secondtimer = CreateTimer ( 2 ) Repetir hora = CurrentTime () [. .2 ] . ToInt () Minute = CurrentTime () [ 4 . .6 ] . ToInt () Second = CurrentTime () [ 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 lo contrario, el punto PM será ' ¡Izquierda hacia arriba una vez que el reloj pase de la medianoche! Cls SetColor ( 0 , 255 , 0 ) 'hace que el texto sea verde Para la parte PM Si PM = 1 Entonces DrawText "PM" , 5 , 5 ' vuelve a establecer el color del texto en blanco Para el resto SetColor ( 255 , 255 , 255 ) Para bit = 0 Hasta 6 xpos = 20 * ( 6 - bit ) binaryMask = 2 ^ bit 'hacer horas If ( bit < 4 ) If ( hour & binaryMask ) DrawText "1" , xpos , 5 Else DrawText "0" , xpos , 5 EndIf EndIf 'hacer los minutos If ( minute & binaryMask ) DrawText "1" , xpos , 25 Else DrawText "0" , xpos , 25 EndIf 'hacer los segundos If ( second & binaryMask ) DrawText "1" , xpos , 45 Else DrawText "0" , xpos , 45 EndIf Next 'poner el texto en rojo Para el tiempo decimal SetColor ( 255 , 0 , 0 ) DrawText "Decimal:" + CurrentTime (), 5 , 65 ' volver a poner el texto en blanco Para el resto SetColor ( 255 , 255 , 255 ) Dar la vuelta 'esperará medio segundo WaitTimer ( secondTimer ) Si KeyHit ( KEY_ESCAPE ) Entonces Salga para siempre |
Software escrito con BlitzBasic
- Eschalon: Libro I - BlitzMax
- Eschalon: Libro II - BlitzMax
- Solitario de calle - BlitzMax
- GridWars - BlitzMax
- TVTower (clon de código abierto de MadTV) - BlitzMax
- Ornitorrinco - Blitz2D (puerto Mac, BlitzMax)
- SCP - Incumplimiento de contención - Blitz3D
- Gusanos - originalmente titulado Total Wormage y desarrollado en Blitz Basic en Amiga antes de su lanzamiento comercial [12]
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 al código ensamblador, traduce los archivos fuente Monkey directamente al código fuente para un idioma, marco o plataforma elegidos, por ejemplo, Windows, Mac OS X , iOS , Android, HTML5 y Adobe Flash. .
El desarrollo de Monkey X se ha detenido a favor de Monkey 2, una versión actualizada del lenguaje de Mark Sbly.
Referencias
- ^ "El sitio web oficial de Blitz" . www.blitzbasic.com . Archivado desde el original el 3 de junio de 2017.
- ^ AmigaReport http://www.amigareport.com/ar115/p1-5.html . Consultado el 30 de abril de 2020 . Falta o vacío
|title=
( ayuda ) - ^ https://github.com/AmiBlitz
- ^ "Blitz News" . www.blitzbasic.com . Archivado desde el original el 26 de enero de 2008 . Consultado el 12 de diciembre de 2007 .
- ^ "¡La actualización 1.26 de BlitzMax ya está disponible!" . www.blitzbasic.com . Archivado desde el original el 26 de mayo de 2011 . Consultado el 11 de enero de 2011 .
- ^ ¡ BlitzMax V132 para Windows y MacIntel ya está disponible! Archivado el 26 de mayo de 2011 en Wayback Machine en blitzbasic.com.
- ↑ BlitzPlus Source Code Released Archivado el 16 de julio de 2016 en Wayback Machine por simonh (2014-04-29)
- ^ ¡ Blitz3D de código abierto! Archivado el 6 de septiembre de 2016 en Wayback Machine en los foros de Blitz3D por (2014)
- ^ ¡ Blitz3D ahora es gratuito y de código abierto! Archivado el 16 de julio de 2016 en la Wayback Machine por simonh (3 de agosto de 2014)
- ^ blitz3d en GitHub
- ^ blitzmax en GitHub
- ^ IGN. Vista previa de Worms Blast Archivado el 18 de febrero de 2007 en Wayback Machine en ign.com
enlaces externos
- Subsitio de Blitz Research en itch.io (BlitzPlus, Blitz 3D, Monkey X, Monkey 2)
- Subsitio Monkey X (código abierto)
- Subsitio Monkey 2
- Blitz-research (Mark Sibly) en GitHub (BlitzPlus, BlitzMax, Blitz3D, Monkey, BlitzMax, Blitz3D para MSVC-CE 2017)
- Sitio web de Blitz Research (archivado el 3 de junio de 2017)
- Sitio web de Monkey X (archivado el 15 de julio de 2017)