Блиц БЕЙСИК
![]() | |
Разработчик(и) | Блиц-исследования |
---|---|
Написано в | Скомпилировано на C++ , но языки являются диалектами BASIC. |
Операционная система | АмигаОС Microsoft Windows |
Доступно в | Английский |
Тип | Система создания игр |
Лицензия | лицензия zlib |
Веб-сайт | блиц-исследования |
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]
БлицБазовый
[ редактировать ]Idigicon опубликовала BlitzBasic для Microsoft Windows в октябре 2000 года. Язык включал встроенный API для выполнения основных операций с 2D-графикой и звуком. После выпуска Blitz3D BlitzBasic часто называют синонимом Blitz2D.
Признание BlitzBasic возросло, когда ограниченный набор «бесплатных» версий был распространен в популярных британских компьютерных журналах, таких как PC Format . Это привело к юридическому спору между разработчиком и издателем, который в конечном итоге был разрешен мирным путем.
БлицПлюс
[ редактировать ]В феврале 2003 года компания Blitz Research Ltd. выпустила BlitzPlus также для Microsoft Windows. В нем отсутствовал 3D-движок Blitz3D, но он привнес новые функции в 2D-часть языка за счет реализации ограниченной поддержки элементов управления Microsoft Windows для создания собственных графических интерфейсов . Также была расширена обратная совместимость 2D-движка, что позволило скомпилированным играм и приложениям BlitzPlus работать на системах, которые могли иметь только DirectX 1.
БлицМакс
[ редактировать ]Парадигма | императивный , объектно-ориентированный , модульный , рефлексивный |
---|---|
Разработано | Марк Сибли |
Разработчик | ООО "Блиц Исследования" |
Впервые появился | 2004 |
Финальный выпуск | 1,51
/ 21 сентября 2015 г |
Дисциплина набора текста | Статический , Слабый , Сильный (необязательно) |
ТЫ | Microsoft Windows , Mac OS X , Linux |
Веб-сайт | www |
Диалекты | |
Официальный BlitzMax, bmx-ng | |
Под влиянием | |
БлицБазовый | |
Под влиянием | |
Обезьяна |
Первый компилятор BlitzMax был выпущен в декабре 2004 года для Mac OS X. Это сделало его первым диалектом Blitz, который можно было скомпилировать на платформах *nix. Компиляторы для Microsoft Windows и Linux были впоследствии выпущены в мае 2005 года. BlitzMax внес самое большое изменение языковой структуры в современный ассортимент продуктов Blitz, расширив систему типов, включив в нее объектно-ориентированные концепции и изменив графический API, чтобы он лучше соответствовал OpenGL . BlitzMax также был первым из языков Blitz, который представлял строки внутри с помощью UCS-2 , обеспечивая встроенную поддержку строковых литералов, состоящих из символов, отличных от ASCII .
Независимый от платформы набор команд BlitzMax позволяет разработчикам компилировать и запускать исходный код на нескольких платформах. Однако официальный компилятор и цепочка сборки будут генерировать двоичные файлы только для той платформы, на которой он выполняется. Неофициально пользователи смогли заставить Linux и Mac OS X выполнить кросс-компиляцию на платформу Windows.
BlitzMax также является первой модульной версией языков Blitz, улучшающей расширяемость набора команд. Кроме того, все стандартные модули, поставляемые с компилятором, имеют открытый исходный код, поэтому при необходимости программист может их настроить и перекомпилировать. Официальный кроссплатформенный модуль графического интерфейса 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]
Блиц3D SDK
[ редактировать ]Blitz3D SDK — это движок 3D-графики, основанный на движке Blitz3D. Он продавался для использования с C++ , C# , BlitzMax и PureBasic , однако его также можно было использовать с другими языками, которые следуют совместимым соглашениям о вызовах.
Модуль Макс3Д
[ редактировать ]В 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] Позднее, 21 сентября 2015 года, BlitzMax был выпущен с открытым исходным кодом. [11]
Прием
[ редактировать ]Blitz Basic 2.1 был хорошо принят журналами Amiga. CU Amiga подчеркнула свою способность создавать приложения и игры, совместимые с AmigaOS (в отличие от AMOS Basic ). [12] и Amiga Shopper назвала его мощным языком программирования. [13]
Примеры
[ редактировать ]« Привет, мир!» программа , которая печатает на экране, ждет нажатия клавиши, а затем завершает работу:
Print "Hello, World!" ; Prints to the screen.
WaitKey() ; Pauses execution until a key is pressed.
End ; Ends Program.
Программа, демонстрирующая объявление переменных с использованием трех основных типов данных ( строки , целые числа и числа с плавающей запятой ) и вывод их на экран:
name$ = "John" ; Create a string variable ($)
age = 36 ; Create an integer variable (No Suffix)
temperature# = 27.3 ; Create a float variable (#)
print "My name is " + name$ + " and I am " + age + " years old."
print "Today, the temperature is " + temperature# + " degrees."
Waitkey() ; Pauses execution until a key is pressed.
End ; Ends program.
Программа, создающая оконное приложение, показывающее текущее время в двоичном и десятичном формате. Ниже приведены версии BlitzMax и BlitzBasic:
БлицБазовая версия | Версия БлицМакс |
---|---|
AppTitle "Binary Clock"
Graphics 150,80,16,3
;create a timer that means the main loop will be
;executed twice a second
secondtimer=CreateTimer(2)
Repeat
Hour = Left(CurrentTime$(),2)
Minute = Mid(CurrentTime$(),4,2)
Second = Right(CurrentTime$(),2)
If Hour >= 12 Then PM = 1
If Hour > 12 Then Hour = Hour - 12
If Hour = 0 Then Hour = 12
;should do this otherwise the PM dot will be
;left up once the clock rolls past midnight!
Cls
Color(0,255,0) ;make the text green for the PM part
If PM = 1 Then Text 5,5,"PM"
;set the text colour back to white for the rest
Color(255,255,255)
For bit=0 To 5
xpos=20*(6-bit)
binaryMask=2^bit
;do hours
If (bit<4)
If (hour And binaryMask)
Text xpos,5,"1"
Else
Text xpos,5,"0"
EndIf
EndIf
;do the minutes
If (minute And binaryMask)
Text xpos,25,"1"
Else
Text xpos,25,"0"
EndIf
;do the seconds
If (second And binaryMask)
Text xpos,45,"1"
Else
Text xpos,45,"0"
EndIf
Next
;make the text red for the decimal time
Color(255,0,0)
Text 5,65,"Decimal: " + CurrentTime$()
;set the text back to white for the rest
Color(255,255,255)
;will wait half a second
WaitTimer(secondTimer)
Forever
|
Import BRL.Timer
Import BRL.TimerDefault
AppTitle = "Binary Clock"
Graphics 145,85
'create a timer that means the main loop will be
'executed twice a second
Local secondtimer:TTimer = CreateTimer(2)
Local Hour:Int
Local Minute:Int
Local Second:Int
Local PM:Int
local bit:Int
local xpos:Int
Local binaryMask:Int
Repeat
Hour = CurrentTime()[..2].ToInt()
Minute = CurrentTime()[4..6].ToInt()
Second = CurrentTime()[6..].ToInt()
If Hour >= 12 Then PM = 1
If Hour > 12 Then Hour = Hour - 12
If Hour = 0 Then Hour = 12
'should do this otherwise the PM dot will be
'Left up once the clock rolls past midnight!
Cls
SetColor(0,255,0) 'make the text green For the PM part
If PM = 1 Then DrawText "PM",5,5
'set the text colour back To white For the rest
SetColor(255,255,255)
For bit=0 Until 6
xpos=20*(6-bit)
binaryMask=2^bit
'do hours
If (bit < 4)
If (hour & binaryMask)
DrawText "1",xpos,5
Else
DrawText "0",xpos,5
EndIf
EndIf
'do the minutes
If (minute & binaryMask)
DrawText "1", xpos,25
Else
DrawText "0", xpos,25
EndIf
'do the seconds
If (second & binaryMask)
DrawText "1",xpos,45
Else
DrawText "0",xpos,45
EndIf
Next
'make the text red For the decimal time
SetColor(255,0,0)
DrawText "Decimal: " + CurrentTime(),5,65
'set the text back To white For the rest
SetColor(255,255,255)
Flip
'will wait half a second
WaitTimer(secondTimer)
If KeyHit(KEY_ESCAPE) Then Exit
Forever
|
Программное обеспечение, написанное с использованием BlitzBasic.
[ редактировать ]- Эшалон: Книга I - BlitzMax
- Эшалон: Книга II - BlitzMax
- Пасьянс «Фервей» — BlitzMax
- GridWars — БлицМакс
- TVTower (клон MadTV с открытым исходным кодом) — BlitzMax
- Platypus — Blitz2D (порт для Mac, BlitzMax)
- SCP – Нарушение условий содержания - Blitz3D
- Worms - первоначально назывался Total Wormage и был разработан в Blitz Basic на Amiga перед его коммерческим выпуском. [14]
Наследие
[ редактировать ]В 2011 году BRL выпустила новый кроссплатформенный язык программирования под названием Monkey и свой первый официальный модуль Mojo. Monkey имеет синтаксис, аналогичный BlitzMax, но вместо прямой компиляции в ассемблерный код он транслирует исходные файлы Monkey непосредственно в исходный код для выбранного языка, платформы или платформы, например Windows, Mac OS X , iOS , Android, HTML5 и Adobe Flash. .
С 2015 года разработка Monkey X была остановлена в пользу Monkey 2, обновленной версии языка, созданной Марком Сибли.
Ссылки
[ редактировать ]- ^ «Официальный сайт блица» . blitzresearch.itch.io/ . Архивировано из оригинала 3 июня 2017 года.
- ^ «Блиц Базовый 2» . АмигаОтчет . Архивировано из оригинала 31 марта 2022 года . Проверено 30 апреля 2020 г.
- ^ «АмиБлиц» . Гитхаб .
- ^ «Блиц-новости» . 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 выпущен. Архивировано 16 июля 2016 г. на Wayback Machine , автор simonh (29 апреля 2014 г.).
- ^ Blitz3D с открытым исходным кодом! Архивировано 6 сентября 2016 года на Wayback Machine на форумах Blitz3D автором (2014).
- ^ Blitz3D теперь бесплатный и с открытым исходным кодом! Архивировано 16 июля 2016 года в Wayback Machine пользователем simonh (03 августа 2014 г.).
- ^ blitz3d на GitHub
- ^ блицмакс на GitHub
- ^ Беттинсон, Мэтт (март 1996 г.). «Блиц Базовый 2.1». CU Амига . Нет. 73. Изображения EMAP. стр. 69–70. ISSN 0963-0090 .
- ^ Овераа, Пол (апрель 1996 г.). «Блиц Базовый 2.1». Амига Покупатель . № 61. Будущее издательства. п. 41. ISSN 0961-7302 .
- ^ ИГН. Предварительный просмотр Worms Blast. Архивировано 18 февраля 2007 г. на Wayback Machine на ign.com.
Внешние ссылки
[ редактировать ]- Дочерний сайт Blitz Research на itch.io (BlitzPlus, Blitz 3D, Monkey X, Monkey 2)
- Дочерний сайт Monkey X (с открытым исходным кодом)
- Дочерний сайт Monkey 2
- blitz-research (Марк Сибли) на GitHub (BlitzPlus, BlitzMax, Blitz3D, Monkey, BlitzMax, Blitz3D для MSVC-CE 2017)
- Веб-сайт Blitz Research (архивировано 3 июня 2017 г.)
- Веб-сайт Monkey X (архивировано 15 июля 2017 г.)
- Программное обеспечение для разработки Amiga
- БЕЙСИК-компиляторы
- Семейство языков программирования BASIC
- Ранее проприетарное программное обеспечение
- Бесплатные игровые движки
- Объектно-ориентированные языки программирования
- Программное обеспечение, использующее лицензию zlib
- Программное обеспечение для разработки видеоигр
- IDE для видеоигр
- Видеоигры, разработанные в Новой Зеландии