2015年04月07日の日記です


プログラムは必要か  2015-04-07 12:05:45  コンピュータ 業界記

ぎーちさんとの同人話の続き


昔はプログラムしないと自作ゲームは作れませんでした。

でも、今はツクールなんかで同人ソフトを作っている人も多い。


ベーマガが復活したわけですが、ツクールだと「プログラム」ではないから、ベーマガは発表の場にはなりにくい。

同人ソフト作るうえで、プログラムって必要なことですかね? と聞かれました。




私見では、プログラムのそもそも論になってしまうのですが、「ツクールもプログラム環境である」と思います。

コンピューターを、自分の考えた通りに動かそうとする試みは、すべてプログラムです。


複数言語を使えるプログラマなら、テキスト処理なら awk 、WEB プログラムなら PHP 、画像処理ならC…とか、使い分けている人も多いと思います。

awk なんてプログラム言語じゃない、と言い出す人もいるけど、それは考え方が偏狭。

適材適所で、もっともやりやすい言語を選ぶ、というのも、プログラマの能力のうちです。


じゃぁ、ゲームを作るのに、ゲームを作りやすい「ツクール」を使うのだって言語選択のうちでしょう。



ロードランナーの面コンストラクションとどこが違うんだ、という人もいるかもしれません。

なにも違いません。面コンストラクションだって、明確な目的を持って「コンピューターに何かをさせよう」とするのであれば、プログラムとなり得ます。


一方で、明確な目的無く、適当にブロックなどを配置して、面白くもなんともない面を作るのであれば、それはプログラムではない。


先に書いた awk で言えば、「何もしないスクリプト」を作るのは簡単です。空ファイルで良い。

何の目的もない。プログラム言語を使っていても、これは「プログラムした」と言わない。目的を持っていないから。


#C言語だと「何もしない」のにも、それなりのプログラムが必要です。


プログラムを作ったかどうかの境界線は、選択した言語にあるのではなくて、作成者の心構えにあるのだと思います。




目的を持ってプログラムをするのであれば、うまく目的が達成できず苦労する、という局面が現れるはずです。

それがツクールのような簡単なツールであっても、C言語のような面倒くさいツールであっても、必ず目的がはばまれる局面が来る。


これをどう乗り越えるか、目標を少し変えて軌道修正するか、別の実装方法を模索するか、力技でねじ伏せるか…

そういうことを考えなくてはならなくなる。


この「考えなくてはならないこと」の連続がプログラムで、デバッグもこれに含まれます。

そして、目標を達成した時、成果物は「プログラムしたもの」と言ってよいかと思います。



#話逸れるけど、以前に「目的があって、それを阻害するものがあればゲーム」と書きました。

 僕はゲームを作ること自体が一番楽しいゲームだと思っていますが、それはプログラムが「目的を阻害するもの」だから。

 プログラムはゲームを作る手段なのですが、実は乗り越えないといけない障壁でもあります。




ところで、言語を選ぶというのは、自由度を狭める行為なのね。


究極的なことを言えば、すべてのことをするのに、アセンブラを使えばいいんです。

CPUが出来ることは全てできるし、それ以外のことは一切できない。コンピューターに命令を出すには最適な方法です。


でも、それは面倒くさいから、自由度を狭め、利便性を手に入れる。

C言語を使うと、自己書き換えは出来なくなるけど、簡単な計算で命令をいくつも組み合わせる必要は無くなる。


でも、Cは比較的アセンブラに近いです。awk になると、速度も遅くなるし、Cほどバイナリの扱いも上手ではない。

その代わりに、テキスト処理はCに比べてずっと楽になります。


RPG ツクールだと、事実上 いわゆる「JRPG」…2Dマップでマス目を感じながら移動して、戦闘時は画面が切り替わってコマンド選択、というゲームしか作れなくなります。

そこまで自由度を狭めた代わりに、JRPG では非常に苦労するシナリオ管理やアイテム管理などが楽になります。



ここでもやっぱり、Cとawkと RPGツクールは、同列に並んでいるものだと思います。


JRPG 作りたいのなら、Cを使うより RPGツクール選んだ方がいい。

シューティング作りたいなら、シューティングツクール選ぶといい。


でも、誰も見たことが無いゲームを作るなら、Cとか Javascript を使わないといけなくなる。

自由度と利便性の天秤の問題で、適切に選び出すことが大切。ツクールが「プログラム環境ではない」なんて思いません。


#RPGツクールは、JRPG しか作れないと言いつつ、シューティングゲームを作ってしまう人がいる程度には自由なプログラムも可能です。

 これは、大道芸の一つで、適切な言語の選び方とは思わないけど。

 (RPG 中にミニゲームを入れたいのならアリ。その程度には自由度がある)




話を「ベーマガのような場所」に戻すと、プログラムを「一覧できる」必要はあるのでしょうね。

ツクールではこれが難しいし、Scratch ですらプログラムが分散しているので一覧性は悪いです。


そうすると、エディット環境と実行環境がある程度分離していて、テキストファイルでプログラムリストを示せる言語、のみをプログラム言語として扱う必要が出てくる。

今時、そういう言語は初心者向けの言語ではないと思うので、ベーマガを目指すならそんな限定をしない方が良いのだけど。



雑誌としてのベーマガ、という考えにとらわれなければ、実行ファイルをダウンロードできることと、その実行ファイルを見て興味を持った人がソースにアクセスできること…などの条件を整えることで、ツクールや Scratch も含めることが可能でしょう。



昔のベーマガと違って、自分で打ち込まないと動かない、というのは今の世の中難しいように思います。だから実行ファイルのダウンロードも準備する。

本当は「写経する」って、勉強の第一歩だから、意味も分からず打ち込むのは良い経験なのだけど。



ただ、「打ち込むこと」や「紙面」の制約が無くなっても、ベーマガのようなコミュニティを作る際に、ソース規模の制限は必要でしょう。

内容を見て把握できる程度でないと、テクニックを盗めなくなる。ベーマガを目指すのなら、ソースから学び取ることが重要。



同時に、以前も書いたように、投稿を受け付けてアイディアの良いものを選び出す第三者が必要でしょうね。

その第三者は、ソースを見てみたくなるようなテクニックのポイントを解説する役割も持つ必要があります。


#ベーマガの Dr.D の役割です。詳細解説は不要。そこは自分で盗むものだから。



把握できる程度の規模で、と制限されると、ツクールは、おそらく見た目の良い作品は作れるけど、アイディアを入れるのが難しい。

Cではアイディアを入れやすいけど、見た目を整えるのが難しい。


これを適切に判断し、評価する…というのも大変なことだと思います。

環境ごとに、その環境では難しいことに挑んだポイントなども適切に評価してあげないといけない。



ただ、ベーマガの時だって、多少はそういう条件の違いあったんだよね。

スプライトのある機種と無い機種で、見た目はかなり違うものだったけど、ちゃんと機種ごとに評価されてた。




同じテーマの日記(最近の一覧)

コンピュータ

業界記

別年同日の日記

05年 工事が遅くなるそうだ

10年 ポメラニアン

14年 オーレ・キアク・クリスチャンセンの誕生日

17年 プラスとピリオドの取り違え


申し訳ありませんが、現在意見投稿をできない状態にしています


戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -