こんにちは。プログラマーの平川です。
時間が経つのは早いもので、私が入社してからもう数ヶ月が経とうとしています。
どの業種、どの会社でも言えることだと思うのですが、新入社員の一年は、それまでの人生で経験したことのないことが怒涛のように押し寄せてくるので、とても濃密で、あっという間に過ぎてしまうと思います。
就職を控えている方々は覚悟していてください!
私はプログラマーとしてプラチナゲームズで働いていますが、現在メインの仕事は
「 ネットワーク 」 です。
私にとってのオンラインゲームの始まりは『スペシャルフォース』や『メイプルストーリー』で、プレイするのと同時にオンラインゲームにどハマりしたことを覚えています。一番ピークだった頃は朝四時までゲーム → 少し寝て学校に行く生活を繰り返していました。当時ほどではないですが、今も仕事が終わった後は、『リーグ・オブ・レジェンド』などのオンラインゲームを楽しんでいます。
しかし、学生の頃も入社してからも、まさか自分がゲームのネットワークを担当することになるとは夢にも思っていませんでした。今回のフレッシュマンブログでは、私がネットワークやゲームのシステム部分を作る上で感じたこと、身についたことを綴っていこうと思います。実際のゲームに出てくる内容はお話し出来ないので ( したいけど ) 、フワッとした話にはなりますが、お付き合いただけると幸いです。
ネットワーク部分は、どんなにいい物を作ってもゲームが面白くなるわけではありません。
しかし、少しでも抜けがあるとゲームの面白さを阻害する原因になりえます。
・中々、マッチングしない
・オンラインユーザとコミュニケーションが取りづらい
・ダウンロードを中断出来ない、バックグラウンドで行えない
・オンラインでうまく取得できないトロフィーがある
等々
最近のゲーム( 特にコンシューマ・スマホ )はオンラインの要素が何かしら入っていることが多いので、ゲームが好きな方々は上記のようなことを感じたことがあるのではないでしょうか?
私もオンラインゲームが好きだったので、上記のような経験は幾度と無くあります。
新人プログラマーでもこのように感じるのに、世の中にネットワーク周りでストレスのたまるゲームがあるのは何故なのでしょう?
それは、ゲーム中のネットワーク部分が制限の多い箇所だからです。
世のネットワークプログラマーは限られた制限の中で、ゲームを実現させ、ユーザにストレス・違和感を与えないために最大限試行錯誤しています。
私もネットワーク仕様を設計するときは、そうとう頭を捻りましたし、常にリビングのテレビでユーザがプレイしている様子を思い浮かべながら制作をしています。
「もし、ユーザがこんな操作をしたら」
「もし、ユーザのネットワーク環境が不安定であったら」
「もし、悪意あるユーザがいたら」
などなど、想定する状況や項目は尽きることがありません。
常に様々なケースを想像しながらの制作ということで、難しい印象を感じる方もいらっしゃるかと思います。
その通りです難しいです。現に私は想定に想定を重ね頭をひねりすぎているせいで、大抵は般若のような顔をしています………..が! 実はとても楽しいですし充実しています。
なぜ、楽しいのか?
「こいつ、ただのマゾなんじゃね?」と感じた方、いらっしゃるかと思いますが違います。
ネットワークのシステムは、オンラインゲーム内のほとんどの要素の前提にあるものです。
どんなに個性豊かなキャラクターがいても、システムの出来が悪くキャラクターが瞬間移動するようではキャラクターの挙動を楽しむことが出来ないでしょうし、ユーザをあっと言わせるクエストがあっても、オンラインユーザ間のクエストの同期がとれていないと、友達とクエストの達成感を共有することは出来ません。
難しい箇所というのはプログラマーの腕の見せどころであるとも言えます。
自分の腕と想像力にゲームの実現がかかっていて、その先にユーザが体験する面白さ・唯一無二の未来があると思うと私はワクワクしてきます。
冒頭に書いた通り、入社してから早数ヶ月。
正直、ゲーム会社で働くことがこんなに楽しいとは思っていませんでした。
この幸せを噛み締めつつ、今後もプログラマーの腕と頭を鍛えていこうと思います。
PS. この写真は、会社の近くにある最近通っているボルダリングジムで壁にこびりついている私です。
スカイビル周辺にはボルダリングジムが3箇所もあり、運動不足の解消には持ってこいです!
https://www.platinumgames.co.jp/jobs/new-recruits/