※文中の画像はStudio MGCMより提供されている『マジカミ』のものです。
はじめまして!
9/5〜9/27の約1か月間、Studio MGCMのサーバサイドチームでインターンをしていた島田です。
本インターンでは、DMM GAMESで絶賛配信中のPCブラウザゲーム「マジカミ」の開発・運用を行っているプロジェクトに参加させていただきました。
やったこと
「自分の作った機能をバグなし&納期を守って本番アプリにリリースする」という目標のもと
- 管理画面の機能改善、新規追加
- ゲーム内バナーの改善
を行いました。
使用した技術
マジカミのサーバサイドアプリケーションはPHP/CodeIgniterを使ったMVC Architectureで実装されていて、データはMySQLに保存しています。
インターンでは主にこれらの技術を使用しました。
管理画面の機能改善、新規追加
いきなりアプリ側の機能開発をするのは危険なので、まずは管理画面のタスクを担当しました。
やった項目は以下の通りです。
- ゲーム内アイテムのログ検索機能の改善
- デバッグ画面の表示内容改善
- クエストのログ検索機能の新規追加
- チーム検索機能の新規追加
- チームチャット閲覧機能の新規追加
最初の2つは既存のコードに2、3行追加すればできるようなもので、これらのタスクではチームでの開発フローに慣れることを意識しました。
残りの3つは日々アップデートされるアプリ側の機能に付随して必要となる管理画面側の機能を新規追加するというものでした。
これらのタスクではCSチーム側の要望に沿って仕様を決めて実装する必要があり、プロジェクト内で連携して開発することが求められました。
似たような実装をしている部分を参考にして、DBのselect処理を書いたり、結果を表示するviewを書いたりしました。
なかでもチームチャット閲覧機能の新規追加は外部のAPIを経由しないと取得できないデータがあって、その部分の実装にかなりの工数を割いてしまいました。
最終的にはトレーナーさんにバトンタッチして完成していただきました。
ゲーム内バナーの改善
いよいよゲーム本体に実装する機能を触ることになり、インターンの最終目標としてこのタスクに挑戦しました。
ゲーム内バナーはユーザが必ず目にする部分でミッションやガチャなどユーザの状態によってゲーム内に誘導する重要な動線を担っています。
そのため、今回のインターンで掲げた目標を達成するのに相応しいタスクでした。
この機能にはユーザの状態によって出し分けをしている設定部分がハードコーディングされているため、メンテナンス性が悪いという問題がありました。
そこで、CSVで設定管理できるように機能改善しました。
また、今まで1日1回ポップアップができていなかった部分もできるようにしました。
これには、類似の実装に習ってDBに専用のレコードを追加することで対応しました。
学び
ゲーム開発の現場を知ることができた
ゲーム開発では他の開発案件と比較してよりユーザの反応がダイレクトに伝わりやすい、ということを聞いていました。
これは本当にその通りで、かつ自分が思っていた以上に現場ではユーザの声を大事にしていることを知ることができました。
エンジニア以外の方との密な連携の重要性
これはあたりまえのことではあるのですが、業務を進める上でディレクター、プランナー、CS、デバッガーなどエンジニア以外の方々とも関わる機会が多く、情報共有、協力がとても重要でした。
情報共有はチャットと直接の二段構えにすることでお互いの見落としを防げました。
大規模なプロジェクトのコードリーディング
大規模なプロジェクトのコードを読むというのは就業型のインターンでないとなかなか経験できません。
実際にコードを読むことで設計の理由や実装の詳細を確認できました。
問題を素早く解決するためのデバッグ手法
問題が生じたときにその原因を推測してその箇所を絞り込んでいく、ということを何度も経験しました。
その中で、例外の投げ方や変数の中身のデバッグ方法を学びました。
今までよりも素早く問題解決できるようになりました。
将来的な自分の価値
将来的な自分の価値について改めて考えることができました。
よかったことでも上げているのですが、積極的な発言によるチーム全体へのコミットがやっていて楽しい&得意だということに気づけたので、エンジニアとしての技術力以外にもこの部分の価値を推していきたいと考えることができました。
よかったこと
目標達成
「自分の作った機能をバグなし&納期を守って本番アプリにリリースする」を達成できてよかったです。
特にゲーム内バナーの改善は全ユーザが目にする部分なので感動が大きいです。
ゲームを遊ぶ1人のユーザとして開発に関われた
私はインターンに来てはじめてマジカミを知ったのですが、就業後に遊んだり、就業中にオート周回したりするほどハマりました。
自分の遊んでいる、好きなコンテンツの開発に関われるという体験ほど嬉しいことはありませんでした。
SlackやMTGで積極的に発言できた
気なることや思ったこと、改善案、企画案など様々な面で積極的に発言できてよかったです。
CA Tech JOB全体について
シャッフルランチ/インターン生飲み会
インターン期間中、人事さんの企画のもとCA社員、他のインターン、内定者バイトの方々とランチで交流する機会がありました。
また、インターン生同士の飲み会もありました。
配属先の以外の話を聞くことができて自分で直接見れない部分も情報共有することができました。
シェアハウス
遠方からの参加だったので会社のシェアハウスに滞在させていただきました。
会社まで歩いて5分くらいだったのでとても便利でした。
今月末で使えなくなってしまうらしく、最後のシェアハウス勢でした。
社内勉強会
- MIR-AIラボ(ゲームとAIに関する勉強会)
- CATS MEETUP
- Tech Lounge
などの社内勉強会に参加しました。
こういったイベントの開催情報が定期的にアナウンスされていて配属部署に関係なく誰でも参加できるようになっていてよかったです。
おわりに
トレーナーさん、サーバサイドチームのみなさん、社員のみなさん、マジカミキャラのみんなに感謝いたします。学びしかない有意義な1か月でした!