【Code Girls Stories CROSSTALK #04】中高生でプログラミング言語を究めると、将来の幅が広がる!(島田東子さんのストーリー)
筑波大学情報学群 情報メディア創成学類2年生島田東子さん(以下、島田)とGoogleソフトウェアエンジニア 2021年度入社の堀しのぶさん(以下、堀)のクロストークの様子をお届けします!
Unityを使ったオリジナルゲームで 「アプリ甲子園」の優勝をゲット!
堀:島田さんは、いつぐらいからプログラミングを始めましたか?
島田:高校1年のときですね。東京都内のプログラミングスクールで、Unity[1]のコースを1年間受講しました。
堀:Unityのこと、簡単に説明してもらえますか?
島田:Unityは初心者でもゲーム制作に挑戦できるゲーム開発のためのプラットフォームです。難しいプログラミング言語を理解しなくてもゲーム制作ができるので、これを使っている中高生も多いと思います。基盤になっているのは、C♯[2]というプログラミング言語で、ゲーム上で複雑な表現をするときは、この言語を理解する必要があります。
堀:もともとゲームが好きだったんですか?
島田:そうですね。ただ、四六時中ゲームをしているようなタイプではなかったですね。やっていたのもドラゴンクエストとかスプラトゥーンとか、わりと誰でも知っているゲームでした。
堀:オリジナルのゲーム作品はいつからつくっていました?
島田:高校1年からオリジナル作品をつくり始めて、高校2年次からさらにペースアップしていきましたね。結局、 高校時代に11本のゲーム作品を完成させたと思います。
堀:かなりハイペースだと思いますが、何かきっかけが?
島田:高校2年の春から「Unity1週間ゲームジャム[3]」というオンラインイベントに参加し始めたことですかね。 その名の通り、Unityを使って、1週間でオリジナルゲームをつくるコンテストなんですよ。
堀:1週間で!?それはすごい。
島田:そうなんです。ここで頭の中で構想したゲームを最後までつくり切る基礎体力のようなものが身についた気がしますね。高校2年次だけで、3回参加したかな……。
堀:積極的ですね〜。島田さんは「Unityインターハイ[4]」にも出場していますよね?
島田:はい。Unityインターハイは、高校生限定のゲームコンテストで、高校2年次の12月に初めて出場して、 ゴールドアワードという賞をいただきました。これは自信になりましたね。これらのイベントやコンテストに出場して、土台をつくった上で挑戦したのが、高校3年次の11月に出場した「アプリ甲子園[5]」だったんです。
堀:「アプリ甲子園2020」では、優勝と技術賞のW受賞だったと聞いています。そのときの作品について聞かせてください。
島田:このとき開発したのは、「Planisphere(プラニスフィア)」というスマホアプリです。星座早見盤から得たインスピレーションを元に制作した作品で、もともと好きだった宇宙やギリシャ神話の要素を盛り込んだパズルゲームになっています。
堀:技術的には、どんな言語がベースになっていますか?
島田:ベースはUnityなので、基本的にC#でつくっています。加えて、必要な機能を加えるために、JSON(ジェイソン)[6]という言語も覚えましたね。あとは、iPhoneアプリとして構築するためのXcode[7]も必要でした。私、このとき初めてスマホアプリをつくったんですよ。
堀:そうだったんですね。開発段階で、壁にぶつかったときはどうしてましたか?
島田:「Qiita(キータ)[8]」 など、 プログラミング専用のQ&Aサイトはよく見ましたね。「やりたいことUnity」とかで検索して。先人の知恵を思い切り使わせていただきました。あとは、TwitterとかSNSを使って質問したりもしていましたよ。
堀:SNSでちゃんと返信してくれる人がいるんですか!?
島田:もともとUnityインターハイ出場者のTwitterをフォローしたりして、コミュニティがあったんですよね。中高生同士で、技術情報を交換し合ったりして……。 なので、質問をするとしっかり答えてくれるカルチャーがありました。年齢も性別もわからない猛者が回答してくれることもあって、これもWebならではの面白さですよね。
堀:「Planisphere」は、イラストもかわいいですよね。
島田:ありがとうございます!実はこれもすべて自作なんです。ペンタブレットを使って、2次審査ギリギリまで描いてました。
堀:特に難しかったところはあります?
島田:ブラックホールを使った表現で、星座を描く線を歪める処理をしたんです。そこで、ベクトルの垂直条件とか使いましたね。高校数学がプログラミングで役立った!みたいな(笑)。
堀:あはは、それはいいエピソードですね。そういえば、 高校3年の11月にコンテスト出場ということは、大学受験と重なっていますよね?
島田:そうなんです。高校3年の9月がエントリーの〆切だったので、夏休み中は、昼は受験勉強、夜はアプリ開発という生活でした。どちらも大事だったので、 絶対に中途半端にならないように頑張りました。
大学で学んだデータベースの知識を 自作のミニゲームに応用
堀:その後、しっかり受験もパスして……大学生活はいかがですか?
島田:今は筑波大学の情報学群情報メディア創成学類に通っているのですが、面白い授業がたくさんありますよ。
堀:具体的に教えてください。
島田:C言語やアセンブリ言語を基礎から学んだり、データベースを使ったWebサービスをつくる課題に挑戦したりしています。あと、認知科学の知見からVR表現を考えたりする授業もあります。最近は、大学で学んだ知識を使って、自作のミニゲームにデータベースを組み込んで、オンラインランキングを構築しましたね。
堀:それは大学の課題で?
島田:これは自分の作品です。加えて、ゲーム制作会社でインターンシップもしていて、そこでもゲームサーバのつくり方を学んでいます。
堀:すべてから知識を吸収する努力をしているんですね。 では、これからプログラミングを学びたい人にアドバイスはありますか?
島田:やはり手を動かし続けること。そして、つくり始めたら、必ずやり遂げることです。私も1週間でゲームを完成させるイベントなどに参加する中で、どんどんスキルが上がっていくのを実感しました。
堀:高校時代からプログラミングに挑戦していると大学の勉強もスムーズに進むんじゃないですか?
島田:それは本当にそうだと思います。私の場合、C#でしたが、どの言語でもいいから、大学に入る前に詳しくなっておくとPython[9]などの新しい言語を学ぶときに理解のスピードがまったく変わりますね。
堀:では、最後に島田さんの将来の夢を聞かせてください!
島田:私は、プログラムをガリガリ書くのが好きなので、エンジニアの道を究めたいですね。女性エンジニアはまだまだ少ないので、自分の技術力で、女性が活躍するフィールドを切り拓いていきたいです。
堀:ジャンルはやっぱりゲーム系ですか?
島田:そうですね。でも他のジャンルにも興味はあります。
堀:ちなみに、今はゲームつくるのと友達と遊ぶのだと、どっちの時間が楽しいの?
島田:うーん、もしかするとゲームつくってるときかもしれないです(笑)。
[1]Unity:ユニティ・テクノロジーズ社が提供するゲーム開発のためのプラットフォーム。初心者でも3Dゲーム開発に挑戦できるツールとして知られている。
[2]C#:マイクロソフトが開発したプログラミング言語。 Unityで用いられている。
[3]Unity1週間ゲームジャム:Unityを使って1週 間でゲームを開発し、そのクオリティを競うイベント。
[4]Unityインターハイ:高校生のプログラミング技術習得の奨励、才能の発掘を目的としたゲーム開発の全国大会。
[5]アプリ甲子園:次世代を担う若手クリエイターの 発掘と育成支援を目的としたスマートフォン向けアプリ開発コンテスト。ライフイズテック株式会社が運営。
[6]JSON:JavaScript Object Notationの略。プログラム間のデータのやりとりによく利用される。
[7]Xcode:Apple社のアプリ開発ツール。Apple プラットフォームでアプリ開発、テスト、配信するためのツールを内蔵。
[8]Qiita(キータ):プログラミングに関する知識を共有するサービス。さまざまな事象に関するQ&A が公開されている。
[9]Python:プログラミング言語の一種。アプリの 開発、人工知能、データ解析などさまざまな用途に用いられる。