SDLスレ ver.2.0
■ このスレッドは過去ログ倉庫に格納されています
マルチプラットホームな汎用ゲームライブラリの 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/ ノーマークなリナックスゲームでも作ってノーマークのまま消えるか・・・ DirectXよか敷居低そうに見えるけど、実際どうですか? ちなみに2Dのゲーム作ろうと思ってるんですが。 カラーキーを考慮して普通に描画、 半透明、加算、減算、拡大縮小、回転等の機能はひととおりそろってるんでしょか。 SDLのコアな機能として、BMPファイルの読み込み、カラーキーの設定、WAVファイルの再生、などなど... ほかの定番な機能も、補助ライブラリによって大概のものが提供されている SDL_image 様々な画像ファイルの読み込みを扱う SDL_gfx 基本的な図形の描画や、画像の回転拡大描画を扱う SDL_mixer 様々な音楽ファイルを便利に扱える SDL_gfxは拡大縮小といっていいのだろうか・・・ 初心者の〜 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 スキップ ========== >>13 それはちょっとキツイ. 初心者の〜なんだし. >>12 サンプルソース見ると分かるけど,Init()の最後に return true; が無い. 解説サイトでそりゃ無いだろ,って気もするけど... あと,msvcrt.lib を無視する設定にすると後半の警告は消える. VisualStudio2005EE では設定方法分からないけど, VC++6.0 の場合は,メニュー→プロジェクト→設定→リンク→インプット で無視するライブラリを設定する. SGE http://www.etek.chalmers.se/ ~e8cal1/sge/ 主に画像関係がつまってる。 当たり判定のチェックも出来るみたい。 Ruby/SDL製のクラスライブラリ、Miyako v0.6リリース http://www.twin.ne.jp/ ~cyross/Miyako/ ・最適化すると動かなくなる ・起動時に自動でテキストが出力される このあたりは設定で回避できたりしないんでしょうか? あとは、フォルダ内にDLLが多くなるので、 使う機能だけをexeファイルに内包させ、実行ファイルだけで済むようにしたいんですが… >>21 最適化云々は知らん。ウチの環境(VC++2005)では動いてる。 あと2つは、 ヒント: ./configure --disable-stdio-redirect --disable-shared --enable-static >>21 exeファイルに内包させるとLGPLが適用されるけど、それは構わないという認識でOK? 俺はSDL.dllやSDLimage.dllなどをまとめてSDL_cust.dll(仮)1つにしたいんだがやり方が分からないでいる。 散らばるのがアレならディレクトリに放り込めばいいんじゃないんでしょうか。 オープンソースなんだから自分でビルドすれば もし成功したら欲しい >>20 * 画面サイズは640x480のみ * 同時発色数はハイカラー以上(フルカラー奨励、256色非対応) * ウィンドウスタイルのみ、フルスクリーンモードなし * 遅い(どうしようもないなぁ・・・) * ウィンドウ、マップのインタフェースが煩雑(どうしようか・・・) * Windows以外ではフォントパス検索が不十分(解決したい・・・) * エラーの整備が不十分 * ドキュメントが全然整っていない(リファレンスはまだまだ・・・) >>28 SDLの2Dってソフト連打じゃなかったけ?ソース見てないからなんともいえんが OpenGLにすれば早くなるよね 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 >>34 つ ttp://www.freeml.com/message/sdl-fan-jp@freeml.com/0000828 とりあえず、SDL_mixer 1.2.5の時点では実装されていない 待望のバージョンアップ!!! SDL version 1.2.10でますた。 さっそくSDL-devel-1.2.10-mingw32.tar.gzダウンローーード!!! …。 肝心の libSDL.a が含まれてないような気がする…。 しかもINSTALLみると、コンパイルしなければならない??? configureもみつからない…。 ファイルサイズもちっこいし…。 なんか怖いのでSDL-1.2.9に戻しますた。 >>36 libSDL.dll.a が入ってるだろ… INSTALLファイルはソースからのインストール方法が書いてあるだけだし… ざっと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. (ユニバーサルバイナリに対応した) このあたりが個人的におぉ!と思った > 大きな結構変更点多いな 結構大きな変更点多いな orz Windows上で、VisualC++とSDLでゲーム開発したいのですが、 SDLはDirectXのラッパーらしいので、となるとDirectX SDKも インストールする必要があるのでしょうか? ランタイムDLLだけじゃダメ? SDLでドキュメントのPlaySoundのサンプル見ながら音を鳴らすコード書いてみました。 ちゃんと動きましたが、でも音の再生や停止に微妙な遅れが出る… コールバックが呼ばれてるまでの遅れでしょうか? ゲームだと音の遅れはかなり目立ちます。何か解決策はありますか? >42 なんか前に少しいじったとき、 すごい音がブチブチに途切れるんで何ごとかと思ったら フルスクリーンにしたら直った。 ウインドウモードだとBltにスゴイ時間がかかって 処理落ちしてるみたい。呆れるほどの低速動作・・ でもフルスクリーン限定のゲームを作るならいいかな。 ていうかSDLってウインドウ時すごく遅いですよね 呼び方を間違ってるのかな・・? ↑ もしかしてAPIのバージョン使ってる? ドキュメントより: 「バージョンが2種類あります。 Win32 API 上で動く全てのシステムで 安全なバージョンと、 DirectX API 上で動くハイパフォーマンスの バージョンです。」 あと、描画する前にテクスチャのフォーマットを 画面のフォーマットと同じに変換してメモリ上に置いておかないとすごく遅くなるよ GL使ってる場合は別だが >>35 Mix_LoadMUS_RWが使えるようになった。ありがとう。 >>45 ダウンロードできるバージョンは一つしか無いようですが… どうやってDirectXとWindowsAPIを切り替えるんでしょうか? >>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 >>49 レスさんくす。 環境かよ!って突っ込みたくなりますね。 環境変数となるとユーザに配る時面倒だな 小さなローダプログラムで設定して本プログラムに渡すのが一番いいかな… >>51 自分で書いたプログラムならSDLの初期化前にputnev()で 設定してやればいいだけじゃね? どこかに1.2.9のアーカイブまだ残ってないのかな。 1.2.10にしたらBCCでコンパイルが通らなくなって、 とりあえずエラーが出ないようにはできたんだけど。 どうして1.2.9だとエラーでなかったのか調べたいと思ったら このまえうっかり消しちゃって…。 ああごめん。 リンクされて無いだけで、普通にファイルは残ってたのね。 >45>46 情報ありがとうございます。試してみます。 >>55 ありがとう、見つけました。 でもヘッダーファイルの構成変わったみたいで見てもわかんなかったや。 ところでbccでコンパイルしたときって、 SDL単体でもmsvcr71.dll必要じゃなかったっけ? 今やったら無くても動いたんだけど、1.2.10でなんか変わった? 前から? 普通にVisualStudioとかgdbとかXcodeとかで はぁそんな高低さあるデバッグ環境並べられても 困るのですが 3つ並べたけど、自分の環境に従ってどれでもどうぞってことだよ? VisualStudioのデバッガじゃ不満なの? あのねあのね、SDLってMFCでいうとこの MDIみたいにWindowをネストして管理しることできますか? >>64 SDL単体にそんな機能は無いな そもそもそういう用途向けのライブラリじゃないし http://www.libsdl.org/libraries.php で GUI で検索してみれば? 何がわからないのかもわかってない自分にとっては こういう流れも荒れてるようには見えない… 参考になります。 マウスカーソルをSDL_JOYAXISMOTIONで動かす為にSDL_WarpMouseを使った所、 カーソルがあった位置の画像が欠けたみたいになってしまいました。 こうならずに動かす方法はないでしょうか? SDL 1.3(開発版)を使っている人はいますか? >>68 そういえば、1.3ではLGPLとは違うライセンス形態が追加されるんだっけ。 誰か情報知ってる? >>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 ウェブサイトが見えるようになったので追記。 ttp://www.libsdl.org/license.php ttp://www.libsdl.org/license-commercial.php commercial licenseがどういうものかはわかんない。 MLでは話題に上がっているのかな。 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に 追いついていないということになるみたいなのですが……。 >>72 SDL_image をコンパイルするときに使った SDL を使えばよいだけなのでは? >>73 あ、そういう方法がありましたか。 自分は基本的にバイナリ配布のものをそのまま使っている軟弱者なので、気づきませんでした。 ありがとうございます。 >>53 氏も言っていましたが、 bcc32の場合、SDL 1.2.10以降はヘッダーファイルがコンパイルに引っかかって困ります。 どこかに修正版が落ちていないものでしょうか……。 VC++2005が無料で使える今となっては、 bccでやる人はほとんどいないだろうしなぁ >>74 コンパイルできないとかならBTSにレポートすれば? >>75 まぁ確かにVS2005あるし,gccな人はMinGWやcygwinがあるし, でも使い慣れたものを使いたいという人もいるだろうしサポートはしといて欲しいなぁ… >>74 1.2.11での話だけど、"SDL_config_win32.h"の32行目 -------------------------------------------------- #elif defined(_MSC_VER) -------------------------------------------------- を -------------------------------------------------- #elif defined(_MSC_VER) | defined(__BORLANDC__) -------------------------------------------------- と書き換えればエラーは出なくなる。 多分64bit対応部分で、bccには関係ないのでこれでOKだと思う。 勘だけど… >>77 コンパイル通りました!実行も問題ありません。 (といっても、ウィンドウ作って、背景色をつけるぐらいのことしかしていないので、 他の機能がどうなっているかまではわかりませんが) 本当にありがとう。 SDLコンパイルはできるのに .exeを実行すると画面が一瞬だけ出て消えてしまいます 原因はググってもわかりませんでした 何が原因でしょうか・・・・ >>80 初心者用のサンプルコードのためと思われる。 ウィンドウを作るだけでプログラムが終わるので、ウィンドウは速攻で破棄される。 試しに、SDL_Quit()を呼ぶ前にSDL_Delay( 2000 )とでも書いてみ。 SDLとDXライブラリはどちらが初心者向きですか? ちなみにスト2のような2D格ゲーを作りたいと思っています。 >>82 初心者向け、ということならDXライブラリのほうが初心者向け。 日本人による日本人のためのゲーム作成ライブラリだから、日本語の資料しかない。 SDLは英語の資料がほとんど。 勉強になる、スキルアップにつながるという点では、SDLのほうに軍配があがると思われる。 関係ないけど先日から挙動がおかしかったSDL公式ページ、サーバー落ちてるよ……。 >>83 回答ありがとうございます。 途中で挫折してしまっては意味がないので、DXライブラリにしようと思います。 >>82 マルチプラットホームを意識しないならDXが日本語ドキュメント豊富で でいいんじゃないかな www.libsdl.orgおかしくね? 契約切れかな >>87 ちょっと前まで、サーバが挙動不審だったり、落ちてたりしてたけど、 今は大丈夫じゃないか? アクセスしたけど、問題なかったよ。 Linux版を配布する場合,ライブラリのlibSDLはどのように同梱すれば良いのでしょうか? Windowsであれば同一フォルダにSDL.dllを置いておけば認識して起動します でも,Linuxはそれだと認識されないみたいです Linuxerならライブラリ自分で入れちゃうだろうから同梱しなくていいんじゃね SDL使ってますってだけどっかに書いといたら? >90 PS3用なので,ユーザのスキル低いんです 依存関係調べて,元から入っている古いやつを削除とかムリ 配布したファイルだけで完結していたい >>91 本当にユーザのスキル低いのか? ってか低いって言えるほどPS3 Linux のユーザのサンプルが存在してるのかしら…? 低いやつってか使えないやつはLinuxインストールしてもすぐ消すんじゃね? というだけだとあれなんで… SDLがLGPLなんでソースをLGPLやGPLで公開できるなら全部スタティックリンクしちゃって配布すればいい。 できないなら libSDL を含む実行に必要な共有ライブラリ全部を同封して起動用のシェルスクリプトを 書いてやればOKだろう。シェルスクリプトの中で環境変数LD_LIBRARY_PATHに共有ライブラリを 置いたディレクトリを設定してやる、というかんじで… LGPL だからリンク出来る様に *.o だけ同梱しておけば、ソースを晒す必要は無いよ。 スタティックリンクしちゃいな。 >>91 PS3Linux使用者のスキルは低くないだろ 現状を考えると シェアウェアや同人ゲームなどでSDLを動的リンクで使う場合、 LGPLライセンスは感染しないのだから ゲーム本体の著作権は開発者が完全に保持できるという理解で正しいんでしょうか。 第三者による無断配布やリバースエンジニアリングを禁止できるか否か、ということなのですが。 動的リンクすれば商用もokだから問題ない。 しかし、1.3以降はどうするんだろ? 今、ホームページ見たら1.3以降は LGPLまたは別途商用って... もめそうだな。 >>97 ありがとうございます。 ライセンスが過渡期というのはいかにも怖いので、無難にDXライブラリを採用することにします。 デュアルライセンスにするとなぜもめるのか分からん. コミッタがいっぱいいると了承得るのはメンドイだろうが, ホームページに書かれてるって事は,既に大体解決してるからだろう. ようはあれでしょ。 金払ってもいいから、プロプライエタリなソフトに組み込みたいっていう 人のためのライセンスも用意するってことでしょ。 むしろ、今より選択肢が増えるんじゃない? でもSDL本体に商用ライセンスができても、周辺ライブラリが LGPLだったりするからなー。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.0 2024/04/24 Walang Kapalit ★ | Donguri System Team 5ちゃんねる