Разработчики) | Blitz Research . |
---|---|
Написано в | Скомпилирован в C ++ , но языки являются диалектами BASIC |
Операционная система | Майкрософт Виндоус |
Платформа | Майкрософт Виндоус |
Доступно в | английский |
Тип | Система создания игр |
Лицензия | лицензия zlib |
Интернет сайт | www |
Blitz BASIC является язык программирования диалекта первых составителей Blitz, изобретенных Новой Зеландия основанного разработчика Марк Сиб. Синтаксис Blitz, заимствованный из BASIC , был разработан таким образом, чтобы его было легко освоить новички, впервые обучающиеся программированию. Эти языки ориентированы на программирование игр, но часто оказываются достаточно универсальными для использования в большинстве типов приложений. Язык Blitz развивался по мере выпуска новых продуктов, а в последних воплощениях предлагалась поддержка более продвинутых методов программирования, таких как объектно-ориентированная и многопоточность . Это привело к тому, что в последующие годы языки потеряли свое название BASIC. [1]
История [ править ]
Первая версия языка Blitz была создана для платформы Amiga и опубликована австралийской фирмой Memory and Storage Technology. Возвращаясь в Новую Зеландию , Blitz BASIC 2 был опубликован несколькими годами позже (примерно в 1993 году, согласно этому пресс-релизу [2] ) Acid Software (местный издатель игр для Amiga). С тех пор компиляторы Blitz были выпущены на нескольких платформах . После того, как Amiga перестала быть коммерчески жизнеспособной платформой, исходный код Blitz BASIC 2 был передан сообществу Amiga. Разработка продолжается и по сей день под названием AmiBlitz. [3]
BlitzBasic [ править ]
Idigicon опубликовал BlitzBasic для Microsoft Windows в октябре 2000 года. Этот язык включал встроенный API для выполнения основных операций с 2D-графикой и звуком. После выпуска Blitz3D BlitzBasic часто синонимично называют Blitz2D.
Признание BlitzBasic возросло, когда ограниченный диапазон «бесплатных» версий был распространен в популярных британских компьютерных журналах, таких как PC Format . Это привело к юридическому спору между разработчиком и издателем, который в конечном итоге разрешился мирным путем.
BlitzPlus [ править ]
В феврале 2003 года Blitz Research Ltd. выпустила BlitzPlus также для Microsoft Windows. В нем отсутствовал 3D-движок Blitz3D, но он привнес новые функции в 2D-часть языка, реализовав ограниченную поддержку элементов управления Microsoft Windows для создания собственных графических интерфейсов . Была также расширена обратная совместимость 2D-движка, что позволило запускать скомпилированные игры и приложения BlitzPlus в системах, которые могли иметь только DirectX 1.
BlitzMax [ править ]
Парадигма | императивный , объектно-ориентированный , модульный , рефлексивный |
---|---|
Разработано | Марк Сибли |
Разработчик | Blitz Research Ltd. |
Впервые появился | 2004 г. |
Окончательный релиз | 1.51 / 21 сентября 2015 г . |
Печатная дисциплина | Статический , слабый , сильный (необязательно) |
Операционные системы | Microsoft Windows , Mac OS X , Linux |
Интернет сайт | www .blitzbasic .com |
Диалекты | |
Официальный BlitzMax, bmx-ng | |
Под влиянием | |
BlitzBasic | |
Под влиянием | |
Обезьяна |
Первый компилятор BlitzMax был выпущен в декабре 2004 года для Mac OS X . Это сделало его первым диалектом Blitz, который можно было скомпилировать на платформах * nix. Впоследствии в мае 2005 года были выпущены компиляторы для Microsoft Windows и Linux . BlitzMax внесла самые большие изменения в структуру языка в современный ассортимент продуктов Blitz, расширив систему типов, включив в нее объектно-ориентированные концепции и изменив графический API для лучшего соответствия OpenGL . BlitzMax был также первым из языков Blitz, который внутренне представлял строки с использованием UCS-2 , что позволяло осуществлять встроенную поддержку строковых литералов, состоящих из символов, отличных от ASCII .
Не зависящий от платформы набор команд BlitzMax позволяет разработчикам компилировать и запускать исходный код на нескольких платформах. Однако официальный компилятор и цепочка сборки будут генерировать двоичные файлы только для той платформы, на которой они выполняются. Неофициально пользователи смогли получить Linux и Mac OS X для кросс-компиляции с платформой Windows.
BlitzMax также является первой модульной версией языков Blitz, улучшающей расширяемость набора команд. Кроме того, все стандартные модули, поставляемые с компилятором, имеют открытый исходный код и поэтому могут быть изменены и перекомпилированы программистом при необходимости. Официальный кроссплатформенный GUI- модуль BlitzMax (известный как MaxGUI) позволяет разработчикам писать графические интерфейсы для своих приложений в Linux ( FLTK ), Mac ( Cocoa ) и Windows. Различные пользовательские модули расширяют возможности использования языка, обертывая такие библиотеки, как wxWidgets , Cairo и Fontconfig.а также выбор модулей базы данных. Также доступен выбор сторонних 3D-модулей, а именно MiniB3D [4] - движок OpenGL с открытым исходным кодом, который можно скомпилировать и использовать на всех трех поддерживаемых платформах BlitzMax.
В октябре 2007 года был выпущен BlitzMax 1.26, в который был добавлен модуль отражения . [5] BlitzMax 1.32 поставляет новые модули потоковой передачи и сценариев Lua, а большинство стандартных библиотечных функций были обновлены так, чтобы они были совместимы с Unicode . [6]
Blitz3D SDK [ править ]
Blitz3D SDK - это движок трехмерной графики, основанный на движке Blitz3D. Он был продан для использования с C ++ , C # , BlitzMax и PureBasic , однако он также мог использоваться с другими языками, которые следуют совместимым соглашениям о вызовах.
Модуль Max3D [ править ]
В 2008 году исходный код Max3D - кроссплатформенного 3D-движка на C ++ - был выпущен под лицензией BSD . Этот движок ориентирован на OpenGL, но имеет абстрактный бэкэнд для других графических драйверов (таких как DirectX) и использует несколько библиотек с открытым исходным кодом, а именно Assimp , Boost и ODE .
Несмотря на волнение в сообществе Blitz о том, что Max3D является долгожданным преемником Blitz3D, интерес и поддержка прекратились вскоре после того, как был выпущен исходный код, и в конечном итоге разработка остановилась. Нет никаких указаний на то, что Blitz Research снова возьмется за проект.
Выпуск с открытым исходным кодом [ править ]
BlitzPlus был выпущен с открытым исходным кодом 28 апреля 2014 года под лицензией zlib на GitHub . [7] [8] Blitz3D последовал вскоре после этого и был выпущен как открытый исходный код 3 августа 2014 года. [9] [10] BlitzMax был позже выпущен как открытый исходный код 21 сентября 2015 года. [11]
Примеры [ править ]
Программа Hello World, которая печатает на экране, ждет, пока будет нажата клавиша, а затем завершает свою работу:
Распечатать «Hello World» ; Печать на экран. WaitKey () ; Приостанавливает выполнение до нажатия клавиши. Конец ; Завершает программу.
Программа, демонстрирующая объявление переменных с использованием трех основных типов данных (строки , целые числа и числа с плавающей запятой ) и вывод их на экран:
name $ = "Джон" ; Создайте строковую переменную ($) age = 36 ; Создать целочисленную переменную (без суффикса) temperature # = 27,3 ; Создать переменную типа float (#)print "Меня зовут" + имя $ + "и мне" + возраст + "лет." print "Сегодня температура" + температура # + "градусы".Ключ ожидания () ; Приостанавливает выполнение до нажатия клавиши. Конец ; Завершает программу.
Программа, которая создает оконное приложение, которое показывает текущее время в двоичном и десятичном формате. См. Ниже версии BlitzMax и BlitzBasic:
BlitzБазовая версия | Версия BlitzMax |
---|---|
AppTitle «Двоичные часы» Графика 150 , 80 , 16 , 3 ; создать таймер, который означает, что основной цикл будет выполняться ; выполняется дважды за второй таймер = CreateTimer ( 2 ) ; ########################## ######################### Повторить ; MAIN LOOP Hour = Left ( CurrentTime $ (), 2 ) Minute = Mid ( CurrentTime $ (), 4 , 2 ) Second = Right ( CurrentTime $ (), 2 ) Если Hour > = 12 Тогда PM = 1 If Hour > 12 Тогда Hour = Hour - 12 If Hour = 0 Тогда Hour = 12 ; следует сделать это, иначе точка PM будет ; оставлена вверху, когда часы покажут полночь! Cls Color ( 0 , 255 , 0 ) ; сделайте текст зеленым для части PM. Если PM = 1 Then Text 5 , 5 , «PM» ; установите цвет текста обратно на белый для остальных. Цвет ( 255 , 255 , 255 ) Для бит = 0 До 5 xpos = 20 * ( 6 - бит ) binaryMask = 2 ^ бит ; do hours If ( bit < 4 ) If ( hour And binaryMask ) Text xpos , 5 , "1" Else Text xpos , 5 , "0" EndIf EndIf ; введите минуты If ( minute And binaryMask ) Text xpos , 25 , "1" Else Text xpos , 25 , "0" EndIf ; делать секунды If ( second And binaryMask ) Text xpos , 45 , "1" Else Text xpos , 45 , "0" EndIf Next ; сделать текст красным для десятичного времени Color ( 255 , 0 , 0 ) Text 5 , 65 , "Decimal:" + CurrentTime $ () ; вернуть текст обратно в белый цвет для остальных Color ( 255 , 255 , 255 ) ; будет ждать полсекунды WaitTimer ( secondTimer ) Forever ; ##################################### ############### | AppTitle = "Двоичные часы" Графика 145 , 85 secondtimer = CreateTimer ( 2 ) Час повтора = CurrentTime () [. .2 ] . ToInt () Minute = CurrentTime () [ 4 . .6 ] . ToInt () Second = CurrentTime () [ 6 . . ] . ToInt () Если Hour > = 12 Тогда PM = 1 If Hour > 12 Тогда Hour = Hour - 12 If Hour = 0 Тогда Hour = 12 'следует сделать это, иначе точка PM будет ' Влево, когда часы покажут за полночь! Cls SetColor ( 0 , 255 , 0 ) 'сделать текст зеленым Для части PM Если PM = 1 Then DrawText "PM" , 5 , 5 ' установить цвет текста обратно на белый Для остальных SetColor ( 255 , 255 , 255 ) Для бит = 0 До 6 xpos = 20 * ( 6 - бит ) binaryMask = 2 ^ bit 'do hours If ( bit < 4 ) If ( hour & binaryMask ) DrawText "1" , xpos , 5 Else DrawText "0" , xpos , 5 EndIf EndIf 'выполнить минуты If ( минута и двоичная маска ) DrawText "1" , xpos , 25 Else DrawText "0" , xpos , 25 EndIf 'выполнить секунды If ( second & binaryMask ) DrawText "1" , xpos , 45 Else DrawText "0" , xpos , 45 EndIf Next 'сделать текст красным Для десятичного времени SetColor ( 255 , 0 , 0 ) DrawText "Decimal:" + CurrentTime (), 5 , 65 ' вернуть текст обратно в белый цвет Для остальных SetColor ( 255 , 255 , 255 ) Подбросить «будет ждать полсекунды WaitTimer ( secondTimer ) Если KeyHit ( Key_Escape ) Тогда Выход Навсегда |
Программное обеспечение, написанное с использованием BlitzBasic [ править ]
- Эшалон: Книга I - BlitzMax
- Эшалон: Книга II - BlitzMax
- Пасьянс Fairway - BlitzMax
- GridWars - BlitzMax
- TVTower (клон MadTV с открытым исходным кодом) - BlitzMax
- Утконос - Blitz2D (порт Mac, BlitzMax)
- SCP - Нарушение условий содержания - Blitz3D
- Worms - первоначально назывался Total Wormage и был разработан в Blitz Basic на Amiga до его коммерческого выпуска [12]
Наследие [ править ]
В 2011 году BRL выпустила новый кроссплатформенный язык программирования под названием Monkey и свой первый официальный модуль под названием Mojo. Monkey имеет синтаксис, аналогичный BlitzMax, но вместо компиляции непосредственно в код сборки он переводит исходные файлы Monkey непосредственно в исходный код для выбранного языка, фреймворка или платформы, например Windows, Mac OS X , iOS , Android, HTML5 и Adobe Flash. .
Разработка Monkey X была остановлена в пользу Monkey 2, обновленной версии языка Марка Сибли.
Ссылки [ править ]
- ^ "Официальный сайт Blitz" . www.blitzbasic.com . Архивировано из оригинала 3 июня 2017 года.
- ^ AmigaReport http://www.amigareport.com/ar115/p1-5.html . Проверено 30 апреля 2020 . Отсутствует или пусто
|title=
( справка ) - ^ https://github.com/AmiBlitz
- ^ "Блиц Новости" . www.blitzbasic.com . Архивировано из оригинального 26 января 2008 года . Проверено 12 декабря 2007 года .
- ^ "Доступно обновление BlitzMax 1.26!" . www.blitzbasic.com . Архивировано из оригинального 26 мая 2011 года . Проверено 11 января 2011 года .
- ^ BlitzMax V132 для Windows и MacIntel сейчас вверх! Архивировано 26 мая 2011 года в Wayback Machine на blitzbasic.com.
- ^ BlitzPlus Исходный код выхода Archived 16 июля 2016 года в Wayback Machine по simonh (2014-04-29)
- ^ Blitz3D с открытым исходным кодом! Архивировано 6 сентября 2016 года в Wayback Machine на форумах Blitz3D, автором (2014).
- ^ Blitz3D теперь бесплатно и с открытым исходным кодом! Архивировано 16 июля 2016 года в Wayback Machine, автором simonh (2014-08-03).
- ^ blitz3d на GitHub
- ^ blitzmax на GitHub
- ^ IGN. Превью Worms Blast Архивировано 18 февраля 2007 года на Wayback Machine на ign.com.
Внешние ссылки [ править ]
- Подсайт Blitz Research на itch.io (BlitzPlus, Blitz 3D, Monkey X, Monkey 2)
- Подсайт Monkey X (открытый исходный код)
- Обезьяна 2 подсайта
- блиц-исследование (Марк Сибли) на GitHub (BlitzPlus, BlitzMax, Blitz3D, Monkey, BlitzMax, Blitz3D для MSVC-CE 2017)
- Веб-сайт Blitz Research (архивировано 3 июня 2017 г.)
- Веб-сайт Monkey X (заархивировано 15 июля 2017 г.)