ゲーム開発の入門

おっさんがよろこびそうなネタですね。

http://d.hatena.ne.jp/bleis-tift/20081207/1228662563

JavaではVolatileImage(つまりVRAM)使える1.4から大きく変わりましたね。アクセラレーションが聞くようになったのは1.4.1からだったと記憶しています。

でもピクセルフォーマットが容易に取得できないのにあわせないといけないとかBufferedImageから普通に使うと非常に遅いとか考えないといけなかったので実はかなり使いこなすのが大変でした。

その後JavaSE6で単純なblit等アクセラレーションが何も考えてなくてもかなりの部分がかかるようになりました。でも、拡大縮小とかぜんぜんだめだったんですよね。そのへんはupdate10で大丈夫になりました。以下のエントリを参照するといいです。

http://d.hatena.ne.jp/shin/searchdiary?word=Java2D%a4%ce%c2%e7%c9%fd%a4%ca%b9%e2%c2%ae%b2%bd

のこるはAPI的に不備があるアルファブレンディングです。これはVMの速度以前にAPIが整備されないとはじまりません。現時点では通常合成以外はあきらめましょう。ぶっちゃけ加算合成がくわわればJOGLをやめてもいいくらいなのにもったいない。

ここを解決するためにはJOGL使ってOpenGLでやるのがいいでしょう。



でも、元の質問者のレベルからいっておそらく目的がそんなところにあるとは到底思えません。どうしてもゲーム開発がパソコンの用途のほぼすべてをしめる時代に育ったおっさんは、すぐ垂直帰線割り込みで同期を取って60fpsで動かすことなどを考えてしまいますが、最初に作ったゲームはそんなのは関係ありませんでしたよね。テキストキャラクタが動くだけで十分楽しかったはずです。

まずは何の言語でもいいから言語になれてキャラを手軽に動かしたり音楽を鳴らしたりしていくのがいいと思います。その環境に我慢ができないくらい成長したら乗り換えればいいだけです。

われわれおっさんはBASICで育ちました。そして速度や制限等から逃れるために開発効率の非常に悪いマシン語に手を出しました。マシン語は早いけど見通しの悪さはどうにもなりませんでした。なんせテキストエディタがないのがわりと普通の時代です。

そこでBASICのようにかける高級言語はないものか。そして見つけました。C言語です。おそらくC言語があっという間に普及した環境はX68だったかと思われます。XBASICがC言語に非常に近い構造だったというのもあります。おいらもバイトで7,8万かせいでやっと買えました。

XBASICはこんな感じです。記憶があやふやですから参考程度に。

int i
dim int dt(6)={1,5,3,6,2,4}
str s

for i=0 to 6
  s = "すうじは" + dt(i)
  hoge(s)
next
end

func hoge(s;str)
  print s+"だぜ!"
endfunc

こんなのがMSXとPC88全盛の80年代にBASICとしてあったのですから、X68がどれだけすさまじかったのかがわかるでしょうか。すごさがわからない人はおそらく若い人ですかね。GOTOなしでwhileで無限ループとか衝撃ありすぎ。あと、BASICですが、小文字なのが特徴なんですよ。



えーっと。気がついたら昔話のほうにそれてしまった^^;

今現在画像を描画して音楽も効果音も容易にだせるオールインワンな環境はおそらくJavaと.NETでしょう。描画がすぐに手軽にできないと面白くないですし、音楽や効果音がないのもさみしいものです。

  ●/ < ハンカク ヒラガナ ト トランプマーク ガ アル MSX サイコウ!
<■
/  >


なんか変なのが現れましたが、気にせずに続けると、とりあえず今の時代にLLとして存在してもいいくらいの完成度だと思います。入門用としてはすばらしいの一言。
mkeiさん、XBASIC移植お願いしますね(^-^b