トップページgamedev
987コメント396KB

SDLスレ

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin01/11/11 17:59ID:u0HMN7qC
マルチプラットホームな汎用ゲームライブラリの
SDLについてのスレッドです。
最新情報、参考になるソース、質問等

とりあえず、本山
http://www.libsdl.org/
0083名前は開発中のものです。02/03/18 08:48ID:5Rsci23c
age
0084taku02/03/18 13:52ID:???
ゲーム制作初心者が集まって、ゲーム制作をしたいと思ってます。
ゲーム作りに興味がある人は、メールをください♪
思っているだけで、まったくゲーム制作をしたことがない人でも結構です♪
とりあえず、私も少しは、やっていますが、初心者なので、みんなで勉強をしながらゲームを作っていきたいと思ってます♪
基本的に、web上でやる、フリーゲームで、ジャンルとしては、RPGを考えています。(いろいろなジャンルも作ろうと考えていますが・・・)
それでは、とりあえず、メールをください♪
0085名前は開発中のものです。02/03/19 14:38ID:???
Web上でやるゲ−ムなのにSDLつかうのか?
0086名前は開発中のものです。02/04/14 11:55ID:lp2DMwsU
age
0087名前は開発中のものです。02/04/14 11:56ID:lp2DMwsU
使ってる人いないのかー?
0088名前は開発中のものです。02/04/15 02:17ID:???
居るよ!!

安心したかい?
0089名前は開発中のものです。02/04/15 22:40ID:???
スマソ。漏れソースをGPLにしたくないからAllegroを研究中。
00908702/04/17 01:40ID:B2sY58og
>>88さんだけかよっ!

ちょっと覚えるために弄ってたら、
簡単にMODが再生出来てかなり感動したんだけど、
みんなは、これに魅力を感じないのかな?
0091名前は開発中のものです。02/04/17 09:04ID:JVlCUCtA
>>90
お気楽だよね、SDL。
英語読むのたるいから、LinuxJapanの連載で情報収集してるけど、
周辺ライブラリも含めると、ほんと、楽。
Win用のソースをちょこっといじってLinuxで動いたときは
正直感動した。

>>89
SDLはLGPLだから、自分のソースをGPLにする必要ねーだろ。
DLLつかうか、リンク前のオブジェクトを一緒に配ればOKだ。
0092MLをRomってる七資産02/04/17 11:09ID:???
>>90
ライセンスの問題が把握できず躊躇している人が多いと思われ。
漏れもその一人だが。

>>91
SDL-MLの有志の方々がdocのja化を進めてます。

最近、SDLでデモ作るコーダーも少なからずいますね。
それらのアーカイブには、ソースついてないから、ソースはつけなくて・・・いいのかな?
0093名前は開発中のものです。02/04/17 18:44ID:???
でもパフォーマンス的にまだAllegroのほうが優れてんだよな、周辺ライブラリも・・・。所詮WINAPIもどき。
0094名前は開発中のものです。02/04/17 19:30ID:???
Allegroは日本語リソースが少ないのがアレなのかも。
00958902/04/17 23:55ID:???
ちうかAllegroはフォントが独自形式なのが最大のネック。
RPG等の文字情報の多いゲームが作りづらいっつーか作れん。
AllegroでTTFを扱う為のライブラリがあったはずなんだが、
今は影も形も無い…
0096名前は開発中のものです。02/04/18 06:46ID:???
1.2.4 stable released
0097名前は開発中のものです。02/04/19 14:03ID:???
Allegroの作者はコンシューマ系の人のようですね。
(ライブラリの設計見ただけで分かるけど(ワラ)
その辺の好みで使い分けるのもいいかも風来のシレン。
0098名前は開発中のものです。02/04/24 06:39ID:es9pDMEY
SDL はシンプルなのがいい。
Allegro はゴテゴテしすぎ。
0099名前は開発中のものです。02/04/24 13:35ID:???
えー、俺はAllegroのほうがシンプルだと思うにょ。
0100名前は開発中のものです。02/04/24 21:51ID:???
SDL日本語リファレンスおつかれage
http://www.ya.sakura.ne.jp/~logion/SDLdoc-jp/
http://slashdot.jp/article.pl?sid=02/04/23/1458249&mode=thread
0101名前は開発中のものです。02/04/27 10:11ID:???
SDLのどこがシンプルなんだよ・・・(w
0102名前は開発中のものです。02/05/01 14:49ID:???
>>101
サウンドの再生。つーか、シンプルすぎてSDL_mixer使わんと、ちょっと...
0103名前は開発中のものです。02/05/02 03:43ID:sX.bsevc
Allegroはグラフィックの描画では
スプライン曲線、ポリゴン、スプライト、テキスト描画といったもの、
サウンドではネイティヴでのMIDI再生だとか、
場合によっては余分な機能が含まれている。

SDLではグラフィックの描画はFillとBlitのみ。
サウンドはPCMを垂れ流すだけ、みたいな。
これはシンプルだと思うけどなー。

ま、なんでも自分でやりたい俺みたいのは SDL が好きだ、
という話。

ライブラリ内部の話となると、SDL もシンプルじゃないけどね。
0104名前は開発中のものです。02/05/02 03:45ID:???
ま、結局SDL_mixerやSDL_imageは使ってるけどね。
こういうのが分離出来るようになっているほうが落ち着く。
0105名前は開発中のものです。02/05/02 09:20ID:???
>>101
DirectXと比較して(w
初代Direct3Dの初期化書いてみな。ゲイツ殺したくなるから。
0106名前は開発中のものです。02/05/02 11:30ID:???
>>105
書いたことあるけど、別に。
0107名前は開発中のものです。02/05/02 12:29ID:???
微妙にほほえましいやり取りしてるな、キミら。
0108名前は開発中のものです。02/05/02 18:18ID:???
>>106
俺は二度と書きたくない。
何をどう初期化したのか後から見ても理解できんし。
初期化ごときに時間かけるのもアホらしい。
0109名前は開発中のものです。02/05/02 18:47ID:???
まあ、いまさら文句言うなや。マイクロソフトがCOMに狂ってた頃の遺産だからしょうがない。
0110名前は開発中のものです。02/05/02 23:06ID:???
SDLの魅力って何ですか?
0111名前は開発中のものです。02/05/03 00:49ID:???
>>103
別にAllegroでもFillとBlitのみ利用して、
スプラインとかポリゴンは自分でってのは可能だと思うが。
ライブラリに余分なバイナリが含まれているからって、
実行形式ファイルも太るわけではないし。

むしろSDLのように複数のライブラリを組合わせて使うという方式は、
無駄(コードの重複)が生じやすい。
0112名前は開発中のものです。02/05/03 11:52ID:QXZFUo7o
気分の問題です。
0113名前は開発中のものです。02/05/03 18:22ID:P7bmG2Tg
SDL初心者です.

mingwを使っています.

実行ファイルが
SDL.dllを必要としないように
コンパイルすることは可能ですか?
0114名前は開発中のものです。02/05/04 01:19ID:???
ソースを公開せずにスタティックリンク?
それはライセンス違反ですにょ。>>113
SDLはLGPLなのでソースを公開する、しないにかかわらず
DLLリンクで十分なはずです。
0115名前は開発中のものです。02/05/04 02:46ID:IDR1uRSY
>>114
LGPLの勉強します
011611302/05/04 02:50ID:IDR1uRSY
あともうひとつ質問したいのです

mingwでリソースもコンパイルして
exeにいれますよね?
SDLのAPIみたら
画像の読み込みは
fileポインタ渡してたみたいなんです

これはどういうことなんですか?

あとexeに画像ファイルを埋め込むプログラムは
Linuxに移植は容易にできるのでしょうか?
0117名前は開発中のものです。02/05/04 06:19ID:???
おいらはソース出してもらわないとよくわからないけど
実行ファイルに絵のファイルを結合してるだけなら、その実行ファイルと
絵の開始位置さえわかれば fileポインタで十分読み込めるのではないかと。

fp = fopen( ... ); fseek( fp, ... ); // 実行ファイルを開いて開始位置までシーク

ReadPicture( FILE *fp, ... ) {
fread( ... ); // いきなり読み込みでも開始位置まで来てるので問題ない
}

そこんところの仕組みがわからないけど、(WINネイティブな何かを使っているのか)
仕組み的には難しくなさそうですが…。
俺は素人なので偉い人タノム…。
0118名前は開発中のものです。02/05/04 11:29ID:wX/OJnJI
Windowsリソース用の SDL_RWops を書けは行けるんじゃない?
011911302/05/04 11:47ID:IDR1uRSY
>>116
まだソース書いてないです
疑問に思ったもんで。

初心者でよくわからないのですが
fopenの引数はファイル名
だったと

>>118
見てみます

「書けば行けるんじゃない」
ということは
こんな風に普通はしないのですか?

画像はexeに入れないのでしょうか?
0120名前は開発中のものです。02/05/04 12:39ID:???
>>113
fileポインタって何の事を言っているのかちゃんと書けや、このボケが。
012111302/05/04 12:52ID:IDR1uRSY
>>120
char* filename

初心者でごめんなさい
0122名前は開発中のものです。02/05/04 17:58ID:???
画像が少なければ、const char hoge[] = { 0x00, ... };みたいな感じで画像を埋め込んでもいいだろうけど
数やサイズが結構あるなら実行ファイルと他データをまとめた
データファイルに分けるほうがスマートだと思う。
SDLを使うとかに関わらず・・・。
012311302/05/04 18:18ID:???
>>122
レスありがとうございます
0124名前は開発中のものです。02/05/04 20:33ID:???
商用向けソフトならBMPやWAVデータとか解析されないように、
小細工しながら固めるけど趣味でSDL使うんなら、
外部から生のファイルを読むようにオープンに作ってほしいね。
0125名前は開発中のものです。02/05/04 20:52ID:???
ファイルを1つにパックする理由は解析防止が主な理由ではなく、無駄にディスク容量を消費しないようにする為の工夫ですよ。
0126名前は開発中のものです。02/05/04 21:06ID:???
ゲームでbmpとか
wavが見えたら
冷めるから
一個に固めたいです
0127名前は開発中のものです。02/05/04 22:50ID:???
>>126
俺は、wav見えても気にしないけど、そーゆー問題じゃないんだよね?

root権を使わせてもらってもいいなら、ext2フォーマットのファイル
システムイメージを配って、それをloopディバイスつかってmountして
読み込ませるってのも手だねぇ。もちろん、ローダの中で自動化して
しまえば、ユーザには(表立っては)見えない。
普通は、中身をtarファイルにしておいて、実行時に/tmpに展開ってのかな。
HDDの空き容量必要だけど。
0128名前は開発中のものです。02/05/04 23:12ID:???
>>127
なかなか難しいですね
レスありがとうございました
研究してみます
0129名前は開発中のものです。02/05/04 23:23ID:???
>>127
OSに依存しそうだな・・・せっかくのSDLやAllegroが・・・。
0130名前は開発中のものです。02/05/05 00:57ID:???
まあなんつーか
がんばれやとしかいえんな。萎え。
0131名前は開発中のものです。02/05/05 05:20ID:???
>>126
データが見えて萎える? つまんねー奴だな。
データを簡単に交換出来れば色々改造出来て楽しいだろーが。
0132名前は開発中のものです。02/05/05 06:49ID:???
実行ファイルをトップディレクトリにおいて、データは別のディレクトリに入れておけば、
生でも気が付かないものだ。
というか、実際気が付かないことが多かった。
0133名前は開発中のものです。02/05/06 03:48ID:1PpldsKY
bcc32でSDLを使おうと思ったのですが、
> bcc32 -tW -O2 -DWIN32 -c SDL_main.c
しようとすると Must use C++ for STDCOMP.H というエラーが出てしまい、
だったらと今度は -P をつけると今度は
$(bcc)\include\alloc.h 107: オーバーロード関数群の中の一つだけしか"C"にできない
などと怒られてしまいます。

どうしたらいいのでしょうか?
0134偽ASIMO02/05/06 08:00ID:???
mp3やmidiをmixer使って鳴らしたいが鳴らん。
どうしたら良いんだろう。
0135_02/05/06 09:05ID:???
ageとく
0136名前は開発中のものです。02/05/06 18:16ID:U532U/fU
SDL_mixerがmp3とmidiが再生できるようになっていない
(無効にしてコンパイルされている)んじゃない?
0137名前は開発中のものです。02/05/07 09:25ID:???
いちおう、貼っておこう。
http://www.gnu.org/licenses/gpl-faq.ja.html
SDLは、LGPL(FAQ訳では劣等GPL)だから、もっと緩いけど。
0138宣言されていない名前02/05/14 18:42ID:???
SDLは糞コードでもカリカリ動くからおもろい。
サイキョーまんせー。
0139名前は開発中のものです。02/05/14 21:44ID:x.mXxrcs
 
0140名前は開発中のものです。02/06/13 11:18ID:???
そういえば、SDLSKKなんてものが出てるんだね。
日本語入力に関しても解決の兆しが…?
0141名前は開発中のものです。02/06/17 14:14ID:???
バックバッファにアクセスするにはどうすれば…
0142名前は開発中のものです。02/06/28 01:18ID:EdGR6DaM
age
0143名前は開発中のものです。02/09/09 02:42ID:???

          , ‐ァ'⌒ヾヽ  ァ'⌒-‐-、
          {___{==O}}.}⌒ ⌒ー-::,,.}ユ、      ∧∧
         r「-‐ヾ、ァ'´,::'´/ハヾ::、、ヽ、ノ     < 2  
         ハ _,、_/:::/::::/ ノ  }ノ \i} ト、      < g
.        /:..l`ト⌒ヾ.、::/⌒`   ⌒`// .:ヽ.    < e
        {:::::|::iヽ、 、 ){ァ'T.ヽ  .ハヾ/ハ::::::::l     < t
        ヾ、::l ヽ 'ヾ:l {__ツ  {ツ.'{ノ .l:i::ツ.    < !
          ヾ ハ ,__ト, ''.'' (⌒ ツ::} レ'^     < !
            〉ニ,,_ノヽ` ー‐''´ヾシ'        < !  
            l、  ノl/iニ)、ヾ、         <!!
             `} '´  〈  〉^ツ         ∨∨
            / ==   `ー'  〉‐っ       
           /、_...._     ヾ〉┘         
          〈ー、 ,,..,, .``ヽ、... ,べヽ
           ̄ ~`´iー`ヽ、_,,..=-、ハノ
                l  | |  l
              {,、,、,i, l,、,、|
             [ ェュソ[ ,ェ}_
             F=ィ⌒ヽ =ィ'⌒ヽ
             [、_ノ⌒l_ノ⌒}
0144フォント使いたい02/09/09 19:58ID:bRdadYVo
Cygwin + SDL-1.2.4 + SDL_ttf-2.0.5 + freetype-2.1.2でTruetype Fontを使いたいのですが、
freetypeをインストールしたあと、SDL_ttfでリンクに失敗してしまいます。
コンパイルオプション等を付け加えなければいけないのでしょうか。
情報お持ちの方、よろしくお願いします。
0145名前は開発中のものです。02/09/12 06:36ID:???
ごく普通にコンパイルできたけどなあ。
エラーメッセージをコピペしてみてちょ。
0146名前は開発中のものです。02/09/24 20:22ID:???
>>144
http://cefiro.homelinux.org/SDL/sdl-devel-msys.html
0147超初心者02/10/10 03:49ID:TCFGsPft
VC6.0にSDLをインストールする方法がわかりません!!
落としたファイルは"SDL-devel-1.2.5a-VC6.zip"です。
解凍後出来たサブディレクトリ"Include"と"lib"はVC6.0のどこに入れたらいいんでしょうか?
また何か設定があるのでしたら是非教えてください!! お願いします!!
0148名前は開発中のものです。02/10/10 08:01ID:???
>>147
ツール->オプション の ディレクトリ を
選択して、インクルードファイルとライブラリ
ファイルの場所をそれぞれ指定すれば良い
のではなかろうか。よく知らんけど。
0149名前は開発中のものです。02/10/13 01:14ID:7Mz0/fi+
1.2.5に DreamCast 対応?っぽい奇術があるんだけど、どうやってGD-ROMに
するんでしょうか?

0150名前は開発中のものです。02/10/13 05:49ID:???
個人で使う分ににはRで十分では?
0151名前は開発中のものです。02/10/14 16:08ID:???
最新版出せや( ゚Д゚)ゴルァ!!
0152名前は開発中のものです。02/10/19 18:08ID:???
http://cefiro.homelinux.org/SDL/sdl-devel-msys.html
↑のとおりにやったんだがmp3が鳴らねえです。
oggとかmodは鳴るんだがなあ。

なんか他に必要なもんとかあるのかしら。
0153名前は開発中のものです。02/10/19 18:55ID:???
↑自己解決しました・・・

BCCで遊んでたときにWindowsフォルダにつっこんでたDLLが
呼ばれてたぽいでした。迂闊。
0154問題提起02/10/21 21:47ID:???
SDLとその周辺ライブラリは、機能が絞り込んであって、
開発者としては好きなものを組み合わせて作れる、
という大きなメリットになんですが、遊ぶ側としてはどうでしょう?
個々に集めるのは面倒ですし、同梱は若干無駄(場合によってはGPL違反)です。
別々のアーカイブにまとめて一緒に配布、というのが理想だと思いますが、
旧Verのdllを持ってるユーザーが、本体のみ落としてエラーに悩む、
といったバージョン管理の問題や、dll配布元へのリンクのみ掲載していた
場合のリンク切れ、といった問題もあります。

この辺、一度考えるべきだと思ったのですがどうでしょう。
0155名前は開発中のものです。02/10/25 11:16ID:???
>>154
スタティックライブラリにコンパイルすれば良いんでは?
0156名前は開発中のものです。02/10/25 12:22ID:???
>>155

ソース非公開のゲームとかに SDL をスタティックにリンクして配布
したら LGPL 違反になったりしない??
0157名前は開発中のものです。02/10/25 22:30ID:???
そんな貴方にAllegroを。>>154

本家
http://alleg.sourceforge.net/
ポータル
http://www.allegro.cc/
FontLiblary。日本語表示の際必須。
http://nekros.freeshell.org/delirium/alfont.php

機能が集約されている分、必要なdllの数が少なく済む上、
ライセンスが緩いから安心してstaticlinkできる。
周辺LibはGPLも混じってますが。
(上に挙げたALFontはBSDライク)
0158名前は開発中のものです。02/10/26 05:32ID:???
>>154
インストール時か初回実行時に DLL を自動ダウンロード。
0159名前は開発中のものです。02/10/26 16:27ID:???
んでリンク切れで騒ぐ厨房を生み出す、と。
0160名前は開発中のものです。02/10/26 17:25ID:???
ダウンロード先のリストをゲームの配布元が提供して随時更新すればいい。
0161名前は開発中のものです。02/10/27 01:43ID:???
>>154

Windows でバイナリを配布する場合の話だとして…

>同梱は若干無駄(場合によってはGPL違反)です。

同封してGPL違反ってのはどういう場合なんでしょうか??

俺は開発に使ったdllをゲームに同封するのが最善…っていうか
別配布は現実的じゃないと思ってるんだけど…

理由はバージョンよるAPIの非互換性だけじゃなくて各種dllをコンパイル
するときのオプションによっても使える機能(oggやmp3の再生は?とか)
が変るせいで,他サイトで配布しているdllが自分の作ったゲームに
使えるかわからない.
一元的な配布元のあるdllですら非互換性に苦しめられることを考えると
同封が一番確実っぽい気がします.

配布物の容量が増えるのは確かに無駄だけど最近のネットワーク速度
やHDD容量を考えたらたいしたことはないと思うし…
0162名前は開発中のものです。02/10/27 04:05ID:???
ソースを公開しないと GPL 違反
0163名前は開発中のものです。02/10/27 10:29ID:???
>>162

SDL は LGPL じゃねーの?
0164名前は開発中のものです。02/10/27 17:47ID:???
LGPLでもソース未公開・dll同梱は違反。
0165名前は開発中のものです。02/10/30 10:13ID:???
LGPLの場合ダイナミックリンクすれば別バイナリと再リンク可能に
なるからそれだけでOKかと思ってたよ…(鬱
#こうしてソース非公開な人はAllegroに流れるのだろうか…?

じゃあどこまでがdll同梱になるんだろうか?
1.プログラムとdllを同じzipアーカイブに含めて配布(×らすぃ)
2.プログラムとdllを別ディレクトリに置いた一枚のCD-ROMを配布
3.プログラムを入れたzipとdll入れたzipを同じCD-ROMに入れて配布
4.プログラムを入れたzipとdll入れたzipを同じサイトで配布
0166名前は開発中のものです。02/10/30 10:42ID:???
Allegro調べてみた。
すげー、giftwareだってよ。贈り物だなんていえないねえ、なかなか。
Delphiからも使えるみたいだし、ちょっと試してみる。
0167名前は開発中のものです。02/10/31 22:28ID:???
>>165
>>164 でのソース未公開とは、ライブラリのソースの事だと思ふ。

ライブラリのバイナリを配る時には、ライブラリのソースを同梱するか、
ソースを別のアーカイブなどにして、同じサイトで同時にダウンロードできるようにしておくと、
ライブラリのバイナリを得る時に、ソースを得るチャンスがあったっていうことで、
後腐れが無くて良いらしい。
0168名前は開発中のものです。02/11/01 12:12ID:???
>LGPLでもソース未公開・dll同梱は違反。
「ソース未公開」と「LGPL」が矛盾してるから,ここで言ってるソースがLGPLなライブラリのソースだとは思いもしなかったよ…(鬱

公開,未公開の話しじゃなくてSDLのバイナリを配るときにそのバイナリの元になったソースを入手可能な状態にしておけって話ね…

そのための唯一確実な方法がSDLのDLLの入ったアーカイブにSDLのソースを同梱することであると…

でも実際GPLなソフトのバイナリを配布してるところでも同じアーカイブにソース入れて配布することってほとんどないよね…

ってことでプログラムのバイナリのアーカイブにSDLのDLLを同梱しても同じ場所(WebとかCD-ROMとか)にDLLの元になったSDLのソースを置いておけばほぼOKってこと?
0169名前は開発中のものです。02/11/01 18:57ID:???
>>168

> 同じ場所(WebとかCD-ROMとか)にDLLの元になったSDLのソースを置いておけば
> ほぼOKってこと?

そう思わないと、やっていけないでつ。
0170名前は開発中のものです。02/11/01 21:47ID:???
ソースを同じサイトorメディア上で提供するにしても、
本体とdllを単一アーカイブにまとめてしまうと、
LGPLを正しく理解してない厨房が騒ぐ元になるから、
本体とdllは別アーカイブにしとくのが吉かと。
0171名前は開発中のものです。02/11/02 21:22ID:???
>>170
ドキュメント読まない厨房のことまで知らんよ…

と,言いたいところだけど過去なにかのソフトでそういう騒ぎが
あったんかな??
0172名前は開発中のものです。02/11/03 07:38ID:???
GPL/LGPL等ライセンスとゲーム製作
ttp://game.2ch.net/test/read.cgi/gamedev/1005818191/l50
0173名前は開発中のものです。02/11/30 05:44ID:ER3K77Ku
保守sage
0174名前は開発中のものです。02/12/06 07:48ID:c2Ro9O0h
ほっしゅsage
0175名前は開発中のものです。02/12/15 22:25ID:HUkl6Mhv
ほしゅーぬsage
0176名前は開発中のものです。02/12/20 18:54ID:Af1U/qQx
SDLのおかげで小一時間程度でゲームをMacintoshに移植できますた。
SDLってほんと素晴らしいですね。
0177名前は開発中のものです。03/01/07 08:32ID:Myj5i+Ih
ちょーほっしゅ
0178名前は開発中のものです。03/01/28 22:37ID:65gdd7Ia
ふぉしゅ
0179名前は開発中のものです。03/01/29 17:53ID:vjQjG8Ot
SDL+OpenGLでの開発が
現在のクロスプラットフォームゲーム開発のトレンドですか?
0180名前は開発中のものです。03/01/29 19:48ID:QoTB+m21
クロスプラットフォーム開発かぁ。
Windowsだけで充分なんだがなぁ。ELですかやっぱり。
0181名前は開発中のものです。03/01/29 20:09ID:2TLqok57
ソースさえ公開しておけば、誰かか勝手にディストリビュートしてくれるという
ささやかな甘い夢を見ていましたが、徒労も虚しく散りました。
0182名前は開発中のものです。03/02/03 15:01ID:yc2uzOwX
>>181
誰かに勝手に再配布してほしかったんですか?

>distribute
>〈動)〈他〉1 を分配する,配給する;
■ このスレッドは過去ログ倉庫に格納されています