블리츠 베이직

https://blitzresearch.itch.io/ **블리츠 베이직**(Blitz BASIC)은 뉴질랜드 기반 개발자 마크 시블리가 고안한 최초의 블리츠The word "Blitz" means "lightning" in German. 컴파일러의 프로그래밍 언어 방언이다. 베이직에서 파생된 블리츠 문법은 프로그래밍을 처음 배우는 초보자가 쉽게 익힐 수 있도록 설계되었다. 이 언어는 게임 프로그래밍 지향적이지만, 대부분의 응용 프로그램 유형에 사용할 수 있을 만큼 범용적이다. 블리츠 언어는 새로운 제품이 출시됨에 따라 발전했으며, 최근 버전에서는 객체 지향 및 다중 스레딩과 같은 고급 프로그래밍 기술을 지원한다. 이로 인해 이 언어는 나중에 BASIC이라는 명칭을 잃게 되었다.df=dmy-all
# 역사
블리츠 언어의 첫 번째 버전은 아미가 플랫폼용으로 만들어졌으며 오스트레일리아 회사인 메모리 앤 스토리지 테크놀로지(Memory and Storage Technology)에서 발행했다. 뉴질랜드로 돌아온 후, 블리츠 베이직 2는 몇 년 후(이 보도 자료에 따르면 1993년경url-status=dead) 지역 아미가 게임 퍼블리셔인 Acid Software에서 발행했다. 그 이후로 블리츠 컴파일러는 여러 플랫폼에서 출시되었다. 상업적으로 실용적인 플랫폼으로서 아미가가 사라진 후, 블리츠 베이직 2 소스 코드는 아미가 커뮤니티에 공개되었다. 개발은 오늘날까지 AmiBlitz라는 이름으로 계속되고 있다.website=깃허브
## 블리츠베이직
Idigicon은 2000년 10월 마이크로소프트 윈도우용 블리츠베이직을 출시했다. 이 언어는 기본적인 2D 그래픽 및 오디오 작업을 수행하기 위한 내장 API를 포함했다. 블리츠3D 출시 이후 블리츠베이직은 종종 블리츠2D와 동의어로 언급된다. 블리츠베이직의 인지도는 PC 포맷과 같은 인기 있는 영국 컴퓨터 잡지에 "무료" 버전이 제한적으로 배포되면서 높아졌다. 이로 인해 개발자와 퍼블리셔 간에 법적 분쟁이 발생했지만, 결국 원만하게 해결되었다.
## 블리츠플러스
2003년 2월, 블리츠 리서치(Blitz Research Ltd.)는 윈도우용 블리츠플러스를 출시했다. 블리츠3D의 3D 엔진은 없었지만, 네이티브 GUI 생성을 위한 제한적인 윈도우 제어 지원을 구현하여 언어의 2D 측면에 새로운 기능을 제공했다. 2D 엔진의 하위 호환성도 확장되어 컴파일된 블리츠플러스 게임 및 응용 프로그램이 DirectX 1만 지원하는 시스템에서도 실행될 수 있었다.
## 블리츠맥스
operating_system = 윈도우, Mac OS X, 리눅스 최초의 블리츠맥스 컴파일러는 2004년 12월 Mac OS X용으로 출시되었다. 이로써 *nix 플랫폼에서 컴파일될 수 있는 최초의 블리츠 방언이 되었다. 마이크로소프트 윈도우 및 리눅스용 컴파일러는 2005년 5월에 출시되었다. 블리츠맥스는 객체 지향 개념을 포함하도록 타입 시스템을 확장하고 OpenGL에 더 적합하도록 그래픽 API를 수정함으로써 현대 블리츠 제품군에 가장 큰 언어 구조 변화를 가져왔다. 블리츠맥스는 또한 ASCII가 아닌 문자로 구성된 문자열 리터럴에 대한 네이티브 지원을 허용하는 UCS-2를 사용하여 내부적으로 문자열을 표현하는 최초의 블리츠 언어였다. 블리츠맥스의 플랫폼 독립적인 명령 집합은 개발자가 여러 플랫폼에서 소스 코드를 컴파일하고 실행할 수 있도록 한다. 그러나 공식 컴파일러 및 빌드 체인은 실행 중인 플랫폼용 바이너리만 생성한다. 비공식적으로 사용자는 리눅스와 Mac OS X에서 윈도우 플랫폼으로 크로스 컴파일할 수 있었다. 블리츠맥스는 또한 블리츠 언어의 최초 모듈형 버전으로, 명령 집합의 확장성을 향상시킨다. 또한 컴파일러와 함께 제공되는 모든 표준 모듈은 오픈 소스이므로 필요한 경우 프로그래머가 수정하고 다시 컴파일할 수 있다. 공식 블리츠맥스 크로스 플랫폼 GUI 모듈(MaxGUI로 알려짐)은 개발자가 리눅스(FLTK), Mac(코코아), 윈도우에서 응용 프로그램용 GUI 인터페이스를 작성할 수 있도록 한다. 다양한 사용자 기여 모듈은 WxWidgets, 카이로, Fontconfig와 같은 라이브러리 및 다양한 데이터베이스 모듈을 래핑하여 언어의 사용을 확장한다. MiniB3Ddf=dmy-all – 블리츠맥스에서 지원하는 세 가지 플랫폼 모두에서 컴파일 및 사용할 수 있는 오픈 소스 OpenGL 엔진을 비롯한 여러 타사 3D 모듈도 제공된다. 2007년 10월, 성찰 모듈이 추가된 블리츠맥스 1.26이 출시되었다.df=dmy-all 블리츠맥스 1.32에는 새로운 스레딩 및 루아 스크립팅 모듈이 포함되었으며, 대부분의 표준 라이브러리 함수가 유니코드 친화적으로 업데이트되었다.BlitzMax V132 for Windows and MacIntel now up! date=26 May 2011 on blitzbasic.com
## 블리츠3D SDK
블리츠3D SDK는 블리츠3D 엔진을 기반으로 한 3D 그래픽 엔진이다. C++, C 샤프, 블리츠맥스, 퓨어베이직과 함께 사용하도록 판매되었지만, 호환 가능한 호출 규약을 따르는 다른 언어와도 사용할 수 있었다.
## Max3D 모듈
2008년에 C++ 기반 크로스 플랫폼 3D 엔진인 Max3D의 소스 코드가 BSD 라이선스로 공개되었다. 이 엔진은 OpenGL에 중점을 두었지만 다른 그래픽 드라이버(예: DirectX)를 위한 추상화된 백엔드를 가졌고, Assimp, Boost, ODE와 같은 여러 오픈 소스 라이브러리를 사용했다. 블리츠 커뮤니티에서 Max3D가 블리츠3D의 오랫동안 기다려온 후속작이라는 기대에도 불구하고, 소스 코드 출시 직후 관심과 지원이 사라졌고 결국 개발은 중단되었다. 블리츠 리서치에서 이 프로젝트를 다시 시작할 것이라는 징후는 없다.
## 오픈 소스 출시
블리츠플러스는 2014년 4월 28일 깃허브에 오픈 소스로 Zlib 라이선스하에 공개되었다.BlitzPlus Source Code Released date=16 July 2016 by simonh (2014-04-29)Blitz3D open sourced! date=6 September 2016 on Blitz3D Forums by (2014) 블리츠3D도 곧이어 2014년 8월 3일 오픈 소스 소프트웨어로 공개되었다.Blitz3D Now Free and Open Source! date=16 July 2016 by simonh (2014-08-03)blitz3d on GitHub 블리츠맥스는 2015년 9월 21일 오픈 소스 소프트웨어로 출시되었다.blitzmax on GitHub
# 평가
블리츠 베이직 2.1은 아미가 잡지로부터 좋은 평가를 받았다. CU 아미가는 AMOS Basic과 달리 AmigaOS 호환 응용 프로그램과 게임을 만들 수 있는 능력을 강조했으며pages=69–70, 아미가 쇼퍼는 강력한 프로그래밍 언어라고 불렀다.page=41
# 예시
화면에 출력하고, 키가 눌릴 때까지 기다린 다음 종료하는 Hello, World! 프로그램: 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. 현재 시간을 이진 및 십진 형식으로 표시하는 창 응용 프로그램을 생성하는 프로그램. 블리츠맥스 및 블리츠베이직 버전은 아래를 참조하십시오: {| class="wikitable nowrap" ! BlitzBasic version ! BlitzMax version |-| 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= 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 |}
# 블리츠베이직으로 작성된 소프트웨어
* Eschalon: Book I – BlitzMax * Eschalon: Book II – BlitzMax * Fairway Solitaire – BlitzMax * GridWars – BlitzMax *TVTower (MadTV의 오픈 소스 클론) – BlitzMax * 플래티퍼스 – Blitz2D (Mac 포트, BlitzMax) * SCP - Containment Breach – Blitz3D * 웜즈 – 원래 "Total Wormage"라는 제목으로 상업 출시 전 아미가에서 블리츠 베이직으로 개발됨IGN. Worms Blast Preview date=18 February 2007 on ign.com
# 유산
2011년에 BRL은 Monkey라는 크로스 플랫폼 프로그래밍 언어와 Mojo라는 첫 공식 모듈을 출시했다. Monkey는 BlitzMax와 유사한 구문을 가지고 있지만, 어셈블리 코드로 직접 컴파일하는 대신 Monkey 소스 파일을 선택한 언어, 프레임워크 또는 플랫폼(예: 윈도우, Mac OS X, IOS, 안드로이드, HTML5, 어도비 플래시)용 소스 코드로 직접 변환한다. 2015년부터 Monkey X의 개발은 마크 시블리가 언어의 업데이트 버전인 Monkey 2를 선호하여 중단되었다. 블리츠 베이직의 개발자인 마크 시블리는 2024년 12월 초에 사망했다.website=r/amigaaccess-date=24 March 2025
# 더 읽을거리
*NRS Developer Book for Blitz Basic, 1997. NRS Developer Book Vol I - Book Cover 사진