無料プログラミング学習ツールの紹介[AI開発:CODE COMBAT 1]

記事
学び

前置き:なんでAI開発が必要なの?

スクウェア・エニックス社内の人工知能開発担当として有名になった「AI部」のジェネラルマネージャから、とある雑誌(今週のファミ通P.165~)へ、興味深い記事が寄せられていました。

「今後のゲーム開発では、開発工程そのものにAIを導入する。」

つまり、単純なプログラミングだけができてもダメで、「AIを作れる」人材じゃないと、スクウェア・エニックスでは採用されなくなるよ、と。
ついにゲーム業界でも、こうなったか・・・という気持ちです。そうなんですよねー、ホント。いわば、「英語だけできてもダメ」という感じに近いです。

英語は、必要です。しかし、「英語ができた上で、〇〇ができる」という形で生かせなければ意味がないのは、皆さんご存じの通り。
プログラミングも同じで、すでに現場では、「(AIや先輩が作った)コードを調整・テストする下っ端」と、「AIそのものを作る・設計する上級職」という構図が固まりつつあります。

プログラミングだけ出来ても、下っ端のままなんです。結果として、そうした仕事は海外に発注するケースが増え、日本の人材が育っていません。
こうした現実に対して、日本では10年遅れでやっと始まったプログラミング教育や、各地で流行しているプログラミング教室では…

正直に申し上げると、(AI開発をするには)レベルが低すぎます。使い物にならない、自称「プログラミングできます」の人ばっかりが増えています。

Scratchなどのツールも悪くないんですが、それは「英語の勉強として、まずアルファベットを覚える」のと同レベル。そもそも、教える側の先生ですら、開発経験が数年とかだったりしますから…。高度なプログラミング教育なんて、高いお金を出して本当の開発経験者を雇えるような、ごくごく一部の人しか受けられないという現実。人材不足が極まってます。

前置きが長くなりましたが、ちょうど夏休みということもありますので、完全無料でプログラミングが学べる(特に、実践的なAI開発ができる)サイトやツールを紹介させて頂きます。将来の日本を支える人材が、どうかココナラで育ってくれますように。

CODE COMBAT って何?

CODE COMBATは、RPGで遊びながらプログラミングを習得できるオンライン学習サービスです。コーディングのゲームができるWebサイトと言ってもいいでしょう。
ユーザー数は世界190ヵ国で、1,200万人の学習者がいて、学校のプログラミング教育にも活用されています。(STEM教育関連サイト Stem.codes から引用)
海外のプログラミング教育では昔から利用されていて、メジャーな存在です。開発現場に入ってくる留学生・外国人の中にも、
「CODE COMBAT デ 勉強 シタヨ!」という人が結構います(そして、日本のゲームが好きになる)。

中学生~高校生くらいになると、Scratchをはじめとするビジュアル系ツールは、下に見られてしまいがち。しかし、CODE COMBATであれば、ガチの開発でも使えるソースコード(カバー画像や下図の、右側の文字部分)を作って皆に見せられるので、夏休みの自由研究にしても恥ずかしくないでしょうね(笑)。日本語対応も進んでいるので、英語が出来なくても大丈夫です。
画面キャプチャ1.png


CODE COMBATでAIを開発しよう!

今ではよくある、「Webブラウザでソースコードを書くだけで、ゲームが作れる」タイプのサービス。しかし、意外と知られていないようなのですが、CODE COMBAT の真価は 「AI開発ができる」ことにあります。しかも、PythonやJavaScriptといった、開発現場の最前線で今も利用されているプログラミング言語を使って、実際に動いて対戦できるAIを作れます。

また、世界中でアクティブユーザ数が現在も2万人以上いるので、彼らの作った2万種類以上のAIと、自分で作ったAIを対戦させることが出来ます。

つまり、自分のAIが「世界ランキング〇位」になるのを見られます。

一部のプログラミング教室でやっているように、友達同士でAIを作って競わせるのも良いのですが、やはり世界と戦ってこそ成長があります。大人も参加しているので、レベルはかなり高いです。
私も試しにAI(球男の生徒1号)を作ってみたのですが、世界ランキング91位でした。世界の小学生、 マジ レベル タカイ。

(追記:ふと思いついたのですが、「プロコン入賞者(しょぼい人が多すぎ)」とか、「プログラミング教えます」という方が居たら、このランキングで高順位を取れるかどうか、チェックすれば実力を確かめられるかも。)
20220806_ランク91位キャプチャ 切り抜き.png


バスケットボール対戦用AIを作ろう!

対戦画面キャプチャ2.png

CODE COMBATで代表的なものが「バスケットボール対戦用AI」。
左側の赤チーム(自軍)から、右側の青チーム(敵軍)へとキャラクタを送り込んで、シュートできる所までたどり着ければ自軍の得点になります。

途中で敵にブロックされると、押し返されたり倒されたりしてしまうので、①②③の各コースに、どんなキャラをどのタイミングで送り込むかが重要です(もちろん、ここをAIが判断するので、AIの賢さ=チームの強さです)。

送り込めるキャラクタは5種類 (hero.summon関数で呼び出す)。
・threat :敵を押し返す力が強い。
・charger :攻撃力が高い、アタッカー。
・big   :タンク役(遅い)。
・driver :バランスタイプ。
・sniper  :3ポイントシュートを決められる。

監督の使える応援魔法(笑)は5種類+α (hero.play関数で呼び出す)。
連続詠唱にはクールダウンタイムが必要なため、どんなタイミング(戦況)で使うかが重要です。
・boost
・press
・quicksand
・goliath
・hot

AIに戦況を判断させる方法は数多く用意されていますが、最低限必要なのは
・hero.findMyPlayers 関数 -> 現在の自軍人数を返す
・hero.findTheirPlayers 関数 -> 現在の敵軍人数を返す
・hero.isReady 関数 -> 応援魔法が使えるかどうかをTrue/Flaseで返す
などです。

すべてマニュアルが用意されているので、強いAIを作りたければ読んでみましょう。ちなみに私の作成した「球男の生徒1号」のAIは、ソースコードでいえば30行未満の超手抜きですが、それなりに勝ち抜いているようです(コードは公開した方がいいでしょうか?)。

CODE COMBATを始めるには?

メールアドレスさえあれば、今すぐでも始められます。
パソコン、スマホ、タブレット、なんでもOK。超お手軽です。
…ですが、教員・保護者がアカウントを作って、生徒を招待して…という流れが分かりにくいかも知れませんね。

もし必要であれば、今後はそのあたりをフォローしようと思います。
生徒さんだけでなく、プログラミングの先生になりたい、という方にも使って頂ければ幸いです。CODE COMBATは、教育者用のツールも充実していますので。

こんなブログを書いても、誰も読んでくれなさそうな気がしてきた…。
夜中に思い付きで書き始めたブログなので、内容に不備がありましたら申し訳ありません。

そろそろ朝なので寝ます zzz

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す