インデントがスペース3つのプログラマ「桜ねね」に関する調査報告


NEW GAME!!という組織に所属する「桜 ねね」という人物は、ソースコードのインデントにスペースを3つ使うらしい。

しかも日本語のWindowsをUSキーボードのMacで運用し、ゲームエンジンをフルスクラッチで自炊してしまう凄腕のC++使いである。(名前空間と範囲ベースfor文、const、参照、スマートポインタを使いこなせるほどの知識、float型の必要性が理解できるほどの知見、フルスクラッチの必然性に辿り着けるほどの経験と判断力。エンジニアとしても相当な手練れであることは確かだ)

また、この人物の凄い所は、等幅フォントではなくプロポーショナルフォントでプログラムを書いている所にある。おそらくGoogleとAdobeが共同開発した特殊な日本語フォントを使っている。「源ノ角ゴシック」または「Noto Sans CJK JP」あたりのフォントを使っているはずだ。この「ねねっち」というハッカーは相当なこだわりを持った人物のようである。

スポンサーリンク

インデントのサイズについて

当人のエディタ画面では、確かに3スペース相当のインデントが使われている。インデントの幅を等幅フォントの比率と照合すると、たしかに3文字幅のインデントであることがわかる。

DestructibleActor.cppファイル内、ReceiveDamageメンバ関数の比較例。

ただ、プロポーショナルフォントの空白幅は平均的なグリフの半分以下の文字幅になることが多いため、実際には6スペース以上の空白文字が使われている可能性が高い。手元の「源ノ角ゴシック Regular」で確認すると、これがちょうど8スペースで一致することがわかった。

もし仮に、源ノ角ゴシックで8スペース分の文字幅が使われているとなれば、Visual Studio側のデフォルトの設定が弄られていることになる。おそらく、明確な意思の元で、インデント幅が3スペース相当になるよう調整されていた可能性がある。または字下げを二重に行っている可能性も否定できない。

もっとも、源ノ角ゴシック以外のプロポーショナルフォントではまた異なる結果となるため、いずれともにわかに断言のできるものではないのだが。

いずれにしろ、この娘は3スペース相当のインデント幅を好んで愛用し、6スペース以上のインデント・サイズないしタブ・サイズを用いている可能性が極めて高い。とにかく最高にロックな人物だということだけは確かである。

Nene the Destructible Actor; // NeneEngine

スポンサーリンク

補足

開発環境に関する調査

この者はUSキーボード仕様のMacBook Airを用いているようだ。トラックパッドのデザインから、Mid 2009以前の旧モデルが用いられていることもわかる。

プログラミング環境にVisual StudioベースのDK Studioが用いられていることから、OSにはWindowsが使われていることがわかる。

OSのバージョンについては、デスクトップのテーマにベーシック テーマの配色が用いられている点や、タイトル文字の表示が左揃えになっている点、タイトルバーとメニューバーの比率等を考慮すると、Windows 7以前のバージョンが用いられている可能性が高いと判断できる。

なお、タイトルバーのグラデーションが確認できない点や、ウインドウの閉じるボタンがWindows 8風のデザインになっている事実も加味すると、Microsoft非公式のVisual Styleが適用されている可能性も疑われる。

なお、自作ゲームのテスト環境にはWindows 10が別に用いられているようだ。

この者は開発環境とテスト環境で異なるバージョンのOSを使い分けている可能性が高い。非常に意識の高いエンジニアであることがうかがえる。

両環境の切り替えの速さから、各OSはマルチブートではなく、仮想マシンで運用されている可能性が高い。

内蔵カメラの存在が確認できないことから、フロントカメラの前面にはMacBook本体と同色のマスキングテープが貼られていると推測できる。美意識はもとより、セキュリティリテラシーに対しても相当高い意識を持ち合わせているようである。

ソフトタブに関する調査

この者はインデントに空白文字、つまりソフトタブを用いているようだ。当人のエディタ画面のカーソル位置は、およそ「Line: 40, Column: 2」の行と列に位置していることがわかる。ハードタブの場合ではカーソルがこのような不自然な位置に描画されることはないはずであるから、この者がスペースでインデントを行っている可能性は極めて高い。

カーソル位置の判定画像。カーソルの開始位置が、字下げ開始位置から1、2文字分ほどずれて表示されている。

ただし「Highlight Current Line」機能との整合性を考慮した場合、カーソル位置は「Line: 40, Column: 1」相当ということになるが、その場合は空白とタブの混在、または可変長による空白インデントを利用している可能性が新たに疑われることになる。もっともこの者であれば、それもやりかねないであろう。彼女は付箋を本のページの下側に貼り付けるという常識離れした行動を時に見せてくれる。合理性の追求、型破りな発想、常識にとらわれない柔軟な思考を持ち合わせたニュータイプのエンジニアだとも言えそうだ。彼女は我々とは明らかに異なる精神世界でコードを書いているように見受けられる。

ソースコードに関する調査

//
// DestructibleActor.cpp
// Sakura Nene
//
namespace NeneGame
{
   void DestructibleActor::Init()
   {
      NeneActor::Init();
      m_currentHealth = maxHealth;
   }
   
   // 攻撃を食らった時のダメージ計算
   void DestructibleActor::ReceiveDamage(float sourceDamage)
   {
      // デバフを適用
      auto resolvedDamage = sourceDamage;
      for (const auto& debuf : m_debufs)
      {
         resolvedDamage = debuf->ApplyToDamage(resolvedDamage);
      }
      m_currentHealth -= resolvedDamage;
      if (m_currentHealth <= 0.f)
      {
         m_currentHealth = 0.f;
         DestroyMe();
      }
   }
   
   // 破壊せよ!
   void DestructibleActor::DestroyMe()
   {
      // 死亡モーションがあれば再生
      // TODO: 死亡モーションを作る!
      if (m_pDeathMotion)
      {
         PlayMotion(m_pDeathMotion);
      }
   }
}

autoキーワードの利用から分かるように、当人は「C++」という極めて難易度の高いプログラミング言語でゲーム開発を行っているようだ。また「範囲ベースfor文(range-based for loop)」が使われていることから、C++11以降に対応した比較的新しい開発環境が使われていることもわかる。

const auto&の記述からは、「定数」「型推論」「参照」機能の利用が確認できる。これらは中級者でも扱いの難しい機能や概念であり、この者のレベルは初学者のそれを優に超えていることがわかる。

またdebuf->ApplyToDamageという記述から「ポインタ」を使いこなしていることも見て取れる。なおdebufをポインタではなくあえて参照で受け取っていることから、debufの型には「スマートポインタ」が使われている可能性が高い。現代的な作法を的確に用いることのできる優れたC++erであることがうかがえる。

64bitのマシンでdouble型ではなく、あえてfloat型を活用している所を見ると、マシン語レベルの処理にも相当気を使っていることがわかる(一般的な環境ではdouble型のほうが高速になる事が多い。処理効率とメモリ効率のバランスを意識した結果か、はたまたGPU側の単精度浮動小数点数演算性能を引き出す意図も考えられる)0.fを明示的に記述していることから、float型は意図的に用いられていることがわかる。またイニシャライザを独自定義していることから、この者はコンストラクタの不都合を熟知し、また厳格かつ移植性の高いクラス設計が行える優れたプログラマであることも窺える。

癖のないコードや、m_によるメンバ変数の明示、的確な命名、TODO:等の特殊タグを使いこなしている所を見ると、開発スキルに関しても相当なものを有していることがわかる。

メンバ関数(DestructibleActor::ReceiveDamage)の定義が字下げの後に行われていることから、クラスの宣言は何かしらの名前空間内で行われている可能性が高い。名前空間の適切な利用と、モジュール化の重要性を心得た、優秀なエンジニアであることもわかる。

まだ中学生だというのに、なかなか頼もしい娘である。

桜ねねに関する所感

以上のことから、この者の能力は一般的な初学者のそれをはるかに超えたものであると断言できる。これほどのスキルを半年程度の期間で身に付けたとなれば、この者の潜在的な能力は計り知れないほど大きく、また限りない可能性に満ちている、そう言わざるを得ないだろう。この者にはもはや驚きを超えて狂気すら覚える。この桜ねねという人物は相当な志を持って今日を生きているのだろうか。一体なにが彼女をこれほどまでにさせるのか、もはや私には想像も及ばない。

Nene the Sacred Actor; // NeneQuest

広告

関連するオススメの記事