海底探索ゲーを楽しんだ

インターンもなくなったので,昨日今日は引きこもってsubnauticaをやっていた.subnauticaは,不時着した惑星の海を探索するゲームである.とても面白い.ゲームを作っているので,なんで面白いのかということを考えておくべきか.まず一番最初の導入がすごく端的で,世界に放り込まれる感がすごい.イントロの説明はほとんどなくて,いきなりポッドの消化活動をやらされる.そして,消化活動が終わったらいきなり開始.基本的なツールセット類すら与えられず,何をやったら生き残れるのかも教えてくれない.ゲームの最終目的もわからない.漠然と惑星の脱出のような気もするが,とりあえず,生き残ることの緊急性の高さで,そうしたことを考える余裕もない.そして海に放り出されると,いろいろと資材が手に入るのだが,どの資材をどう生かしていくのかというのはスキャンの結果や製造機のアウトプットから徐々に明らかにしていく他ない.手に入れた瞬間は使い方もわからない.そして,海洋生物の有害無害のわからなさ.ここがとてもリアル.遠めに見て,やばそうか,近づいても問題なさそうか,考えるワンシーンの思考が没入感をとても高めている.マップ自体はテクスチャ込みでとても綺麗につくってあるが,パーツ数は多くない.どうすれば幻想的に見えるかということを考え抜いて厳選してあると感じる.ゲームのペース自体は移動が多いこともあって,早くないのだが,待ち時間はあまり発生しない仕様で,プレイヤーの動きにゲームが遅れなくついてくる印象.無線などのイベント的な要素もあるのだが,操作は中断されないので,ペースを乱されるストレスもない.そして,探検が面白い.スキャンによってデータベースが更新されていって,それを見ていくことで徐々にいろんなことがわかってきて,できることがわかってくる感じがとても面白い.
そんなこんなで,あまり説明的じゃないゲームというのもなかなか面白いなと思った.

宿泊施設探しなど

今日は,午前は9月のインターンのための宿泊先を探したりした.取ろうと思っていたAzが満室になっていて,その地域は宿泊施設がとても少ないので,JRの路線沿いで別の宿泊施設を探す必要あり.結局2駅くらい先によさげなところがあるので,そこにしようと思う.
午後は,Rustプログラミング完全ガイドを読み進めた.今日は昨日読めなかったイテレータの部分.イテレータの機能はかなり多いが,いろいろなデータ構造をループで処理するときに便利なデータ構造というのが今のところの理解.ループのほか,イテレータ自体がアダプタとかコンシューマとかの機能を持っていて,割と高度なことが1行で書けたりする.入出力の部分は読み終わらなかったので,また明日.少なくともこの本は今月中に読み切るつもりだったけど雲行きが怪しくなってきた.
夕方以降はあまり作業が進まなかった.台風情報が次々来るので,テレビを見たりしてた.もう少し生産的なことをやってればよかった.
夜はpicogymのforensicsの問題を2問解いたりした.ファイルフォーマットを修正する系の問題だった.binary editのときもvimを使ってるのだけど,vimでバイナリを編集すると,タグの情報が勝手に変わることがあるみたいでうまくいかなかった.結局macのhex-finedとかいうバイナリエディタを使ったらうまくいった.何だったんだ.

台風で予定が吹き飛ばされる

台風が猛威を振るっている.ニュースを見る限り,この台風は記録的な規模のものであるらしい.これから2日程度九州の上空にいるらしいので,おとなしくせざるを得ない.
台風の影響もあり,予定していたインターンはキャンセルになった.8月はインターンで忙しくなりそうという風に思っていたけど,地震と台風で結局どこにも行けていない.困った.ただし現実はなるようにしかならないわけなので,焦らずに次の策を練っていきたい.そんなこんなで午前中はインターンのキャンセルについての説明を受けたりして,昼間も呆然としていた.
午後になってから持ち直し,Rustプログラミング完全ガイドを読み進めていた.今日はclosureと文字列の扱い.closureは無名関数の一種みたいなもので,引数の型とか戻り値の方とかを省略して簡潔に中身を書ける.Rustの関数は外部の自動変数を関数内で操作できない仕様になっているのだが,closureに関しては例外的で,外部の自動変数を参照できる.なので関数のパラーメータのちょっとした加工をやったりするときには,大げさに関数とか使うよりもclosureを使ったほうがスマートかもしれない.自分はlamdaとかlist内包表記とかあんまり使わない質で,ちょっと複雑なパラメータとかも部分式をいくつも使って書いちゃうので,これ系の機能あんまり使ったことないのだけど,使いこなしたら便利なのかも.というか本来的にこういうのをどういう風に使っていったらいいのかあんまりわかっていないでもう少し勉強が必要.文字列については,rustは他言語みたいに直接スライスしたりできないようになっている.というのもrustの文字列はutf-8をサポートするようになっていて,ということは文字によってバイト数も異なるので,文字列は文字列というよりはバイト列であるからだ.そういうことで参照側がいろいろ情報を持っていたりとかで,ちょっとわかりにくい.でも,utf-8をサポートしているはともかく良いことだと思う.そして,今日は本当はイテレータのところまで読むつもりだったのだけど,イテレータの章が案外重厚になっていて途中で止まってしまった.なので,明日イテレータの部分を読む.できれば入出力についても読み切りたい.
今日はマイクラのBGMとサブノーチカ(海の中を探検するゲーム)のBGMでいい感じに作業できた.サブノーチカは未プレイで,おそらく自分好みだということはわかっているんだけど,やり始めたら辞め時がわからなくなりそうなので,怖くてできてない.そのうち.

Rust本読んだり,論文読んだり,コード書いたりしている

 昨日進捗書かなかったので,2日分書く.

昨日は,午前中はcensysの論文を読んでいた.読み切らなかった.昼はRustプログラミング完全ガイドを読んでいて,メモリアロケーションとデータ表現について読んでいた.Rustがシステムプログラミングでよく使われる言語であるからだとは思うけど,この本はデータがメモリ領域のどこを利用しているのかということをかなり丁寧に解説している.変数が配置されるのは静的領域,スタック領域,ヒープ領域の3箇所で,静的変数は静的領域に実行開始時に配置される.関数が使うローカル変数や,関数の引数については,関数がコールされたタイミングでスタック領域に積まれる.長さが実行時に動的に決まるものについてはヒープ領域に配置され,スタック領域にはヒープ領域を参照するアドレスが積まれる.夕方はゲームのコードを見直したりしていた.出入り口の実装を改めようと思っていて,前の実装を確認していたのだが,みてみると前の実装は前の実装で理由があっての実装だったのだということが思い出されて,どうしようか,とか考えたら日が暮れた.

今日は,午前中はcensysの論文をついに読み切り,ブログの説明の不足していた文を加筆することができた.英語論文をもう少し早く読めたらだいぶ変わるのになーと思う.これは何かテクニックを駆使するというよりは,もっともっと量をこなしていくことで早くしていくしかない.そのためには,もっと習慣的にまとまった分量のある英文を読み込む訓練をしないといけないと思う.午前中は研究活動に充てるつもりでいるので,実作業の日と論文読みの日を分けて,論文を読む時間の割合をもっと増やしてもいいと思う.どうせ論文を読むことが推奨される期間なんてのは今しかないのだから.今の身分をもっと有効に活用すべきだ.昼は昨日考えていた出入り口の実装をしたりした.いままでは出入り口は異種類のオブジェクトで兼用だったのだが,出口用のオブジェクトと入口用のオブジェクトを別で用意した方が,うまく動くような気がしたので,そういう実装に改めた.これによってオブジェクトの数は増えてしまったが,マップへの配置自体は直感的になったと思うので,これでよしということにする.夕方,図解 運転テクニックという本を読み始めた.この本は,以前文句を言っていた教則本とは違って,量的な説明をきちんと入れているのでとてもわかりやすい.夜間はCTFをやる予定だったが,テレビで撮影技術の番組(放送番組の講義)をみていたら面白くて2時間くらいみてしまったので,やる時間がなくなってしまった.また明日やる.明日は企業との面談みたいなのもあるので,早起きしないと.Rust本も明日は読むようにしたい.予定ではクロージャーと文字列について読むことになっている.

運転教本を読んだ

自動車学校の技能の教科書を一通り読むなどした.図が多くてわかりやすくはあるのだが,量的な記述が少なくて感覚がつかみにくい.運転の本を追加で読んで,理解を深めたい.図解 運転テクニックという本を用意したので,これを明日から読んでいく.
昼はたこ焼きを焼いたりした.キャベツをひたすら切って,タコも入れていい感じに焼けた.完全な球にはならなかったが,味は良かったのでよしとする.
夕方はインターンのために頼んでいたスラックスをスーツ屋に取りに行ったりした.ついでに本屋に行って日曜大工の本をそろえたり,山の中をドライブしたりした.
夜はRustプログラミング完全ガイドを読み進めたりした.ジェネリックな関数や構造体,列挙型などについて読んで,メモリアロケーションの話を読んでいる途中.明日は,メモリアロケーションの続きを読んで,データ表現についても読みたい.
CTFは今日は取り組めなかった.

壁シリーズを読むなど

バカの壁と死の壁を読んだ.意識によって作られた世界と現実の世界のギャップが強調されている.意識の世界の問題の延長にさまざまな歪みが生まれているというのはそうかもしれない.で,結局そういう意識の世界のルールが働いていることに気づくのはいつなのかという話ではあって,それは結局文字通り何か壁のようなものを感じた時ということになるだろうから,壁自体を回避するとかそういうことができるわけではないだろうな.ただ,壁があることがわかって,それが意識の世界の産物だということがわかるということ.
午後は,Tクラスゲームのバージョン管理の方法をいろいろ試していた.以前試したみたいな感じで,Assetsの中身を渡して,共有できないかと思って,これはいろいろと隠しファイルを込みでやるとうまくいく.で,これをもっと効率的に管理したいからgithubでAssetsの中身を共有して,これをローカルで作ったプロジェクトのAssetsを差し替えるようん形で配置したらうまくいくんではないかと思って試してみたけど,ダメだった.まずマップが正しく描画されない.シーン上に配置されたGridはどうやら,どこかのシーンファイル以外の情報にも依存しているみたいで,別PCだといろいろうまく描画されない.あと,過去の自分がprefabから作成したオブジェクトの名前を変更したりしているせいで,とてもわかりにくくなっている.これは,どこかで修正しないとデバッグが面倒になりそう.で,次に試したのが,Unity側のバージョン管理ツールで,UVCS : Unity Version Control Systemというもの.Unityのプロジェクト共有ツールってかなり頻繁に変わっているので,最新の情報がどれなのかわかりづらいんだけど,僕が調べた限り,UVCSが現行のUnityで,共有に使えるツールということらしい.バージョン管理ツールなんだけど,フリーだと最大5Gまで使えて,3人まで共同編集できるみたい.別PCで試してみたら,開発マシンと同様の動作をきちんと再現できていい感じだ.これでプロジェクト管理が楽になる.唯一不安になっているのはUVCSの料金体制で,容量*時間を1サイクルごとに計算して課金してくるスタイルっぽくて,なんかわかりづらい.僕の理解が間違ってて,意図しない額課金されたら怖いので,ここはもう少し調べたい.
夕方はドライブに行ったりした.夕日と工場夜景が印象的だった.
夜はpicogymの問題を3問解いたりした.shark on wire2はlikeが低いのに納得.セキュリティ関係ないじゃんという気持ちになってしまう.
今日もRustプログラミング完全ガイドを読み進めるつもりだったけど,バージョン管理の試行錯誤に時間がかかりすぎて読む時間なかった.Censysの論文の残りを読み切るつもりもあったけど,午前中あんまり元気なかったので無理だった.また明日頑張ろう.

絶版本を読書メータに追加できた

絶版本を2冊手に入れた.読書メータにないので,こういう本の管理をどうしたものかと思ったりしたが,どうやらDBにないものについては自分で本を追加することもできるらしい.ということで,初めて読書メータに本を2冊自分で追加した.
午前中はcensysについて調べていた.censysの仕組みについて書いた論文があるから読んでいた.読み切るつもりだったけど,英語力が弱すぎて読み終わらず,半分くらいのところで止まった.ただし,ブログ記事にまとめるのに必要なくらいの情報量は取れたので,残りの部分を明日読んで,明日censysについて追記したい.
昼間は寝てた.昼下がり15時くらいに目が覚めて,Rustの本を読んだり,ゲーム開発の今後の作業について考えたりした.ゲーム開発については,とりあえず目前の作業的な事項としては,今のプロジェクトをgithubで管理したり共有したりすることだ.試すべきことを書き出したので,明日試してみようと思う.Rustプログラミング完全ガイドは今日は9章を読んだ.関数のところで,きちんと値渡しと参照渡しや,参照のデリファレンスについて.演算子が実は内部的には組み込みの演算モジュールの関数呼び出しの糖衣構文だとか,そういう話が出てきて,ここにきて,前期に取った型システムの内容が活きてきているから,何がいつ役に立つのかというのは本当にわからない.12章まで一気読みする予定だったけど,昼間寝ちゃってたので無理だった.
夜はpicoctfのforensicsの問題を2問片付けた.sstvを使う問題は面白いとおもう.
あと,インターンなどに備えて,カッターシャツを買い足したり,革靴を新調したりした.ただし8月末のインターンは台風の影響でどうなるかわからない.

漠然とやっちゃだめらしい

物語の作り方という本を読んだ.内容はタイトル通りで,物語をどのように構成していくかということを指南した本.ゲームのシナリオを考えようと思ったのだが,漠然と考えてもなかなかうまくいかない.そこで,この本を参照してみると,物語をいくつかのレイヤで分けて構成することを進めている.大枠の構成と,個々のシーン,登場人物の作り方,テーマの設定などいろいろな作業の集合として物語が完成するのだということがよくわかる.これらをごっちゃにしてやると,それは確かに迷子になるんだな,ということが理解できた.

そのほか,インターンに行くためにどの飛行機を使えばよいか調べたりした.いい感じの飛行機が見つかったから手配してもらうように依頼をしたのだが,どうなるかわからない.台風が来ているらしくて,それとバッティングしそうな予感もあり.台風といえば,家の屋根が今故障している状態で,応急処置を急がないと台風でどうなるか,というので父親がバタバタしている.

自己実現像を考える

ざっくりと今の自己実現像的なモノを考えてみた.最後にも書いてるけど,実現性があるかは知らん.

睡眠ニコニコ回復

昨日調子が悪かったので,今日は昼までひたすら寝ていた.それのおかげで多少なり調子を取り戻してきた.昼過ぎは帰ってきたniconico動画とかを見ながら,ダラダラしていた.これによっても元気を得られた.やはり変わらないniconicoの安心感は絶大だ.

午後は起き出して,Rustプログラミング完全ガイドを7-8章を読んだ.ここの内容は主に複合的な型についていで,タプルとmatch,構造体,タプル構造体について説明されていた.match構文はswitchを強化したような構文で汎用性がありそう.タプル構造体も新しい概念で,本当にこんなのがいるのかと言う気になっている.実際に使われているコードを見たら,まぁ,確かに必要かも,と言う気になってくるかも.わからない

あとは,無気力の心理学という本をよんだ.効力感をいかに得るかみたいな話だった.習熟によって得ていく内的な満足感と,管理社会でよく使われる外的な満足感がしばしば相容れないというのは確かにあるかもと思う.何を持って自己実現とするかっていうのは今後考えていきたい.


消化力低下

 全く食欲なくて,元気なかった.もの食っても味がよくわからい状態だった.多分水分の取りすぎて胃腸があまり元気に機能していないのだと思うので,ちょっと水分摂取量を控えて,今日はとにかく寝ることにする.睡眠時間減るとこの頃ガクッとくるから.

そろそろ自動車学校の再会が近づいてきたので,技能の教科書を読み直したりした.今日は第一段階の部分を一通り読み直した.明日は第二段階のところを読もう.技能教習の教科書は,量的な記載をすべきところに質的な記載をしすぎていて,まったく必要な情報が伝わってこない.他の本にあたるなどして,足りない部分の情報を補完したい.

9月のインターンのための宿を取るなどした.Azの予約はとても簡単でスピーディー.これは良いことだと思う.また利用しよう.

船で暮らすとか

午前中はpicoCTFの問題を解いていた.しばらく手をつけていなかった間に,picoCTF2024の分の問題も追加されてたので,未着手の問題が結構ある.今日はforensicsの問題を3問解いた.forensicsn問題については,exiftool(s), strings, binwalk, xxdあたりを使うところからスタートしていく.

午後はRirinが家に来たので,ゲームに制作の進みについて話したり,ライフスタイルについて話したりした.特に刺激的だったのは,船舶で暮らすと言うアイデアで,生活居住空間ごと移動できると言う点で,非常に優れたライフスタイルのように思えた.ただし,作業環境を持ち込んで移動することを考えると,中型クルーズくらいのサイズ感は必要で,それを用意することを考えると一体どのくらいの費用が必要になるかと言う話ではある.

夕方はRustの本を読んでいた.Rustプログラミング完全ガイドは,CやC++の知識をベースにしつつもRustの特徴を紹介している.プログラミングの基礎知識を省略することでくどさもないし,Rustの特徴にきちんと焦点を当てた解説で非常に読みやすい.今日読んだのは5−6章で,基本的なデータ構造について学んだ.本当は8章までいくつもりだったけど,技術書を一気に読み切るだけの技術書リーディングスキルをまだ持っていないので,日割りで読む.明日は7,8章を読めると思う.

夜はIoT機器のセキュリティについて書いたりしていた.IoT機器の環境について書くのに疲れたので,今日はスキャンをやってるプロジェクトについて書いた.今回はshodan, censys, noticeを上げるつもり.noticeは元々結構調べていたので,すぐかけた.shodanもコンセプトがはっきりしてるので,かけた.censysもshodanと似た感じではあると思うけど,調査途中で,j.alexの論文を見つけたので,これを読んでから書きたいと思う.12pの英語論文.これくらいは一気に読めるようになりたいけど,英語力が足りてないので,時間がかかってしまう.これについてはまた明日.