やらなイカ?

たぶん、iOS/Androidアプリの開発・テスト関係。

GitHub CopilotとのペアプロTDDでつくるローグライクRPG

GitHub Copilotはそのまま使っても便利ですが、その特性を活かす共同作業の形として「ペアプロTDD」がお勧めです。 実際にCopilotとのペアプロTDDで「ローグライクRPG」を開発していく過程を紹介する同人誌を、 コミックマーケット103の2日目(日曜)東U44b「いか小屋」で頒布します。

[12/31追記]電子版(PDF)をBOOTHで頒布しています

ikagoya.booth.pm

想定読者

何らかの言語でのプログラミング経験のあるソフトウェアエンジニア(プログラマー)を想定しています。

サンプルコードにはゲームエンジンUnityおよびC#言語を使用していますが、ゲームエンジン固有の機能には縛られないロジック部分にフォーカスしていますので、Unityの知識は不要です。 Unity固有の機能については、本書を読み進めるのに問題がない程度の解説をつけています。

また、「人間がテストコードを書けばCopilotがプロダクトコード(ゲーム本体の実装)を書いてくれる」というコンセプトなので、ぜひテストエンジニアの方にもお試しいただきたいです。

目次の紹介

第1章 GitHub Copilot

Copilot*1の利用方法、IDEへのプラグインインストールと操作方法*2、Coilotの仕組みを紹介しています。

第2章 ペアプログラミングとTDD

人間が行なうペアプログラミングテスト駆動開発(TDD)それぞれの簡単な紹介と、本書で提唱する「CopilotとのペアプロTDD」について紹介しています。

CopilotとのペアプロTDDには、Copilotの提案を受け入れる判断基準になるテストコードが得られるだけでなく、Copilotから精度の高い提案を引き出す効果があります。 ただし(まだ)万能な方法ではないため、注意すべき点も掲載しています。

第3章 開発の準備

本書サンプルプロジェクトで使用しているゲームエンジンUnityのインストールとプロジェクトの設定方法について、簡単に紹介しています。

第4章 ダンジョンの自動生成

ローグライクRPGの特徴であるランダム生成のダンジョンマップを、CopilotとのペアプロTDDで作っていきます。

本章では、実現したい仕様をテストコードに書く、それをもとにCopilotがプロダクトコードを提案、テストを実行して成功させる、というサイクルをステップ・バイ・ステップで解説しています。

また途中に、Copilotからよりよい提案を受けるためのTipsを盛り込んでいます。

第5章 プレイヤーキャラクター

ダンジョンにプレイヤーキャラクターを表示し、キーボード操作で移動させるまでをCopilotとのペアプロTDDで作っていきます。

それだけ?

「キャラが動くだけでローグライクRPGと呼べるのか」それはごもっともですが、ここまでです。

締切的な問題もありましたが、すでに全体で100ページ、4・5章あわせて60ページあります。 ここまでにペアプロTDD、CopilotのTips、パラメタライズドテスト、ランダム性のテスト、非同期処理のテスト、テストダブル、と書くべきことは書き尽くしました。

書き続けても、淡々とローグライクRPGの実装を進めるだけになり、書くのも読むのもモチベーションが続かないと判断しました*3

ただ、サンプルプロジェクトは今後時間を見つけて実装を進めていくつもりです*4

表紙について

きみかさん(@kimika127)にユニティちゃんを描いていただきました。

なお、背後の黒いのはメンダコです。何かに似て見えるかもしれませんがメンダコです。

C103

2日目(日曜)東U44b「いか小屋」でお待ちしております。 東2ホールの真ん中あたりです。

既刊在庫も持っていきます。

www.nowsprinting.com

www.nowsprinting.com

信販売・電子版について

[12/31追記]電子版(PDF)をBOOTHで頒布しています

ikagoya.booth.pm

*1:個人向けのCopilot Individualのみ解説しています

*2:本書で使用するインライン候補とCopilot Chatのみ解説しています

*3:続刊することは無く、もし改版することがあればもう少し続きを書くかもしれません

*4:ただしCopilotでなくJetBrains AI Assistantに切り替えることになりそうです。比較もしたいので