12月なのでブログを更新する~今年の振り返りゲーム製作編

この記事は どもがよアドベントカレンダー2024 の3日目の記事です。

2日目はtackmanさんの 今年行ったところまとめ でした。今年はtackmanさんは精力的に海外まわってたなーとあらためて思いますがそれにしてもすごい。各地のレーダーチャートがおもしろいです。イスタンブールは元気なうちに行きたいですね。

3日目の記事は今年の振り返りゲーム製作編です。というわけで振り返っていきますが、

2024年はなんと! ゲームを!

作っていませんでした。

~おわり~


まったく作っていなかったわけではなく、基礎研究ぽい動きをした一年だったのでそのあたりを振り返って今年のまとめとします。

1月

仙郷物語という中華風牧場物語風なゲームで遊んでいたと思います。単に趣味で遊んでたんだけどいま作っているゲームに料理要素があるのでそのへんの研究を兼ねてはいます、いちおう。

2月

プログラム面で製作協力したゲーム プリコラージュ -IDOLIZED- がリリースされました。

12月4日までセールで50%オフなのでこの記事が出てすぐ読んでいるあなたは買うチャンスがあります。ゲームは短めですが題材に演出がハマっていて味わいがギュッとなっているのでちゃんと味がするし忙しい人でも気軽にプレイできると思います。同作者の他のゲーム(因習村祠破壊RTA とか)が面白かった人はたぶん気に入ると思うのでこの機会にぜひ。

Steamで売ってるゲームのエンドロールに自分の名前が載ってるのすごいな……と他人事みたいな感想を抱きました。

それ以外にはハーヴェステラというルーンファクトリー風なゲームで遊んでいたと思います。単に趣味で遊んでたんだけどいま作っているゲームに料理要素があるのでそのへんの研究を兼ねてはいます、いちおう。

3月

Factorioやってたのは言い逃れができない。

4~7月

RimWorld やってたのは言い逃れができない。

8月

Stable Diffusion でゲームに使う画像素材を作ったりしていました。特に敵画像。今作っているのは料理が題材なので敵を倒して肉を得たりするんですが、RPGの敵グラフィック画像素材ってファンタジーによく出てくるゴブリンとかオークみたいな亜人とか、犬とか狼みたいな肉食獣は割と豊富にあるものの、牛とか鹿とか草食の野生動物っていうのは案外なくて、ないものをかき集めると質もまちまちだし雰囲気もまちまちになりがちなので、ある程度雰囲気を統一して数も揃えたい、となったときに割と困っていました。パブリックドメインには野生動物のスケッチがあったりするので、そういうものをi2iしてAIに出力させるなどするとけっこういい感じです。

あと料理画像も手持ちの素材集で基本間に合ってるんだけど見せ場では固有の画像を使いたかったりするのでそういうところもAIに描かせたりしています。だから進捗はある。あるはずなんだ。

あとローカルのLLM環境作ったりもしました。現状はシナリオ製作の補助に使えるかっていうとまあ、あんまり使う機会はないんですが、今作っているゲームには使う機会はなさそうだなという学びがありました。他の用途では何かしら使えそうだったので使えるときに使うと思います。

あとは戦闘システムの参考にオクトパストラベラーを遊んだりしました。オクトラはターン数が進むとリソースが溜まって大技が出せるようになるので雑魚戦だとだいたいそこで決着がつくし、ボス戦はいつ最大火力を叩き込むか戦略を練る、みたいなデザインになっているんですが、今作っているゲームの思想に近いので参考になったと思います。

9月

異世界の創造者の MOD を作って遊んでいたと思います。ゲームのプログラムを書くリハビリにはなったかもしれない。このあたりで自分が作りたいゲームってもしかしてルナティックドーンなんじゃないか?という思いに気付く。

10月

Factorio Space Age やってたのは言い逃れができない。

11月

Elin をやっていました。単に趣味で遊んでたんだけどいま作っているゲームに料理要素があるのでそのへんの研究を兼ねては……兼ねてはいません。ルナティックドーンみたいなゲーム作りたいという気持ちを再確認しました。

12月

自分の書いたコードを解読しています。UI周りの実装が中途半端なまま止まっていてこれをやるのがだるいので先に進めていないということを理解していて、だるくならないやり方にするためにドラスティックに手を入れる決断をしました。こういうことをやるとすごく時間がかかるが一度これを終わらせるとすごく楽になるのでやっておくべき。だるくないやり方のために多少だるいことはしないといけない。

あと今作っているゲームのシナリオに関しては具体的にいつというわけでもなく常に何かしら考えていてちょこちょこアイデアをメモったりはしています。アイデアをゲームシステムに反映しようとして手が止まるのを繰り返してるのがよくない。よくないんだけどこうしたほうが面白いよなと思ったら未練を振り切れない。たぶん短いテキストでいいから書き始めてある程度具体的な形を作っていく必要があってそういうものがあると軸が定まってふらふらしなくて済むようになると思うのでそういうのをちゃんとやろうと思います。思いました。

まとめ

全体的に労働であんまり身動き取れない一年だったなという気はするものの、前は労働ほったらかしてゲーム製作にのめり込んだりしていたことを思うと真面目に労働していてなぜ?となった。余暇は労働の反動で遊びに出かけたりめっちゃゲームしてたりしてて、ただ一年そういうことをやったのでかなりMPは貯まったのでちょっとずつやっていこうと思います。

あしたはヴぃさんの「Netflixのオリジナルコンテンツ、見るならこれ 2024年版」です。おたのしみに!

12月なのでブログを更新する~今年の振り返り仕事編

アドベントカレンダーの時期なのでみんなたくさんブログ書いたりすると思う、わざわざ年の瀬の忙しい時期にあわせてみんなで書かなくても、というのが個人的な意見ではある、書くのもそうだけど読むのが大変、なのだが、読む側としては別にリアルタイムで読む必要はなく、読み返せるようになっていればよく、このブログの一番の読み手は自分自身であるので、自分自身のために今年のことを書いていく。

12月1日でまだ今年は一ヶ月残っているが、今年の振り返りを年末にやりたくない、年末はだらだら過ごしたい、わたしは年末を迎えるのは早ければ早いほどいいので、さっさと今年の振り返りをやってしまおうと思う。残りの一ヶ月で起きたことはそのときに速報を書けるので書くネタが増えてアド。

40歳になりました

加齢は毎年あるイベントなので年単位としては別に特別ではないんだけど、10の位の数字が増えるのは10年に1回しかないので特別に振り返ってもよい気がする。

この10年間は東京名古屋を毎週往復しながら仕事したり転職して関東に引っ越したり転職先の会社が合併されたり合併した会社が更に会社を合併して別の会社に変わったりということがあったりした。いちばん大きなイベントはやっぱり転職だと思うが、ドラスティックな変更と呼べるのは住むところが変わったということだけで、転職といっても勤め先が変わるだけなので仕事内容の本質はあんまり変わってなく、ずっとソフトウェアエンジニアをやっている。

仕事は選んでないというか選べないというか、なんでもやるので気付いたらフルスタックになっていた。この10年の入口の時点ではウェブアプリケーションエンジニアでフロントエンドもそれなりに書くしバックエンドもそれなりに書く、くらいだったのが、今はIaaSで構成管理してAWSにインフラを展開して運用したりというところまでやっている。やっているというか最近はそのへんばかりやっていてアプリケーションのコードを書く機会は減ってきた。減っただけで書かなくてよくなったわけではなく、以前からやっているプロジェクトの改修をちまちま続けているのでなんだかんだでアプリケーションも見ないといけない。

インフラの面白さはちょっと分かってきた気はする。Jmeterで試験シナリオ組んでAWS DLTで耐久試験やるということをこの歳になってはじめて経験したが、経験してはじめてどのようにインフラを構成するのかを考えられるようになったかもしれない。

構成管理は10年前にもちょっと触っていてAnsibleでLinuxサーバをプロビジョニングするということを趣味でやったりした。Ansibleは今でも出番はあると思うが、今のところその出番のあるシチュエーションがなく、Terraform で構成を書いてアプリケーション側は Docker にしてイメージを push してデプロイ、というのが主立ってきている。

趣味で借りているVPSをずっと遊ばせているのだが、そういう方面では活用できてない。たまに使いたくなることがあるので解約するともっかい契約するのも面倒、みたいな惰性で借り続けている。先日 Factorio Space Ageが出たのでマルチサーバを立てた。ようやく日の目を見ることができた。Factorioのマルチサーバを立てるのはめちゃ簡単なんだけど、ふつうにVPSSSHで繋いでコマンド流してみたいなことをやったのでサーバが飛んだらまた一から作る必要があるしなんかちゃんと手順をコード化して復元可能にしたいしアップデートも自動化したいしセーブデータも自動で適当なストレージサービスにバックアップしたい。そういう欲求が湧いてきたのはたぶんインフラにかかわることが増えたからな気はする。サーバをいじることに対する抵抗感は昔に比べるとたしかに減ったなと思う。

今年の頭くらいに以前客先のエンジニアだった人と飲む機会があって、そこでインフラエンジニアをやることへの不安みたいなのを漏らしたんだけど、その人が言うには「フロントエンドもインフラも本質は通ずるとこあるから、なんとかなるやろ」ということだった。そのときはあんまりピンと来てなかったんだけど、一年インフラエンジニアをやってみて、もしかしてこういうことだったのかもな、という感覚が今はある。ホームページ屋さんから本格的にフロントエンドをやりはじめたのが今の会社(正確には今の会社の前身の前身)に入ったときで、あれから数年でフロントエンドのコードを書く上で特に意識するようになったのは、振り返ってみれば宣言的であることとイミュータブルであることの二つだったと思う。それはたぶんTypeScriptを使うようになったからで、TypeScriptを書き始めてからプログラミングの興味や好みがそういう方向性に変わったことを自覚している。インフラもTerraformなんてまさしく手続き的に構築するのではなく宣言的に構成を記述するし、アプリケーションもイミュータブルなコンテナをデプロイして動いているものを直接書き換えない。今年の頭よりは前向きにインフラに取り組めてはいる。今はまだむずかしいが勝ち気味なんだけど、楽しいの割合が増えていくといいね。

AWSは個人で趣味でいじるにはちょっと高くてしんどい。EC2立てたりくらいは別にいいんだけど、真面目に業務のことを考えた冗長化構成を試そうとするとけっこう大変。仕事の予算で弄れるのは助かるが、仕事の予算で弄るしか覚える道がなく、だからインフラエンジニアっていうのは在野に転がってないんだよな。まあ中には趣味で100万する機材を自宅に揃える猛者とかいるけど、その元手って高いインフラスキルだったりするし。

AWS興味あって弄りたいという人は声かけてください。弊社はインフラエンジニアを切実に募集しています。


というところで今回はここまで。

最近やってるゲームの話

異世界の創造者

mod 支援ライブラリが出てたので Elin 出るまで mod 作りながら遊ぶか~って思って遊んでた。mod はゲームバランスにかかわるものは特にいじらなくて、掃除屋をメイドさんにしたりした。手元にはトークパターンのバリエーションを増やす mod があるけどトークデータを書き起こすのが大変だったのでそこで止まってる。一応表クリアまでは遊びました。

手触りとしては遊びやすい Elona なんだけど Elona よりはマイルドなのでルナティックドーンに近い味わいな気がする。巡り廻る。とかのほうが近いかも。ゲームバランスにクセがなくてちょうどいいんだけど、ゲームを破壊する気持ちよさみたいなのはそんなにない(ラスボス戦はズルしたけど)ので、そのへんが味わいたい人は今なら Elin やったほうがいいかな。

Factorio Space Age

序盤からけっこうテコ入れがされていて最初のロケット打ち上げまでがかなりマイルドになっている。そのうえでスピードクリア実績が40時間に設定されているのやばくないか? 序盤をコンパクトにしたのに無印の5倍かかるって言ってる?

なおその無印で取れずじまいだったスピードクリア実績「スプーンなんてない」はリベンジ達成できました。6時間くらい。8時間以内クリアの実績なので、だらっとやって6時間だから無印よりはだいぶ余裕あると思う。紫パックと黄パック作らなくていいのがかなり大きい。なお紫と黄は逆に最初の別の惑星に到達するまで研究しないという実績が出てきたので実績目指す人は手癖で作らないように気をつけましょう(1敗)。スプーンでけっこう満足したので宇宙開発はまた今度やります。

Elin

Elonaはキーボード操作を覚えたら楽しいゲームという感じだったんだけど、今作はマウスからほとんどの操作ができるしなんならマウスだけでも遊べるのでかなり遊びやすい。あの操作どうやるんだっけ?がないので遊んでいてしんどくない。チュートリアルどおりに進めていけばとりあえず困らないと思うしベータからのプレイヤーによる攻略記事もけっこうあるので詰まることもあんまりないと思う、その上で試行錯誤するたのしさもまだまだあるし今後実装される要素もどんどん増えると思うので、まあ Elona みたいなのやりたいなと思ったらやったらいいと思います。拠点作るの楽しいしこのへんは最近のゲームっぽい気がするね。

来週にはドラクエ3も出るので本当にやるゲームが尽きない、やばい。仕事が暇なわけではないので本当に時間がない。でもこんなにゲームに夢中になれるのってなんかええなという気はするのでいいことにしたい。ゲームすらやる気起きない自分をあんまり想像できない、そうなったときなにするんだろうな。

こちらからは以上です。

ドラクエ3リメイクのグラフィックの話

HD2Dっていうかもう3D+2Dじゃん?みたいな感じにはなっているが、実際にドラクエ3のマップをたとえばマイクラで再現してみたりするとHD2Dのプレイフィールにするのがしんどいんじゃないかなという気がする。

続きを読む

EasyNovelAssistant 試す

日本語で使えるローカルのLLM。LLMっていうのは大規模言語モデル、ざっくりいうとChatGPTとかAIのべりすとみたいに、文章を渡して何かしら処理させるためのもので、質問に対する回答だったり、文章の続きだったりを出力させることができる。ChatGPT とか AIのべりすとはウェブサービスなので無料枠でできることには制限があるし有料プランでもプランの枠内でできることに制限がある。なにより、企業が運営するサービスなので法令を遵守する必要があって、公序良俗を乱さない程度に行儀のよいものしか出力させることができない、仮に公序良俗を乱すような出力を得ようとすると規約違反になったりする、という感じなので、自由に好き放題試すことはできない。

ローカルのマシンで動かせるなら、その問題はない。そんなわけで、EasyNovelAssistant という文芸向けローカルLLM実行環境を試してみた。

github.com

不自由な環境であれこれ試すのは欲求不満がすごかったので、実はわたしはChatGPT とか AIのべりすとはぜんぜん使ってない。だから今回がLLMに本格的に触れるはじめてのケースになると思う。以下、使ってみた感想。

続きを読む

Stable Diffusion 再び

aoitaku.hatenablog.com

前に試したときは「現段階だとまだちょっとムニャムニャ」という感じだったのでしばらく寝かせてたんだけど、久しぶりにまた試してみた。

前試した頃から変わったところでいうと ControlNet と LoRA が二つの大きな点だと思う。

ControlNet はざっくりいうとプロンプト以外の情報を使って生成させる機能で、たとえば OpenPose ならOpenPose形式の棒人間の画像を渡すとそのポーズの画像を生成できたり、Cannyならエッジを描画した二値画像から画像を生成したりということができる。i2i からより抽象的な情報だけを取り出して生成のパラメータにできる感じ。特にすごいのが RefferenceOnly で、元になった画像のタッチを生成画像に反映させることができる。個性的な作風を学習なしに出力結果に反映させられるのでめちゃくちゃ強力で、自分で絵を描いている人なんかだと自分の絵のタッチに似せて出力させたりできると思う。

LoRA は軽量な追加学習データで、生成時に使うLoRaを指定して対応するワードをプロンプトに入力して生成すると、使った LoRA の特徴を持った画像を出力できる。たとえば特定の構図に特化した LoRA を使えば、そういう構図の画像をより確実に生成できるようになる。プロンプトだけだと表現しにくいようなものなんかもこれで出力できる。たとえば、マンガ的な目を閉じてニッコリ笑う笑顔は閉じたまぶたが下弦の弧を描くんだけど(普通は上弦の弧を描く)、closed eyes ではうまく表現できない。そこで「ニッコリ顔」に特化した LoRA を使うと、smile, closed eyes のときにニッコリ笑顔になるようにできたりする。
あとよくあるのは版権キャラの特徴を持ったLoRAを使うとそのキャラに似た画像をたくさん出力できる。ドラクエ関係のYouTube Shortsを見るとドラクエのキャラのAI画像を見かけるんだけど、たぶんLoRAを使ってるんだと思う。権利的にどうなの?とかはあるかもしれないが、人間が手で描いた二次創作でも同じ問題がある。そもそもLoRAを使わなくても似せたものを出力させることはできる。それよりもむしろ自分が作ったオリジナルのキャラクターもLoRAを使えばある程度再現性を保ったまま生成できる、ということに注目すべきで、自分で絵を描いている人なんかだと自分のキャラクターデザインに沿った画像を出力させたりできて便利だと思う。

この辺を試してたら楽しすぎて時間が溶ける溶ける。そもそもがガチャでしかも無料だし、パラメータ変えて試せるし(艦これの建造がおもろかったなと思い出した)、あとそもそも学習モデル自体の出来も良くなっていて、前より品質のよい画像を狙って出しやすくなってるので、もうちょいで狙った画像出そうだな感が高くてつい生成を回してしまう。


まぼ食に出てきた架空の食材にはモデルがあって、だいたいこんな感じの見た目だよというのを決めてあるんだけど、そういうものを実際に画像として作るにあたっては、時間があれば手で描いてということも考えてたんだけど数も多いし時間もないしというところだったのが、AIで、たとえば i2i にじゃがいもの画像を渡しながら、プロンプトではカブを出力させようとする、ということをやると、じゃがいもとカブの中間みたいな画像を作れる。描く手が早ければカブの参考画像とじゃがいもの参考画像を引っ張ってきて脳内で混ざった状態をイメージしながら描けば描けると思う。でも混ざった状態をガチャ回して生成繰り返してイメージに近いものが出てきたらそれをクリンナップする、という手法のほうが多分はやい。ControlNetがあるのでよりやりやすくなって、人間の想像力の外挿のためのツールとして使えるようになったと思う。ないものは作れないけど、ありそうでないものは作れる。

まあなんかそういうわけなのでいろいろ遊びながら試しつつプロンプトエンジニアリングの感覚を養いつつ自分の作るものに利用できるものがばんばん作れるようになりたいねと思う。

こちらからは以上です。

ぼっち・ざ・ろっく!劇場総集編感想

総集編なのでネタバレらしいネタバレも特にないですが、総集編ならではのポイントはあるし、書くんだけど、そこは劇場で見てくれよなという気持ちなのでまだ観てない人は観に行ってほしい。前編はもう上映終わってるかも。

続きを読む