概要
マルチプラットフォームのゲーム製作用ライブラリ。
外国ではSDLと並んで有名らしいが、日本ではあまり普及していない。
公式HP (英語)
公式HP (翻訳)
公式HP(韓国語→日本語訳)。韓国語→日本語は、機械翻訳でも結構自然に読めます。
このwikiにあるAllegro情報
関連サイト
Wiki(英語)
まとめサイト (英語)
各種ライブラリ紹介スレ
panyara のホームページ
Allegroクイックリファレンス
BCCを使用することを想定したAllegro インストールメモ
先ず、公式サイトからall403.zipを取ってくる。
ついでにpanyara氏のページでも書いてあるがmingw32版makeが必要になる。
うpしたいが法的にいいのかよくわからんのでしない。
panyara氏のページから拾ってくれ。
で、all403.zipを解凍し、その解凍してできたディレクトリの中に
mingw32版makeのexeファイルを入れる。
で、ちまちまとバッチファイルを書いて実行。以下のようにすればたぶんOK。
set BCC32DIR=c:\borland\bcc55 fix.bat bcc32 mingw32-make.exe
ちなみにオレの場合BCC同梱のOBJファイルを要求されたため適宜
mingw32版makeを入れたディレクトリん中にOBJファイルをコピーした。
ま、がんばれ。一旦インストールしたら後は超絶的にラクだ。
以下、動作確認用プログラム。注意するとこは、 Windows Applicationとしてビルドするとこ。
#include <allegro.h>
int main( void )
{
allegro_init();
allegro_message("Hello, World!");
return 0;
}
END_OF_MAIN();
VC.NET2003でビルド&インストール
こっち。./VCでインストール?
メモ
DOS, UNIX(Linux, FreeBSD, Irix, Solaris),Windows, BeOS, MacOS, QNX で使えるゲーム用ライブラリ。 SDLに比べ影が薄いが、GPLより自由度の高いライセンスと、オールインワン設計が強み。
フレームワークっぽいのは、導入に気合いがいるから・・・SDLにしろ。
マルチプラットホームなゲーム用ライブラリ(既出)と、 UTF-8/16で日本語TTFが使えるようになる拡張ライブラリ。 ライクなライセンスであるため、SDLより自由度が高くてイイ! 日本じゃ全然流行ってないのが不思議でならない。 米YahooじゃSDLと並んでカテゴリ化されてる位なのに…。
AllegroはSDLとともに外国では有名なんですが、 名前も出てきませんね。今ググッたら、開発環境構築の サイトまで一つも出てこない。。。ていうかAllegroで 開発してる人、いる?
以前触ってはみたよ。 Allegroは最初のインスコと環境構築が他エンジンに比較すると、 ちょっと面倒なのが欠点だわな。 最初のサンプルを動かすまでに手がかかるので、 SDLでいいやマンドクセと思った人も少なくないんじゃないかと。
Allegro使ってみた。 インスコはそんなに時間かからない。使用感はmainの最後に打つおまじないがちょっと 違和感ある。 日本語の紹介サイトがなかなか無い。けど、付属の豊富なサンプルで大体の仕組みは理 解できる。 速度的にも問題無いと思う。けど、大域変数が比較的よくある単語が使われてたり。 (screenとか) スクリーンデバイス列挙の時、指定したモードで現在のディスプレイのリフレッシュレ ート+1になってしまう場合もあるな
AllegroはVC++で導入する方がgcc系で導入するより敷居が高いという、 わりと珍しいライブラリよね。 予備知識なしでソースだけ落としてきてさあ構築するぞと思うと、 djgppやらgnumakeから要求されて面食らうし。 (コンパイル済ライブラリを別途落としてくれば問題なす) 最初にHello Worldをコンパイルするまでの手順が、 DXやらあのへんに比べて手取り足取りというわけじゃないので、 (OS非依存なのでパターンが多すぎ対応できないわけだが) 国産入門系ライブラリより一段大人向けなのは確かだと思われ。 ライセンスがGPL系じゃないのでスタティックリンクしても安心、 というのもポイント高い人はいるやろなあと。 alfont使えばアンチエイリアス付き日本語文字列が使えて、 かつ簡単な3D対応というライブラリって意外と少ないので、 (国産だとDXは3Dが無理、Lunaはアンチエイリアスが無理) DXを卒業したらAllegro、というのはありかもしれなひ。
漏れもDXで物足りなくなったからAllegro始めてる。 DXはシンプルで良いんだけど、ファイルサイズがreleaseでも結構デカイ。でかくてダメって事は無いんだけど allegroだとDLL使用なら実行形式は結構小さくなっていいな。 静的リンクでもサイズはほとんど気にしなくていいし。
>AllegroはVC++で導入する方がgcc系で導入するより敷居が高いとい そうだなー俺はVC++ですがMinGW導入とかはインストーラに任せるとか、PATH確認すればよかったけど、 やっぱGNU準拠のWIN32用ツールが面倒だった。根っからのDos&WinユーザだったからGNU準拠ツールなぞ知らんと言い切ってたので winのmakeで何が文句あるんだっって思ってた。 因みにGNU準拠ツールWin32版を配布しているページ http://sourceforge.net/projects/gnuwin32/ 忘れそうなのでAllegroコンパイル時覚書ちょっとだけ。うまくできない人は「参考」にしてください。 MSVCでfixかます時、utod(Unix to DOS) が無いとか言われるけど無視していいです。 MSVCDIRはダミーフォルダ作って指定しても可。コンパイル終了時にVCフォルダの中に includeとlibフォルダ入れればよし。 Allegroコンパイルしててnot found&error云々言われる時はmakefileとか疑うより コンパイルに使われているmakeとかcatとかのツールをGNU準拠にしてみるといいかもね。 またツール入っているフォルダにPATH通すこと忘れないように。 途中でどうしてもコンパイル止まるときは直前のコマンドを「手作業」かcmd使ってる人は「コピペ」かましてみる。 通ったら再びmakeで無問題なはず。
DXからのAllegro乗り換え組にひとつだけ余計なお世話を一発。 (Allegroに限らず、海外系lib全般に言えるのだけど)
「日本語の『入力』には気をつけろ」 IME経由での入力はサポートしてないライブラリも多いぞ。 (特にAllegroは日本語入力自体ありえないOSもサポートしてるからな) アクションゲームとかなら問題ないだろうけど、RPGやらADVやら作るとき要注意。 家庭用ゲーム機みたく、専用ウィンドウによる名前入力やら必要になるぞ。
mingw+Allegroで開発しようとしてたら、、、 mingwの問題なんだろうけど、コメント内に日本語があると ダメみたいで、正常にコンパイルできないことが。 やる気無くなってそのまんまになってました。 もしかしたら今は解決されているかも知れませんが。 allegro+vcでコンパイルしようと、vc用パッケージを解凍してinstall.bat すると、windows\systemにdllを転送、vc++のディレクトリに.hを転送。 まあ、名前や日付からして、一見してallegroのファイルだと分かるので 混ざってしまうことはありませんが。 install.batより、vc++のオプションでライブラリのパスを展開した ディレトリに指定した方がよかったです。irrichtのインスト方法を見て 分かりました。 そのあと、サンプルをコンパイルしようとしたのですが、vc用の パッケージなのにプロジェクトのファイルが無く、自分で作った プロジェクトでは上手くコンパイルできませんでした…??? 何かの設定が違っているのでしょうが、お手上げ。 しかたなくフリーでソース付きで公開してあるゲームを探して コンパイルできることを確認。プロジェクトもそれを改造して これからも使うしか無いのでしょうか??? レベルの高い人にAllegro解説頁を作ってもらいたいです…。
VC++のプロジェクトの設定は以下を参照 http://www.allegro.cc/docs/windows-msvc-use.html 詳しくは無いですが手助けできるかな? 以下上記リンクより要約しとく。最適化したライブラリで動的リンクで実行形式生成する場合です。
1、新規プロジェクトはWin32Appで。 2、[プロジェクト]->[設定]->[リンク]タブ->オブジェクトライブラリモジュールにalleg.libを行末に追加。 3、同じく[C/C++]タブ->カテゴリより、[コード生成]->[使用するランタイムライブラリ]->[マルチスレッドDLL]を選択
以上上記URLより。間違ってる可能性もあるので注意。 debugで生成する時とreleaseのlibファイルが違う事に注意。 VCのフォルダのinclude中のallegroフォルダにinlineフォルダ入ってるか確認。 これでうまくいくはず。 静的リンクしたいなら、allegro.hを#includeする前に #define ALLEGRO_STATICLINK 1 を忘れずに。これは各モジュールで分割コンパイル時にallegro.h取り込んでるなら同じようにする。 dynamicかstaticどっちで生成するかわからんちんな時は#ifdef使ってあとでラベル使えばいいかも。
補足: 当然ながら、静的リンク時のライブラリは別物。 作り分けはツール->構成で「追加」して、新しい構成を設定するのがベストです。
SDLとAllegroの比較。SDL-Allegroの順で。訂正熱烈歓迎。
*Licence* SDL LGPL http://pc5.2ch.net/test/read.cgi/unix/1032702590/129 ライブラリ部分の「自由」さえ保証すれば販売も改変も問題ない。 * 改変分を含むライブラリのソースを提供する。(LGPLの第4節) * static linkの場合にはアプリケーション部分のオブジェクトを提供 するかdynamic linkにしてライブラリ部分の差し替えを可能にする。 (LGPLの第6節) Allegro Gift-ware 改変/商用利用になーんにも制限無し(たぶん)
*Basic* mouse/keybord/joystick/timer ○ ○ Unicodeサポート ○ ○ スレッド ○ × 日本語表示 × ○unifont 日本語表示(with freetype) SDL_ttf AllegroFont(注1) 日本語入力 △(注2) × (注1)SDL_ttfのTTF_OpenFontIndex()に相当するものが無い。 (注2)SDLSKK/SDL-IMパッチ等
*Drawing* Blitとか ○ ○ drawing primitives SDL_gfx ○ 回転 SDL_gfx ○ rotozoom SDL_gfx ○ ポリゴン SGE ○ コンパイル済みスプライト × ○ テキスト描画 SDL_ttf/SGE ○
*Grapchics* BMP ○ ○ PCX SDL_image ○ JPEG SDL_image libjpeg(allegro.cc) PNG SDL_image libpng(allegro.cc) TGA SDL_image ○ FLIC × ○
*Sound* CD ○ × WAV ○ ○ MIDI SDL_mixer ○ MP3 SDL_mixer AllegroMP3 OGG SDL_mixer AllegroOGG 録音 × ○
*Utility* 設定ファイルRW × ○ データファイル固め SDL_archive ○ バイナリpack/unpack × ○ 3D数学関数 × ○ GUI × △汚い
*OS* UNIX/Linux ◎ ○ DOS × ○ MacOS ○ △現状では。 Win32 ○ ○ BeOS ○ ○
コメント
だいぶ前にAllegroを使って同人ゲームを作っていたページを発見したのだが、いつの間にか消えていた -- 2004-11-06 (土) 10:30:25