プログラミングを始めよう

2018年1月5日

プログラミングの分野はある程度解説できる知識を持っていると思っているので、解説記事を作成していこうかと思います。

当ブログは、自作ゲーム制作を目標としているので、実際にゲームプログラミングを通してプログラミングの解説記事を作成します。

ゲームを作りたい方や、動きのあるプログラムを作りながら勉強して行きたい方、プログラミングを勉強したいけど作りたいものが何もない方は、初心者にもわかるように解説していくので、ぜひご覧ください。

ゲームと聞くと悪いイメージを持たれる方も、いるかもしれませんが、ここで得た知識は必ず他の分野のプログラミングでも役に立ちます。

実際、私は学生時代はゲームプログラミングばかりやっていて、ゲームとは無関係のweb関連の会社に就職したのですが、その時の知識は役に立ってます。

具体的に役に立った知識としては、言語構文の基本、オブジェクト指向、アルゴリズム力、2Dグラフィックプログラムの考え方等があげられますね。

それに、ゲームプログラミングはアニメーションありきなので、普通のプログラムより見ていて、おもしろいです。

なので、モチベーションも維持しやすいと思います。



プログラミング言語の選択

まずは、自分が勉強したいプログラミング言語を選択しましょう。

紹介する言語は私がやったことのある言語と、今後やる予定の言語のみとさせていただきます。

オススメ度などは、あくまで個人的な意見なので参考程度にしてください。


C++
習得難易度:★★★★★
オススメ度:★☆☆☆☆
特徴など

  • 速度が高速です。
  • 他の言語にあるような機能が使えない場合があるので、わざわざ自作しなければならない。
  • 言語仕様が複雑で高難易度なので初心者は挫折しやすいかもしれません。
  • 仕事では絶対使いたくないです。

Java
習得難易度:★★★☆☆
オススメ度:★★★★★
特徴など

  • いろんな端末で動作させることができます。
  • 速度がC++より低速です。
  • プログラマを楽にさせる機能がたくさんあります。
  • web分野に強いです。
  • Androidアプリの開発ができます。

C#
習得難易度:★★★☆☆
オススメ度:★★★★☆
特徴など

  • Javaと似た構文を持つプログラミング言語で、JavaができればC#もできます。
  • 速度がC++より低速です。
  • プログラマを楽にさせる機能がたくさんあります。
  • Unity等で使用できる言語なのでゲーム制作にもオススメです。

VB
習得難易度:★★★☆☆
オススメ度:★★☆☆☆
特徴など

  • Windowsアプリケーションを作成するための言語です。
  • 速度がC++より低速です。
  • 最近は使われなくなってきている印象があります。
  • 構文は違いますが、C#と同じ機能が使えるのでC#ができればVBもできます。

Swift
習得難易度:?????
オススメ度:?????
特徴など

  • ※管理人がやったことないので、勉強でき次第、情報を追加します。
  • iOSアプリの開発ができます。

PHP
習得難易度:★★☆☆☆
オススメ度:★★★☆☆
特徴など

  • web開発を行うための言語です。
  • サーバ側のプログラムを記述し、HTMLを動的に生成したりします。
  • スクリプト言語であるため、速度がJavaよりもさらに遅いです。

JavaScript
習得難易度:★★☆☆☆
オススメ度:★★★★☆
特徴など

  • web開発を行うための言語です。
  • 主にクライアント側のプログラムを記述します。
  • スクリプト言語であるため、やはり速度は低速です。
  • ブラウザで動作させることができるため、勉強するための環境構築が容易です。

ゲーム制作するために、初心者にオススメな言語はやはりJava、C#でしょうか。

ゲーム分野以外も視野に入れるならJava言語をオススメします。

当ブログではJava言語をはじめ、JavaScript、C++でのゲームプログラミング解説記事の作成を予定しています。

まずはJavaを選択した理由は、私が得意であるというのもありますが、人気もあり、仕事もあり、かつ別のメジャーな言語を学ぶ時の助けにもなると思ったからです。

実際に私はJavaから勉強し、そのあとにC#、VBとすぐに入っていけましたし、C++にも苦戦はしていますが、何とかやっていけてます。

次にJavaScriptを選択した理由ですが、開発環境構築の手間が省けるのと、Javaよりも簡単にプログラムが組めるところです。(突き詰めればJavaScriptも難易度は高いですが・・・)

解説記事で、プログラムを動作させながら説明できるので、それも選んだ理由の一つです。

JQueryはなるべく使用せずにやっていきます。

最後にC++を選択した理由ですが、ゲームは速度が求められる分野なので、速度の速いC++も習得しておきたいのと、単純に自分も勉強したいからです。

それにこの言語が習得できれば、他の言語を習得するハードルが大幅に下がると思います。

ゲームとなるとUnityで使えるC#のほうが需要がありそうな気もしますが、余裕ができたらにしようと思います。

使用する言語は決まりましたか?

使用言語が決まったら、まずはその言語を使用するための環境構築をしていきましょう。