こんにちは。クライアントサイド エンジニアリーダーの鈴木です。
2017年8月29日~31日に開催されたCEDEC2017にて、30日(木)に「ユーザーを飽きさせない高頻度の更新を可能にする開発運用ノウハウ〜ハイスピードな開発、リリースを実現するために〜」というタイトルで講演をさせていただきました。
講演にご参加いただいた皆さまには、改めて御礼申し上げます。
本講演では、ハイスピードで開発からリリースまでのサイクルを実現するための手法をプロジェクトの実例を交えながら紹介させていただきました。
まず、当日の講演資料が下記となります。
こちらでは講演内では伝えきれなかったお話や、当日会場でご質問いただいた内容に関して説明させていただきます。
データ検証の実用例について
今回の講演では、DSLによる恩恵が最も大きい部分である「データ間参照の制約を簡単な記述で実現することができる」という点に比重を置いて説明させていただきましたが、実際には単純な設定値の検証等においても活用しています。
例えば、クエストの報酬に関してタイトル内でルールが定められているケースがあるとします。
この様な場合、このデータに関する制約もDSLで設定し検証を行っています。
まずはDSLに記載するためのルールを明確に定めます。
この例では、下記の様なルールになります。
- 通常クエストでは1つの章は4つのクエストで構成されている
- 最後のクエストをクリア(章をクリア)すると特定のアイテムがもらえる
- このルールは通常クエストのどの章においても共通のルール
それでは、この例に沿ってDSLを記載してみましょう。
DSLは上記の形となります。
これも一例でしかありませんが、この様にDSLを用いて主に「設定値」、「バランス」、「データ間参照」という観点で各種データに制約を定め、検証を行っております。
このDSLによる検証システムはリリースに関する不具合ゼロを目的として開発、導入したのですが、結果としては本番環境での不具合だけではなく、開発中の「データの不整合でエラーが発生し、開発が滞る」というケースへの対策にもなっており、開発効率としても大きな成果がありました。
検証システム以外での運用改善
今回は運用改善の為のメインテーマとしてテスト強化に貢献したDSLの検証システムを紹介させていただきましたが、これ以外にも高頻度リリースを実現する為の改善を重ねてきました。
それらの改善項目についても、簡単にはなりますが紹介させていただきます。
DSL以外の上記の項目に関しても改善を重ね、高頻度更新でも問題なく実現できるような環境と体制を整備しました。
講演の冒頭でも触れさせていただきましたが、運用タイトルにおいて、そのタイトルの面白さは運用における更新内容とスピード感にも非常に左右されるものと思います。
その為、Cygamesでは「最高のコンテンツを作る」という目標のもと、開発時だけではなく開発しリリース後の運用も非常に力を入れて取り組んでいます。
最後に今回の講演にご参加いただいた皆さま、また本記事をご覧になられた皆さま、誠にありがとうございました。今回のCEDEC 2017における講演、また本記事が運用で課題を抱えている方の力となれば幸いです。
Cygamesでは、共に最高のコンテンツを目指すエンジニアの仲間を募集しています。今回の講演や記事をご覧いただき興味をお持ちいただけた方は、ぜひ下記サイトよりご連絡下さい。一緒に最高のコンテンツを作りましょう!