Blitz BASIC
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 распространяется свободно[1], исходный код открыт под лицензией zlib/libpng[2].
Примеры программ
[править | править код]Н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 распространняется свободно[1], исходный код открыт под лицензией zlib/libpng[3].
Основные возможности
[править | править код]- 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 битное числовое без знака | UInt | 0 | +2^32-1 | 
| 64 битное числовое без знака | ULong | 0 | +2^64-1 | 
| 32 битное числовое без знака | Size_T | 0 | +2^32-1 | 
| 64 битное числовое без знака | Size_T | 0 | +2^64-1 | 
| 64 битное SIMD вещественное | Float64 | - | - | 
| 128 битное SIMD числовое | Int128 | - | - | 
| 128 битное SIMD вещественное | Float128 | - | - | 
| 128 битное SIMD вещественное | Double128 | - | - | 
Значения SIMD доступны на архитектурах x64 и могут использоваться для более эффективного выполнения числовых вычислений.
Игры на Blitz 3D
[править | править код]Смерть Марка Сибли
[править | править код]В начале декабря 2024 года разработчик Blitz Basic Марк Сибли скончался после борьбы с различными проблемами со здоровьем.[4]
Примечания
[править | править код]- ↑ 1 2 The Official Blitz Website. Дата обращения: 29 марта 2015. Архивировано из оригинала 31 марта 2016 года.
- ↑ Проект Blitz3D на сайте GitHub
- ↑ Проект BlitzPlus на сайте GitHub
- ↑ It is with great sadness that I share this tragic news. Mark Sibly died at the beginning of December after struggling with a variety of health issues. (англ.). Facebook (12 декабря 2024). Дата обращения: 31 июля 2025. Архивировано 31 июля 2025 года.
Литература
[править | править код]- 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
Ссылки
[править | править код]- Официальный сайт
- Проект Blitz3D Source for MSVC Community Edition 2017 на сайте GitHub
- Русскоязычный электронный журнал «Blitz Et Cetera» о программировании на языках семейства Blitz
- Раздел о Blitz3D на boolean.name Архивная копия от 7 июня 2010 на Wayback Machine
- Раздел о BlitzMax на boolean.name Архивная копия от 12 апреля 2008 на Wayback Machine
- Относящиеся к BlitzMax открытые проекты Архивная копия от 3 апреля 2012 на Wayback Machine на Google Code