2008/10/07

今日のフォント

・画像描画修正
・文字列描画多分作成
・マウス入力作成
PNG等を読めるように。透過色の設定とかが良く分からないので標準の画像フォーマットはPNGということにする。
文字列描画のコードを書いたが、DLLがなかったので実行できない。
音再生のコードを書こうとしたが情報不足で書けなかった。
マウス入力は上手くいった。
だいぶ必要な機能は揃ってきたがウィンドウ移動のバグはやはり直らない。必要な機能をそろえるにつれてDLLが大量に必要になってきたのもあまり気に入らない。現状でDLLが5つ必要。Libファイルに変更しようとしたが良く分からない理由でビルドできなかった。

ジャンプというアクションについて考察。精密な回避を要求するようなゲームではボタンを押す長さによるジャンプの高さの変更は必要。だが、初速度は飛び始めるときに設定しなければならないしジャンプ中に重力を強めるのも軌道が不自然になる。そこでボタンをリリースしたときにジャンプするというのも考えたがそれだと即座に高いジャンプが出来なくて不便。どうすればいいか。ジャンプの高さは一定にして空中ジャンプを作るか。

2008/10/06

今日の分割

・ライブラリグラフィック周り作成
256色ビットマップの読み込み、及び分割読み込み。もっと色々読めるはずなのだがSDLの機嫌が悪い。ウインドウを動かすと終了するときにエラーが出たり、OpenGLが使えなかったり画像の透過情報が読めなかったりと、とことんSDLの機嫌が悪い。
SDLのソースコードを持ってきて自分でビルドしなおしたりしているし、メジャーなところのサンプルを引っ張ってきたりしているのに上手く動かない。これだけ不安定な状況だとまともな製作に取り掛かりにくくて困る。

2008/10/05

今日の断念

・OpenGL使用を断念
ベンチマーク以前にどうやっても動かない。色々なサンプルコードを実行したがいつもエラーが出る。Vista対応のベンチマークソフトを入れてみたらOpenGL2.0対応と出たが、レンダリングテストをしたらメモリ保護とかで落ちた。調べてみてもOpenGLの動作が遅いという現象はあれど動かないという情報はなかった。でもなぜかABAGamesのゲームが動くので妙。
というわけで、重さ以前に動かないのでOpenGLはきっぱり諦めることにする。完全にSDLのみで作成。どうせ一度に表示するグラフィック数は1000以下なので大丈夫のはず。ひとまずは特に変形のない画像描画と文字の描画と分割画像読み込みでもあればグラフィック面でのことは足りるはず。そのほかはFPSの安定や音周り。
緑青をタイピングゲーム化するとか考えた。弾幕を制御するスクリプト的な文章を打たせて弾幕を張る。タイピングが遅くても弾避けが得意なら勝てるステキなルール。いっそ文字弾幕。

2008/10/04

今日のSDL

・ライブラリ開発開始
SDL+OpenGLだがOpenGLに関する資料が不足していたのでそのときの資料だけで出来たメインループと、入力を作った。
どうもOpenGLでの2D描画のサンプルを見る限り、SDLの2D機能を使った方が無駄が少なそうに思える。OpenGLだと2D描画専用の関数ではなく3D空間にZ軸無視で四角形を描画し、それにテクスチャマッピングをするという形。汎用性が高い分凄く重い気がする。ベンチマークを作ってみてSDLとどちらが重いのか試してみる。2Dゲームの画面を斜めから見ても嬉しくないのでSDLの方が速いならOpenGLを使わずSDLのみでやってしまおうと思う。

2008/10/03

今日のGL

・復讐計画変更
語弊のある書き方。仕方がない。
DirectXで使う部分だけの3Dと2D+αを実装してライブラリを作ろうと思ったのだが3Dのサンプルを見て嫌になった。何でモデル読み込む関数が標準でついていないんだか。
それで、計画変更。まず復讐での3Dの使用を諦めた。もともとゲーム自体のZ軸はなく、普通のゲーム画面でZ軸を含めて描画すると「どうしてZ軸移動しないのだ」というツッコミをしたくなる。イベントや背景に3Dを使おうというのがもともとの考え。だが、そのために3D作成は明らかに労力に見合っていないのでやめた。
次に考えたのがDirectXで2Dのみを使用。だがそれならDXライブラリを使わないメリットがなく自作ライブラリを作る気がなくなったのでそれも止めた。そこで、どうせライブラリを作るならあまりライブラリを見かけないOpenGL+SDLでやってやろうと。
暫くその組み合わせについて調べていて、D言語での使用という手が出てきたのでそれを試した。1時間以上情報を集めた後実際に作り始めたのだが、温室プログラマにとっては開発環境が辛かったのでD言語を諦めた。BCC時代よりも厳しい環境だった。エクリプスやvimを使うと便利ではないかと思っても見たが良く分からなかったのであきらめた。
そして結局C++でOpenGL+SDLを使うという計画に落ち着いた。まだ実際の作業をしていないからどれだけ厳しいのか分からないがD言語を調べていたときにみたサンプルでは2Dの分には結構簡単そうだったので頑張ってみる。
この組み合わせなのでWindows以外の環境に移植が容易になりそうだが、今のところLinuxもMacも使っていない。アンドロイド移植にはJavaが必要でどうしようもない。

2008/10/02

今日の復讐

・SS製作開始一周年
・蘇生0.50リリース
・SS第2弾製作開始
実は今日がSSの製作開始一周年。一周年ということで大きなことを二つ。

一つは蘇生0.50のリリース。予定通り。これでバージョン番号も0.5となり、ステージも半分が完成。長かった。タイトルも『a Story of the Sword 蘇生』で正式決定にする。

そしてSS第2弾『復讐』の製作を開始。今度は「破壊的ジャンプアクションゲーム」と銘打ったそのままの内容。蘇生がC++の勉強をしながらだったのに対し、こちらはDirectXの勉強をしながらの製作。DirectXのサンプルを見ながら必要な機能を自作のライブラリに纏めていく。
アクションゲームの製作は実質初めてなのでDirectXあわせてかなりの苦戦が予想される。あとはよりC++ライクなスタイルでの作成をしたいと思っているがまだクラスの設計などをしていない。namespaceを使っているだけ。

あと前々から思っていたが、そろそろウェブサイトを移転しようと思っている。ファイルアップロードが遅かったりFTPが出来なかったりがそろそろデメリットとして目立ち始めたから。Bloggerは継続。


BlackMan.KCLC.googlepages.com/ss

2008/10/01

今日の時計

・システム時計変更ツール作成
・SS0.50仕上げ
ふと思いついたので、システム時計を指定の時刻に変更するツールを作った。変更後元に戻す機能はまだ作っていない。形になったら公開するかも。APIという物が少しは分かってきた気がする。あとMSDNの情報はやっぱり強い。
SSは会話を書いた。これでほぼ完成。明日リリース。上手く会話を纏められなかったのと奥義取得後イベントが保留になっているのが問題点。