COLOPL Tech Blog

https://blog.colopl.dev/

コロプラのエンジニアブログです

フィード

記事のアイキャッチ画像
【資料公開】新卒エンジニア向けデータベース基礎研修(MySQL編)を実施しました
COLOPL Tech Blog
こんにちは。2026年5月に、新卒エンジニア向けのデータベース基礎研修(MySQL編)を実施しました。 本記事では、講師を務めた担当者の視点で、研修の目的や内容、資料を作るうえで意識した点を紹介します。 コロプラにおけるオンボーディングの考え方については、過去の記事でも紹介しています。 blog.colopl.dev
5日前
記事のアイキャッチ画像
同じ REPEATABLE READ でも挙動が違う!? Spanner / MySQL / PostgreSQL の更新処理を同じ分離レベルで比較してみた
COLOPL Tech Blog
こんにちは。エンジニアの薮 (@tyabu12) です。 最近社内で PostgreSQL を扱う機会があり、MySQL と同じ感覚でトランザクション分離レベルを REPEATABLE READ にしようとしたところ、同じ REPEATABLE READ という名前でも、MySQL と PostgreSQL では SELECT ... FOR UPDATE が読む値が違う ことに気付きました。 トランザクション分離レベル自体は枯れたテーマで、すでに MySQL と PostgreSQL の比較記事は世の中にたくさんあります。ただ、Spanner に関しては 2026年4月に REPEATABL…
11日前
記事のアイキャッチ画像
Unity大規模開発のAIコーディングで手戻りを減らす。「grill-me」で実装スコープを絞り込んだ実践例
COLOPL Tech Blog
こんにちは、クライアントエンジニアの平野孝明です! コロプラでは開発現場でのAI活用を積極的に進めており、以前には 16GB VRAMでもローカルLLMは実務に届くのか。2か月の検証で見えたこと や AI駆動開発に向けた取り組み - AI推進組織の発足とCursorの導入 といった記事を公開してきました。 現在はコーディング支援ツールとして Claude Code の活用も進めています。AI による支援は、コードの初稿作成や定型処理の実装速度を引き上げてくれる大きなメリットがあります。一方で、実際の Unity を用いた大規模タイトルの開発では、コンパイルだけでも5分以上かかることがあり、さら…
17日前
記事のアイキャッチ画像
【資料公開】2026年度 新卒研修「オンラインゲームのシステム全体像」を実施しました!
COLOPL Tech Blog
こんにちは、サーバー基盤グループ LCE チームの仲山です。LCE は Launch Coordination Engineering の略で、新作タイトルの立ち上げを支援するチームです。普段はゲームタイトルを横断したサーバー基盤の開発、保守、運用などを担当しています。 コロプラでは毎年、新卒向けの研修を実施しています。前半は全職種共通で、後半は専門性を深める職種別研修に分かれます。本記事では、そのうち2026年度にバックエンドエンジニア向けに実施した「オンラインゲームのシステム全体像」を紹介します。この研修は職種別研修の序盤に置かれていて、ここで全体の地図を手に入れてから、アプリケーション設…
19日前
記事のアイキャッチ画像
CEDEC2026の「この講演よかったよ」を持ち寄る社内LT会を開催しました!
COLOPL Tech Blog
こんにちは、エンジニアの中途採用と技術広報を担当しているT.Aです。 7月に開催された CEDEC2026 に、コロプラからも多くのエンジニアが参加しました。8月31日には参加したメンバーが集まり、「CEDEC参加者による この講演よかったよLT会」を開催しました。クライアントエンジニアとサーバーサイドエンジニアあわせて6名が登壇し、おすすめの講演や現地参加ならではの魅力を紹介しました。 そもそもCEDECとは CEDECは日本国内で最大規模のゲーム開発者向けカンファレンスです。今年はパシフィコ横浜ノースで7月22日から24日にかけて、現地とオンラインのハイブリッド形式で開催されました。 クラ…
23日前
記事のアイキャッチ画像
「文字列の長さ」の判定で気をつけるべきこと【後編】MySQL と Spanner のカラム長
COLOPL Tech Blog
こんにちは、エンジニアの 工藤 です。 この記事は前後編の後編です。前回の記事は こちら です。 前編では、 PHP で「文字列の長さ」を数える単位は一つではないこと、そして名前入力のような場面では書記素クラスタ数とバイト数の両方に上限をかける必要があることを説明しました。 blog.colopl.dev 後編では、そうしてチェックした文字列をデータベースで扱う時の話をさせていただければと思います。カラムの桁数として書いたつもりの 20 が実際には何を数えているのかを、代表的なものとして MySQL と Cloud Spanner で見ていきます。
24日前
記事のアイキャッチ画像
「文字列の長さ」の判定で気をつけるべきこと【前編】Unicode と PHP の文字列処理
COLOPL Tech Blog
こんにちは、エンジニアの 工藤 です。 ゲームに限らず、どんなアプリケーションを実装する時もユーザーが「文字入力」する場面はあるかと思います。 だいたいのアプリケーションでは、入力できる文字を絞ったり、文字列の長さに上限を設けたりしていると思います。今回は PHP でそれを正しく行うための方法、そして注意しなければならないポイントについて触れていきます。 本記事は前後編構成です。前編では Unicode と PHP における文字列の扱いを、後編ではその文字列をデータベースに保存する時の注意点を扱います。
25日前
記事のアイキャッチ画像
リアルタイムフレームワーク「prizm」について社内勉強会を開催しました
COLOPL Tech Blog
こんにちは!サーバー基盤グループの阿部です。 今回は内製のリアルタイムフレームワーク「prizm」をテーマにした勉強会を開催しましたので、その様子をご紹介します。 prizmとは prizm は、複数のクライアントが1つのサーバーに接続し、Room と呼ばれる単位でリアルタイムに双方向のメッセージを送受信するための通信フレームワークです。サーバーは Go で実装しており、クライアント向けには C# と Go の SDK を提供しています。稼働環境は Kubernetes と Agones を前提にしています。 prizm 自体については過去の勉強会でも紹介しており、そのときの様子もテックブログ…
1ヶ月前
記事のアイキャッチ画像
Agones でマッチング情報をゲームサーバーに届ける metadata の事例紹介
COLOPL Tech Blog
こんにちは。エンジニアの薮 (@tyabu12) です。 Kubernetes 上でゲームサーバーを動かす Agones を使っていると、マッチメイキングで確保したゲームサーバーに「この部屋はどんなルールで、誰が来る予定なのか」を伝えたい場面が出てきます。本記事では、Agones の GameServerAllocation が持つ metadata フィールドを使い、割り当てと同時にゲームサーバーへ情報を渡している事例を紹介します。 metadata 自体は公式ドキュメントに載っているものなので、本記事では「どういうコンポーネントやとり得る選択肢があった中で metadata を選び、何を情…
1ヶ月前
記事のアイキャッチ画像
Spanner エミュレータの排他ロックを回避してテストを並列化し、CI の実行時間を約3分の1にした話
COLOPL Tech Blog
こんにちは。エンジニアの薮 (@tyabu12) です。 Spanner を使ったバックエンドのプロジェクトで開発や運用が進みテストコードが増えてくると、CI の待ち時間が少しずつ開発サイクルのスピードを削っていきます。コロプラのとあるプロジェクトでは、CI テストを並列化して、実行時間を20分から7分台まで短縮 しました。このとき立ちはだかったのが、CI テストで使用する Spanner エミュレータの排他ロックという制限 です。 当時は 「Spanner エミュレータをプロセスの数だけ起動する」という力技 でこの制限を乗り切りました。ただこの構成は、その後に社内の Laravel 用ボイラ…
2ヶ月前
記事のアイキャッチ画像
リアルタイムサーバーも .NET C# でいけそうか? Go / C++ / Node.js とパフォーマンスを比較しました
COLOPL Tech Blog
こんにちは、サーバー基盤グループの新井です。 社内では API サーバーを .NET C# で開発する検証 が進んでおり、リアルタイム通信用のゲームサーバー(リアルタイムサーバー)も同じ言語で書けないかと考えました。 そこで .NET / Go / C++ / Node.js でリアルタイム通信のリレーサーバーを実装し、パフォーマンスを比較しました。 結果から書くと、負荷に余裕があるうちはどの言語もレイテンシーは実用水準に収まりました。ただし横並びではなく、レイテンシーの上振れや CPU / メモリの使用量に差が出ました。余裕のある負荷帯で運用することで、リアルタイムサーバーも .NET C#…
2ヶ月前
記事のアイキャッチ画像
Slackのメッセージや記事を画像化する社内Botを作った
COLOPL Tech Blog
こんにちは、AIイネーブルメントグループの山田 (@yamadashy) です。 社内Slackには、技術記事や調査メモ、議論の共有、参考リンクといった情報が日々流れてきます。記事を紹介するとき、毎回説明文を書くのは手間です。 RSSで流れてきた記事は、まず概要だけ知りたい。リアク字チャンネラーで他チャンネルから届いた投稿は、元の前提が見えづらい。こうした場面では、本文を読む前に「何の話か」をつかめるだけで少し楽になります。 そこで作ったのが「Slack Banana」という社内Botです。 Slackのメッセージに 🍌 :banana: の絵文字でリアクションすると、その投稿のURLや本文、…
3ヶ月前
記事のアイキャッチ画像
エージェントを「安心して任せられる」ものにする設計(Google ADK で学んだこと)
COLOPL Tech Blog
こんにちは。エンジニアの相楽です。普段は内製の社内システムの運用や、社内の業務効率化に取り組んでいます。 最近、Google ADK(Agent Development Kit)と Claude API を組み合わせて AI エージェントを作り、実際に業務で運用しています。この記事は特定の業務やユースケースの紹介ではありません。エージェントを「作る」段階から「運用して使われ続ける」段階に進めるうえで、用途を問わず役立つと感じた設計の勘所をまとめたものです。 なお、この記事でまとめた内容は、社内で開催した「ADK・自作エージェント勉強会」でも話しました。当日の様子はこちらの記事にまとまっています…
3ヶ月前
記事のアイキャッチ画像
Deep Dive PHP: FrankenPHP 詳細解説 〜nginx + PHP-FPM から実行モデルはどう変わるのか〜
COLOPL Tech Blog
こんにちは、サーバー基盤グループの駒崎(@dkkoma)です。 弊社のサーバーサイドの多くは Laravel を中心とした PHP アプリケーションで、Web サーバーは長らく nginx + PHP-FPM(FastCGI Process Manager、以下 FPM)を標準構成としてきました。現在この構成から、Go 製 Web サーバーの Caddy に PHP を組み込んだアプリケーションサーバーである FrankenPHP への移行を進めており、社内エンジニア向けに実行モデルの違いを整理した資料を作ったところ、ブログにしないかと声をかけてもらったのでこの記事にまとめ直しました。 Fra…
3ヶ月前
記事のアイキャッチ画像
AIエージェントの試作から継続運用まで。ADK・自作エージェント勉強会を開催しました
COLOPL Tech Blog
こんにちは、AIイネーブルメントグループの山田 (@yamadashy) です。 先日、社内で「ADK・自作エージェント勉強会」を開催しました。Googleのエージェント開発フレームワーク「ADK」を題材に、開発や運用を経験した3名が実例を持ち寄り、私は冒頭のADK解説を担当しました。 AIコーディングエージェントが社内に広がるなか、関心は「使う」ことから「自分たちの業務に合わせて組む」ことへ移りつつあります。 では、汎用LLMがこれだけ賢くなった今、あえて専用のエージェントを作る意味はどこにあるのでしょうか。 コロプラではAI活用の勉強会を定期的に開いており、少し前には、社内のエージェント開…
3ヶ月前
記事のアイキャッチ画像
PHPStan 爆速化!静的解析ツール PHPStan 2.2.6 を実プロジェクトで計測してみた
COLOPL Tech Blog
こんにちは、エンジニアの 工藤 です。 コロプラでは普段から PHP を用いた開発を行っていますが、静的解析ツールである PHPStan はもはやほぼ全てのプロジェクトに導入されており、 CI での実行による安全性の担保において欠かせない存在となっています。 ちょうどリリースされたばかりの PHPStan 2.2.6 では PHPStan Turbo という形で大幅な高速化が取り込まれました。今回はこれを実際に運用しているプロジェクトで試した結果と、 PHPStan Turbo がどのような形でこれを実現したのかを調査してみたいと思います!
3ヶ月前
記事のアイキャッチ画像
ハーネスの使いこなし方を学ぶ、Claude Code スキル・ハーネス勉強会を開催しました
COLOPL Tech Blog
こんにちは、技術基盤本部の永野です。 6月30日(火)に社内Claude Code勉強会を開催し、MCを担当しました。 コロプラでは以前からAI活用に関する勉強会を定期的に開催しています。 直近では、AI開発の実態を共有するために、社内AI勉強会『突撃、隣のAIライブコーディング!』を開催しました。 blog.colopl.dev 社内ではGitHub Copilotが主流でしたが、最近はClaude Codeを利用するエンジニアが着実に増えております。 利用者が増えるにつれて、基本的な使い方にとどまらないClaude Codeの仕組みへの関心も高まってきました。 そこで今回は、ハーネスの使い…
3ヶ月前
記事のアイキャッチ画像
Open Match のバックフィルで Redis の proposed_ticket_ids が積み上がる問題と対処法
COLOPL Tech Blog
こんにちは。エンジニアの薮 (@tyabu12) です。 今回は、ゲームのマッチメイキングに使っている Open Match の運用中に遭遇した、マッチングは正常なのに Redis のメモリだけが単調に増え続ける問題と、その対処法をご紹介できればと思います。 結論から書いてしまうと、犯人は proposed_ticket_ids という Redis のキーで、このキーのエントリがマッチング後もお掃除されずに残り続け、メモリが増え続けてしまうというものでした。マッチング完了時に DeleteTicket を明示的に呼ぶようにしたところ、メモリの増加は収まりました。 本記事では本番環境で発生した現…
3ヶ月前
記事のアイキャッチ画像
PHPStan の baseline の「いつか直す」を「ついでに直す」へ。@phpstan-ignore を挿入する CLI を作った
COLOPL Tech Blog
こんにちは。エンジニアの薮 (@tyabu12) です。 PHPStan を大規模な既存コードベースに後から導入するとき、真っ先にぶつかるのが 「既存コードに対して生まれる、大量の PHPStan のエラーをどう扱うか」 という問題です。 コロプラでも稼働期間の長いプロジェクトに PHPStan を導入していて、その導入の経緯はこちらの記事で紹介されています。本記事はその先の話で、導入後の運用で見えてきた課題と、それに対して作った CLI ツールの話になります。 公式が提供する baseline という仕組みを使えば既存エラーをまとめて無視できます。ただし、実際に baseline を使って導…
4ヶ月前
記事のアイキャッチ画像
ITフリーランス向けサイト「フリーランスHub」にて、当ブログが紹介されました
COLOPL Tech Blog
ITフリーランス向けサイト「フリーランスHub」にて、当ブログ「COLOPL Tech Blog」が紹介されました。 freelance-hub.jp 「スキルアップやキャッチアップにつながる!注目のITブログ・メディアまとめ その3」という記事の中で、エンジニアのスキルアップや技術のキャッチアップに役立つITブログ・メディアの一つとして取り上げていただきました。ゲーム開発の現場で培った実践的なノウハウから、大規模な通信を支えるバックエンドの仕組みやAI活用まで、専門的な知見を幅広く発信しているブログとしてご紹介いただいています。 今後もコロプラのエンジニアリングに関する情報を発信してまいりま…
4ヶ月前
記事のアイキャッチ画像
Claude Codeを自分色に染める1つの習慣と1つの仕組み
COLOPL Tech Blog
こんにちは、エンジニアの田中です!普段は社内システムの運用や改善、業務効率化に関わる仕組みづくりを担当しています。 そんな日々の中で、Claude Codeを使い始めて1年、利用頻度は増える一方です。使えば使うほど気になってくるのが「自分はClaude Codeをうまく使えているのか?」という点です。 同じような指示を毎回打ち直していないか AIの出力を結局自分で手直ししていないか 意図が伝わらず、期待通りの結果が得られていないか この記事では、こうした「使い方のムダ」を改善するために実践している、1つの習慣と1つの仕組みを紹介します。 習慣: タスクの節目に振り返り — 良かったこと・改善し…
4ヶ月前
記事のアイキャッチ画像
ITフリーランス向け案件検索サイト「フリーランスジョブ」にて、当ブログが紹介されました
COLOPL Tech Blog
ITフリーランス向け案件検索サイト「フリーランスジョブ」のコラム記事にて、当ブログ「COLOPL Tech Blog」を取り上げていただきました。 freelance-job.com 「ゲームとエンタメ業界のテックブログ20選!開発現場の知見を学べる企業ブログ」という記事の中で当ブログをご紹介いただいております。数あるテックブログの中から、コロプラの日々の開発現場での知見や取り組みに注目していただけたことを大変嬉しく思います。 これからも有益な技術情報やエンジニア組織のカルチャーを積極的にお届けしてまいります。今後とも COLOPL Tech Blog をよろしくお願いいたします! Colop…
4ヶ月前
記事のアイキャッチ画像
サーバーサイドC#/.NETの取り組みについて社内勉強会を開催しました
COLOPL Tech Blog
こんにちは!バックエンドエンジニアの千葉です。 コロプラでは定期的に社内勉強会を開催しており、テックブログでもその様子を不定期に紹介しています。 blog.colopl.dev 今回は、サーバーサイドにおけるC#/.NETの取り組みをテーマにした勉強会を開催しましたので、その様子をご紹介します。 取り組みの背景 コロプラのゲームクライアントはUnityで開発しており、社内には日常的にC#を書いているエンジニアが多くいます。一方でサーバーサイドはPHPとLaravelの技術スタックを中心に据えており、社内用に拡張した laravel-extension をベースに長く運用してきた基盤があります。…
4ヶ月前
記事のアイキャッチ画像
ゲーム開発の現場から Laravel Live Japan に行ってきました!
COLOPL Tech Blog
こんにちは、エンジニアの薮 (@tyabu12)です。 先日、日本初開催の Laravel 公式カンファレンスに参加してきました。 laravellive.jp 参加のきっかけ きっかけは偶然おすすめに流れてきた、Laravel コアチームで唯一の日本人である濱崎さんのインタビュー動画でした。 シカゴの Laracon に勢いで参加して触発され、翌年 Laracon EU で登壇し、ついにはカンファレンスを日本で開催するというその行動力に胸が熱くなりました。 コロプラでは長年 PHP や Laravel をゲームバックエンドとして使っていることもあり、Laravel のコミュニティに興味があっ…
4ヶ月前
記事のアイキャッチ画像
【祝!ブログ100本記念】コロプラの技術広報の変遷
COLOPL Tech Blog
こんにちは、エンジニアの山田(@yamadashy)です。 この記事は、記念すべき COLOPL Tech Blog 100 本目の記事です。せっかくの節目なので、コロプラの技術広報がどのように始まり、どのように運用を変えてきたかを振り返ります。 コロプラでは現在、社内外の勉強会、カンファレンス協賛、スポンサーブース、技術ブログなど、さまざまな形で技術発信に取り組んでいます。こうした技術広報の活動は、最初から役割や運用が整理されていたわけではありません。社内の勉強会や LT、エンジニアの個別の発信、イベント運営の試行錯誤が少しずつ繋がり、いまの形になってきました。 振り返ると、変わってきたのは…
4ヶ月前
記事のアイキャッチ画像
Generative AI Japanのウェビナー に登壇させていただきました!
COLOPL Tech Blog
こんにちは。コロプラでエンジニアの中途採用と技術広報を担当しているA.T.です。 2026年4月28日に開催された一般社団法人 Generative AI Japanさんのウェビナーに、CIOの菅井が登壇させていただきました。現在、多くの企業が生成AIの導入を模索していますが、コロプラでは既に社員の9割以上が生成AIを活用するフェーズに到達しています。今回のウェビナーでは、私たちがどのようにして「ただ導入するだけ」で終わらせず、全社的な定着とプロダクトへの実装まで繋げたのか、その裏側をお話ししました。 本記事では、当日のセッション内容を紹介させていただきます。 Generative AI Ja…
5ヶ月前
記事のアイキャッチ画像
「チャットツールでの画像受渡し」は要注意!問題点と対処法について
COLOPL Tech Blog
こんにちは、エンジニアの 工藤 です。 Slack や社内向けチャットサービスを使っている組織であれば、画像などのリソースをチャンネルやスレッドに投稿する機会はほぼ必ずあるのではないでしょうか? プレビュー表示もされ便利な画像投稿機能ですが、そこには 思わぬ落とし穴 があります。今回はコロプラで起きた実例と利便性を損なわない形での解決策について書かせていただければと思います。 Slack について Slack は (当初は) 電子メールの代替を目的とした、企業内での連絡をチャット形式で行える SaaS (Software as a Service) です。多くの企業で利用されており、 Slac…
5ヶ月前
記事のアイキャッチ画像
Deep Dive PHP: PHP 8.5 の新機能「Tail call VM」とは?
COLOPL Tech Blog
こんにちは、エンジニアの 工藤 です。 PHP 8.5 がリリースされてもう半年近く経とうとしていますが、ひっそりと PHP 8.5 に入った Tail call VM について詳しく知っている人は少ないのではないかと思います。 この Tail call VM は PHP を利用する人にとっては直近で大きな意味や影響があるものではないのですが、今後の PHP の未来に向けて、非常に大きな一歩を踏み出したとも言えるような機能になっています。 今回はそんな Tail call VM とそれが生まれた背景、今後どうこれが活きてくるのかについてご紹介させていただきたいと思います。 PHP の動作原理と…
5ヶ月前
記事のアイキャッチ画像
社内AI勉強会『突撃、隣のAIライブコーディング!』を開催しました
COLOPL Tech Blog
こんにちは、AIイネーブルメントグループの山田(@yamadashy)です。 4月10日(金)に社内AI勉強会「突撃、隣のAIライブコーディング!〜普段の開発風景を見せ合う会〜」を開催しました。 3名のエンジニアに各15分で普段のAI駆動開発をそのまま実演してもらう、という企画です。オフラインとオンライン配信のハイブリッド形式で、約50名が参加しました。 開催の背景 コロプラでは以前から、AI活用に関する勉強会を定期的に開催しています。直近では社内AI LT会を開催し、7名のエンジニアがAI活用事例をLT形式で発表しました。 blog.colopl.dev 今回の企画のきっかけは、社内Slac…
6ヶ月前
記事のアイキャッチ画像
LLM 時代だからこそ!改めて見直す Development Containers
COLOPL Tech Blog
こんにちは、エンジニアの 工藤 です。 皆さん、 Development Containers はご存知でしょうか? LLM 時代よりも前から既にバリバリ活用されている方も居れば、 LLM を安全に使うために使い始めた人、使ったほうが良いとは思いつつもまだ手を付けられていない人なども多いのではないかと思います。 Development Containers はプロジェクトの開発環境をコンテナ上に構築することで環境依存を最小限に抑え、かつローカルマシンに影響を及ぼさない形でサンドボックス化して隔離する仕組みです。開発環境のセットアップも自動化されるため、プロジェクトのオンボーディングにも有用で保…
6ヶ月前