X



SDLスレ ver.2.0
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2006/02/28(火) 20:40:12ID:MvXDyxzs
マルチプラットホームな汎用ゲームライブラリの
SDLについてのスレッドです。
最新情報、参考になるソース、質問等なんでもどうぞ

本家
ttp://www.libsdl.org/

SDL_mixer ttp://www.libsdl.org/projects/SDL_mixer/
SDL_image ttp://www.libsdl.org/projects/SDL_image/

SDLdoc-jp ttp://www.tacoworks.jp/software/SDLdoc-jp/
GamDev ttp://gamdev.org/w/?%5B%5BSDL%5D%5D
初心者の初心者による初心者の為のSDL ttp://tokyo.cool.ne.jp/sdl/

前スレ
http://pc8.2ch.net/test/read.cgi/gamedev/1005469181/
0006名前は開発中のものです。
2006/03/06(月) 19:42:25ID:RzNEHmY4
ノーマークなリナックスゲームでも作ってノーマークのまま消えるか・・・
0007名前は開発中のものです。
2006/03/09(木) 20:42:47ID:qxjrh314
DirectXよか敷居低そうに見えるけど、実際どうですか?
ちなみに2Dのゲーム作ろうと思ってるんですが。

カラーキーを考慮して普通に描画、
半透明、加算、減算、拡大縮小、回転等の機能はひととおりそろってるんでしょか。
0009名前は開発中のものです。
2006/03/10(金) 00:29:01ID:Pf/sh0uY
SDLのコアな機能として、BMPファイルの読み込み、カラーキーの設定、WAVファイルの再生、などなど...
ほかの定番な機能も、補助ライブラリによって大概のものが提供されている

SDL_image 様々な画像ファイルの読み込みを扱う
SDL_gfx  基本的な図形の描画や、画像の回転拡大描画を扱う
SDL_mixer 様々な音楽ファイルを便利に扱える
0012名前は開発中のものです。
2006/03/10(金) 07:19:33ID:rpiX9DoE
初心者の〜
ttp://tokyo.cool.ne.jp/sdl/index2.html
ココ参考にしてVisualStudio2005EEでコンパイルしてみたんですけど
警告が出ます。どなたか、解決方法わかりませんか?

1>------ ビルド開始: プロジェクト: sam, 構成: Debug Win32 ------
1>コンパイルしています...
1>main.cpp
1>i:\documents and settings\hoge\my documents\visual studio 2005\projects\sam\sam\main.cpp(57) : warning C4715: 'Init' : 値を返さないコントロール パスがあります。
1>マニフェストをリソースにコンパイルしています...
1>リンクしています...
1>MSVCRTD.lib(cinitexe.obj) : warning LNK4098: defaultlib 'msvcrt.lib' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
1>マニフェストを埋め込んでいます...
1>ビルドログは "file://i:\Documents and Settings\hoge\My Documents\Visual Studio 2005\Projects\sam\sam\Debug\BuildLog.htm" に保存されました。
1>sam - エラー 0、警告 2
========== ビルド: 1 正常終了、0 失敗、0 更新、0 スキップ ==========
0014名前は開発中のものです。
2006/03/17(金) 08:13:15ID:L30CN9db
>>13
それはちょっとキツイ.
初心者の〜なんだし.

>>12
サンプルソース見ると分かるけど,Init()の最後に return true; が無い.
解説サイトでそりゃ無いだろ,って気もするけど...

あと,msvcrt.lib を無視する設定にすると後半の警告は消える.
VisualStudio2005EE では設定方法分からないけど,
VC++6.0 の場合は,メニュー→プロジェクト→設定→リンク→インプット
で無視するライブラリを設定する.
0021名前は開発中のものです。
2006/04/30(日) 20:12:47ID:rnc0CIh2
・最適化すると動かなくなる
・起動時に自動でテキストが出力される

このあたりは設定で回避できたりしないんでしょうか?
あとは、フォルダ内にDLLが多くなるので、
使う機能だけをexeファイルに内包させ、実行ファイルだけで済むようにしたいんですが…
0022名前は開発中のものです。
2006/05/01(月) 23:37:43ID:U7nWUhrQ
>>21
最適化云々は知らん。ウチの環境(VC++2005)では動いてる。

あと2つは、

ヒント:
./configure --disable-stdio-redirect --disable-shared --enable-static
0023名前は開発中のものです。
2006/05/08(月) 13:33:20ID:ku0CL3lo
>>21
exeファイルに内包させるとLGPLが適用されるけど、それは構わないという認識でOK?

俺はSDL.dllやSDLimage.dllなどをまとめてSDL_cust.dll(仮)1つにしたいんだがやり方が分からないでいる。
0024名前は開発中のものです。
2006/05/08(月) 16:58:30ID:tkvnBaRI
散らばるのがアレならディレクトリに放り込めばいいんじゃないんでしょうか。
0026名前は開発中のものです。
2006/05/09(火) 23:18:55ID:j9harUZK
>>20
* 画面サイズは640x480のみ
* 同時発色数はハイカラー以上(フルカラー奨励、256色非対応)
* ウィンドウスタイルのみ、フルスクリーンモードなし
* 遅い(どうしようもないなぁ・・・)
* ウィンドウ、マップのインタフェースが煩雑(どうしようか・・・)
* Windows以外ではフォントパス検索が不十分(解決したい・・・)
* エラーの整備が不十分
* ドキュメントが全然整っていない(リファレンスはまだまだ・・・)
0031名前は開発中のものです。
2006/05/11(木) 21:48:37ID:RvOn68s9
SDLはSuDdenLyの略
0033名前は開発中のものです。
2006/05/12(金) 00:29:22ID:scDybAWc
>>28
SDLの2Dってソフト連打じゃなかったけ?ソース見てないからなんともいえんが
OpenGLにすれば早くなるよね
0034名前は開発中のものです。
2006/05/15(月) 00:21:11ID:rc2d7RzW
Mix_LoadMUS_RWが使えないんだが…
原因に心当たりのある人、助言plz。


環境・やったこと

・ VC.NET, SDL1.2.9, SDLMixer1.2.6
・ SDL_mixer と mikmod を USE_RWOPS でビルド
・ 自分のプロジェクトにも USE_RWOPS
・ 自分のプロジェクトをビルドすると、LNK2019。Mix_LoadMUS_RWが未実装。
・ 関数の実体が定義されてないっぽいと分析したが、SDLの該当ソース部分はifdefの嵐でわけわかんないよギヴアップ。
・ ここ読んだ。でも意味がよくわからないから、上に書いたことしかやってない。 ttp://ilaliart.sourceforge.jp/tips/mix_rwops.html
0035名前は開発中のものです。
2006/05/15(月) 01:12:14ID:Wv/lQ7q4
>>34
つ ttp://www.freeml.com/message/sdl-fan-jp@freeml.com/0000828
とりあえず、SDL_mixer 1.2.5の時点では実装されていない
0036名前は開発中のものです。
2006/05/18(木) 22:49:07ID:KYxe/C8+
待望のバージョンアップ!!!
SDL version 1.2.10でますた。
さっそくSDL-devel-1.2.10-mingw32.tar.gzダウンローーード!!!
…。
肝心の libSDL.a が含まれてないような気がする…。
しかもINSTALLみると、コンパイルしなければならない???
configureもみつからない…。
ファイルサイズもちっこいし…。
なんか怖いのでSDL-1.2.9に戻しますた。
0037名前は開発中のものです。
2006/05/18(木) 23:03:39ID:4iySEUe1
>>36
libSDL.dll.a が入ってるだろ…
INSTALLファイルはソースからのインストール方法が書いてあるだけだし…
0038名前は開発中のものです。
2006/05/19(金) 01:39:55ID:0FK0vkqp
ざっとChangeLog見てみたが、大きな結構変更点多いな
とりあえず、

・Added SDL_GL_SWAP_CONTROL to wait for vsync in OpenGL applications.
 (GLアプリでvsync待ちが出来るようになった)
・SDL_WM_SetCaption() now officially takes UTF-8 title and icon strings, and displays international characters on supported platforms.
 (ウィンドウタイトルがUTF-8に対応した…英語以外もおk)
・SDL_opengl.h has been updated with the latest glext.h from http://oss.sgi.com/projects/ogl-sample/registry/
 (SDL_opengl.hが最新のGL拡張に対応した)
・[Windows] Window positions are retained when switching between fullscreen and windowed modes.
 (フルスクリーンとウィンドウモードの切り替えをした時にウィンドウ位置が維持されるようになった)
・[Mac OSX] SDL now supports building Universal binaries, both through Xcode projects and when using configure/make. See README.MacOSX in the SDL source archive for details.
 (ユニバーサルバイナリに対応した)

このあたりが個人的におぉ!と思った
0040名前は開発中のものです。
2006/05/19(金) 09:45:16ID:L5bfb42p
Windows上で、VisualC++とSDLでゲーム開発したいのですが、
SDLはDirectXのラッパーらしいので、となるとDirectX SDKも
インストールする必要があるのでしょうか?
ランタイムDLLだけじゃダメ?
0042名前は開発中のものです。
2006/05/19(金) 14:41:49ID:L5bfb42p
SDLでドキュメントのPlaySoundのサンプル見ながら音を鳴らすコード書いてみました。
ちゃんと動きましたが、でも音の再生や停止に微妙な遅れが出る…
コールバックが呼ばれてるまでの遅れでしょうか?
ゲームだと音の遅れはかなり目立ちます。何か解決策はありますか?
0044名前は開発中のものです。
2006/05/19(金) 18:24:29ID:K3t9gRoD
>42
なんか前に少しいじったとき、
すごい音がブチブチに途切れるんで何ごとかと思ったら
フルスクリーンにしたら直った。
ウインドウモードだとBltにスゴイ時間がかかって
処理落ちしてるみたい。呆れるほどの低速動作・・
でもフルスクリーン限定のゲームを作るならいいかな。

ていうかSDLってウインドウ時すごく遅いですよね
呼び方を間違ってるのかな・・?
0045名前は開発中のものです。
2006/05/19(金) 20:18:08ID:ZMZOjNsZ

もしかしてAPIのバージョン使ってる?

ドキュメントより:
「バージョンが2種類あります。 Win32 API 上で動く全てのシステムで
安全なバージョンと、 DirectX API 上で動くハイパフォーマンスの
バージョンです。」
0046名前は開発中のものです。
2006/05/19(金) 23:39:53ID:GCPhmU8T
あと、描画する前にテクスチャのフォーマットを
画面のフォーマットと同じに変換してメモリ上に置いておかないとすごく遅くなるよ

GL使ってる場合は別だが
004734
2006/05/21(日) 19:06:53ID:DbNShvSi
>>35
Mix_LoadMUS_RWが使えるようになった。ありがとう。
0048名前は開発中のものです。
2006/05/22(月) 11:53:31ID:DTt/iAwZ
>>45
ダウンロードできるバージョンは一つしか無いようですが…

どうやってDirectXとWindowsAPIを切り替えるんでしょうか?
0049名前は開発中のものです。
2006/05/22(月) 12:33:49ID:d1rlamFe
>>48
環境変数 SDL_VIDEODRIVER や SDL_AUDIODRIVER で切り替え可能.
そういえばSDL-1.2.10からwin32環境のデフォルトのビデオドライバが
directx から windib に変更になったらしいね。
ttp://zinnia.dyndns.org/~hiki/SDLKB/?%B4%C4%B6%AD%CA%D1%BF%F4SDL_VIDEODRIVER
ttp://zinnia.dyndns.org/~hiki/SDLKB/?%B4%C4%B6%AD%CA%D1%BF%F4
0050名前は開発中のものです。
2006/05/22(月) 14:26:01ID:DTt/iAwZ
>>49
レスさんくす。
環境かよ!って突っ込みたくなりますね。
0051名前は開発中のものです。
2006/05/22(月) 22:50:31ID:96cQJ1mY
環境変数となるとユーザに配る時面倒だな

小さなローダプログラムで設定して本プログラムに渡すのが一番いいかな…
0052名前は開発中のものです。
2006/05/23(火) 07:32:59ID:97djNx/u
>>51
自分で書いたプログラムならSDLの初期化前にputnev()で
設定してやればいいだけじゃね?
0053名前は開発中のものです。
2006/05/23(火) 21:44:24ID:E2hiF+yI
どこかに1.2.9のアーカイブまだ残ってないのかな。

1.2.10にしたらBCCでコンパイルが通らなくなって、
とりあえずエラーが出ないようにはできたんだけど。
どうして1.2.9だとエラーでなかったのか調べたいと思ったら
このまえうっかり消しちゃって…。
005453
2006/05/23(火) 21:50:02ID:E2hiF+yI
ああごめん。
リンクされて無いだけで、普通にファイルは残ってたのね。
0057名前は開発中のものです。
2006/05/23(火) 22:08:28ID:E2hiF+yI
>>55
ありがとう、見つけました。
でもヘッダーファイルの構成変わったみたいで見てもわかんなかったや。

ところでbccでコンパイルしたときって、
SDL単体でもmsvcr71.dll必要じゃなかったっけ?
今やったら無くても動いたんだけど、1.2.10でなんか変わった? 前から?
0063名前は開発中のものです。
2006/05/31(水) 01:58:56ID:6kZYnAA1
3つ並べたけど、自分の環境に従ってどれでもどうぞってことだよ?
VisualStudioのデバッガじゃ不満なの?
0064名前は開発中のものです。
2006/05/31(水) 23:50:07ID:LxsjEBpL
あのねあのね、SDLってMFCでいうとこの
MDIみたいにWindowをネストして管理しることできますか?
0066名前は開発中のものです。
2006/06/01(木) 18:06:43ID:9NkJzsK2
何がわからないのかもわかってない自分にとっては
こういう流れも荒れてるようには見えない…
参考になります。
0067名前は開発中のものです。
2006/07/03(月) 12:55:04ID:E2qUtZgz
マウスカーソルをSDL_JOYAXISMOTIONで動かす為にSDL_WarpMouseを使った所、
カーソルがあった位置の画像が欠けたみたいになってしまいました。
こうならずに動かす方法はないでしょうか?
0069名前は開発中のものです。
2006/12/10(日) 16:37:13ID:oivcDgp9
>>68
そういえば、1.3ではLGPLとは違うライセンス形態が追加されるんだっけ。
誰か情報知ってる?
0070名前は開発中のものです。
2006/12/11(月) 16:25:42ID:l2VcsNcO
>>69
LGPLと、別のライセンスによるデュアルライセンスみたい。
いまなぜかwww.libsdl.orgが見られないんでグーグルのキャッシュでごめん。
ttp://72.14.253.104/search?q=cache:NjYq8XR_4aEJ:www.libsdl.org/pipermail/sdl-cvs/2006-June/001796.html
ttp://72.14.253.104/search?q=cache:IZ4CJHmKo7MJ:www.libsdl.org/pipermail/sdl-cvs/2006-June/001797.html
007170
2006/12/13(水) 01:22:38ID:sVKN71fZ
ウェブサイトが見えるようになったので追記。
ttp://www.libsdl.org/license.php
ttp://www.libsdl.org/license-commercial.php
commercial licenseがどういうものかはわかんない。
MLでは話題に上がっているのかな。
0072名前は開発中のものです。
2006/12/13(水) 22:27:33ID:JzjmRalK
SDL.dllとSDL_image.dll、それぞれどのバージョンがどんな感じに対応しているか、
詳しく知っている人いませんか?
または、対応表とか。

SDL 1.2.7をbcc32でコンパイルしたプログラムを
SDL.dll 1.2.7とSDL_image.dll 1.2.5を一緒に使ったところ、
「SDL_Error関数がSDL.dllにない」と言われました。
SDL.dllを1.2.11にしてみたところ問題なく動いたので、SDL.dllの対応がSDL_image.dllに
追いついていないということになるみたいなのですが……。
0074名前は開発中のものです。
2006/12/13(水) 23:57:01ID:JzjmRalK
>>73
あ、そういう方法がありましたか。
自分は基本的にバイナリ配布のものをそのまま使っている軟弱者なので、気づきませんでした。
ありがとうございます。

>>53氏も言っていましたが、
bcc32の場合、SDL 1.2.10以降はヘッダーファイルがコンパイルに引っかかって困ります。
どこかに修正版が落ちていないものでしょうか……。
0075名前は開発中のものです。
2006/12/14(木) 01:18:21ID:Vv+vcu6I
VC++2005が無料で使える今となっては、
bccでやる人はほとんどいないだろうしなぁ
0076名前は開発中のものです。
2006/12/14(木) 11:38:35ID:4WnSyNJI
>>74
コンパイルできないとかならBTSにレポートすれば?

>>75
まぁ確かにVS2005あるし,gccな人はMinGWやcygwinがあるし,
でも使い慣れたものを使いたいという人もいるだろうしサポートはしといて欲しいなぁ…
0077名前は開発中のものです。
2006/12/15(金) 02:37:21ID:gwhjqWVr
>>74
1.2.11での話だけど、"SDL_config_win32.h"の32行目
--------------------------------------------------
#elif defined(_MSC_VER)
--------------------------------------------------

--------------------------------------------------
#elif defined(_MSC_VER) | defined(__BORLANDC__)
--------------------------------------------------
と書き換えればエラーは出なくなる。
多分64bit対応部分で、bccには関係ないのでこれでOKだと思う。
勘だけど…
007874
2006/12/15(金) 17:11:15ID:wMbCYBFp
>>77
コンパイル通りました!実行も問題ありません。
(といっても、ウィンドウ作って、背景色をつけるぐらいのことしかしていないので、
他の機能がどうなっているかまではわかりませんが)

本当にありがとう。
0079名前は開発中のものです。
2006/12/22(金) 23:42:01ID:Y6TczI63
過疎ってるなぁ……
念のため、age
0080名前は開発中のものです。
2006/12/24(日) 03:19:29ID:2mdvKq0W
SDLコンパイルはできるのに
.exeを実行すると画面が一瞬だけ出て消えてしまいます
原因はググってもわかりませんでした
何が原因でしょうか・・・・
0081名前は開発中のものです。
2006/12/24(日) 03:43:47ID:VWDSlyi3
>>80
初心者用のサンプルコードのためと思われる。
ウィンドウを作るだけでプログラムが終わるので、ウィンドウは速攻で破棄される。
試しに、SDL_Quit()を呼ぶ前にSDL_Delay( 2000 )とでも書いてみ。
0082名前は開発中のものです。
2006/12/24(日) 15:46:19ID:u/dDrt8t
SDLとDXライブラリはどちらが初心者向きですか?
ちなみにスト2のような2D格ゲーを作りたいと思っています。
0083名前は開発中のものです。
2006/12/24(日) 17:06:31ID:MkaDmRSX
>>82
初心者向け、ということならDXライブラリのほうが初心者向け。
日本人による日本人のためのゲーム作成ライブラリだから、日本語の資料しかない。
SDLは英語の資料がほとんど。

勉強になる、スキルアップにつながるという点では、SDLのほうに軍配があがると思われる。

関係ないけど先日から挙動がおかしかったSDL公式ページ、サーバー落ちてるよ……。
0084名前は開発中のものです。
2006/12/24(日) 17:45:14ID:PM+BrpDi
>>83
回答ありがとうございます。
途中で挫折してしまっては意味がないので、DXライブラリにしようと思います。
0085名前は開発中のものです。
2006/12/25(月) 19:32:41ID:XQRJXJTs
>>82
マルチプラットホームを意識しないならDXが日本語ドキュメント豊富で
でいいんじゃないかな
0086名前は開発中のものです。
2006/12/31(日) 15:52:30ID:fWznpiGN
ほしゅ
0088名前は開発中のものです。
2007/01/06(土) 22:47:09ID:myRY/jUI
>>87
ちょっと前まで、サーバが挙動不審だったり、落ちてたりしてたけど、
今は大丈夫じゃないか?
アクセスしたけど、問題なかったよ。
0089名前は開発中のものです。
2007/01/25(木) 15:50:04ID:nVxgHFTg
Linux版を配布する場合,ライブラリのlibSDLはどのように同梱すれば良いのでしょうか?
Windowsであれば同一フォルダにSDL.dllを置いておけば認識して起動します
でも,Linuxはそれだと認識されないみたいです
0090名前は開発中のものです。
2007/01/25(木) 19:03:02ID:7Dqhoclx
Linuxerならライブラリ自分で入れちゃうだろうから同梱しなくていいんじゃね
SDL使ってますってだけどっかに書いといたら?
0091名前は開発中のものです。
2007/01/25(木) 20:05:24ID:nVxgHFTg
>90
PS3用なので,ユーザのスキル低いんです
依存関係調べて,元から入っている古いやつを削除とかムリ
配布したファイルだけで完結していたい
0092名前は開発中のものです。
2007/01/25(木) 22:09:45ID:/1qmW/tW
>>91
本当にユーザのスキル低いのか?
ってか低いって言えるほどPS3 Linux のユーザのサンプルが存在してるのかしら…?
低いやつってか使えないやつはLinuxインストールしてもすぐ消すんじゃね?
0093名前は開発中のものです。
2007/01/25(木) 22:14:57ID:/1qmW/tW
というだけだとあれなんで…
SDLがLGPLなんでソースをLGPLやGPLで公開できるなら全部スタティックリンクしちゃって配布すればいい。
できないなら libSDL を含む実行に必要な共有ライブラリ全部を同封して起動用のシェルスクリプトを
書いてやればOKだろう。シェルスクリプトの中で環境変数LD_LIBRARY_PATHに共有ライブラリを
置いたディレクトリを設定してやる、というかんじで…
0094名前は開発中のものです。
2007/01/27(土) 21:19:20ID:jU4/yfdb
LGPL だからリンク出来る様に *.o だけ同梱しておけば、ソースを晒す必要は無いよ。
スタティックリンクしちゃいな。
0096名前は開発中のものです。
2007/04/18(水) 01:29:47ID:5I3TbWGL
シェアウェアや同人ゲームなどでSDLを動的リンクで使う場合、
LGPLライセンスは感染しないのだから
ゲーム本体の著作権は開発者が完全に保持できるという理解で正しいんでしょうか。
第三者による無断配布やリバースエンジニアリングを禁止できるか否か、ということなのですが。
0097名前は開発中のものです。
2007/04/18(水) 05:42:05ID:L6v0wro2
動的リンクすれば商用もokだから問題ない。

しかし、1.3以降はどうするんだろ?
今、ホームページ見たら1.3以降は
LGPLまたは別途商用って...
もめそうだな。
0098名前は開発中のものです。
2007/04/18(水) 10:19:02ID:5I3TbWGL
>>97
ありがとうございます。
ライセンスが過渡期というのはいかにも怖いので、無難にDXライブラリを採用することにします。
0099名前は開発中のものです。
2007/04/18(水) 23:55:21ID:RSY4DqAY
デュアルライセンスにするとなぜもめるのか分からん.
コミッタがいっぱいいると了承得るのはメンドイだろうが,
ホームページに書かれてるって事は,既に大体解決してるからだろう.
0100名前は開発中のものです。
2007/04/19(木) 00:29:20ID:G4vDe/dG
ようはあれでしょ。
金払ってもいいから、プロプライエタリなソフトに組み込みたいっていう
人のためのライセンスも用意するってことでしょ。

むしろ、今より選択肢が増えるんじゃない?

でもSDL本体に商用ライセンスができても、周辺ライブラリが
LGPLだったりするからなー。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況