S.H
Aimingに入る前はどのようなことをしていましたか?
クロストーク
新卒エンジニアが聞いてみた!
マネージャーの業界歴25年を大解剖!
新卒エンジニアが聞いてみた!
マネージャーの業界歴25年を
大解剖!
家庭用ゲームからアミューズメント施設向けゲーム、そしてスマートフォン向けゲームへと、長年ゲーム業界で活躍してきたベテランエンジニア。
経験豊富なエンジニアが、Aimingでの12年間の歩みを振り返ります。
エンジニアとして勤務する上で大切だと考えていること、Aimingのエンジニア文化についてもお話します。
エンジニアマネージャー
S.S.
2012年中途入社。数々のプロジェクトで活躍後、現在は『銀河英雄伝説 Die Neue Saga』にてエンジニアマネジメントを担当。
クライアントエンジニア
S.H.
2022年新卒入社。『戦国大河』に配属後、『銀河英雄伝説 Die Neue Saga』プロジェクトに参加。
エンジニアマネージャー
S.S.
2012年中途入社。数々のプロジェクトで活躍後、現在は『銀河英雄伝説 Die Neue Saga』にてエンジニアマネジメントを担当。
クライアントエンジニア
S.H.
2022年新卒入社。『戦国大河』に配属後、『銀河英雄伝説 Die Neue Saga』プロジェクトに参加。
S.H
Aimingに入る前はどのようなことをしていましたか?
S.S
Aimingに入社して、もう12年ですかね。新卒から数えて25年くらいゲーム業界でエンジニアとして働いており、入社前は主に家庭用ゲームやアミューズメント施設向けのゲーム開発に携わっていました。当時はC/C++での開発がメインで、ちょっとした社内webサービスを構築した際にはPHPも扱っていました。
S.H
当時は今よりさらに学習が難しい環境で、かつゲームプログラミングとなるともっと一般的ではないと思うのですが、どのように学習していたんでしょうか?
S.S
インターネットも当時はあまり普及しておらず、今のように検索エンジンで調べればすぐでてくる環境ではなかったので、会社の先輩に教えてもらったり、APIやSDKのマニュアル等を見て、サンプルがあれば参考にして書いたりしていました。
S.H
紙でのドキュメントもあったのでしょうか?
S.S
そうですね、基本的には紙ベースで来ることが多かったです。SDKのAPI等も本で渡されていました。
今だとGoogleサービスやExcelでの共有ができますが、当時はありませんでしたからね。
S.H
情報伝達等のコストも今に比べると高そうですね。
S.S
逆に今の時代はできることや求められることが多くなって、それに伴って覚えることがとても多くなってます。幅広く勉強できるようになりましたが、勉強しなければならないことも増えましたよね。昔は大変だった、今は大変だったではなく、昔は昔の大変さが、今は今の大変さがあるのかなと思っています。
S.H
たしかに、できることも増えて求められる水準や技術が多くなってますよね。
S.S
ベース部分をゲームエンジンがやってくれることになったので、その上でできることを勉強しないといけないんですよね。今はゲームエンジン上に物体をおけばすぐに表示されますが、昔はその仕組み自体を作るところからスタートしているため、画面上に物体が表示されるだけですごかったんです!
今はそれが当たり前で、そこからどうするかは勉強が大切ですね。そのため、エンジニアは常に勉強し続けないといけないんですよね。
S.H
ところでAimingに入社したきっかけはなんですか?
S.S
転職を考えた当時は、スマートフォン向けゲームが普及し始め、フィーチャーフォン向けゲームに続く新たな潮流として注目されていました。その中で、Aimingがスマートフォンで本格的なストラテジーゲームを開発しており、オンラインゲーム開発を主体とする企業だと知り、入社を決めました。
S.H
Aimingに入社してからはどのようなお仕事をされていますか?
S.S
入社してからは、Lord of Knightsのプロジェクトに配属になった後、海外版を含めた横展開のプロジェクトにおいて、テクニカルディレクターとして技術面でサポートしていく役割を担っていました。
この頃は、すでに日本でリリース済みのプロジェクトの横展開を担当していたため、開発とは若干軸が異なることをやっており、実装についてはメンバーにお任せしていましたが、運営型ゲームの運用の流れについて把握することができました。
その後、戦国大河のプロジェクトの立ち上げメンバーになり、エンジニアリーダーとして開発とその後の運用まで見る仕事に携わりました。この頃からUnity/C#を用いてのゲーム開発の実装に本格的に関わることになり、このタイミングで長期運用に耐えられる実装について、様々なことを習得しました。途中からマネージャーに昇格し、マネジメント業務も担当することになりました。
そして、銀河英雄伝説 Die Neue Sagaの立ち上げメンバーとして参加し、戦国大河や他のプロジェクトも同時に見ながら、基本部分の実装を行いつつ、プロジェクト規模が大きくなってからは、主にエンジニアメンバーのマネジメントの仕事に携わりました。
現在は、銀河英雄伝説 Die Neue Sagaの運用のエンジニアのマネジメントをしつつ、いくつかのプロジェクトのサポートを担当しております。
S.H
これまで携わってきたことで、一番大変だった課題/プロジェクトはなんですか?
S.S
それぞれに大変さがあるので、時系列でお話しますね。
まず、入社してすぐ担当したLord Of Knightsの横展開のときは、最大でプロジェクトが6つ並行で走っており、全てのプロジェクトが円滑に開発・運用できる環境を整えることに苦労しました。
当時は週に1回各プロジェクトがメンテナンスを行っていたため、週に6回メンテナンスを行う日々を送っていました。
海外版をリリースするにあたり、各国ごとに個別に対応しなければならないことも多く、例えば韓国版を出すなら、韓国で当時流行っていた課金のシステムを導入したり、翻訳をスムーズに進行できるようにする環境を整えたりと、ゲームの基本的な作りはある状態でしたが、実際の運用に回していく工夫等をしていました。
また、テクニカルディレクターが最初は私だけというのもあり、24時間稼働するサービスを維持する対応が求められ、障害が発生した際にはすぐに対応に駆けつける必要がありました。心が休まるときは少なかったですが、今までにはないライブ感のある仕事で充実感がありました。
戦国大河では初めて実装も担当するエンジニアリーダーとして参画しましたが、長期運用を見据えたレビュー、設計、テストを重視する開発体制に慣れるのに苦労しました。Aimingがもともと長期運用型ゲームを作る会社なので、設計やレビューをしっかりやろうという考えが根底にあるんですよ。それにのっとって作ることが求められるので、文化的なところを身に着けるのがすごく大変でした。今の新卒社員と同じ苦しみを感じてたと思います。きちんと作らないとリリース後の運用で多くの問題が発生するため、設計段階からをきちんと考えてつくらなければいけないです。
初めてのUnity/C#での開発というのもあり、運営型オンラインゲームの設計にも不慣れなところもあったためうまくいかなかったこともありましたが、優秀なメンバーに支えられながら、多くのことを学び成長できたプロジェクトでした。
銀河英雄伝説 Die Neue Sagaは途中でゲームの規模が拡大し、開発体制が追い付かない状態でした。私と作業メンバーの間に様々な理由でチームリーダーを立てることができず、結果的にメンバー全員の業務管理もしていました。また外部の会社との連携や契約手続きなど、不慣れな業務も多かったです。
当時はマネジメントを一人で対応しており大きなプレッシャーも感じていましたが、メンバーの尽力により、無事にリリースできてよかったと思います。
S.H
Aimingの会社の印象や雰囲気は?
S.S
Aimingは、運営型のゲームが多く長期運用に耐えられるように設計を重視する傾向があるため、設計まわりの技術面に関してしっかりしているという印象があります。プログラミング部分をしっかり勉強する下地のある会社ですね。
会社の雰囲気としては、素直な人が多いのと、若い人が多いこともあって、明るい印象です。Aimingのエンジニアは本当にまっすぐな人が多いですよね。実装についてもとりあえず動けばいいやって考えの人が少なく、綺麗な設計にして変更しやすいようにきちんと作らなきゃ、という考えの人が多いです。
また、レビューはするものという文化が根付いていますね。実装したら実装をそのままマージすることはなく、プルリクエストを必ず出して、他の人にレビューされてOKが出ればようやくマージされるようになっています。そこで設計の話が出てきたり、この実装はまずいぞ、そっちもいいけどこっちもよくない?という意見交換もあり、お互いに考えながら前に進んでいくようなことができる下地がありますね。それを維持できているのがAimingの特徴ですね。もはやAimingの文化になっていて、それが当たり前のように存在しているのはとてもいいと思います。
S.H
レビューのない文化は想像できないです!
S.S
新卒でAiming入社だと、レビューが当たり前になっているので、そう感じるかなと思います。それぞれいろいろありますが、その会社が大事にしていて根付いているものが文化ですよね。Aimingとしてはレビュー文化を大事にしていて、それがエンジニア社員全員に根付いていると思います。
Aimingは長期運営型のオンラインゲームを作っている会社なので、レビュー文化が存在しているのはゲームの安定運用に寄与していてとてもいいと思います。
S.H
なるほど、他にも気に入っているAimingの文化や取り組みはありますか?
S.S
社内では勉強会がいくつか開催されていて、向上心がある人が多いのが良いと思います。
輪読会だったりLT会だったりプロジェクト内勉強会だったり、徐々に増えてきている感じがします。
アウトプットについても、GitHubのDiscussionsに主体的に知見を書いてくれていたり、開発者ブログに記事を書いてくれる人がいたり、社内共通で使えるパッケージを公開して使うリポジトリが作成されたりと、色々といい流れができてきていると思います。
S.H
エンジニアとして働く上で注意することはなんでしょうか?
S.S
技術については常に新しいものが出てくるので、それらの技術を積極的に追い求めていく姿勢が持てると、自分自身の成長につながっていくと思います。
S.H
具体的にどういう行動をとるのがいいでしょうか?
S.S
いろんなことに興味を持って、実際に行動してみるというのが大事だと思います。エンジニアは職人なので手を動かしてなんぼです!本で読んで理解しただけだと、いざ使おうとするとできないことって多いと思っています。
例えば新しいアセットやサービスなどがリリースされたときに、それを知っているだけでなく、さらに詳しく調べて使い方が分かった、そして実際に使ってみた、までできればやってほしいですね。使ってみるまで行くと、何かのケースの際に提案できる選択肢が増えます。時間はかかりますが、日々勉強ってことですね。技術は常に進歩していくもので、新しい技術がどんどん出てきますし、今まで使えていたものが使えなくなるということも発生したりします。
新しい問題が出てきたときにそれをどう乗り越えていくかは、常に勉強していれば乗り越えていけますが、勉強していないと壁を乗り越えられないときが出てきます。
設計をするのであれば設計思想があって、いろんな人が日々悩みながらこういうのどうだろうと編み出そうとするんですよね。新しい技術や情報を、自分のプロジェクトにとってプラスになるか考えて追っていかなければいけないと思います。
Unityもいろいろ変わりますよね、描画周りだとビルトインレンダーパイプラインからユニバーサルレンダーパイプライン(URP)とかにちゃんと切り替えられるかとか。DOTSとかね!まだ私はちゃんとDOTSは使えてないですけど…。
使えるタイミングを見極めて導入できる下地を整えてるか、とか。そういうのが出来るか出来ないかでは、大きな差になると思います。
ゲームの中のCPUやGPUの負荷が下がったら、別のことができるようになるでしょうしね。
S.H
近道なんてないですもんね。近道を見つけるためにいろんなことを知っておく必要がありますよね。
S.S
そうですね。エンジニア三大美徳の中に「怠惰」というものがありまして、労力を減らすためにものすごく努力をするんです。それをすることでいろんなことが出来上がってくる。いままで当たり前のようにやってたことをやらなくて済んで、その先の新しいことができるようになる。
導入したり勉強したりしていろんなものを作って、自分が楽をするって方向にもっていく。
楽になった上でさらに楽になるために技術を追求していく。そうしていくことで、ふと振り返ってみるとできることが積みあがっているんですよね。
S.H
ちなみに興味をもって触ってみたり、勉強してよかったと思うエピソードはありますか?
S.S
DirectXというグラフィックライブラリが今はあると思いますが、当時はなかったんです。当時はWinGというのがあり、何もわからないままに実際に使ってみました。RPGの戦闘シーンみたいなものをWinGで組み、見てもらったんですが、できがよくなかったのもあって、ナニコレって言われました(笑)
そのとき初めてグラフィックスライブラリを触ってみました。なるほどこういう感じなんだ、と新しい発見がありましたね。
あと、水面がキラキラしたりとか、霧がかかったときにモヤが出て遠くが見えなくなっていくとか、どうしてそのような見え方になるのかについて、実際に家から出て見に行って、あれこれと思いをめぐらせる、みたいなことをやっていたときもあります。今までに学校や職場で勉強してきたことも踏まえながら細かく観察すると、色々な自然現象がどういった感じで目に入ってくるかが、太陽だったり水面だったり目だったりカメラだったり、少しずつ関係性が見えてくるんですよね。ただそのまま素直に計算させてしまうと処理が重すぎて動かなかったりするので、可能な範囲で色々計算を省略したり、同じではないけど似たように見えるように計算方法を変えたりして、実際に画面にそれっぽく表示できるところまで実装してみたりとかですね。うまくいかないことも多いのですが、最終的には知識や経験が蓄積されていって、仕事をしていく上で役にたつタイミングがふと出てきたりするんですよね。
例えば(会議室の隅を指差しながら)壁の隅だけ暗くなる部分とか、今だとリアルタイムでちゃんと描画処理できるようになりつつあるんです。グラフィックボードがレイトレーシングに対応しているとか必要ではあるんですが、ちゃんと計算するとちゃんと出るんですよね。
ただ、すごい描画計算処理がかかったり対応できているハードがまだ少なかったりするので、Unityで普通に使ってる分には別の手法でそれっぽく描画されるようにしていて。地道に勉強をしていればそれがわかるようになる。確かにそういう風に作ればそれっぽくなるよねというのが、わかるかわからないかは結構重要です。
わかっているとハードが変わって機能が追いついてきたときに、大元のレイトレーシングでこのゲームでは使えるようになっているのでは?みたいな発想が出てきます。興味をもって仕組みを調べてみて、今できることをやりつつ将来できそうなことを見据えることができるといいのかな。
S.H
論文とかもそうですけど、描画の仕方で雲とか空とか学術的なものが上がってる印象があります。
S.S
そうですね。突き詰めると論文を漁るとか勉強の範囲が広がっていくんですよね。
たまに言うんですけど、みんなSIGGRAPH行くのはどう?みたいな。SIGGRAPHはコンピュータグラフィックスを扱う分科会ですね。コンピュータグラフィックスを研究している大学や企業がいっぱいあって、そこで研究している内容を発表する会です。そういうところに行って最新のグラフィックスの情報を読み解くことによって将来できることが何か見えてくる。可能であればそこにたどり着けるまでやった方がいいと思う。大変だけどそれをやってるグラフィックスのエンジニアは業界内に少なからずいますからね。グラフィックスを目指すのであれば目指さないといけない場所ではあると思っています。ロジックなど他の技術についても、いろんな人がいろいろ研究しているので、本当はそういうのを追っていって、使える段階で使えるといいですよね。
S.H
ゲーム特有の技術で調べると先人の知恵を感じて、面白いですね。
S.S
その辺でいうと半透明の処理も面白くて、最近だとディザをかけてぷつぷつと穴をあけるんですけど、穴をあけることによってその後ろが垣間見えて、結果的に半透明っぽく見せるようにしたりとか。
S.H
なるほど!
S.S
処理負荷軽減の仕組みとしてあって。半透明ってちゃんと計算すると重いし、表示順番等に気をつけないといけないです。でも穴を開けるだけであれば順番は気にしなくていいし。まあ、知っている人が見ると穴開けてるな、とばれますけどね。 さらに事情を知ってる人だと、高速化のために仕方ないよねって思ってもらえるかなと。確か数年前のCEDECで発表されていたと思います。そういう高速化の手法とかもあったりして思いついた人は頭いいなって思います。
S.H
いいですね、そういうの面白いです!
S.S
自分もやってみるか、までいけると強いですよ。実際に実装して様子を見るとかはしたほうがいいですよね。そうすればいざってときに導入に踏み切れると思います。メリットもデメリットも分かってる状態で導入できるのがいいですよね。なんでもやってみる!がとても大事です。
音の反射も面白いですよね。隙間を少し開けておくと音が回り込んで入ってくるとか。閉鎖された空間で音が響くとか。わかりやすいところだとギターのエフェクターとか。中身がいろいろありますけど、複雑なものは匠の技が入っていたりして難しいのですが、シンプルなものであればプログラムで再現することは可能かなと思います。
S.H
波の計算で音をどういじるかって感じですよね?
S.S
ですです。 波形をつぶしたり間を端折ったりいろいろやってね。その辺が分かっていると必要になったときに、そのエフェクターを組めますよ!みたいな感じで。そういうコードの中身だったらこういう音になるなとか想像できたりします。世の中のいろいろなものを見るときに追っていくと面白いです。
S.H
1つの音声ファイルを直観的に調整できるツールの作成話を講演で聞いたことがあります。
S.S
そういうのもありますよね。音一つ鳴らすだけでも、結構色々なことを考えないといけない。
音って光に比べて大分スピードが遅いんですよね。花火とかって光ってから音が届くまで時間差がありますよね。それをそのまま表現したほうがいいときもあれば、それだとゲームにならないってときもあります。
なのでゲームによってはあえて遅れて鳴らないように実装する、ってパターンもあります。ただそれは、音が遅れてやってくることを知った上で実装するのとしないのとでは大分異なります。ゲームの内容によっては、ほんのちょっと送らせて雰囲気だすとかの演出方法もありますので。
ノイサガの話に置き換えると、原作に準じているというのもありますが、宇宙空間では音は鳴らないのを知っていて、それでもあえて鳴らしてるって作り方をしています。そういうのを知っていて実装しているか、知らないで実装しているかで細かいところの調整で差がでてくるのかなと思います。一つ一つのことをきちんと知っていかないといけないですよね。本当にリアルを表現するなら鳴らしちゃいけないんですけど、このコンテンツがそれを求められているかを考えるとまた違いますよね。
S.H
だからこそ個人より会社、あるいはゲームを作るみんなで持ってるいろんな興味を集めて共有していくって感じですかね。
S.S
会社や勉強会、セミナーなどいろんな人が様々な情報を共有したり意見交換したりしているので、それらを収集し知見を集めてできることを増やしていくことが、最終的に重要だと考えています。
そういった多種多様な情報が飛び交う場所には積極的に行った方がいいし、なんなら自分が知ってることを、実は誰かが知りたいと思ってることもあるので、聞きに行くだけじゃなくて発表もするという視点が大事になると思います。エンジニアって自分が知ってることをみんな知ってるよねって思いがちなんですよ。意外とそうでもないんですよね。
Aimingはそういうのがやりやすい会社だと思う。いろんなことができるかなと思います。
S.H
開発者ブログも書きたかったら書けちゃいますし、レビュー求めたらみんな積極的に見てくれますしね!
S.S
そうなんですよね。みんなちゃんと見てくれるので、変なこと書いてたら指摘してくれるし、指摘を取り入れていくことによってまとまった状態で公開もできますし。まずはやってみるってところですよね。そういった機会があるのがいいところだなって思います!
S.H
今後の目標を教えてください!
S.S
より多くの人に楽しんでいただけるゲームを多く作っていきたいというのもありますが、最近は、エンジニア一人一人が前向きに楽しくゲーム開発に取り組めるような環境を整えることを目標にしています。
S.H
この記事を読んでくれた読者に一言お願いします!
S.S
エンジニアとして働くのはなんだかんだ大変なことが多いです。ときには厳しいスケジュールだったり、困難な技術的課題にぶつかったときに、精神的に厳しくなることがそれなりにあると思います。そのようなときは、タスクの調整を相談したり、他メンバーに頼ることで解決策が見つかったり、気持ちが楽になることがあります。一人で抱えすぎて倒れないように、積極的に周囲を頼ってみてください。
周りの人を頼ることでできることって本当にたくさんあります。スケジュールが厳しいのであれば無理のない範囲で調整できたり、難しくてよくわからない実装等についても、実は近くにすごく詳しい人がいたりして教えてくれます。
そういうのを忘れないように、誰かに頼ることを意識するのがいいと思います。
会社で働く、ってそこに大きな意味があります。規模が大きいゲームってみんなで力を合わせて作るんですよね。みんなで支えあいながらお互いに高めあいながら作るために、いろいろな人に頼って、頼った分頼られるようになって、みんなで協力して進めることを意識して進めるのがいいと思います。
あとは、やっぱり常に勉強ですね。技術については常に新しいことを追求していくのを忘れないでほしいです。新しい実装の相談をされたときに、以前この技術を使ったことがあるからできそうだななど、追求しているからこそ見えてくるものがあります。
常に提案できるものを増やしていく気持ちで勉強していくのが必要だと思います。
向上心が高く、しっかりとしたオンラインゲームを作りたい、作れるようになりたい人にAimingは向いていると思います。
一緒に働いてみたいと思っていただいた際は、ぜひともお声がけいただけると嬉しいです!
S.H
S.S.さんは私が新卒1年目のときから見守ってくださっている方で、今まで何度も助けられました。
そんなS.S.さんと1対1で話すせっかくの機会と思い、記事のことは気にせず色々訊いてしまいました(笑)
おかげで記事にまとめるまでの作業が大変だったと思います。申し訳ございません!
他の方のお話も気になるので、第2回、第3回と続いてくれたら嬉しいです。