DELiGHTWORKS

DELiGHTWORKS株式会社の開発に関する情報を発信していきます。

様変わりするゲーム業界の中で生き残るためにエンジニアができること

ディライトワークスの磯波です。

最近は、色々なエンジニアと話をする機会があり、特に若いエンジニアと話をするとき、今の開発者を取り巻く環境というのは本当に様変わりしたんだな、と感じることがあります。

ムーアの法則に立ち向かえ?

例えば私の開発デビュー作はゲームボーイカラーでした。

CPUは8MHz、メモリは32KB、カセットの容量は最大8MBです。

皆さんはiPhone6sがどんなスペックかご存じですか?

CPUはデュアルコアの1.85GHz、メモリは2GB、ストレージは最大128GBです。

CPUは231倍、

メモリは62,500倍、

ストレージは16,000倍です。

大昔は1バイトを必死で節約していたのが夢のようですね。

こんなに環境が違うのであれば技術も随分と違うものだと感じるでしょう。

それはその通りで、遙か昔に使えた技術も、今では使えないことが沢山あります。

いつまでも通用するスキルを身につけること

ただ、そういった中で今でも生き続ける技術があります。

それは、

・コンピュータサイエンスの知識

と、

・積み重ねて来たゲームの経験と知識

です。

私が思うに、良いゲーム=良いコードというわけではありません

どんな綺麗に書かれたコードもそのゲームの面白さを保証してくれはしないのです。

そして、私たちそれでも次こそはもっとうまく作ろう、全体を考えて設計しようと思います。

ですが、ゲーム開発は多くの場合、始まったときに完成形が見えておらずに「面白いゲーム」を目指して四苦八苦することになります。

次はきっと最高の開発をしてやろうと思う事

では、私たち開発者はどこに経験や知識を用いるのでしょうか?

良いコードとは、何かを変更したときにそれが即座に全体に馴染むコードだと考えています。

言葉を変えて言うと、技術とは「おもしろさ」をいかにコスト少なくこねくり回せるか、ということです。

ゲームには変更がつきものなのです。

誰だって「無茶苦茶面白いことを考えたんだ!」といって飛び込んできたゲームデザイナーに対して「それできないよ、だって想定になかったし」とは答えたくないですよね。

私はゲームデザイナーの思いつきを面白さに変えるのが良い技術なんだと思います。

Unityのようなゲームエンジンが全盛期であっても、ゲームエンジンがゲームを考えてつくってくれる訳ではありません。

Unityに使われずUnityを使いこなすにはしっかりとした経験が必要なのです。

ゲームエンジンはゲームを設計してくれはしないですからね。

より多くのコードを書き、より多くの経験を重ねることで、より良いゲームの設計を作れるようになります。

 

ディライトワークスでは、技術に使われるのではなく技術を使いこなすエンジニアを募集しています。

「ゲームエンジン・アーキテクチャ 第2版」とても良い本なのでもし機会があったら読んでみてくださいね。

 

ゲームエンジン・アーキテクチャ 第2版

ゲームエンジン・アーキテクチャ 第2版

 

 

ディライトワークスを支える技術

はじめに

ディライトワークスのエンジニアの磯波です。

この記事では、ディライトワークスの中で使われているエンジニアリングについて紹介させていただきたいと思います。

技術

ディライトワークスでは、クライアントの技術としてUnity(C#)、

サーバーの技術として.NET Framework(C#)を利用しています。

なぜC#なのかということには理由があります。

その最も大きい理由として「最新鋭の言語」であるということです。

C#という言語の出自には非常に面白い経緯があり、主要な開発陣は元々はBorlandという会社のDelphiという言語を開発していた人たちです。

構文やフレームワーク構成に関しても、Javaに近いように見えるかもしれませんが、実際には1995年に生まれたDelphiという言語に準じています。

かといって、決して古くさい言語ではありません。

なぜならC#として作り直されたときに洗練され、かつ進化しているからです。

故に古い歴史をもち、かつ今でも最新鋭の機能を取り込み続けている言語なのです。

なぜC#なのか?

上記の通りC#は進化し続ける言語です。

今年も6.0がリリース(2015年7月20日)され、様々な機能が導入されました。

いまゲーム開発では非常に高い水準の技術が求められています。

その中で、言語が進化し続けるということは非常に優れた強みと言えます。

どんどんプログラマは楽になっていく訳ですから。

そして、Unity上でも動作し、ASP.NETでサーバーでも動作する、また、WPFによるツール開発にだって使えます。

あらゆる状況で一流の仕事ができる言語というのはC#をおいて他にはありません。

私たちはC#に拘ることで最高のものを最速のスピードで生み出すことを心がけています。

Visual Studio + ReSharper

かつてVisual StudioはVisualではない、なんてことを言われた時代もありましたが、今は違います。

非常に強力なIntelliSenseを持ち、使い勝手の良い最強のエディタであると言えます。

また、ディライトワークスではReSharperを用いることで、更に優れたIDEとなっています。

それに加え、これらを動作させるPCにも拘りを持ち、27インチディスプレイを複数用意し、最新のWindowsとMacを取りそろえています。

C#という強力な言語に加え、Visual Studio + ReSharperという強力な環境、そして強力なPC。

これらの環境が面白いゲームを生み出す手助けになると信じています。

f:id:delightworks:20151016154101j:plain

DELiGHTWORKS Framework

ディライトワークスでは、ガリガリにフルスタックのフレームワークを構築し開発している、という訳ではありません。

個人の自主性を尊重し、独りよがりのコードでなく使いやすいものであればそれをどんどん導入することを文化としています。

とはいえ、カオスになることを防ぐため定期的なレビューとリファクタリングを行うようにしています。

開発環境を取り巻く技術

ソースコードのバージョン管理にはGitを利用しており、

データベースはMySQL + Redisを使用し、負荷計測にはNew Relicを用いています。

また、KPIの測定にはFluentdを用いたログ収集に加えBigQueryとModeAnalyticsという環境を使っています。

これに止まらず、ゲームを遊んで下さるユーザーさんに向けてより快適なものを提供できるよう、日々環境を整えていきます。

f:id:delightworks:20151016160523j:plain

開発者を募集しています

ディライトワークスでは今の自分に満足しておらず、新しいことに挑戦してみたい開発者を募集しています。

特に今やっていることがルーチンワークになってしまい、新しい事にチャレンジできていないという方を歓迎します。

いまのディライトワークスは決して完成された状態ではなく、皆で一緒に環境を作り上げていっている状態です。

目の前の仕事をやるだけではなく、やらなければいけないことを見つけ、状況にあわせて自分の為すべきことを為せる人たち、そんな人たちと一緒に仕事をしたいと考えています。

f:id:delightworks:20151016160518j:plain