Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)

Akatsuki Hackers Labは株式会社アカツキが運営しています。

内定者インターン(クライアント)に参加しました!

はじめに

10/11~10/31まで15日間、株式会社アカツキゲームスにてフルリモートの就業型インターンに参加してきました。
本記事ではこのインターンでしたことや、学んだことなどについて書きます。

自己紹介

自己紹介を忘れていました。
私は某大学に通う生物系の大学院生(M2)です。生物系の理論の研究室に属しており、生物の形態や運動の理論研究を行なっています。

インターン参加の背景

私は23年にアカツキゲームスに入社することが決まっており、 このインターンは、”就業までに会社の雰囲気や業務内容を知る”という目的で参加させていただきました。
インターンの参加にあたって事前面談を行いました。その内容はざっくりと要約すると「Unityと関連するゲームを触っておいてね!」という話だったので、

などを研究の隙間で取り組みました。

普段pythonやDCCツール内の特殊なプログラミング言語しか触っていない、配属されるプロジェクトの具体的な業務内容がわからいなど、自分に業務がこなせるのかどうか少し不安でした。

インターン中

それではようやくインターンの内容についてお話しします。
このインターンでは用意してくれた大きなことをドカンとするのではなく、 実際の開発現場で出てきた小さな問題点の改善などを複数行いました。
ここからは時系列に沿ってお話しします。

第一週: 最初の山

オリエンテーションや開発環境を1.5日程度で終わらせ、早速実務が始まりました。
第一週のタスクはこれです。

  1. ゲームオブジェクトの差し替え

  2. 消費系アイテムの(ちょっとした)機能修正

このタスクを提案された際、心の中で「え?こんな単純なことでいいの??」と思いました。 しかし私のその考えは完全に浅はかでした。 なぜなら、私は大規模開発の基本的なことが何一つわかっていなかったからです。 主に以下の二点でつまづきました。

  • Gitの使い方が全然わからない!

  • ソースコードが膨大すぎて、修正する箇所がわからない!

Git の使い方に関しては超基本的な使い方は把握していたものの、大規模開発ならではのプルリクの作業やコンフリクト解消の仕方などが分からずかなり苦戦しました。
Git の使い方がよくわからない→ 作業が遅い → 作業中のファイルに誰かが変更を加える→コンフリクトが起こる→作業遅れる
の負のスパイラルに陥り、ずっと抜け出せないのではないかと疑うほどでした。 この問題はインターネットで調べたり、それでもわからないことをメンターさんにお聞きしたりして解決しました。

ソースコードが膨大すぎる件に関しては、タスクは簡単なのに書き換えるべき場所が複数箇所にあったため、その構造を把握するのにかなり苦労しました。
今後もソースコードの理解に苦しめられることが予測されたため、Mac純正のメモアプリに自分なりのドキュメントを作成するなどの対策を行いました。

最初のプルリクがマージされるまで2日ほどかかりましたが、最初のプルリクが通ったときは感慨深かったです。。。

第二週: 作業効率の改善

二週間目には以下を行いました。

  1. 消費系アイテムの機能追加

  2. デバックコマンドの機能追加 X 3

デバックコマンドとはゲーム実行時にその動作を変更・確認するコマンドで、ゲーム開発を効率的に行うためのものです。

二週目になるとGitの使い方の理解やコードの把握などができ、ようやく楽しみながら作業をできる様になりました。
この頃には第一週に自分でまとめていたドキュメントがかなり役にたち、作業効率を少し上げてコーディングできた様に思います。

デバックコマンドの機能についてはゲーム開発を効率よく進める上で非常に重要なので、プランナーさんに仕様の確認をしながらやりがいを持って取り組めました。

第三週: 第二の山

第三週のタスクはこれです。

  1. 入力システムの移植

私が参加したゲームのプロジェクトでは、ゲームの要素ごとにいくつかのパートに分かれて作業を分担しているのですが、最後のタスクでは別パートの入力システムを私が参加しているパートの入力システムに移植するというものでした。最初は簡単にできると思っていたのですが、かなりの時間がかかってしまいました。
理由としては、別パートと私が参加しているパートの入力システムの仕組みがかなり異なっていたからです。特に別パートの担当パートのスクリプトの対応関係の把握にかなり苦戦しました。また入力システム周辺にはUniRxやUniTaskといった、私がよく知らない処理が多く使われていたことも時間がかかる要因となりました。

焦って表面的のことばかり調べるのではなく、全体を理解するように努めることで解決できました。 結局、慎重に全てを理解しようとする姿勢がもっとも効率的だということを改めて実感しました。

また第三週には通常の業務とは別に、テクニカルアーティストやRandDの方ともお話しする場を設定していただき、発表を兼ねて出社もしました。
リモートでは聞けなかったことも色々話せて充実した一日を過ごせました。

会社の雰囲気

会社の雰囲気についてはまだ述べていないのでそちらも述べます。
まず、プロジェクトに関わる人の多さと開発のスピード感は圧倒的でした。
また多くの方がリモートで独立に作業されるので、自分から質問や提案することが求められていることも強く感じました。 自分から発信しないと何も起こらないですが、困っていることなどを発信するとすぐに的確なレスポンスが帰ってくるような”助け合い”の精神がよくわかりました。

これは現地に行かないと分からないことですが、オフィスが色々すごいのでぜひ自分の目で確かめてください。

感想

このインターンでは実際の開発現場をそのまま体感することができる貴重なインターンでした。 私は某化学メーカーや某電気メーカーの短期インターンなどに参加したことはありますが、ここまで現場を体験できる刺激的なインターンは初めてでした。
最後にこのインターンで私に関わってくれた全ての皆様、特に毎日相談に乗ってくれたメンターさんに感謝申し上げます。 三週間本当にありがとうございました!4月からもまたよろしくお願いします!

Akatsuki Games Internship 2022のRuby on Rails / AWS コースに参加しました

自己紹介

同志社大学大学院M1の赤沢聖斗です。大学ではブレインマシーンインタフェースの研究をしており、アルバイトや趣味でWebアプリの開発をしています。

作業内容

今回のタスク内容はお知らせツールの改善というタスクを行いました。

お知らせツールとは?

ゲームでは、開催中のイベントなどをお知らせを通してユーザに表示しています。お知らせツールとはこれらのお知らせを作成するために利用する社内ツールのことです。今回のインターンではそのお知らせツールを使いやすくするように改善しました。

続きを読む

株式会社アカツキゲームスのインターンにクライアントエンジニアとして参加した話

はじめに

9月1日から9月22日の間クライアントエンジニアとしてインターンに参加してきたのでそれについてのブログを書こうと思います。

自己紹介

某専門学校でゲーム制作を学んでいる3回生の学生です。

学校ではUnityやUnrealEngineなどのゲームエンジンやDirectX11でゲーム開発をしています。ゲームで遊ぶことはもちろん、ゲームを作ることが好きで1クリエイターとしてゲーム業界を盛り上げる1人になりたいその一心で日々ゲーム開発に向き合っています。

 開発末期の苦しさもまた快感 

目次

  • はじめに
  • 自己紹介
  • 目次
  • 取り組んだこと
    • 新規機能の仕様説明
    • スケジュール作成
    • 実装
    • 挙動チェック
    • コードレビュー
  • 学んだこと
    • コミュニケーション
    • コーディング
    • 「なぜ?」の重要性
  • まとめ

取り組んだこと

クライアントエンジニアのインターンではモバイルゲームのタイトルに携わらせていただきました。そこで「実際にリリースされる新規機能の開発」を行いました。業務は以下の流れで取り組みました。

  • 新規機能の仕様説明
  • スケジュール作成
  • 実装
  • 挙動チェック
  • レビュー

私は「一部画面UIレイアウトの変更」を担当しました。

続きを読む

Akatsuki Games Internship 2022のRuby on Rails / AWS コースに参加しました!

はじめまして!2022年の9/1~9/22の3週間、アカツキゲームスのサーバーサイドインターンに参加させていただいた伊藤といいます。この記事では、僕が取り組んだタスクや学んだことについて書かせていただきます!

自己紹介

豊田高専情報工学科4年の伊藤大輝です。普段は学校でコンピュータについて勉強していたり、コンテストやインターンなどで開発したりしています。

参加動機

普段できないような大規模開発をしたいと思ったのと、パフォーマンス改善についてのお仕事をさせていただけるというお話を事前に聞いていたので参加したいと思いました。

インターン中に取り組んだこと

インターンでやらせていただいたタスクは大きく分けて二つです。

  1. Ruby3.1 & Rails7.0.2へのアップデート
  2. YJITを有効化してのパフォーマンス調査

Ruby3.1 & Rails7.0.2へのアップデート

続きを読む

こんな時代なので、社内オンリーの100人規模の技術カンファレンスを開催しました

こんにちは、アカツキゲームスのVPoEのゆのん (id:yunon_phys)です。社内エンジニアリングカンファレンスAkatsuki Dev Meetupを9/13に開催したので、その運営側のレポートを書きます。

社内オンリーにしたのは登壇者への配慮

いきなりタイトルの話に入っていくわけですが、今回は社内の人に限定したカンファレンスにしました。せっかくやるなら社外の人も呼べば良いのにという声も上がるだろうなとは思ったのですが*1、あえて公開範囲を狭めました。僕らがこのカンファレンスを何のためにやるのか、でいうと、社内の情報の流通量を上げることが第一目的だったからです。

社内の情報の流通量を上げたいのは、アカツキで抱えている課題がそもそも出発点としてあります。現在アカツキは様々なゲームタイトルを開発・運用していて、そのタイトル内のチームでは密度の濃いディスカッションが出来ています。一方で、タイトル間でこういうのをやっているよ、こういうのがうまくいったよ、これはだめだったよ、といった情報交換については、どうしても日々の業務から比較すると優先度が下がってしまいます。他のチームのSlackのWorkspaceを見えるようにするといった工夫は可能な限りしているものの、それは個人の裁量に依存してしまうところもあり、正直成果は上げられていないという感覚があります。

ただ、他のタイトルでやっていることは隣のチームでも参考になるケースは勿論あります。実際に、メンバーが異動することによって、前のチームからのノウハウが伝承されて、開発が良い方向に向かっていくというケースを何度も見てきました。つまり、社内の情報の流通量を上げることは、プロダクト品質を上げることにつながると考えているわけです。

*1:事実、終わった後に社内からそういう声が上がった。それはそれで嬉しいコメント

続きを読む