Blitz3D — коммерческий игровой движок, разработанный Марком Сибли, а также среда разработки с языком Blitz BASIC и скриптовый язык для создания игр. Оригинальная разработка компилятора Blitz BASIC велась для ПК Amiga, но на сегодняшний день он поддерживает уже несколько платформ, в том числе Microsoft Windows, Mac OS X и Linux. В версии для Microsoft Windows поддерживается DirectX 7. Актуальная версия 1.109 от 1 мая 2023 г.
Blitz3D Язык содержит 588 конструкций, позволяющих создать двух- и трёхмерное игровое пространство. С помощью него можно создавать небольшие игры, используя большое количество библиотек, написанных членами сообществ по программированию на Blitz3D.
C 3 августа 2014 распространяется свободно, исходный код открыт под лицензией zlib/libpng.
Примеры программ Нello world Graphics 800,600 ; - Графический режим 800x600 While Not KeyDown(1) ; - Начало главного цикла (Пока НЕ нажата клавиша 1 (Escape) Cls() ; - Чистим экран Text 10, 20, "Hello, World!" ; - Пишем текст "Hello world" в точке 10,20 Flip() ; - меняем кадр (Как в старых мультфильмах, когда движение задавалось сменной кадра) Wend ; прекращаем цикл при нарушении условия End ; конец программы
Нello world с использованием переменных
Graphics 800,600 ; - Графический режим 800x600 Global a$="Hello" ; - Переменная a с содержанием "Hello" Global b$="World" ; - Переменная b с содержанием "World" While Not KeyDown(1); - Начало главного цикла Cls() ; - Чистим экран Text 0,0,a$+b$ ; - Выводим текст на позицию 0,0 Flip() ; - Меняем кадр Wend ; - Завершение цикла при нарушении условия End ; - конец программы
Работа с изображениями
Graphics 800,600 Global Image = LoadImage("picture.bmp")
While Not KeyDown(1) Cls() DrawImage Image,100,100 Flip() Wend End
Работа с трёхмерной графикой
Graphics3D 800,600 ;Устанавливаем графический режим Global model = LoadMesh("helloworld.3ds") ;Загружаем трёхмерную модель надписи "Hello, World" (Примечание, поддерживается только формат .3ds) PositionEntity model,0,0,0 ;Устанавливаем модель в точке 0,0,0 Global camera = CreateCamera() ;Создаём камеру PositionEntity camera,0,0,-10 ;Устанавливаем камеру чуть позади объекта
While Not KeyDown(1) ;Начало цикла RenderWorld() ; Производим рендер изображения Flip() ; Выводим на экран Wend ;Конец цикла End ;Конец программы
BlitzMax BlitzMax — язык программирования, разработанный Марком Сибли. BlitzMax использует расширеную версию языка basic. Благодаря модулям функциональность BlitzMax можно расширять до бесконечности. Из графических API может использовать и DirectX, и OpenGL. Несколько встроенных звуковых API (DirectSound, FreeAudio, OpenAL). Имеет удобный модуль GNet для быстрого создания сетевых приложений.
C 29 апреля 2014 распространняется свободно, исходный код открыт под лицензией zlib/libpng.
Основные возможности 2 режима интерпретирования кода Strict и SuperStrict Многопроходный компилятор Транслятор в язык Flat Assembler Поддержка платформ : Win32, Linux, MacOS Указатели на функции Наследование и полиморфизм Полностью динамические массивы Внешняя поддержка языков для взаимодействия с C++ или Assembler Совместим с MinGW
Типы данных Описание Название Мин. значение Макс. значение 8 битное числовое Byte 0 255 16 битное числовое Short 0 65535 32 битное числовое Int −2^31 +2^31-1 64 битное числовое Long −2^63 +2^63-1 32 битное вещественное Float (+/-)10^-38 (+/-)10^38 64 битное вещественное Double (+/-)10^-308 (+/-)10^308 16 бит юникод полнотекстовое String - - Объект (Тип) obj:TObject - - Массив array{:type}[..] - - Функция Function:{return type}(Parameters) - - Указатель Pointer ValueType Ptr - -
BlitzMax NG BlitzMax NG — язык программирования, прямой продолжатель оригинального языка BlitzMAX. Разрабатывается свободным сообществом под руководством Брюса Хендерсона (woollybah).
Дополнительные возможности и изменения Вместо транслятора в язык Flat Assembler введён транслятор в язык С. Поддержка платформ : Windows, Linux, MacOS, Android, iOS, Raspberry Pi, Haiku. Статические и динамические массивы. Интерфейсы. Перегрузка функций и методов. Перегрузка операторов класса. Инкапсуляция. Условные аргументы в методах. Перечисляемые типы. Обобщённые классы (в прогрессе).
Дополнительные типы данных +ОписаниеНазваниеМин. ЗначениеМакс. Значение32 битное числовое без знакаUInt0 +2^32-164 битное числовое без знакаULong0 +2^64-132 битное числовое без знакаSize_T0 +2^32-164 битное числовое без знакаSize_T0 +2^64-164 битное SIMD вещественноеFloat64 - -128 битное SIMD числовоеInt128 - -128 битное SIMD вещественноеFloat128 - -128 битное SIMD вещественноеDouble128 - - Значения SIMD доступны на архитектурах x64 и могут использоваться для более эффективного выполнения числовых вычислений.
Игры на Blitz 3D SCP-087-B SCP: Containment Breach
Смерть Марка Сибли В начале декабря 2024 года разработчик Blitz Basic Марк Сибли скончался после борьбы с различными проблемами со здоровьем.
Примечания
Литература Learn to Program 2D Games in Blitz Basic by John «Krylar» Logsdon, (2003) Game Programming for Teens by Maneesh Sethi, (2003), ISBN 1-59200-068-1 Games Programming for the Absolute Beginner with BlitzMax by Sloan Kelly, ISBN 0-9553771-0-2 3D Game Programming for Teens by Eric Grebler, (2006) ISBN 1-59200-900-X 3D Game Programming for Teens, 2nd edition by Maneesh Sethi, (2009) ISBN 1-59863-843-2
См. также Monkey — новый кроссплатформенный язык программирования от Blitz Research Ltd
Ссылки Официальный сайт
Русскоязычный электронный журнал «Blitz Et Cetera» о программировании на языках семейства Blitz Раздел о Blitz3D на boolean.name Раздел о BlitzMax на boolean.name Относящиеся к BlitzMax открытые проекты на Google Code
Категория:Языки программирования по алфавиту Категория:Программное обеспечение для Amiga Категория:Программное обеспечение для разработки компьютерных игр Категория:Свободные компиляторы и интерпретаторы