桐生映司(仮)開発日記

開発の日常を書いていきます

mrubyでの30日開発日記(9日目)

きょうやったこと

気づき

 数学やっていて気づいたんだけど、べつになんでもかんでも覚える必要はない。というのも、理解している間に覚えたりするからだ。数学自体が理解をするまでが難しい物に関して言えば、別に覚えなくても理解しょうとする過程で覚えたりする。
 例えば、二次関数のことを覚えようとしたとしよう。二次関数に初めて出会った人は必ず困惑する。初めて出会った分野だから理解が進まなくて当然だ。だからこそ、覚えると言うよりもその理論がどのようなものかを理解する事を最初にする。もちろん、すぐに理解することはできない。それに、僕が考える理解とはなんとなくの理解ではない。
 以前、「ロクでなし魔術講師と禁忌教典」でこのような描写があった。それは主人公が生徒たちに初期の魔法を本当に理解をしているのか?と言った。すると、生徒は「当たり前だ!そのような魔法は入りたてのころに覚えた!」と返した。すると主人公はその魔法の文節を間違えたらどうなる?と聞いた。生徒は「そんなのでたらめに出てくるに決まっている!」と言った。だが、結果は主人公は「右に曲がる」という予想どおりに魔法が動いた。
「これくらいの理解をしないと理解をしたとは言えない。」と言った。
 つまり、初歩的な分野であっても手足のように使えなければ理解を下とは言えない。おそらく、ちゃんと理解をするというのは深堀をしながら、寄り道をしながら理解をするということだ。二次関数の分野を掘り進めていけば、微分積分にたどり着くしそれだけ理解をするというのは難しい。
 それで、話は戻るのだが、これほど深堀すると人間は不思議なもので覚えてしまうのだ。これば僕も体験がある。それはアニメの背景を深堀していくうちに岩波書店の本を読み始めたのと同じだろう。そうしていくうちにいろいろなことを覚えてきました。例えば、老子を読んでそれに関連する孫子を読んで、それで戦争のことと政治のことについて知りたかったので、君主論を読んだりした。深堀をするというのは、こうやって裏道をみたりして街を散策するようなやり方をいう。
 だからあえて覚える必要はない。試験のためなら覚える必要もあるが、試験がないのであれば覚える必要はない。

発見その2

 mrubyでゲームを作ろうと決めて1週間経ったので指針を決めることにしました。そして、指針としていくつかを軸にして行くことにしました。

1.失敗することは良いことにする。
2.プロトタイプから大規模へ行こうがスムーズにできるようにする。
3.中学生でも理解できるようにする。
4.シンプルにする。

 なぜ、この4つなのかを説明します。
 1.はまんまunreal engineの設計思想から拝借しました。unreal engineの思想の中でブループリントというのがあります。これは、仕様書とかを最初から考えずにとにかく失敗覚悟でやってみるということをするんです。そうすることによって最初にはきづかなかったものが見えたり、どうしたら失敗するのかという経験値になります。これをすることによって、ウォーターフォールのように流れですべてをやるのではなく、失敗しながらやるような方式にします。それに、これは僕の考えで未来に対する予測をしないということも含まれる。未来を見通すことはジオウでないと不可能だし、未来に失敗が予測できるのならば今の時点で防げばいいだけの話。だからこそ、失敗をすることは良いことだということを掲げました。
 2.はどの分野でも最初にプロトタイプを作り試してから製品にする。だが、全ての商品がそうではない。例えば、家電製品なら大量生産に入るためには向上のレイアウトとかを変えたり生産ラインを変えたりしなければならない。仮にプロトタイプを作る用にmrubyライブラリを作ったとしてもそれをC++に変換したりUnityに移植するというような行為は避けたい。mruby用に読みやすいコードで書いてあるのにそれを移植する作業をなくしてmrubyでプロトタイプから製品版までをスムーズにさせたい考えです。
 3.これは僕のいとこが中学生なのもありますが、どうせ読んでもらうなら幅広い人に読んでもらいたいのです。中学生というのはいろいろと多感な時期でその時代に受けたことは忘れがたいものになります。でも、もしいとこが僕のコードを読んでいて読みづらいという経験をさせるのはとても忍びない。僕自身が始めた頃に他人のコードを読んだ時に面食らったときのようなことを体験させたくはない。ですので、コードはこのようにした。
 4.以上の3点の終着点です。失敗しながらシンプルにして行き、完成度があがればあがるほどシンプルになり、理解されるようなコードはシンプルになる。最終目的地はこれで決まりです!これらを指針にしてmrubyのライブラリ開発をしていきます。

参考文献

ロクでなし魔術講師と禁忌教典

automaton-media.com

「CGとゲームの技術」

Ciao!!