同人ゲームを1人で作っているぜ☆
使用言語は AIMS/Lua (エイムス/ルア)☆ 珍しいかもしれないな☆
2014年11月16日(日)のイベント
デジゲー博2(仮) に申し込むのが目標だぜ☆
これで2本目の作品なので、やるやる詐欺にはならないだろう☆w 多分☆
ゲーム完成までの手順としては
1.とりあえず 下地レベルで ワンパス通す(※)
2.コンピューターと対戦できるようにする
3.ゲームバランスを何度も調整したり、仕様をひっくり返したりする
4.下地だと何なので、見た目やストーリー、演出に凝る
の4ステップで進んでいくつもりだぜ☆
────────────────────────────────────────
※「ワンパス通す」……タイトル画面でボタンを押して、駒が配置されて、
キャラが歩いて、駒を裏返して、
図柄が揃ったら得点が増えて、得点が多い方が勝ちで
エンディングのあと タイトル画面に戻る、
といった一連の流れが1回でもできればOKの状態☆
バグがあっても、絵が落書きでもOK☆
────────────────────────────────────────
今やっと、 2. まできているところだぜ☆
キャラクターが自動で動いている のを見ると、
(誰が動かしているんだぜ☆? 勝手に動いていて、何か不思議☆!)
という気分がするぜ☆ 自分でプログラムを組んでいるんだが☆
ここまでくると
(あ、やっとゲームを作っているな☆)
という実感が沸いてきたぜ☆
じゃあ、今まで何をやっていたんだぜ☆?
作業……☆w
ドット絵を描いたり、ゲームパッドでキャラが動くようにしたりというのは
ゲームを作るために必要なんだが、やっぱり
ゲームは遊ぶもの なので、
人間相手でも、コンピューター相手でもいいから
対戦 したいんだぜ☆
────────────────────────────────────────
この記事で言っているバージョンは、
http://grayscale.iza-yoi.net/ に置いてある、
『#104 将棋神経衰弱(開発中Ver)※対COM』(beta.3)
で遊べるぜ☆
ブログを書くなら 毎バージョン 残しておいた方がいいな☆
────────────────────────────────────────
でも、
コンピューターって、どうやって自動で動くんだぜ☆
私には分からなかったので、次のように やってみたぜ☆
1.とりあえず、人VS人の、対人戦モードを先に ワンパス通す
(※絶対に「作る」って言わずに
ワンパス通す って言うんだぜ☆)
2.押されたゲームパッドのボタンを見ているプログラムの部分を、
ボタンがランダムに押されている、という風に書き換える
3.でたらめに動く COMP のできあがり☆
こうやって 少しずつ改造していくぜ☆
私の経験から書くぜ☆
私のコンピューターが勝手に動く仕組みは、
・予め、賢くない作戦、賢い作戦、といったいくつかの作戦を練って
プログラマーが用意しておく
・ゲーム中に、コンピューターは どの作戦を使うかキャラ付けされていて、
作戦も 選ぶ優先度の高い順に並べてある
・コンピューターは自分の手番で、上から順に、作戦を 仮に 選ぶ。
1つの作戦を、具体的な1~複数個の行動(※一連の流れ)に細かく分ける。
(例)香取り作戦 → 1.左上隅まで歩き、
2.駒をひっくり返したあと、
3.右上隅まで歩き、
4.駒をひっくり返す
・具体的な一連の行動を 仮に 順番に実行する
・うまく作戦を遂行できそうなら、本チャン として実行する。
逆に、作戦に沿った一連の行動中に 妨害が入って 行動ができないようなら、
次の作戦を 仮に 選びなおす。
全部選べなかったら、消化試合みたいな行動を選ぶ
という流れ作業になっている☆
────────────────────────────────────────
※一連の流れ…… これを「ルーチン」と呼ぶ☆
────────────────────────────────────────
で、
ここからが記事の本番なんだが、
①
賢い作戦とか、賢くない作戦を用意しておくというが、
自分のこれから作るゲームに勝つためには、
どういう作戦があるんだぜ☆?
この作戦の内容を私は コンピューターの思考 と呼んでいる☆
②
ってゆーか☆
コンピューターの思考じゃなくて、私の思考だぜ☆
厳密には
コンピューターは思考してない☆ww
私の書いたプログラムを
なぞっているだけだぜ☆ww
③
はい☆ ここで
国語の問題だぜ☆(≠数学) 作文に近い☆
┌──────────────────────────────────────────────────┐
将棋神経衰弱のこんぴゅーたーのるーちん
作者・むずでょ
1.
香車は、将棋盤の角にいるものだろう☆
だから 端っこの4隅の自陣に、自陣の小駒があれば、
多分だけど、香車だろう☆
2.
桂馬は、将棋盤の上下の端っこの、左右の端から2つ目に
いるものだろう☆
だから、そこには 桂馬がいるだろう☆
…
└──────────────────────────────────────────────────┘
と、雑に、ぶっきらぼうに、 思考を 文章に落としてみるぜ☆
これを、
弱い文章 と、仮に名付けよう☆
厳密に物事を特定するように書くと 記号・符号で字が読みにくくなって、
状況説明を精密にすると文章が長くなる☆
正確さを咎(とが)めると 数字・論理を用いて あいまいさを無くしたくなる☆
もし、
読み手に認識間違いが起こらず、状況説明がこと細かく、正確で、あいまいさもなければ
それを、
強い文章 と、仮に呼ぶことにしよう☆
はい、まとめ☆
①好きなことを好きなだけ思いつく能力を
妄想むんむんのちから、(※)
②思いついた考えを筋道立てていく工程を
構想に隙がないちから、(※)
③弱い文章を、強い文章に仕立てる技術を
コーディングのちから、(※)
と、私は 位置づけるぜ☆
────────────────────────────────────────
※妄想むんむんのちから……誤解、間違い、突飛でたらめを含めて
自論を好き勝手に膨らませている状態☆
風呂敷は広がる☆
アイデア☆ 足し算☆
────────────────────────────────────────
※構想に隙がないちから……妄想の無駄を枝刈りし、実の収穫をしている☆
その妄想、ちゃんとパソコンで動くのか☆ みたいな☆
風呂敷は折り畳まれる☆
プログラム☆ 引き算☆
────────────────────────────────────────
※コーディング……書き方の規則に正しく則って書くこと☆
ぱっと
if price<100 then
buy()
end
みたく書ける☆みたいな☆
────────────────────────────────────────
で、
この3つは
①アイデア出し → ②プログラミング → ③コーディング
と
順番飛ばしにできない流れ作業 になっていると思っているのだが、
今、その真ん中の、構想に隙がないちから、
プログラム の部分で頭を抱えている☆
(形にせえよ)
と☆
②プログラミング と ③コーディング の違いが伝わりにくいと思うんだが、
リファレンスや、言語マニュアルを読めば ③は 解決するが、
ゲームの作り方マニュアルがなければ ② が解決しない☆
私は プログラムの能力が低い☆w
①ゲームの攻略法は思いつくぜ☆!
↓
②どうプログラミングするんだぜ……☆? ゲームの作り方が分からないぜ☆
↓
③Lua言語は書けるぜ☆!
②について、
今後、どんどん書いていこう☆
[0回]
http://grayscale.dou-jin.com/Entry/11/コンピューターの思考をプログラムにしてやりたいんだぜ☆