2022-09-06 13:42:27
最近 Unity をいじっているが馴染むのにどれくらいかかるだろうか

最近は Unity というゲームエンジンをいじっている。便利らしいがまともに使えるようになるまでにどれくらいかかるだろうか?どんな手段で手に馴染ませるのがいいだろうか?

Unity

Unity というゲームエンジンがある。2D なゲームでも 3D なゲームでも作れるらしい。しばしば Twitter 上では #unity1week というようなハッシュタグを見かけることもあり、ちょっとしたものを高速に作るのには向いてるっぽいような雰囲気を感じている。

プロトタイピング的にアイデアを高速に形にできるっていうのは大事だと思っている。じゃあ自分もちょっと試してみるかって思って公式サイトの指示に従って諸々インストールしてみたものの、いったい何をどうしたらどうなるのか微妙に分からない。便利そうな顔はしている。なんとなく画面に物体を配置してなんとなく C# のスクリプトを当てがうみたいなことはやってみたが、一週間で何かを作るっていうようなレベルに達するのはなかなか遠そうである。

どのように手に馴染ませるのか

たぶんしばらく触っていればもっと手に馴染んでくると思うが、平日はあんまり手を動かす時間が取れない (気力がないとも言うかもしれない) ということが分かってきた。中年乙。週末は週末で日中は部屋に引きこもっているわけにもいかず、夜にはやはり気力が尽きていて YouTube 見ながら値落ちするみたいな生活パターンがしばしばである。さて、このままでは Unity が手に馴染まないまま一生が終わりそうであるがどうすれば良いか。

この構図は Unity に限らず “任意の何かを習得しよう” としたときに同じ問題が起きそうな話でもあるな。

やれる範囲で始めて、レコーディングしよう

気力が尽きていてもやれることがあり、それはたとえば自分にとっては

  • ちょこっと本を読む
  • ぼーっと動画を眺める
  • つらつらツイッターを眺める

あたりである。

理想を言えば、“毎日 1 時間、PC に向かって Unity をがちゃがちゃいじる” みたいなことができるとよさそうだが、これは今の自分にとってはなかなかハードルが高そうである。もっとハードルを下げて、とにかく “毎日 1 mm でも進歩すること” を目指すのでどうかと考えた。

気力が尽きていてもやれることをちょっと応用して、

  • ちょこっと本を読む (Unity の)
  • ぼーっと動画を眺める (Unity の)
  • つらつらツイッターを眺める (Unity の)

というような感じなら毎日でもイケそうな気がしないでもない。動画やツイッターは体系的に知識を得るにはあんまり向かないかもしれず、そういう意味では “ちょこっと本を読む” のが一番効率がいいような気がする。ちょっとの時間しか使えないのであればなるべく効率よくやるのよ。

で、進捗はなるべく記録しとくのが良いと思っている。GitHub の草みたいなもんで生え揃ったら嬉しい気持ちになるし、あんまり途切れたらイヤな気持ちになるわけで。記録しとくことは、ささやかかもしれないが続けるモチベーションのひとつになるように感じている。

ということで、ひとまず “本を読んだらどこかに記録する” をやる

本を読むのは良いとして、それをどこに記録するのはどこがいいんだろうかと考えた。このブログでもいいかもしれないが、「n ページ本を読み進めました」みたいなことだけでブログ更新するのもなんかすごく微妙に思った。そもそも “ブログを書く” というのが自分にとってはだいぶ腰が重いわけであるから。

スマホでワンタッチで記録できるくらい簡単なのがよくて、だとすると Pixela を用いて草を生やすくらいがいいのかもしれないと思っている。Pixela については、Android 版の便利な何かというのはいまのところ存在してなさそう。とはいえ、グラフとボタンを並べるくらいであれば PWA なウェブページで作ればすぐできる気もするんで、いったんそんな感じでスモールに始めてみるのがいいかしらね。

2021-02-20 23:16:14
ゲームを作ろう

時々作りたくなるよね、ということで案を練り始めた。

なんとなく構想

構想を練っている。なんとなくの概要は以下のようなもの。

  • ローグライクみたいなノリ。Slay the Spire とか buriedbornes のような。
  • プレイヤーはダンジョンのような何かに乗り込んでいく。ダンジョンでは戦闘が発生したり、何らかのイベントが起きたりする。定期的にボスが出たりもする。
  • 深く深く探索することが目的。深度=スコアでハイスコアを目指す。
  • いつでも探索を終わらせることができる。終わらせた時点の深度がスコアになる。
  • 体力が尽きる等して死ぬとスコアにならない。ご破算。
  • 探索を中断することもできるが、減った体力が自然に回復したりはしない。サスペンド状態。サスペンドしておけば、その後また同じシチュエーションから再開できる。
  • プレイヤーは、深度が同じくらいの位置にいる他のプレイヤーを攻撃することができる。倒すと自分の体力が回復する。負けたら死亡でご破算。相手は回復する。
  • 中断中は、通りかかった他のプレイヤーを自動的に攻撃することもできる。
  • 中断はいったんプレイを休憩する目的もありつつ、死にかけてももしかしたらだれかカモが通りかかって回復できるかもしれない、みたいな雰囲気で使うことを想定。
  • プレイヤーを倒すと身ぐるみを剥ぐことができる。

なにが面白いのか

  • 繋がりのゆるい非同期なマルチプレイという形で、他人とのインタラクションを楽しむ(殺すか殺されるかしかないが)
    • 定型文を組み合わせて会話くらいできてもいいかもしれない
    • 他人をどうにかしないと深く進むことができない設計。もちつもたれつ(殺すか殺されるかしかないが)の人間関係を楽しむ
    • 他人と会えるかどうかは運になっちゃうし、奥深く行けば行くほど出会いの可能性は低くなるがまあいいのかも
    • 引き際を誤って虫の息で佇んでいると他人の養分になりがちなので、そういった焦りを楽しむ
  • 誰が深くまで行った、というよりは、ここまで深く進んだ人が現れました、みたいな感じで、共闘のノリにしておくとジレンマが発生していいかもしれない(養分になればなるだけ人類の到達点は伸びるが、先に進むのは自分ではない、みたいな)
  • 他人を倒して養分を吸いまくったとしても、最終的には探索を “終了” しないとスコアにならないので、他人の命を奪ったからには進まねばならぬということで終了しにくい気持ちにさせつつ、そうやって戦っていると次第に体力が減って今度は他人の養分になりがち、みたいなのが楽しいのでは(作者が)

システム構成など

  • ブラウザ上で動く類のゲームにしようかと思っており、フロントエンドと、あとは状態の保存や認証のためにいくらかバックエンドも必要な気がしている。
  • フロントエンドはいったん何でもいいことにする(絵にこだわったりは作者のスキルの関係でできないし)。
  • 認証は Firebase の何かを使うと楽ちんらしいので試してみる。
  • バックエンドは… お金かけないためには GCP の Cloud Functions と DataStore みたいな組み合わせにしとけばとりあえずお金かかんなくて良さそうか、なんて気もしつつ、Cloud Functions に DDoS 食らって破産したりしないよね、みたいな心配がないこともない。まあお金で制限かけとけば大丈夫か…。

MVP(とりあえずちっさく作る)

MVP といいつつ、“とりあえず動く” 段として目指す場所を定めておく。

  • 認証できる。
  • ダンジョンを進むことができる。
  • 終了してスコアを記録できる(名前を記録できる)。あわよくばランキングみたいなものが見れる。
  • 他のプレイヤー(仮想)がいて、殴ったり殴られたりできる。
    • 仮想と言っているのは、実際にプレイヤーデータを使うんではなくて、とりあえず作者が用意したカカシを使うということ

こんなところか。ゲームのメインとなる他人とのインタラクション(仮想)を試してみれば、楽しいか楽しくないか、楽しくないとして何が楽しくないか、みたいなこと考えたりできそうな。

作ろうな

こういうのは構成だけで終わること山の如しなので、作ってみような