バンダイナムコスタジオのTaka氏に学ぶ、プログラミングスキル向上のコツ
2002年よりバンダイナムコスタジオでエンジニアとして活躍。2014年にはバンクーバーに移り、バンダイナムコスタジオ バンクーバーにてテクニカルディレクターとしてゲームの設計や全体の統括を指示している。
スキルは後からなんとでもなる、飛び込んでしまえばいいんじゃないかな
リクエスト・ご感想
参照リンク
文字起こしテキスト
こんにちは、FrogのManaです。前回インタビューさせていただいた、淳雄さんからのご紹介で、今回はバンダイナムコスタジオ バンクーバーでテクニカルディレクターをしている松野隆史さん、Takaさんにお話をお伺いします。Takaさん、今日はよろしくお願いします!
よろしくお願いします。
ではまず簡単に自己紹介をお願いします。
松野隆史と申します。バンダイナムコスタジオ バンクーバーでテクニカルディレクターっていう仕事をしています。いろんな会社でキャリアをつんだ後に、2002年にナムコに中途採用で入って、いろいろやってたんですけど、2年半くらい前にバンクーバースタジオの立ち上げの話がちょうど舞い込んできまして。すぐに移動の希望を出しました。中山の方と同じタイミングでバンクーバーに移って、スタジオの立ち上げから、実際に物を作るための体制を整えてきました。専門はネットワーク、バックエンド、サーバーサイドの方になります。よろしくお願いします。
ありがとうございます。カナダ生活二年半くらいですかね。カナダ生活、どうですか?ザックリ聞きますけどw
実際バンクーバーに来てすごいよかったなと思ってますね。来る前はわりと北アメリカのどこかであればどこでもいいかなと思ってたんですけど、来てみてIT産業が成長しているなっていうのを実感しますし、エンジニアをいろいろ見て、話しをしているんですけど、とても優秀な方が多いです。あと、ここはご飯は何食べてもおいしいんで。
結構いろんな国の料理が食べれますもんね。
そうですね。和食もラーメンから丼もの、寿司とか…。何食べてもおいしい。そういうところはすごい幸せです。
先ほどカナダの開発拠点の話が出てすぐ飛びついたとおっしゃってましたが、元々何がきっかけで北米に行ってみたいなっていうのがあったんですか?
ひとつは、あらゆる技術ってだいたい北米から来てるっていうのも大きく感じていて。エンジニアをやってる以上、一度はコンピューターサイエンスの本場でっていうのは元々思っていたところではありました。思ってはいたんですけど、具体的に「じゃあこれをやってみよう」っていうのは、機会がなかなかなくて。で、前職は結構アメリカ西海岸の方に出張で行ってたりはしたんですけど、ナムコに入ってからはなかなかそういう機会がなくて。10年以上いたので、そろそろ違うこともしたいなと思っていたところに丁度この話が出たので、もう、すぐ。意を決して。
満を持して、ついに。
結構長い時間かかったと思います。
「日本とここが違うな」と実際に感じたところってありますか?生活面でも仕事面でも。
「文化」っていう一言でいうと、完全に違うと思いますね。価値観も全然違いますし。エンジニアの宗教観もまったく違うなと。例えばコードのインデントひとつとっても、とか。コーディングスタイルにしても違いますし。いろいろ違うなっていうところはあるんですけど。カナダっていろんな国から来てる人たちがいっぱいいるので、これが同じ、統一見解っていうのが、なかなか見つけにくいですね。日本だと、同じ日本人が、同じ組織の中にいたりするんで、わりと「こういう行儀でやりましょうね」みたいなところって暗黙の了解で通ったりするんですけど、そういう常識ってそもそもなかったりするので。そういったところから、ちゃんとみんな on the same page(同じ考え、同意)になるように進めていかないといけないなというのが、よく痛感しているところですね。
じゃあマネージメント側からすると、すごく大変ですよね。
そうですね、特に集団になった時の違いっていうのはものすごく大きいなあと感じています。なので、チームっていう単位で考えた時に、マネージメントっていうのは大きく変わってくると思います。こっちに来てからずっと考え、ずっと悩まされて。
今もなお、課題ですか?
そうですね、今もなお課題です。ただ、個々のレベルで考えると、エンジニアってみんな作ることが好きっていう点は同じだと思うので。
そうですよね、根本的な共通点っていうのは変わらないから、あとは細々したところをどう統一するかっていうところですかね。
そうだと思います。みんな作ることが好きで、ゲームが好きで、パッションあるっていうところは同じなんで。日本でも、気難しい人もいれば、親しみやすい人もいますし。いろんな方はいるので。個々でみるとあまり変わらないかもしれないですね。
TakaさんはRuby、Python、C/C++、Java、MySQLなどなど、様々な言語を扱えるとお伺いしているんですけど、そもそもプログラミングを始めたきっかけっていうのは何かありましたか?
プログラミングを始めたきっかけは、多分中学校くらいだったと思うんですけど、ファミコン、MSXっていう時代があって、その頃にどうやってゲームを作ったらいいんだろうなって。丁度「マイコンBASICマガジン」っていう有名な雑誌があって、運良くMSXを持っていたんで、それでBASICを勉強というか、写経ですね。完全にコピペ。そうやって触ったのが一番最初ですね。ただ、その時ってプログラムのこと何も理解できてなくて。そこから高校・大学くらいでちょっとC言語だったり、C++だったりを勉強して。ようやく「コンピューターサイエンスってこうなってるんだ」っていうのを勉強した気がします。
なるほど。最初からゲームを作ってみたいっていうのがあったんですか?
最初の最初はそうですね。ゲームを作ってみたいっていうのはありましたね。ただ、本格的にのめり込んだのって、大学でUnix触って、そこからですかね。プログラムの面白さがわかったのは。
一番最初に作ったゲームって覚えてますか?
覚えてないですw たぶん雑な縦スクロールのシューティングゲームかなw
入門書にあるような感じのを写経してw
まさにそんな感じ。本当に写経。なんでこうなってるのかとか、全然理解できなかったです。
それが大学くらいになったら、「あ、これで打てるんだ」っていう感じがわかってくるっていう?
そうですね。大学くらいの頃には一通りC言語やC++だったりは、言語の仕様っていう意味では理解できたんで。専門的なところは全然わかんなかったですね。グラフィックだったり。
そこからも長い道のりが?
そこからも全然まだまだ長い道のり…。はい。
私は基本デザイナーとしてお仕事をしているので、ガッツリプログラミングだけをするという機会は少ないのですが、やはり必要性を感じてプログラミングの勉強もするんですけど、どうしても途中で挫折してしまうことがありまして。そこでお伺いしたいのですが、プログラミングの習得のコツっていうのは何かありますか?
たぶん、僕も同じで、プログラム言語の勉強だけをするっていうのは続かないんですよ。具体的に何か、こういうのを作ってみようっていうのを試して、うまく動かなくてっていうのを、繰り返していくことで、コツを掴んでいくのがいいんじゃないかなぁと思います。慣れてからは人のコードを見ていくと、いろいろ勉強になったりすると思います。
最初から全部理解しようとするのではなく、ちょっとずつカスタマイズをしてみたりっていうところから、目標を作ってっていう。
そういうのがいいんじゃないかなぁと思いますね。元々あるものに手を加えてみたりとか、いじってみたりとか。すると理解は深まると思います。
そいういうのは確かにやりやすいですよね。既存のものを自分色に変えてみてっていう。
あとは、なんでそうなっているのかって思えるようになったら、しめたもの。「なんでここはこういうふうに作ったんだろう?」という風に考えられると早道だと思います。
最初から根本的な理解をするのは難しいから、慣れてきてからそいういうふうに考えられるようになると、一皮むけるかなっていう。
そうだと思いますね。
多々あるんですけど、一度つまづいたり、わからなくなった場合に、解決策がわからなかったり、ということがあるんですね。そういった時、どうしてましたか?勉強していて「あれ?ここうまく動かないけど、どうすればいいんだろう?」っていう時。
そんな時は一回離れますね、僕の場合は。一回ちょっと机を離れて。プログラムってやっぱりソースコードの一箇所だけ集中して見ちゃうんで、例えばバグが出た時も、なんでバグが出てるのか全然わからないって、よくあるんですよ。そういう時って、「そこのコードのここだろう」って思っている所だけ見ていても、なかなか解決できなかったりするんで。そういう時は一回頭冷やして。根本的に設計が間違ってたりするんじゃないか?実は全然違うことやってたりしないか?とか。一回離れますね。とにかく自分だけだと解決できないなっていうところまで来ちゃうと、人に聞いたりすることが多いですね。
やっぱり独学って難しいですよね?
独学は難しいですね。僕も最初は独学だったんですけど、今すごいいいなって思うのは、GitHubやBitbucketなどで、いろんな人とオープンソースのコミュニティがすごい活発になっているんで。いろいろ、エンジニアとのやり取りってすごいしやすくなってる。土壌がもうできてると思うんですよ。だから、ぶっちゃけて言うと、日本の人ってそういうところに、「わかんないから教えて」って言い難いじゃないですか。でも、こっちに来て一番思うのが、北米の人ってすごい気軽に聞くんですよ。どうでもいいことでもなんか…。日本だと「ググレカス」って言われるようなことも…聞いてくる気がして。オープンソースのコミュニティを見ていても、「あー、すごい若い子なんだなー」って思いながら。すごい質問してきたり。ポジティブに考えられていると思うので。
そういった質問にも丁寧に答えてらっしゃるんですか?
はい、答えますね。
じゃあわからないことがあれば、聞いてみてもいいんですかね?
聞いてみた方がいいと思います。経験ある人って、自分よりも遥かにいろんなことを知っていると思うし、自分だけで専門能力全部をカバーしきれるわけがないっていうくらい、世の中って早いスピードで動いていると思うので、自分より専門能力のある人に聞くっていうのは、すごいいい習慣なんじゃないかなって。
でもそうなったら逆に、自分で考えなくなってしまわないかっていう懸念もあるのでは?
そのへんは…。まぁ、GoogleなりStack Overflowで調べれば、すぐに答えが出てくるから、「スキルいらないよね」みたいな考え方もあるような気もするんですけど、でもそれってエンジニアとして生きていく上では大変な気がします。根本的なところは理解しておいた方がいいと思いますね。アルゴリズムだったり、デザインパターンだったり。そういう引き出しは少しでも増やす努力をした方がいいと思います。
これからプログラミングを勉強したいっていう方、今まだ全くプログラミングなんてしたことないという人が、これから始めようっていう時は、何から始めればいいですか?
どの技術をつけたいのかっていうのによるとは思うですよね。例えばゲームだったらC++が強いと思いますし。WebのフロントエンドだったらJavaScriptや、最近だとCoffeeScriptだったり。ただ、最近はもうプログラミング言語一つ覚えたからどうにかなるレベルではなくなってきているので、いろんなツールやフレームワークを駆使していかないと、なかなかしんどいかなっていう気はしてきています。なので、ゲームだったらUnity、Unreal Engine、CryEngine…、WebだったらReact.js、AngularJS…そのあたりを知っておくといいんじゃないかな?
具体的に言っていただいてすごく助かります!ありがとうございます!
あと、最近はプログラミングをガリガリ書くってあんまり流行らないんじゃない?っていう考え方もある気がして。コードを一切書かずに物を作るっていうアプローチも面白いんじゃないかなって思います。
それは今できますかね?
限度はあると思います。限度はあると思いますけど、そういう方々もいらっしゃるので。
確かに、Xcodeだと、Swiftがわからなくても、機能がありますよね。Storyboardか。
はい、Unreal EngineにもBlueprintっていう、グラフィカルなインターフェイスがあって、それでグラフィカルにポチポチしてるとゲームができちゃうっていう。game logicをベースに、プログラムを書かなくても表現できちゃうっていうツールがあったりするので。そういうのを駆使して、一切コードを書かずにゲームを作るっていうも面白いなーって思っています。
Takaさん的にはそれって邪道じゃないんですか?
いえ、邪道だとは思わないです。それで本当に最適化できてるんだとしたら、別にそれでいいんじゃない?っていう風に思っちゃいますね。
使えるものは使ってしまおうっていう。
そうですね。僕はどちらかと言うと怠け者な方なので…。楽して作った方がいいんじゃないかなって。
ひとつの言語をすごく深く知っているよりも、いろんな言語といろんなツールを幅広く扱えるっていう方が、これからはいいですかね?
今両極化しているような気がします。やっぱりエッジな技術って今も必要だと思うんですよ。ですがそういう人もいれば、なんでもできちゃうっていう人も大事にされていると思いますね。ジェネラリストとか、フルスタックっていう言葉があるように、そんなに深くはない、浅いんだけど、一通りなんでもできちゃうっていう人も大事にされている気がします。
どちらに進むかはやってみて、自分にあったものをっていう。
そうですね。そうだと思います。僕はどちらかと言えばひとつにハマっちゃうタイプなんで。僕の場合はデータベースだったりするんですけど。
深くハマってでも、今いろんな言語を使えてますよね。
プログラミング言語は、ひとつ基本がわかっちゃえば、そんなに…。シンタックスがちょっと違うっていうだけで。
英語のこともちょっと聞いてみたいんですけど、カナダに渡って二年半とおっしゃっておりましたが、最初から英語ってできましたか?
英語はできないです。英語は…今も苦労の連続です。正直言って。
でもLinkedInを見たらすごくちゃんと書かれてたなーって。
昔から旅行が好きだったり、出張が多かったので、慣れてたっていうのはあると思いますけど、未だに自分の英語力って他の方に比べてひどいなーって思ってます…w エンジニアって、英文ドキュメントを読んだりすることが多いと思うんで、横文字の専門用語に慣れているっていうのが優位かな、と。
そうですね、指示するときも、そういった専門用語だったら、指示しやすいですよね。
そうですね。そういうところは、良かったなーって思います。
カナダに移るって決まってから、日本で何か勉強をされましたか?
英語の入力は意識して増やすようにしました。映画を見たり、人と話をしたり、ドキュメントを読んだり、ブログを読んだり。正直あんまり…勉強できてないですw
今も、そんなにしてないですか?w
今も…そうですね、しないとダメだなーと思っているんですけど、それだったら違うことを勉強したいなーって思っちゃうんで…。どっちかと言うと新しい言語を覚えたいとか、新しいことを何かやってみたいなって。
英語は二の次でいいから、今のスキルを伸ばしたいという感じですかね?
二の次…では…w 大事だとは思うんですけど…。しなきゃ、しなきゃとは思うんですけど、あんまり伸びしろがないなって…。
諦めちゃってるじゃないですかw
諦めてはいないんですけど…あの…はい、勉強しますw
なんか説教するつもりでもなんでもないのに、怒ってる感じになっちゃったw じゃ、しなきゃしなきゃと思って、二年半が経ったとw
そうです。しなきゃダメだと思いますw
これから海外でエンジニアとして働きたいという方に向けて、メッセージをお願いします!
日本のコンテンツって、世界レベルで考えてもズバ抜けてすごいと思うんですが、そんな中で外に出たがるエンジニアって、なかなか少ないなっていうのが印象としてあります。今もし海外に出て、挑戦してみたいって思ってらっしゃるんだったら、もう飛び込んで、やってみたらいいことになるんじゃないかな、と思います。特にコンピューターサイエンスはこっちはすごく盛んというか、進んでるなぁと思うところがありますし、開発手法ひとつとっても洗練していて。エンジニアとしてもすごくいい刺激になると思います。あと、スキルは後からなんとでもなるような気はします。飛び込んでしまえばいいんじゃないかなぁと思います。
スキルも英語もなんとかなると!
はい、なんとかなると思います。どっちかがあればなんとかなる。
バンダイナムコ バンクーバーでは、求人はされているんですかね?
はい、今、積極的にエンジニアを募集しています。bnsv.caを見ていただければ。リードエンジニアから、シニアエンジニア、ゲームプレイのエンジニアもこれから情報をオープンしていくと思うので、ぜひぜひ、腕に自信のあるかたはApplyしていただければと思います。
英語力って必要ですか?
英語力は Job Description(募集要項)に書いてないので、たぶん「Nice to have(あればより良い)」で日本語がしゃべれたら良いって書いてあるかもしれないですね。そうですね、英語力は特に書いてないですね。ただ、バーバルな、コミュニケーションスキルが「良い事」とか、そういう風に書いてあるかもしれません。
意思疎通ができて、スキルがあれば、ウェルカム!っていう感じですか?
そうですね。ぜひぜひ。
じゃあ、もし興味のある方がいたら、ぜひ応募してみてください!
ぜひよろしくお願いします!
では、今回はバンダイナムコスタジオ バンクーバーのTakaさんにお話をお伺いしました。Takaさん、今日はありがとうございました!
ありがとうございました!
パーソナリティー
Mana
カナダのバンクーバーでWEBデザインを学んだ後、バンクーバーの現地企業やオーストラリア、 イギリスでWEBデザイナーとして活動。バンクーバーにて就労ビザ取得。ブログ「Webクリエイターボックス」の中の人。
ポッドキャストへのリクエスト、質問、感想などはTwitterからハッシュタグ「#FrogSchoolポッドキャスト」をつけてお気軽にTweetしてください!
制作や英語、海外就職などに関するご質問は、番組内でお答えしちゃいます!
※すべてのリクエスト、質問にお答えできるとは限りません。