gihyo.jp×ココネ 特別企画

Web3の新時代を拓くココネのエンジニアリング力を探る
クライアントエンジニアからサーバエンジニアへの挑戦

キャラクターをコーディネートするソーシャルサービスを広く展開するココネ。2022年11月からアジア市場に向けて『PKCL Twins』をリリースした。人気の『ポケコロ』シリーズにWeb3やNFTなどの新しい技術要素を採り入れたブロックチェーンサービス版と言える。サービスリリースにサーバサイドで携わった岡田大介氏に、実装した新技術の詳細や環境構築の経緯などをお伺いした。

Web3やNFT要素を取り入れた新サービス『PKCL Twins』

――自己紹介をお願いします。

ココネ株式会社PKCL Twinsプロジェクト岡田大介です。前職では業務用複合機のソフトウェアエンジニアとして組み込み系の開発をしていました。ココネには7年前に入社しました。当初はクライアントエンジニアとしてアプリケーション開発をしていましたが、2022年から『PKCL Twins』の開発に加わり、自分では新しい領域となるサーバエンジニアに挑戦しています。

――『PKCL Twins』とはどんなアプリケーションですか?

『ポケコロ』シリーズのブロックチェーンサービス版とも言えます。⁠ポケコロ』とは、2011年にココネがリリースした人気のアプリケーション(アバターサービス)で、かわいいキャラクターの着せ替えや、部屋のコーディネートなどでコミュニケーションを楽しむものです。このシリーズの『ポケコロツイン』をベースに、グローバル展開、Web3、NFTといった新たな挑戦をしたのが『PKCL Twins』です。ココネ本社では初のNFTを採り入れたサービスとなります。

『PKCL Twins』は2022年11月29日からグローバルでサービスを開始しました。ちなみに「PKCL」「ポケコロ(Pokecolo⁠⁠」から来ており、サービスのテーマとなる「Pop・Kawaii・Cool・Lovely」の意味もあります。

『PKCL Twins』では『ポケコロツイン』同様にコーディネートを楽しむだけでなく、コーディネートしたセットをNFT化できるのが特徴です。キャラクター育成やアイテム収集ができるサービスはほかにもありますが、サービスが終了してしまうとキャラクターやアイテムにアクセスできなくなることがあります。しかしNFT化することで永久に残すことが可能になるだけでなく、所有者や資産価値が明確となり、ココネグループが運営するNFTマーケットプレイス『Jellyme』で販売することも可能となります。デジタルアセットの最先端を行くサービスです。

写真 岡田大介氏
写真 岡田大介氏

グローバル展開、ブロックチェーンを想定したインフラ構築

――現在はサーバエンジニアとのことですが、⁠PKCL Twins』ではどのようなことをしましたか?

グローバル展開に向けた多言語化のしくみ(現状では英語のみだが、将来は増える見込み)やインフラ周辺の環境構築や整備などです。ココネのこれまでのアバターサービスのお客様は1億3000万人に上り、⁠PKCL Twins』では東南アジア諸国で展開するため、国を超えて多くのお客様にご利用いただくことを想定して環境を整えています。たとえばコンテナをAWS ECSで使うとか、お客様が増えてもAWS Global Acceleratorで柔軟にスケールしやすくするしくみを導入しています。

――『PKCL Twins』が使うブロックチェーンについて教えてください。

『PKCL Twins』ではココネのグループ企業が開発した、メタバース領域に特化したブロックチェーン『MOOI Network(MOOI⁠⁠』を使います。2022年6月末に正式リリースされたばかりのものです。

『MOOI』のトランザクションはデジタルワールドでの取引に適した速度を持っているものの、普段の遊び方においては遅延を発生させないために、お客様が普段の着せ替えなどの機能を使うときには直接アプリケーションのサーバにアクセスするしくみを構築しています。これにより、ブロックチェーンに起こりがちな遅延はありません。ブロックチェーンを使うのはアイテムをNFT化するときなどです。

――ココネのサーバ開発における取り組みはありますか?

Go言語(golang)でサーバを構築していることでしょうか。ココネでは2019年ごろより『ポケコロツイン』のサーバ開発からGo言語を採用しています。それまでのココネのサーバ開発はJava言語がメインでしたが、現在はGo言語とKotlinを用いてサーバ開発を行っております。

Java言語メインのサーバエンジニアも新たにGo言語を学ぶことになったのですが、エンジニア同士で共有を進める風土があるので、ココネのサーバエンジニア全体の知識レベルが上がっていますね。

一般的にGo言語はJavaほど自由ではないと言いますか、決まった書き方をする必要があると言われています。裏を返せばシンプルに記述できるということです。比較的早く習得でき、慣れれば扱いやすい言語だと思います。

Go言語なら基本的な機能だけでWebサーバを構築することができます。自分にとってもGo言語は使い慣れた言語でしたし、短いコードで済むので、⁠Webサーバ構築では)フレームワークは使いませんでした。それにGo言語だと並列処理が可能で実行が速いなどサーバの性能を出しやすいというメリットもあります。

図1 『PKCL Twins』のシステム構成
図1

ジョブチェンジでレベル1からの再出発

――クライアントエンジニアだったのにサーバエンジニアに志願したとのことですが、ジョブチェンジをしてみてどうですか?

最初は多少の不安もありました。入社時から「⁠⁠サーバ側も)やってみたい」という気持ちはあったものの、長らくクライアント側の開発をしていたので抵抗もありました。今回『PKCL Twins』に移るのをきっかけにジョブチェンジに挑戦することにしました。

とはいえ、これまでレベルを高めてきたのに、またレベル1から再出発するような心境です。自分よりずっと若手のエンジニアに間違いを指摘されてへこんだこともあります(笑⁠⁠。でもココネでは、勉強会や定例のエンジニア全体ミーティング、Slackを通じて情報交換をしているので、誰が何に詳しいかわかりやすく、技術のキャッチアップがしやすいです。

――ココネのどんなところが気に入っていますか?

人間関係が比較的フラットで、上司や部下でも意見を言いやすいところです。また『PKCL Twins』の開発でもそうなのですが、新しい技術を積極的に採り入れているので、エンジニアとして最先端に関わることができます。自分が望めばどんどん新しいことに挑戦できる環境です。チャレンジ精神がある人には向いていると思います。

――今後はどういった方向でキャリアを伸ばしていきたいですか?

前職では組み込みの制御系でNetBSD、C言語、Javaを使い、ココネに来てからは6年ほどクライアントサイドのエンジニアでCocos2d-x、Unity、React Native、C++、C#、TypeScript、そして2022年からはサーバサイドでGo言語、MongoDB、Redisを習得してきました。技術スタックは結構幅広く持てるようになったと自負していますが、まだまだスキルアップしていきたいですね。ただ将来クライアント側とサーバ側のどちらに進むとしても、お客様寄りの目線でサービスをよくしていければと考えています。

おすすめ記事

記事・ニュース一覧