プログラミング用途にある2つの方向性

プログラミング雑学

当たり前のおさらいをしますが、

プログラミングの目的は・・・

人間に必要なもの作る

です。
いや、当たり前のことなんですけど、
意外とこういうのは忘れがちになることなので。

そんでもって、
「プログラミングの用途には2種類あって、2つの方向性がある」
ってことに気付いたので、
それについて書いていきます。

プログラミングの用途は簡単に言うと二つ

簡単に言うと、プログラミングの用途というのは

  • 便利なものを作る
  • 楽しいものを作る

の二つに分けることができます。そんでもって、
「便利なものを作る」は「業務用ソフトウェア」の仕事になっていき、
「楽しいものを作る」は「ゲーム開発」になっていくことが多いです。

他にも雑多な仕事があるにしても、この二つが二大筆頭になっているでしょう。

そんでもって、「便利なものを作る」の方は地味なことが多いんですが、
当然のことながら「便利なものは良い」と思ってもらえることが多いので、
仕事が成立しやすく、世間的には「安定」していることが多いです。

逆に、「楽しいものを作る」の方は派手なことが多いと言えて、
華やかな見た目により人気も出やすく、作るのが楽しければこれまた人気な所なんですが、
・・・ここが微妙な所で、「楽しいもの」ってのは何なのか?ということを追っていくとけっこうフワっとしているし、
生活必需品ってわけではないので、
必ず売れるとは言い辛いような所があります。
だから、「不安定」なことが多いと言っても良いでしょう。
こっち路線で安定した収益を出すには、「楽しいもの」を安定して作り出す必要があります。

実際問題、ゲーム業界の悩み所ってのはその辺にあると思ってて、
ヒットする時はめっちゃヒットするかもしれませんが、
「楽しいもの」と思って作ったものがユーザーにそんなウケなかった
ってこともありがちなのがこの分野の特徴です。

さらにゲーム産業は、ファミコン⇒スーファミ⇒プレステ⇒プレステ2⇒オンラインゲーム⇒スマホゲーム・・・
・・・と、コンピューターの発展と共に急速に進化していったものだし、
エンターテイメント産業というのはユーザーの中で「飽きられ」が発生しながらも
どうにかやっていかなければなりません。

「飽きられ」の発生は「楽しいもの」を作っているビジネスの宿命だし、
さらにゲーム業界はめまぐるしいテクノロジーの発展と共に変化していってるわけです。

そんなわけで、ゲーム業界には不安定さが付きまとうものなんだな、と思いました。
まぁ、ちゃんと売れる作品を作ってれば良いんで諸説ある所でしょうけど。

プログラミングの用途の図示と整理

プログラミングにある二つの用途と、
二つの方向性を図示すると以下のようになります。

左側に行くほど安定と地味さが同居しがちで、
右側に行くほど不安定さと派手さが同居しがちなので、
どっちを望むか?という話にまとまるでしょう。

まぁ、業務系にも色々あったり、ゲーム系にも色々あったりして、
その中で区分けができるでしょうけど、
大まかに方向性を分けるとこの二択にはなっていくのではないか?と思います。

ただ、中間沢で「便利で楽しいものを作る」っていうのがあって、
それもアリみたいな風潮もIT業界にはあります。

それができるのがWeb系ってジャンルで、
あと、スマホの普及によってモバイル系もそれになってきました。

なので、そういうものに感心を持つのもアリだと思います。

プログラミングを学ぶ際は「作りたいものを作る」のがベストだし、
プログラマーとして生きる際も「やりたいことをやる」っていうことに行き着くのがベストなので、
自分自身はどっちがやりたいのか、
以上のような方向性を整理しつつ、考えて決めていくのが大事だと思います。

ゲーム作りの背後にある思想

以上。「業務用ソフトウェア」か「ゲーム開発」に収束していく、
プログラミングの用途の二つの方向性について書いていきました。

そこからさらに、「ゲーム作りの背景にある思想」ってのを考えてみます。

ゲームコンテンツっていうのは、
まず、プログラミングを使った「玩具作り」という側面があります。
ボタンを押すと画面が動いたりするので、シューティングゲームにしてみると面白い
ってことでシューティングゲームが出てきたし、
他にも、プログラミングで玩具を作る過程で、アクション、パズル、ブロック崩し、RPG、疑似スポーツ、レース、格闘ゲーム、音楽ゲーム・・・と様々なジャンルが出てきたわけです。

もう一つあるのは「ファンタジー作り」の側面です。
コンピューターの画面で絵と音楽とテキストを処理できることが分かったから、
絵と音楽とテキストがあればファンタジー作品を作ることができるし、
さらにロールプレイングゲームのような手法によって、
ファンタジーに強度をもたらすことができます。

そんなわけで、コンピューターを使って「玩具」みたいなものを作ったり、
「ファンタジー」に強度を持たせるために使っていくのが、
コンピューターゲームの原点にある思想と言って良いでしょう。

ここで、特に「ファンタジー作り」の側面に着目してみましょう。

昔のコンピューターゲームはファミコンみたいな画像しか処理できなかったので、
必然的に「玩具」としての側面を強調していくしかなかったのですが、
時代が進むにつれてより繊細な映像と音楽が出力できるようになったので、
ハイクオリティな映像を使った「ファンタジー」を作ることがどんどん容易になってきました。

コンピューターゲームはコンピューターの長所である「数値計算」を極限まで応用し、
疑似的に2D空間や3D空間を作ることまで可能であり、
それがどんどんハイスペック化していきました。

さらに、より綺麗な3D空間の出力と音の出力によって、
よりリアルに近い仮想空間を作り出すことまで可能になっています。
そこでファンタジーを演出すれば、
3Dのファンタジー空間を人工的に創造できるようになります。

そんなわけで、コンピューターゲームの目的の一つに

「疑似仮想空間創造計画」

があると言えるのではないでしょうか?

便利なもの作りの背後にある思想

一方で、「業務用ソフトウェア」など
「便利なものを作る」ことの背景にある思想ってのを考えてみましょう。

これは単純な話で、「楽して生活したい」からそれをやるのだと言えます。
そもそも、人間がテクノロジーを発展させた理由がそれであり、
それはイギリスの産業革命にまで遡りますが・・・・
当初は軍事目的といった理由も中にはあったものの、
概ね楽に資源を調達したり、電気のような便利なものを使って楽に生活していきたいから、
テクノロジーが発達していきました。

コンピュータープログラミングもまた科学の産物なので、
その思想の延長線上にあると言っても良いでしょう。

そして、楽に生活できるようになった後に何をするのか?
そこから先の目的は様々でしょうけど・・・・
できることなら、生活が楽になった上で何か創造的なことをしたいものです。
せっかく生活に余裕ができたのなら、
誰かの役に立つようなこともしていきたいし、
後世の人類にも役立つようなこともしておきたいです。
それは子孫のためにもなるし、後の人類繁栄のためにもなります。

・・・まぁ、楽になったらどうするか?ってのは、人それぞれなものの、
なんにせよ「生活にゆとりを持つ」というのが、
コンピューターで物作りをする目的としてあるし、そうであるべきだと思います。

そう考えると、業務用ソフトウェア等も含む「便利なもの作り」の方向性は、

「人類がゆとりを持って生きられるようにしよう計画」

に基づく思想で行われているのではないか?と思います。
あるいは、そうであるべきだと思います。
 

以上。プログラミングを勉強していくには、
「何故それをやるのか?」というモチベーションが何よりも大事なので、
今回のような話を書きました。

各自、自己の中にあるモチベーションを発見して、
それを動機に学習していければ心強いと思います。

コメント