遊んで学ぶ はじめてのプログラミング

~Processingの魔法学校~

どんな本?

 遊んで学ぶ はじめてのプログラミング ~Processingの魔法学校~ は、秀和システム出版の初心者向けのプログラミング・ガイドブックです。特徴を少し並べてみると――

  • プログラミングを魔法にみたてて 、魔法学校の新入生と一緒に 楽しく学べる
  • 最初は 簡単なお絵かきのプログラムからはじめて 、LV1~18まで、少しずつレベルを上げ ながら、アクションゲームや小さなRPGまで挑戦できる。
  • パソコンだけでなく、スマートフォンのブラウザでウェブアプリのように動かすサンプルも。
  • サンプルプログラムは短め で、中身を調べたり、改造しやすい 。ほとんどは10~100行以内。後半にあるアクションゲームやRPGでも700~1000行以内(ソースを分けた各ファイルは長くても300行以内)。
  • プログラミング言語はJavaベースのProcessing。アートや教育、クリエイティブコーディングでよく使われる、使いやすく応用しやすいプログラミング言語
  • ダウンロードできるサンプルには、この本で使った関数を日本語で簡単に説明した 魔道書や、簡易関数リファレンス的なチートシートも付録として収録
  • 「大乱闘スマッシュブラザーズX」、「超時空要塞マクロスVOXP」、「鋼鉄の咆哮2 ウォーシップガンナー」など、様々なゲームの企画・開発に携わった現役のゲーム制作者が執筆

 さあ、この本を片手に、プログラミングの魔法を使ってみましょう!

動画で紹介

わたし、プログラミングの魔法で
どんなことができるんだろう!

ウワッ、不思議な動く絵に
雪だるまの冒険! それにRPGまで!?

さあ、ここからが本番だ。
魔法でモノを動かして、命を吹き込むのさ!

購入するには?

 全国の書店やオンライン書店でお求めください。2015年3月28日(月)より発売中です。

遊んで学ぶ はじめてのプログラミング ~Processingの魔法学校~

著者
西田竜太
定価
本体2200円+税
ISBN
4798046345
978-4798046341

※関連図書の「遊んで作るスマホゲームプログラミング」は、この本よりも少し上級の、ゲーム作りに特化した別の本です。

ページの雰囲気

付録

付録のヘルプとしてProcessingの魔導書や簡易リファレンス(チートシート)が付いています。

こちらで公開していますので、プログラミングの相棒にどうぞ!

コメント

レビューを含む記事

だらっと学習帳

「遊んで学ぶ はじめてのプログラミング Processingの魔法学校」を読みました

強火で進め!

Processing の濃ゆい入門本「遊んで学ぶ はじめてのプログラミング」

からあげ!

プログラム教育のプログラミング言語にはProcessingが良いかも - karaage. [からあげ]

はじめてのコンピュータ・パソコン

書評21. 遊んで学ぶ はじめてのプログラミング Processingの魔法学校

ラズパイ3倍美味しいブログ

同ブログを「遊んで学ぶ」で検索した記事

開発環境について

 この本では、無料でシンプルにゲームを開発できる環境として Windows + Processing という組み合わせでプログラミングに挑戦します。ProcessingはMITメディアラボで生まれた、Javaベースのシンプルな開発環境で、教育やメディアアート、クリエイティブコーディングの分野で有名です。MacやLinuxでも動きます。また、基本的な機能を使ったものであれば、JavaScript化して、HTML5のコードとしてパソコンやスマートフォン上のブラウザーでも動かせるという魅力もあります。

動作環境について

 基本的にはWindows 7以降のWindows OSをOSとするパソコンで、OpenGL 2.0(ES 2.0) / GLSLに対応したグラフィックカードを持つものを対象としています。

 なお、動作対象として記載はしていませんが、OS X(Mac)でもフォントなどをOS X用のものを使用するようにしていけば、ほぼ問題なくプログラムを動かせるはずです。

 動作確認を行った環境は次のとおりです。

プログラム開発&実行環境
Windows8.1 + Intel HD Graphics 4000(GLSLに対応したGPU)
(Windows 8.1以降対象 / OpenGL 2.0(ES 2.0) GLSLに対応した機種必須)

※たとえばIntel GMA 950チップセットなど古いGPUでは動作しません。

HTML5プログラム実行環境
Windows8.1 - Google Chrome
iPhone 5, iPhone6 Plus (iOS 9.2.1) - Safari

Nexus7 (Android 5.1.1) - Google Chrome

 主にパソコンを使って、パソコン上で動くプログラムを開発します。そのうえで一部、HTML5を使ってパソコンやiPhone、Androidのブラウザ上で動かす方法についても説明します。なお、Processingで作ったプログラムはAndroidネィティブアプリとしても動かせますが、この本ではその機能があることを紹介するにとどめています。

小話

 今回は、はじめてプログラミングに挑戦する人に向けて、前著よりも やさしめの内容の本 を書きました。登場人物も前著にくらべてたびたび出てきて、よくしゃべり、わからないことを口にしたり、ツッコミを入れたり、どういう理解をすると手っ取り早いか説明してくれたりします。 プログラミングを楽しく覚える仲間がいる ような、そんな気持ちになってもらえたら嬉しいです。

 一見、難しく見える関数などのキーワードも 「魔法」と思えば、おぼえがいがある かもしれません。

 前に書いた「遊んで作るスマホゲームプログラミング」は、プログラミングだけでなく、ゲームの企画から、素材作り、様々なジャンルのゲームのプログラミングと盛りだくさんの内容を実践する本でした。本編は実践重視で、作るゲームもひとひねりあるものだったり、上級者も楽しめるようKinectを使って遊んだり、ちょっと欲深すぎる部分がありました。その一方、プログラミングそのものがはじめての人には、序盤の説明以外に、巻末の付録で基礎的なことをひととおり補足説明する形でサポートしていました。

 でも本当にイチから挑戦するのなら、巻頭から順番に、 基礎から少しずつプログラミングを覚えていく ような流れの方が分かりやすいですし、 新しい関数の説明もその都度載せ たいところです。前著では小学生から質問があったり、親が子供と一緒に遊んでいたり、考えていた以上にいろんな読者の方に読んでいただけたようなので、次に書くなら、もう一段階やさしく、全編は無理でも一部は小学5、6年生でも読めるぐらいにできたら――と思ったわけです。

 作るのはゲームに限らないようにすることでシンプルにしていて、ゲームを作る章でも、 なるべくベタ な横スクロールアクションやコマンド選択式のRPGなどにしました。「どんなゲームなのか」を理解するより、こんなゲームを作るには「どんなプログラムを書くのか」の方に集中できるのではないかと思います。まぁ、RPGはノイズで地形を作ったりはしますけど。

 ちなみに、このサイトでは以前からRPGのプログラムを公開していますが、この本に収録しているサンプルでは他のキャラクターが歩いていたり、メッセージが表示されたり、セーブロードできたり、海岸線を綺麗に描いていたり、少しクラス化していたり、フルスクリーンでHTML5化してスマートフォンで動かしたりもします。それでもまだRPGとしてはシンプルなものなので、慣れてきたら改造してアクションRPGにしてもいいですし、フラグ管理や装備、魔法などを追加して手の込んだRPGにしてもいいかもしれません。

 なんて書いているうちに、さきほど見本誌が届きました。表紙に帯がついていますね。なになに「13歳の中学生でも 猫でも誰でも 簡単に楽しくゲームを作れる」? ――今回も前著に引き続き編集部からの真顔のアオリ文句がついています。ね、猫でもか…ハ、ハハ、ハハハ……(冷や汗)。

 えーと、実はこの本、今回は250ページぐらいのボリュームにして読みやすくしてはどうか、と思って書きはじめました。でも、なるべく丁寧に説明しようとしているうちに、結果的には500ページ以上のボリュームに。といっても、 字ばっかりにならないよう、画面写真や、キャラクターたちの掛け合いもたくさん 入れました。で、ボリュームは増えましたが、初心者向けの本ということで 値段は抑えたまま です!(ありがとうございます、編集部のOさん) 紙質は、分厚くなりすぎず、それでいて読みやすいようなものが使われていて、前著よりクッキリ、つるっとしてる感じがします。

 書き終えて、今思い返すと反省する点も多々あるのですが――それでも、持てるものを注ぎました。なにか 楽しいプログラミング のきっかけになったり、あなたやあなたの身の回りの誰かの役に立つものになっているとよいのですが。

 この本は初心者向けではありますが、優しいことだけスイスイやって終わり、という本ではありません。sin()、cos()も登場するし、アクションゲームを作るときにはclassにだって挑戦します。ただ、関数などを単なる機能、抽象的な概念で説明するのではなく、「実際こんな目的に使えるんだ」という 具体的な用途としてのサンプル を作って説明するよう心がけました。

 ちょっと変わった学校ですが、この魔法学校は プログラミングの魔法使い を目指す新入生を歓迎します。遊んで学び、そして、あなたの手で 新しい魔法を作りましょう!

この本のお問い合わせ先

※発売日前はリンク先が準備中の場合があります。

正誤表

  • p.X (誤)Skratch → (正)Scratch
  • p.20 (誤)Rubyというプログラミング言語 → (正)Pythonというプログラミング言語 (※Rubyを使う場合はRuby-Processing、JRubyArtなどはあります)
  • p.126 (誤)「フクロウ か ネコ」いれば → (正)「フクロウ か ネコ」がいれば
  • p.134とp.540 (誤)void keyTyped()の動作について「キーが押されたとき」 → (正)「文字のキーが押されたとき」
  • p.134とp.540 (誤)void keyPressed()の動作について「キーが押されているとき」 → (正)「キーが押されたとき」
  • p.360 (誤)size(640, 480) としたあとににある → (正)size(640, 480) としたあとの
  • p.388 noise.pdeの41行目(誤)nscale = constrain(nscale - (mouseX - pmouseX) * 0.1f, 0.1f, 10.0f); →(正)nscale = constrain(nscale - (mouseX - pmouseX) * 0.0001f, 0.001f, 0.01f);
  • p.393 noise_map1.pdeの25行目 (誤)map.nscale = constrain(map.nscale - (mouseX - pmouseX) * 0.1f, 0.1f, 10.0f); →(正)map.nscale = constrain(map.nscale - (mouseX - pmouseX) * 0.0001f, 0.001f, 0.01f);
  • p.535 (誤)上 直人(Gami Naoto) → (正) qut_ixtab(@qut_lud1)
  • p.538 (誤)line() ライン 四角を描く → (正)line() ライン 線を描く

※間違いにより、ご迷惑をおかけしまして、誠に申し訳ありません。

※ダウンロードできるサンプルのプログラムの方は修正済みです。