ARGENTO CUORE

 May the code be with you.

--.--.--[--] スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2009.12.04[金] SDLとRubyとゲーム制作と

RubyにはC言語で作成した拡張ライブラリを呼び出す機能があるので、それを初お試し。
久々にC言語書くと、とても面倒だと感じてしまいます。

Ruby/SDL。それは面倒なCとおさらばして、Rubyでハッピーな毎日を送れる魔法の図書館。
でも遡ること数日前、Ruby/SDLのバージョン2.x系じゃない&パッケージマネージャにも落ちてない事実が発覚。
なんでメソッドないって言われるのかなーと小一時間……。

このパッケージにはこれが必要で~とか、Ruby1.9だとこの問題(※1)があって~とか、ソースからインストールするのは絶対嫌だなーとか、色々面倒そうだったので、更に面倒な道を歩くことにしました。

※1 Ruby1.9は、コードの最初に#coding: 文字コード名と書いておくと、マルチバイトキャラクターのエラーが出なくなった……すごく悩んだ……。

・Ruby/SDLじゃなくて俺的Rubyライブラリ/SDLを作ろう?
・まずはRuby拡張ライブラリを作り方を学ばねば(http://zinnia.dyndns.org/~cvsweb/sdldoc-jp/index.html)
・SDLもおさらい(http://www.tacoworks.jp/software/SDLdoc-jp/html/)
・よし、がんばろー。

で、今こんな感じ……。

KAGUYA(ライブラリ未満)

SDLの関数と対応するラッパーライブラリというよりは、ゲーム作るときにこれ定形化できるよねっていうところだけを作っていって、あとは便利(無駄+馬鹿※2)機能を思いつくままに載せていこうという感じで進んでおります。

※2 自分が作るゲームは8bitカラーで問題ないと思ったので、8bit固定でパレット管理機能加えたりetc...

できたのは、
・画面作成
・スクリーンバッファ作成
・パレットスイッチ(じゃかじゃか切り替えると雰囲気変わって楽しそう)
・FPS固定
・キー入力
・ビットマップフォント表示(美咲フォントを使わせてもらってますが、漢字は多くて面倒なので一気に初期化せず、必要に応じて読み込んでフォントマップを保持しておく感じに(個人的メモ))
・3次元の座標計算(透視投影とか陰線処理はまだのワイヤーフレーム)

3次元は、今までOpenGLとかしか触ったことなかったので、1から実装するのは初めて……。ちゃんとできるか心配です+ハードウェア支援受けられないので低速。でも、SDLの描画機能を使ってるので3次元グラフィックスもBlit転送で最終的にスクリーンに出してます(自己満……)。

忘れないように方向性(実装したいもの)メモ
・タイル管理
 8x8pxのイメージデータ管理機能+BG、スプライトへのインターフェース

・ソフトウェアBGレイヤー
 最大サイズ=スクリーンサイズ。何枚でも作成可能(物理的な限界が来ない限り)。プライオリティによる表示優先度指定

・ソフトウェアスプライト
 8x8px。回転拡大縮小アニメーション、プライオリティ
 
・擬似GUI
 ウインドウ、ボタンなどをあるフォーマットに沿ったイメージデータを読み込むことで(なければラインで描画)、好きなデザインのウインドウ、ボタンなどを簡単に作れるようにする。

・キー、ジョイパッド、その他設定の制御
 コンフィグフォーマットのバイナリを読み込んで、データに沿った設定で初期化を行う。
 汎用的に使えるようにする。
 キーコンフィグのインターフェースを用意して、APIを叩くだけで設定が変更されるので、使う側はインターフェースだけ作れば良いとかいう妄想。

・ワイヤーフレームの陰線処理、面付け、テクスチャ
 スキニングとかはなんだか大変そうなので、今のところ考えないことにしました……。

・データ暗号化
 必要ないかもしれない。

・衝突判定、重なり判定とか各種お役立ち処理
・画面切り替わりエフェクト(いっぱいつくろー)
・サウンド

・ゲーム処理的なもの
 シーン管理

・ぼやき
 呪文はキーボードから入力させたい今日この頃です(プレイヤーが忘れたら、もう使えない。スペル間違えると、何が起こるかわからない)。

あとは、Android上で動かしてみたいからできるだけ軽くCPU使わないようにメモリ使わないように……。
スポンサーサイト

Comment






(編集・削除用)


管理者にだけ表示を許可

Trackback

http://ronor.blog81.fc2.com/tb.php/12-47f7c3c7

この記事にトラックバック(FC2Blog User)

Scala Feed

scala feed

FC2カウンター

プロフィール

RoNor

Author:RoNor
得意呪文はScalaですって言えるようになるのが夢です。
デスマーチ中、パーティメンバーの防御力を向上させたりさせなかったり。

検索フォーム

QRコード

QRコード

Copyright © 2009-2010 ARGENTO CUORE and RoNor All rights reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。