忍者ブログ

RPG製作ソフト「Role Paint」を作っていくぜ!ツクールのようなRPG製作ソフト「Role Paint」を作っていくブログ。 相互リンク募集中

二転三転。クラスの視覚化で初心者でもオブジェクト指向を使いこなせるようになるか?

二転三転。昨日、「イベントコマンドでメニューや戦闘といった根幹の部分を作る事は不可能
と書いたが、どうにかなりそうなアイディアを思いついた。(この場合は「思いついてしまった」というべきなのだろうか・・・・悪い意味で)

その方法はクラスの視覚化と子クラスから親クラスを作成する方法を作る事。

・オブジェクト指向の分かり辛さ

オブジェクト指向最大の問題はプログラムに触れた事のない人にとって、全く理解不能であるという事である。例えばプログラムのうち、関数の説明は分かりやすい。

「関数とはプログラムのコード(イベントコマンド)を一纏めにした物です。例えば「xという変数に好きな数字を足す」というプログラム(イベントコマンド)と「xが2の時のみ絵を表示する」というプログラム(イベントコマンド)があります。これら二つを組み合わせて「xに好きな数字を足し、その結果が2の時のみ絵を表示する」という命令を作ることが出来ます。このオリジナルのプログラム(イベントコマンド)が関数です。」

失礼かもしれないが、これを理解できない人はそこまでいないだろう。実際にツクールでもコモンイベントという形で関数の仕組みは搭載されている。理由はプログラムとプログラムを組み合わせて新しいプログラムを作るという考えは直感的で理解しやすいからだ。ここまでは問題にならない。

が、オブジェクト指向の説明は関数と比べ物にならない程一気に意味不明になる。

「オブジェクト指向とはプログラムの処理を物として捉える手法です。」

よく使われている説明だが、初心者やプログラムの素養がない人には意味不明そのものだろう。
そもそも命令を物として捉えるというのは人間から見て非直感的である。「歩くという行為を物として見ろ」と言っているような物だ。

・オブジェクトの視覚化

だが、この説明ならどうなるだろうか?

「これはアイテムの設定画面というオブジェクトです。」



「このアイテムの設定画面を改造して武器の設定画面にする事を継承と言います。」


これで相当分かりやすくなったはずである。(なっていないかもしれないが・・・。)

このようにオブジェクト指向の視覚化を繰り返していけば、初心者でもオブジェクト指向を必要最低限に使いこなせると考えられる。

問題はどこまで視覚化可能というか、という事。例えば「バトルの戦闘の順番を視覚化する」となると、かなり難しいだろう。

・子クラスから親クラスを作る機能

また、初心者に対する強力な補助として幾つかの子クラスから親クラスを作るという手法も考えられる。

オブジェクト指向の基本となるクラスの継承という概念を説明するとこうなる。

「クラスの継承とは元となるクラスから新しいクラスを作る事です。例えば戦闘参加キャラというクラスを元にして味方キャラと敵キャラというクラスを作ります。これが継承です。」

あえて、やや分かりづらい例えをしたが、この説明を理解できるかどうかがプログラマの素養がある人と出来ない人の違いとなるだろう。
要するに「元となる概念から派生物を作る」という考え方が結構非直感的なのだ。「車という概念の派生にトラックやF1カーがある」なら良いが、そうではない非直感的な派生はかなり多い。

さらにプログラムに触れていない人なら「敵キャラと味方キャラに共通事項があり、その共通事項となる物に新しい名前をつける」という発想が中々思いつかない、説明されても分からない可能性が高い。

これの支援を行うため、幾つかの子クラスから共通事項を抽出して親クラスを作る仕組みを作る。親クラスから子クラスを作ったほうが遥かに手っ取り早いが、初心者から見てみれば質の良い物を作る助けになるはずだ。

・時間がない

ただ、正直、これをやろうと思ったら、もう時間がない。

こんな事をいうのもあれだが、正直、早く作り終えてRole Paintの開発から解放されたい。さらにこれを実装しようとしたら、本当にいつまで経っても完成しないという事になりかねない。

また、これ以上完成度を高めようとしても、おそらくあまり意味がない。すでにユーザーが求めているであろう必要最低限のアイディアの詰め込みとそのアイディアが実現可能かどうかの実験は終えたと考えている。さらに初心者でも上級者でも簡単かつ高速に作れる仕組み作りを延々と考えたせいで一ヶ月以上時間を無駄にしてしまった。

なので、このアイディアの実現は一旦諦めようと考えている。

・Visual Basic化の懸念

仮にだが、このシステムを作った場合、懸念すべきことがある。それは「初心者にとって、あまりに簡単に作れすぎて分かりづらいコードが大量発生するのでないか?」という物。この問題が噴出しているのがVisual Basicである。あまりに初心者にとって簡単すぎるせいで読みづらい、改造しづらい、バグが有っても取りづらいコードが多発、却って多くのプログラマが苦労する事になってしまった。これと同じことが起きかねない。

かといって初心者に読みやすく改造しやすいコードを書け、を強制しようとすると初心者にとって意味不明なコードになって敬遠されるのだが・・・。どうしたものか

2017/5/10追記

どうやら、このアイディアはダメそうである

拍手[0回]

PR
Comment
name
title
color
mail
URL
comment
pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
コメントの修正にはpasswordが必要です。任意の英数字を入力して下さい。