鍋あり谷あり

テーマを決めずに適当に書いています。

ゲーム制作 5個目: 合成タイツ

フルスクラッチゲームクリエイター業、5個目。

ゲーム自体は
https://nabetani.sakura.ne.jp/game24c/
で公開した。

タイルマップゲームはまたもや先送り。
今回は離散的なゲームを作りたい、という気持ちで作った。

スバラシティーが好きなんだけど、スバラシティー は一回始めると何時間もかかるから困るなぁと思っていて。
そんなに長持ちしないでゲームオーバーになるゲームにしたいと思った。

で、例によって Phaser3 で書いた。

ずっと MacPook Pro 上で動かしていたんだけど、最後に Kindle Fire HD で動かしてみたらめちゃくちゃ重かった。富豪的に過ぎたらしい。

まぁこんだけ半透明とアンチエイリアス使っていればそうなるよね、と思わなくないけど、最近のブラウザならこれぐらいたいしたことないだろうと思いこんでいた。
非力なスマホの方には申し訳ないけど、マシンパワーまで気が回らなかった。iPhone でもちょっと重い感じがする。
非力だと時間がゆっくり流れるのでちょっと簡単になる。あとで治すかも(治さないかも)。

例によって BGM は難産だった。作曲に関する本を読んで参考になるなと思ったりはしたものの、やはり難しい。
難しかったけど、それらしさは以前より高まっている気がする。
作曲するようになってから、そういう気持ちで JPOP を聞くと手数の多さに驚く。

ゲーム自体は、今までのゲームの中で「普通のゲーム」という雰囲気が強いと思う。
前回の「タイツを探せ」みたいな見覚えのないルールでもないし、その前の Dragon Tights みたいな見覚えのない UI でもない。
マス目をタップしたらコマが動く、なんていうのはたぶん見たことあるよね。動き方は若干独特だけど、若干でしか無いと思う。

最初、現れるタイツをランダムにしたら割とつらくて。
その後、合成しやすいように(でも即座には合成されないように)という恣意的な計算をしたらゲームとして楽しくなったと思う。

あと。
前回リリースが 3/1 までしか問題がないので 3/1 ぐらいにリリースしたいというのがあって、ちょっと追い立てられる気分があった。

さぁ次は何を作ろうかな。

ゲーム制作 4個目

フルスクラッチゲームクリエイター業、4個目。

ゲーム自体は
https://nabetani.sakura.ne.jp/game24b/
で公開した。

もともとタイルマップを使った普通のゲームを作るつもりだったんだけど、日本語の文章からタイツを探す、というアイディアが思いついてしまったのでそっちに行くことにした。

ということで、まずは「タイツ」を含む文章を探す必要がある。改変しても法律的に問題ないものということで青空文庫から探そうと思ったけど、漢字かな交じりの文章から「たいつ」を探すのは割と難しい。

形態素解析 をすればいいんだと思い、形態素解析といえば mecab。と思ったけど、それは 10年ぐらい前。
現在はどうなっているのか調べた結果、
GiNZA - Japanese NLP Library | Universal Dependenciesに基づくオープンソース日本語NLPライブラリ
にたどり着いた。

このツールを使って探してみると、たいつは全然ないわけでもないけどよくあるってほどでもない。
なんにせよ、何個か見つかった。

今回の新機軸で、Wordle を真似て毎日違う出題をする、という仕組みを入れた。
サーバサイドはなにもないので、ブラウザの localStorage に保存することにした。

BGM は、一行一行出るタイミングに合わせてだそうということで、一行出すたびに再生としてみた。

再生する端末によっては行が表示されるタイミングと音が出るタイミングがズレたりするんだけど、試した範囲内ではズレ方が一定なのでリズムは乱れてない感じにはなった。

今まで通り、音も画像も自作した。出題する文章の一部は青空文庫からの引用だけど。

タイトルページの文字は、
Kaisei Decol - Google Fonts
で書いたものを手書きでなぞった。こういうのって権利的にどうなんだろうと思ったりもする。

依然として Phaser3 で書いているんだけど、なんかわかってなかったなと思う場所がたくさんあった。まあまだわかっていないわけだけれども。

さぁ次は何を作ろうかな。

Dragon Tights 制作ノート

ゲーム三個目をリリースした。

前回同様

  • 音源画像全て自力で作る
  • ウェブゲームらしさ

を必須として作成した。

そして前回同様「設計をもうちょっとちゃんとする」と思いながらつくりつつ、あんまりそうはならなかった感じ。
私の気持ちと Phaser3 の気持ちが合ってないということでもある。次は別のフレームワークを試してみるのも悪くないかも。

さらに前回同様、BGM は難産だった。
今回作ってみて思ったんだけど、曲の雰囲気が同じ感じ。もうちょっと雰囲気の違う曲を作れるようになるには勉強が必要かな。

今回の新機軸(?)としては

  • クリックした場所によって起こることが違う
  • 「クリア」という「クリアできずに終了」という概念がある
  • スクロールっぽいことが起こる

の3点かな。

あと、HTML の title をちゃんと設定したのも新機軸(?)。

スクロールといってもそんなに長くないので、スクロール範囲を埋め尽くす、縦4300ピクセルの画像を適当に動かす、という作戦にしたら。なぜかアンドロイドでは表示できないという思いがけない事態に遭遇した。びっくりした。
分割するという対応で解決したけど、そういうもん? と思った。

やりたかったけどやらなかったのは、日替わりステージ。ステージの自動生成ロジックがめんどくさくてやめた。
また別の機会に。

全体的には、ちょっと時間を書けすぎた感じ。
もっと雑に作って、こんなもんでいいでしょ、とか言いながら雑にリリースしたい。

作ったゲームは
https://nabetani.sakura.ne.jp/game24a/
に置いている。

年明けの挫折からの新たなスタート

あけましておめでとうございます。

という投稿をする前に、ゲームの制作ノートを出す予定だったんだけど、昨年中に完成しなかった。

昨年は、ここに 8個ぐらい記事を書いた模様。

最近にしては多い方、昔はもっと多かったけど。

年明けの今日は

  • wordle 久々の敗北
  • お屠蘇用に適当に買った日本酒が、飲むための酒ではなかった(酒屋で普通に並んでいたので気づかなかったよ)
  • 某イベントに足を運んだが、1/1 は休みで無駄足だった
  • やや二日酔い

と、わりといまいちな日。一年の計は元旦に無いことを祈ろう。

まあ、私のいまいちなんて、地震の被害にあわれている方々に比べれば誤差程度だけれども。

あと「AIタイトルアシスト」という機能ができたらしいので使ってみたが、初回は字数が足りないと言われ、二回目はなんか失敗と言われた。
三回目はようやく結果が出て

  • 年明けの挫折からの新たなスタート
  • 日本酒の誤算といまいちな日々
  • AIタイトルアシストの挑戦と失敗

となった。「日々」じゃないよなぁということで最初のを採用した。

ゲーム第二弾

先月に続いて、タイツゲームを出した。

今回の目標は、前回と同じく

を前提としつつ

  • 設計もうちょっとちゃんとする。

としたいと思った。

前回は最初からスマホターゲットのつもりで作ったのに画面が中途半端な横長という詰めの甘さだった。
ので。
今回は反省を活かして縦長にした。
どれぐらいにするのがいいのかよくわからないのだけれど。

ゲームの規模は前回よりだいぶ大きくなった。
前回は、動いているものはタイツ、自分、パワーゲージ ぐらい。
今回は、魚たくさん、タイツたくさん、波、そして自分なので数十個。

でも、今どきのブラウザなら軽く動く。ありがたい。
……とおもっているんだけど、どうだろう。手元では動いている。

今回も BGM も含めてすべて自作。
そして今回も BGM が難産だった。
あと、ゲームクリア音も難産だった。出来上がったゲームクリア音は非常に簡単だけど、ここに至るまでが大変だった。
音は難しいね。

出来たゲームは
https://nabetani.sakura.ne.jp/game2311/
においている。

ゲームを作るのは良い趣味だと思えてきたので、毎月またはそれより少ないぐらいのペースでリリースしていきたい。

フルスタックゲームクリエイター

タイッツーというサービスを使っていたら、ブラウザゲームの小品が流れてきて。
見ていたら作りたくなったので作った。

フレームワークはしょぼいゲームに向いていそうな phaser3 を選んだ。
言語は TypeScript。

今回の目標は

の 2点。
面白さは、まあまあで良いという気持ち。初ブラウザゲームなので無理しない。

ソフトウェア面では。

途中で設計ミスったなと思ったけど、まあこのまま最後まで行けないほどのミスじゃないと思って突き進んだ。
次はもうちょっときれいに書けると思う。

画像は。

Pixelmater Pro で書いた。色がブレるペンが便利だった。
ポインティングデバイスMacBook Proトラックパッド。書きにくかったけど、要求品質が低いので問題なかった。

効果音は。

ガレージバンドで作った。
音色を探すのが大変だった。

BGMも。

ガレージバンドで作った。
作ったんだけど、難航した。

曲の作り方がわからない。
ループ音源を組み合わせるだけでそれらしい音にはなるんだけど、それは曲を作ったと言えるのか。みたいなことも思う。
ガレージバンド以外も試したけど、結局ガレージバンドに戻ってきた。

試行錯誤の末

  1. コード進行を Am→F→G→C に決める。
  2. コードに合わせてベースを各1小節作る。
  3. ベースに合わせてメロディーを作る。このとき、コードに含まれる音ばっかり使う。
  4. 4小節作ったら、ドラムパートを自動生成する。生成は、気にいるのができるまで条件を変えて何十回か行った。
  5. 音色を選ぶ。

という方法で曲を作った。

じゃまにならない程度の曲にはなったように思う。

あと。
ループ再生の仕方がわからなくてだいぶ苦しんだけど、なんとかなった。

ということでできたゲームは
Jump Down into TIGHTS
というもの。

初めての制作としては悪くないと持っている。

企画、ルール設計、画面設計、画像素材作成、効果音制作、BGM制作、コーディング、サーバに設置 まで全部一人でやったので、これからは「フルスタックゲームクリエイター」と名乗っていいんじゃないかと思う。

理科方面の疑問

理科方面の疑問というか質問というかが某方面から来たので、私なりに答えてみる。
私なりの答えなのであんまり自信がないものも混じっている。

なんで電子は マイナスからプラスに動くのか

短い答えは、「電子はマイナスの電荷を持っていて、同符号の電荷には斥力が、異符号の電荷には引力が働くから」なわけだけど、おそらく知りたいのはそういうことではなくて「同符号の電荷には斥力が、異符号の電荷には引力が働くのはなぜか」が知りたいことなんだろうと想像する。

しかし私には(もしかしたらまだ人類には)「同符号の電荷には斥力が、異符号の電荷には引力が働くのはなぜか」についてきちんと答えることはできない。

なんで脳のシワの数が多いほど頭がいい(?)のか。

脳のシワの部分に、知性とか思考を司る部品が入っているから。
なんだけど、シワが多いほど頭がいいかどうかはよくわかっていないんじゃないかと思う。
人間とネズミの比較、みたいな文脈では「シワが多いほど頭がいい」で正しいと思うけど、人間同士だとどうだかわからないんじゃないかな。

動物は考えているのか。

「考えている」とはなにか、による。
犬やインコがが行っている営みに「考えている」という言葉を使うことに異論がある人は少ないと思う。

ゲームの思考ルーチンだと「ステージ上のどこに何があって得点差がどうだからこういう行動を取る」というソフトウェアを書くことになるんだけど、このソフトウェアの営みについて「考える」という言葉を使いがちだと思う。

逆に。「筋肉への的確な指示を間断なく出し続けることにより、三半規管と視覚からのフィードバックを得ながら動歩行を実現する」なんていう営みはさきほどの思考ルーチンなどよりよほど複雑な処理はだけど「考えている」とはよばれないと思う。

なぜ木は繊維なのか

植物が繊維質になりがちなのは、維管束があるからだと思う。
答えになっているかな。

オーロラの仕組み

オーロラは

  1. 太陽から宇宙線(ヘリウムの原子核とか、電子とか、色々)が飛んでくる。
  2. 地球には磁場があるので、飛んできた荷電粒子は極地に当たる。
  3. 荷電粒子が大気に当たると、大気を構成する原子の電子が励起する→そのうちもとのエネルギー準位に戻る
  4. 励起→戻る の際に光が出る

という仕組みだという理解なんだけど、なんでカーテンみたいな形状にいなるかは全然わからない。

インターネットでデータを送受信する仕組み。なんでちゃんと正しい相手に届くのか。

短い答えは「宛先が書いてあるから。そして、宛先に送る方法を各自が把握しているから。」だと思う。

URL とか IP アドレスとかいうものがあって、インターネット内を流れる情報には(だいたい)全部「これは xxx から yyy 宛のデータです」って書いてある。
そして、中継する機器は、どこ宛のデータを誰に送ればいいかを知っている。(中継する機器が知らないデータは全部ここに送る、みたいなパターンも含めてなんとかなる)

聞きたいことの答えになっているだろうか。

宇宙の作り方

物理法則や定数を適当に決めて、あとはえいやで。

水に溶けやすい物質と溶けにくい物質があるのはなぜか

「水に溶ける」という現象にも色々ある。

思いつくままに書くと、まずはアルコールや砂糖。
これは物質が水に似ているから水に溶ける。「OH基」の部分が水に似ている。

続いて塩とか。
これはナトリウムイオン(+) と塩化物イオン(-) に分かれる。
そして水分子は電荷に偏りがあるので、イオンがあるとイオンを水が取り囲む。水が取り囲んでしまえば外からは水に見えるので水に溶ける。
で。
各イオンが「水分子に取り囲まれている状態」と「イオン結合で決勝になっている状態」のどちらが安定なのかで水に溶けるかどうかが決まる。
どちらが安定なのかはケースバイケース。イオンの大きさや価数などで決まる模様。

最後にコーヒーとか。
これは化学的には水に溶けていない。
水には溶けていない小さな粒子が水に混ざっているだけ。

人間が音を触れるようになる可能性はあるか

ある。以下の方法で音に触っているような気分になれるんじゃないかと思う。

  1. スピーカーから出た音を振動板で受ける。
  2. 振動板の振動を適当に変換(周波数変えたり、ローパスハイパスしたり、振幅変えたり)したりしてから、別のモータで振動を再生する
  3. 再生した振動に触れる