ブリッツベーシック

ブリッツベーシック
開発者ブリッツリサーチ
オペレーティングシステムアミーガOSマイクロソフトウィンドウズ
利用可能な言語英語
タイプゲーム制作システム
ライセンスzlibライセンス
ウェブblitzresearch .itch .io

Blitz BASICは、ニュージーランドを拠点とする開発者マーク・シブリーによって考案された最初のBlitz [ 1 ]コンパイラのプログラミング言語方言です。BASICから派生したBlitzの構文は、プログラミングを初めて学ぶ初心者でも簡単に習得できるように設計されています。この言語はゲームプログラミング指向ですが、ほとんどの種類のアプリケーションに使用できるほど汎用性があります。Blitz言語は新製品のリリースに合わせて進化し、最近のバージョンではオブジェクト指向マルチスレッドなどのより高度なプログラミング手法をサポートしています。そのため、後年、この言語はBASICという名称を失いました。[ 2 ]

歴史

Blitz言語の最初のバージョンはAmigaプラットフォーム用に作成され、オーストラリアのMemory and Storage Technology社によって公開されました。ニュージーランドに戻ると、Blitz BASIC 2は数年後(このプレスリリース[ 3 ]によると1993年頃)、地元のAmigaゲームパブリッシャーであるAcid Software社によって公開されました。それ以来、Blitzコンパイラは複数のプラットフォーム向けにリリースされてきました。Amigaが商業的に実行可能なプラットフォームとしての地位を失ってから、Blitz BASIC 2のソースコードがAmigaコミュニティに公開されました。開発は今日までAmiBlitzという名前で続けられています。[ 4 ]

BlitzBasic

Idigiconは2000年10月にMicrosoft Windows向けにブリッツベーシックをリリースしました。この言語には、基本的な2Dグラフィックスとオーディオ操作を実行するための組み込みAPIが含まれていました。ブリッツ3Dのリリース以降、ブリッツベーシックはブリッツ2Dと同義語として呼ばれることが多くなりました

BlitzBasicの認知度は、 PC Formatなどの英国の人気コンピュータ雑誌で限定的な「無料」版が配布されたことで高まりました。このことが開発者と出版社の間で法廷闘争に発展しましたが、最終的には和解に至りました。

ブリッツプラス

2003年2月、Blitz Research Ltd.はWindows向けにもブリッツプラスをリリースしました。Blitz3Dの3Dエンジンは搭載されていませんでしたが、ネイティブGUIを作成するための限定的なWindowsコントロールサポートを実装することで、言語の2D側に新しい機能をもたらしました。2Dエンジンの下位互換性も拡張され、コンパイルされたブリッツプラスのゲームやアプリケーションは、 DirectX 1 しか搭載されていないシステムでも実行できるようになりました

ブリッツマックス

ブリッツマックス
パラダイム命令型オブジェクト指向モジュール型リフレクティブ
デザイン:マーク・シブリー
開発者ブリッツリサーチ
初登場2004年
最終リリース
1.51 / 2015年9月21日 (2015年9月21日
タイピングの規律静的(任意)
OSWindowsMac OS XLinux
ウェブ www.blitzbasic.com
方言
公式BlitzMax、BMX-NG
影響を受けた
BlitzBasic
影響を受けた
モンキー

最初のBlitzMaxコンパイラは2004年12月にMac OS X向けにリリースされました。これにより、*nixプラットフォームでコンパイルできる最初のBlitz方言となりました。その後、Microsoft WindowsとLinux向けのコンパイラが2005年5月にリリースされました。BlitzMaxは、型システムを拡張してオブジェクト指向の概念を取り入れ、グラフィックスAPIをOpenGLにより適合するように変更することで、Blitz製品の最新の範囲に言語構造の最大の変更をもたらしました。BlitzMaxはまた、Blitz言語の中で初めてUCS-2を使用して内部的に文字列を表現し、非ASCII文字 で構成された文字列リテラルのネイティブサポートを可能にしました

BlitzMaxのプラットフォーム非依存のコマンドセットにより、開発者は複数のプラットフォームでソースコードをコンパイル・実行できます。ただし、公式のコンパイラとビルドチェーンは、実行しているプラ​​ットフォーム用のバイナリのみを生成します。非公式ではありますが、ユーザーはLinuxとMac OS XからWindowsプラットフォームへのクロスコンパイルを実現しています。

BlitzMaxはBlitz言語の最初のモジュールバージョンでもあり、コマンドセットの拡張性を改善しています。さらに、コンパイラに同梱されている標準モジュールはすべてオープンソースなので、必要に応じてプログラマが調整し、再コンパイルすることができます。公式のBlitzMaxクロスプラットフォームGUIモジュール(MaxGUIとして知られています)を使用すると、開発者はLinux( FLTK)、Mac(Cocoa )、Windows上のアプリケーション用のGUIインターフェイスを作成できます。さまざまなユーザー提供モジュールは、 wxWidgetsCairoFontconfigなどのライブラリやデータベースモジュールをラップすることにより、言語の使用を拡張します。サードパーティ製の3Dモジュールもいくつかあり具体的にはオープンソースのOpenGLエンジン、BlitzMaxがサポートする3つのプラットフォームすべてでコンパイルして使用することができます。

2007年10月には、リフレクションモジュールの追加を含むBlitzMax 1.26がリリースされました。[ 6 ] BlitzMax 1.32では、新しいスレッドLuaスクリプトモジュールが出荷され、標準ライブラリ関数のほとんどがUnicode対応になるように更新されました。[ 7 ]

Blitz3D SDK

Blitz3D SDKは、Blitz3Dのエンジンをベースにした3Dグラフィックエンジンです。C ++C#、BlitzMax、PureBasicでの使用を想定して販売されていますが、互換性のある呼び出し規約に従う他の言語でも使用できます

Max3Dモジュール

2008年、C++ベースのクロスプラットフォーム3DエンジンであるMax3DのソースコードがBSDライセンスの下でリリースされました。このエンジンはOpenGLに重点を置いていましたが、他のグラフィックドライバ(DirectXなど)用の抽象バックエンドを備えており、 AssimpBoostODEといったオープンソースライブラリをいくつか利用していました

Blitzコミュニティでは、Max3DがBlitz3Dの後継として待望されていたことに大きな期待が寄せられていましたが、ソースコードが公開されるとすぐに関心と支持は薄れ、最終的に開発は停止しました。Blitz Researchがこのプロジェクトを再開する兆候は見られません。

オープンソースリリース

BlitzPlusは2014年4月28日にGitHubzlibライセンスの下でオープンソースとしてリリースされました。[ 8 ] [ 9 ] Blitz3Dはその後すぐに続き、2014年8月3日にオープンソースソフトウェアとしてリリースされました。[ 10 ] [ 11 ] BlitzMaxはその後、2015年9月21日にオープンソースソフトウェアとしてリリースされました。[ 12 ]

受容

Blitz Basic 2.1はAmiga誌で好評を博しました。CU AmigaはAmigaOS準拠のアプリケーションやゲームを作成できる機能( AMOS Basicとは異なり)を強調し[ 13 ]Amiga Shopperはそれを強力なプログラミング言語と呼びました[ 14 ]

画面に出力し、キーが押されるまで待機し、その後終了する「Hello, World!」プログラム

Print "Hello, World!" ; 画面に出力します。WaitKey () ; キーが押されるまで実行を一時停止します。End ; プログラム終了します。

3 つの主なデータ型 (文字列整数浮動小数点数)を使用して変数を宣言し、それを画面に印刷する方法を示すプログラム:

name $ = "John" ; 文字列変数 ($) を作成しますage = 36 ; 整数変数 (接尾辞なし) を作成しますtemperature # = 27.3 ; 浮動小数点変数 (#) を作成しますprint "私の名前は " + name $ + " で、 " + age + " 歳です。" print "今日の気温は " + temperature # + " 度です。"Waitkey () ; キーが押されるまで実行を一時停止します。End ; プログラムを終了します。

現在の時刻を2進数と10進数で表示するウィンドウアプリケーションを作成するプログラムです。BlitzMax版とBlitzBasic版については以下をご覧ください。

BlitzBasic版 BlitzMax版
アプリタイトル「バイナリクロック」グラフィック150 , 80 , 16 , 3メインループ1 秒間に 2 回実行されるタイマーを作成します。secondtimer = CreateTimer ( 2 ) Repeat Hour = Left ( CurrentTime $ (), 2 ) Minute = Mid ( CurrentTime $ (), 4 , 2 ) Second = Right ( CurrentTime $ (), 2 )時間>= 12の場合PM = 1、時間> 12場合、時間=時間- 12 、時間= 0の場合時間= 12;そうしないと、時計が真夜中を過ぎるとPM のドットが立ったままになってしまいます。ClsColor ( 0 , 255 , 0 ) ; PM 部分のテキストを緑色にするIf PM = 1 Then Text 5 , 5 , "PM" ; 残りの部分のテキストの色を白に戻すColor ( 255 , 255 , 255 )bit = 0から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;分を実行します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 );0.5秒待機しますWaitTimer ( secondTimer )永遠に
BRL.TimerをインポートBRL.Timerをインポート デフォルトのAppTitle = "Binary Clock"グラフィックス145 , 85メインループが1秒間に2回実行されるタイマーを作成します。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繰り返し= CurrentTime ()[. .2 ] . ToInt ()= CurrentTime ()[ 4 . .6 ] . ToInt ()= CurrentTime ()[ 6 . . ] . ToInt ()時間>= 12の場合PM = 1、時間> 12場合、時間=時間- 12 、時間= 0の場合時間= 12'そうしないと、時計が真夜中を過ぎるとPMドットが'左に残ってしまいます! ClsSetColor ( 0 , 255 , 0 ) 'PM部分のテキストを緑色にするIf PM = 1 Then DrawText "PM" , 5 , 5 'テキストの色を白に戻す 残りについてはSetColor ( 255 , 255 , 255 )bit = 0から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'分を実行しますIf ( minute & binaryMask ) 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 )フリップ0.5秒待ちます。WaitTimer ( secondTimer ) KeyHit ( KEY_ESCAPE ) そしてExit Forever

BlitzBasicを使用して書かれたソフトウェア

レガシー

2011年、BRLはクロスプラットフォームプログラミング言語Monkeyと、その最初の公式モジュールMojoをリリースしました。MonkeyはBlitzMaxと同様の構文を持っていますが、アセンブリコードに直接コンパイルするのではなく、Monkeyのソースファイルを選択した言語、フレームワーク、またはプラットフォーム(Windows、Mac OS XiOS、Android、HTML5Adobe Flashなど) のソースコードに直接変換します

2015 年以降、Monkey X の開発は中止され、代わりに Mark Sibly による言語の更新バージョンである Monkey 2 が採用されました。

Blitz BASICの開発者マーク・シブリーは2024年12月初旬に亡くなった。[ 16 ] [ 17 ]

参考文献

  1. ^ 「 Blitz 」という言葉はドイツ語で「稲妻」を意味します
  2. ^ 「The Official Blitz Website」 . blitzresearch.itch.io/ . 2017年6月3日時点のオリジナルよりアーカイブ。
  3. ^ “Blitz Basic 2” . AmigaReport . 2022年3月31日時点のオリジナルよりアーカイブ。 2020年4月30日閲覧
  4. ^ 「AmiBlitz」 . GitHub .
  5. ^ "Blitz News" . www.blitzbasic.com . 2008年1月26日時点のオリジナルよりアーカイブ2007年12月12日閲覧。
  6. ^ “BlitzMaxアップデート1.26が利用可能になりました!” www.blitzbasic.com . 2011年5月26日時点のオリジナルよりアーカイブ2011年1月11日閲覧。
  7. ^ BlitzMax V132 Windows版とMacIntel版がリリース! 2011年5月26日アーカイブ、 Wayback Machine blitzbasic.com
  8. ^ BlitzPlusのソースコードが公開されました。 2016年7月16日にWayback Machineでsimonhによってアーカイブされました(2014年4月29日)
  9. ^ Blitz3Dがオープンソース化! 2014年9月6日アーカイブ、Blitz3DフォーラムのWayback Machineより
  10. ^ Blitz3Dが無料オープンソースに!2016年7月16日アーカイブby simonh (2014-08-03)
  11. ^ GitHubのblitz3d
  12. ^ GitHubのblitzmax
  13. ^マット・ベティンソン (1996 年 3 月)。 「ブリッツベーシック2.1」。CUアミーガ。 No. 73. EMAP 画像。ページ 69–70。ISSN 0963-0090 
  14. ^オーヴァー、ポール (1996 年 4 月)。 「ブリッツベーシック2.1」。アミーガショッパー。 No.61.未来出版。 p. 41. ISSN 0961-7302 
  15. ^ IGN. Worms Blast プレビューArchived 18 February 2007 at the Wayback Machine on ign.com
  16. ^ GCRedditor136 (2024年12月12日). 「BlitzBasicの作者、マーク・シブリー氏が亡くなりました :(」 . r/amiga . 2025年3月24日閲覧{{cite web}}: CS1 maint: 数値名: 著者リスト (リンク)
  17. ^ 「マーク・シブリー(ブリッツ・ベーシック)が逝去」 Amiga-News.de、2024年12月14日。 2025年3月24日閲覧

さらに詳しい情報

  • NRS開発者ブック(Blitz Basic用、1997年)
NRS開発者ブック 第1巻 - 表紙の写真
NRS開発者ブック 第1巻 - 表紙の写真