C++でフルスクラッチ

ドワンゴ開発者が語る「ニコニコ動画」の中身

2007/11/01

 ニワンゴが運営する「ニコニコ動画」の評判がうなぎのぼりだ。動画の再生に合わせてコメントを表示するスタイルが受けて、アクセスが急上昇。日本発のサービスとして世界での活躍を期待する声も増えてきた。都内で11月1日に開催されたアドビ システムズのイベント「Adobe MAX Japan 2007」で講演したニコニコ動画の開発元、ドワンゴの研究開発本部 技術支援セクションの戀塚(こいずか)昭彦氏は「それなりに工夫しています」と話す。

niconico01.jpg ドワンゴの研究開発本部 技術支援セクションの戀塚昭彦氏

 「ニコニコ動画のメインコンテンツはコメント」と戀塚氏は語る。動画に興味を持ったユーザーがコメントを登録し、そのコメントに刺激を受けた別のユーザーがまたコメントを投稿という形で、遊び心に満ちたコンテンツが出来上がっていく。戀塚氏は「各ユーザーができる形で少しずつ参加し、その結果を全員が享受できる」と説明した。

 戀塚氏はコメントを管理するメッセージングサーバやWebインターフェイスの開発に当初から関わり、現在も技術支援として開発にタッチする。開発で意識したのは「コメント投稿の敷居を低くして、思ったことを衝動的に投稿できるようにすること」だ。動画下にあるコメント欄に入力すれば、とりあえずはコメントが流れるよう、誰でも使えるユーザーインターフェイス(UI)をFlashベースのプレイヤーに採用。2006年12月の(仮)公開以降、デザイナーも参加し、コメントを投稿しやすいUIを目指してきた。

 動画内のコメント表示にも細かな配慮を行って、ユーザーの興味をかき立てるようにしている。ActionScript 2で開発したプレイヤーは、動画内でコメントが重ならないように、コメントの入場から退場までを1秒単位で制御。動画いっぱいにコメントがあふれる「弾幕モード」では「積極的にコメントを重ねていく」(戀塚氏)ようにするなどユーザーの興味を先読みして、機能を実装した。

パフォーマンス重視のサーバ設計

 一方、システム設計はシンプル。プレイヤーはActionScript 2で開発。メインのアクションを外部に持ち、インクルードで読み込む形にした。ニコニコ動画のキモであるコメントは「スレッド」を呼ぶ単位で管理。このスレッドと各動画を関連付ける。サーバとプレイヤーの通信は「XMLsocket」と「HTTP/1.1」を使い、非同期通信を実現した。別ユーザーが投稿したコメントが瞬時に動画に反映されるリアルタイム性は必要ないとして、「長い間隔のポーリングで十分」と判断した。「いわゆるCometではありません」という。今後はActionScript 3への移行も検討する。

 コメントを管理するメッセージングサーバはC++プログラムをフルスクラッチで独自開発し、Linuxのデーモンとして実装。メッセージングサーバはCSV形式で出力されるスレッドを管理する機能に特化し、カタログ生成などの機能はデータベースに任せている。外部との通信を少なくすることでボトルネックが発生しないようにしている。

 当初は戀塚氏ともう1人で開発を始めたニコニコ動画だが、成長に合わせてエンジニアを増員。現在は、各コンポーネントごとに開発を分担して行えるようになった。メッセージングサーバとプレイヤーの開発を担当しているのは、ドワンゴが巨大掲示板「2ちゃんねる」を通じて採用した2人のエンジニアという(参考記事)。

関連リンク

(@IT 垣内郁栄)

情報をお寄せください:

アイティメディアの提供サービス

キャリアアップ


- PR -
ソリューションFLASH

「ITmedia マーケティング」新着記事

婚活・恋活マッチングアプリ 3億7000万人の巨大市場の行方
世界のマッチングアプリ(デートアプリ)市場のすう勢と、ウィズコロナの展望。

データのサイロ化を乗り越えLTVを最大化する変数を発見 ネット宅配クリーニング「Lenet」がやったこと
事業の多角化などに伴うデータのサイロ化を防ぐためには統合的なデータ基盤が不可欠だ。...

2021年のゴールデンウイークの予定 「自宅で過ごす」が依然として主流だが外出予定は増加――インテージ調査
外出意向は高まりつつも、新型コロナへの不安が消えたわけではないようです。