見出し画像

書籍「[ゲーム&モダン JavaScript文法で2倍楽しい]グラフィックスプログラミング入門」を読みました

読みました。

前半はJavaScriptの文法とグラフィックスプログラミングでよく利用する数学の基礎(三角関数、ベクトル、行列など)、Canvas2Dでの基本的な図形描画方法などが説明されています。
後半はゲーム制作を軸にオブジェクト指向的な実装・管理と、ピクセル操作による画像処理についての実践編となっています。

前半だけでもかなりボリュームがあり、プログラミングの基本的な考え方から言語仕様までしっかり収録されています。
ただ、実際に手を動かしながらものづくりをしていくのは後半にあたるため、前半はちょっとイメージがつかみにくいかも?という印象でした。
前半は実装中に困ったことが起きた時に振り返ったり、辞書的に読むといいのかも!

後半のゲーム制作ではシューティングゲームをテーマに制作しながら、状態の管理やそれにあわせたメソッドの連携などが学べる内容でした。
段階的に目標を決めて、少しずつ機能を増やしていく実装スタイルなので理解しやすかったです。
見通し良く、バグを出しにくく、後から機能を追加しやすい設計・実装が徹底されているので、読者が将来的にチームでプログラミングする環境に行っても通用するような内容になっていると感じました。
シューティングゲームというテーマも良くて、オブジェクトの位置や座標の回転といったグラフィックスプログラミングで必須の考え方はもちろん、ホーミング弾の計算など、テクニックがぎゅぎゅっと詰まっていました。
ただ、言語仕様や数学的概念など抽象的な内容と、実際のソースコードを行ったり来たりするのですが、地続きに書かれているためにちょっとわかりにくいかな?と思うような箇所もありました。
サンプルコードをベースに、実際に動作させながらコードを確認していくと読みやすいと思います。
また、プログラミング用語や概念の正確な表記にも配慮が感じられましたが、それゆえにそういった用語に詳しくない方は「この用語なんだっけ?」となりそうだなーとも思いました。
「なんだっけ?」になったら、前半に立ち戻りながら読み進めるのがいいかもしれません!

個人的にはラストのピクセル操作の章が特に勉強になりました!
画像処理のフィルタやノイズ除去について実装・解説されているのですが、各方法ごとにどのような考え方になっているのか、その考え方をどうコードに落とし込んだらいいのかが丁寧に書かれていて興味深かったです。

Processingとp5.jsとクリエイティブコーディングが大好きです。 めちゃくちゃ元気!