日記(1048)

<前 次>

2つのゲーム性

適当にガチャガチャやっててもそれなりに遊べるゲーム性と、狙ってやりこむゲーム性、両立させたいのですが、連鎖に関しては、狙って消すよりでたらめに出しまくって消しまくっていたほうが効率がいいんですよね。
適当にガチャガチャ、は、ピンチのときにこそ陥りがち。
狙ってやりこむ、は、比較的余裕のあるときに。
だからして、適当にガチャガチャ、はピンチ回避に役立ち、狙ってやりこむ、は高得点につながる、という風にすればちょうど良いバランスとなる(はず)。
だから、連鎖をするとプレス機を押し戻し、同時消しや大きなパターンで消すと得点が高い、ということにして、パターン固有の押し戻し係数は廃して連鎖の得点を下げる、いや、連鎖については充分得点が低いからいいけど。
HUGEの得点が高すぎる気がしたけどあれでいいや。
smallも、無視できる得点にしてもなんら支障はない。
プレス機の動きの部分も作ってみたり。

思わぬ壁

とりあえず現状でどの程度動くかどうかの確認のために他の人に少しプレイしてもらったのですけれども、ものすごく重いとの報告をいただいてしまいました。
で、状況を見る限りはどうやらDirectDrawの描画処理で遅くなっている模様。
GDIで描画しているプロトタイプを試してもらったところそこそこの速度が出てくれたそうなので、描画エンジンとして、DirectDrawのほかにもGDIによるものを用意しようかと思っています。

Relative

連鎖に対応しました。
コンボは、消え方にかかわらずコンボ継続時間中に次のパターンがそろったら発生して、コンボ数に応じて点数が入ります。
連鎖は、消えたパネルの上にあるパネルでコンボが続いた場合に発生して、連鎖の数だけ基本得点が倍増します。
連鎖数を画面上に表示する演出ができれば連鎖に関する基本的な処理は終了。バランスとか調整しなきゃならないけど。
コンボ終了後にBGMが止まるバグは、コンボ精算の音を出すタイミングを調整すると発生しなくなりました。それでも消えたら御免。
消しBGM&コンボ精算が、今までは常にフルパワーでうるさく鳴っていましたが、たいしたことのない消し方のときはグレードダウンするようにしました。
DirectXのヘルプを見るとものすごく難しそうなことが書かれてあって尻込みしていたのですが、DirectMusicがメッセージベースであることから、MIDIを再生してリセットせずに曲を切り替えたら前のMIDIの設定を受け継いだまま次のMIDIが鳴り始めるのではないかと思って試してみたところ、本当にそうなってくれました。
だから、特定のチャンネルの音を消すだけのMIDIとか、必要なとき以外は音量が0のMIDIとかができてきちゃいました。
ゲームバランスはまだまだ模索中…
適当にやっていればそれなりに消えてくれるけど、でたらめにやっていたら対して消えてくれない、そして頑張って連鎖を組んだりたくさん消したりしたらどかんと点数をあげたい、そんなバランスにしたいのですが、今の状況だと狙いすぎるとかえって不利な状況になってしまうような気がしています。

漢字の変遷について

パネルγのページを更新しました。
大体消しパターンと消し方が自分でつかめてきたので消しパターンのページを作ってみました。
他にもあったりしますがまああれはまともには作れないし、フリーウェアによくある、作りたいので作ってみたというやつだったりするので基本的には非公開です。
あとは、妙な消し方をしてみたスクリーンショットとか。
なにしろ消している間にも、消えている途中のパネルも、お構い無しに入れ替えられちゃうんですから、できちゃうんですね、あんなのが。
連鎖のアルゴリズムも考えようかと思ったのですが、ちょっとややこしかったので今日のところは断念しました。

ちょっと学校のレポートの途中経過でも。
2000字以上書かなければならないのでパソコンで書くと4KB分必要なのですが、適当に口語で書いてみたらあっさり超えちゃいました。
もちろんこのまま出すはずはありませんが、これだと真面目な文体にして少し補足説明を加えれば充分かなと思ったり思わなかったり。

甲骨文字、これは文字通り亀の甲羅や牛の肩甲骨などに刻まれる文字であります。
亀の甲羅とはいっても、踏んで猛スピードで飛ばすような甲羅じゃありません。
しかしなぜよりにもよって字を書きにくそうな骨なんかに字を書いたのか。
それは、祭政一致の政治で、儀式の際に神からの預言を残すためなのです!
はい、骨というと、宗教的なにおいがぷんぷんしますし、保存も利きます。
まあ要するに神聖文字ですな。
そして、甲骨文字とほぼ同時かやや遅れて登場するのが「金文」であります。
これは、神々と祖先に生贄と供え物を捧げるための神聖な器具、青銅器に掘り込まれたものでありまして、大体十文字未満で書かれ、文章というよりは、その青銅器で祭られる祖先神の名前やそれを作らせた人物の属する氏族のエンブレムなどが記されているのです(授業の配布プリント)
その意味で言うならば、この時代の文字はどちらかというと記号的な意味が強いものでした。
そうです、これから漢字が文字としての体裁を持ってくるのです。
それが、秦の時代から使われだした「篆書」です。
実はこの篆書、秦の皇帝の偉大さを称える文字なのです。
だから、これまでのいかにも時代遅れな象形文字みたいなものでなく、皇帝らしくかっこいい字体なのです。
さて、それと時期を同じくしまして、中央集権体制としまして、郡県制が敷かれました。
そうすると、郡やら県やらがたくさんできてきて、情報伝達が大変!
だから、口頭による情報伝達でなく、確実に情報を伝えて、証拠を残せる文書での行政になるわけです。
しっかあーし!
いちいち亀やら牛やらを殺して骨を得なければいけない甲骨文字やら青銅器の壷やら皿やらに書かなければいけない金文だとか、皇帝様専用のかっこいい篆書などは問題外なのであります。
そして時代は、骨や壷や石版から、竹簡・木簡をメディアとして使う時代と変わってゆきました。
(とはいえ竹簡・木簡自体は甲骨文字の時代からあったそうですが)
そのころは王様やら貴族並みの大金持ちではない貧乏小役人、言ってみれば地方公務員も普通に字をかけなければいけない時代。
軽くて安くて石や骨ほどにはかさばらない、そして何より文字を書きやすい木や竹が当たり前となったのです。
そしてもちろん字そのものも彫ったり鋳込んだりするよりも、筆で書くのに適した字となるわけです。
その字は、それを書く地方の小役人が「隷」と呼ばれたことから、「隷書」と呼ばれています。
大篆というのは、始皇帝様のかっこいい篆書と貧乏小役人のお手軽隷書の共通の祖先であります。
(プリントには詳しくかかれてなかったから後で本を読んで補足しておこう)
この隷書では、大篆を改良し、象形文字っぽく書きたいように書いていた部分を整理し、わかりやすく体系化しました。
だからこそ馬鹿小役人どもにも普及させることができたわけですね。
結構完成体に近かった隷書ですが、それで終わりなら現在の楷書が登場できないというものです。
ついに出ました!今でも通用する草書と楷書!
さて、隷書は漢の時代まで愛用されていたわけですが。
隷書の地位を揺るがす大事件!
匈奴とかから異民族が攻め込んできたんです。
馬を乗り回す強敵の騎馬民族、漢民族は勝てなかったので逃げた。
北から攻め込まれたので南に逃げた。
南には川があるので馬には渡れない。
隷書を脅かすもうひとつの存在、それは紙の発明でした。(それまでは木や竹)
かさばらないとはいっても厚さが1cm近くもある竹簡に比べて、1mm未満の脅威の薄さの紙はあらゆる方面の人々から喜ばれました。
しかも、竹簡のよさであった、軽さ・安さも紙のほうが一枚上手。
保存性は竹簡にはかないませんが、それらを補って余りある長所が紙にはあったのです。
しかし、そんな紙にも決定的な弱点がありました。
そう、そうなんです!破れやすいんです!弱くてデリケートなんです!
だから、強くてバリケードな竹簡に書く感覚で紙に字を書くとビリっといっちゃいます。
紙の普及のためには、竹にガリガリ書く方法から、紙にサラサラ書く方法に移り変わる必要があったのです。
それこそが「草書」。
サラサラサラサラサ~ラサラ書けるミミズのような字体です。
紙にも優しいミミズの字体「草書」により、問題は解決されました。
強いて問題があるとすれば、漢がそのころ北方民族に負けていたことでしょうか。
それで開き直ったのか何なのか、貴族たちは戦いなんてくだらんとか考えるようになりました。
それで貴族たちは明けても暮れても文化やら芸術のことやらを話し合うようになりました。
戦争やら行政やらは二の次三の次です。
で、その矛先は草書や隷書に向けられました。
「草書や隷書はイナカくさい。もっとナウい字体はないのか」と。
そしてまた、貴族趣味以外にもナウい字が必要とされた背景があったのです。
それが「科挙」制度。
まあたぶん、楷書みたいにきっちりした文字でないと公正さは保てなかったんでしょうな。
こうして現在の漢字の完成体「楷書」ができ、千年以上もたった今でも使われ続けているのです。

不条理な灰色

基本得点とBGM実装。
ただし基本得点には連鎖による倍率掛けはなし。基本得点は基本得点のままです。
DirectMusicを使ってみたのですけれども、ゲームとの同期が取れなくていろいろ手間取りました。
消しBGMがコンボ終了後も鳴り終わらなかったり、コンボが終わった後に無音になったり…
先日言っていたチャンネルの問題は、実際起こり、消しBGMの楽器で次のBGMが鳴らされたりもしたので、チャンネルを完全に分けました。
コンボ精算のときの音をどうやって分けるかというのと、消しBGMの同時消しに反応する部分をどうやって実現するかということを現在研究中です。
ところで、適当にプレイしながら思ったのですが、これ、何も考えずにパネルを出しまくって消しまくっていたら勝手にどんどん最小単位の4つパネルの四角形ができて得点がたまっていくんですよね。しかもかなりのスピードで。
これでは、運を天に任せてひたすらパネルを流していくゲームになりかねません。
そんなゲームバランスのないゲームなんか、自分で作って自分で遊べばいいのです。人様に見せるような代物ではありません!(そういうことで、私のパソコンにはバランスも糞もないくだらないゲームがたくさん埋もれています)
だから、まだ途中ですが、ゲームバランスを考えるためテストしてみました。
4つ消しのみを狙い、ひたすら出して消し、まぐれ当たりを狙ったら10000フレームで1020点。
9つ消しを狙い、適当に出しつつ入れ替えで消していったら、まぐれ当たりも含めて1270点。
かろうじて9つ消しのほうが高得点ですが、あまり割に合いません。
だからといって4つ消しの得点を下げすぎると4つ消しが「ハズレ」になってしまいます。
4つ消しの価値はそれなりに残しつつ、狙うならまぐれ当たりよりももっと大きく、という方向に持っていけるゲームバランス(例えば、4つ消しを連鎖数稼ぎに使い、数がたまったところで大きな塊を作れるようにして更なる高得点を目指すとか)にしたいものです。
ちなみに、灰色パネルというのがたまに出てきまして、これは普通の方法では消えてくれません。
で、特殊なパターンに揃えて消すわけですが、これがまた、完全に消せるパターンだと難易度の割りにやけくそに得点が低く、それなりの得点が入るものは8個消えて1個発生という、実にプレイヤー泣かせの消え方をしてくれます。

ミュージック

MIDIどうすべきか考えていたりするのであります。
リアルタイム性が必須の消しBGMは通常BGMとチャンネル分けるべきかもしれないと思っていたりするのであります。
なぜなら、パラメータ変更に手間取っていたらピアノ化したり前に使っていたりした楽器が勝手に使われたりして困るかもしれないと思っていたりしたからなのであります。
ともかくMIDIを再生できないことにはどうにもならないのでリソースからMIDIを読む処理を作ることにしていた次第であります。
ヘルプのチュートリアルには記述が見当たらなかったのでプラットフォームSDKのヘルプと照らし合わせながら作っていたりするのであります!

ウィンドウ

パネルγでやったことと同じことをPRG±0でも。
ウィンドウをクリップしてウィンドウモードでウィンドウを動かしてもウィンドウの位置に合わせた位置に正しくウィンドウ内に収まるようにウィンドウにウィンドウの内容を表示できるようになりました。
さらに保存してあるデータのタイトル画面を表示できるようにもしてみたかったんだけど面倒だったんで後回し。

パネルγの動作チェックも。
空中で素早くパネルを揃えることにより脅威の空中消しが!
例によって得点は変わりませんが。

<前 次>