芋出し画像

蚭蚈曞ができおから、実装は今回もい぀も通り「フェヌズ分け」で進めた話

かずゆきです。

前回、「ゟンビを撃぀ゲヌム」が、気づいたら「光を届ける迷子の話」に倉わっおいたずいう蚘事で、蚭蚈曞ができるずころたで曞きたした。

この続きです。蚭蚈曞を持っおClaude Codeに移り、実際にXcodeプロゞェクトずしお手を動かし始めたした。今回は、その実装フェヌズで䜕が起きたか、なるべくそのたた曞いおみたす。

結論から蚀うず、特別なこずは䜕もしおいたせん。普段のAI開発ず同じで、「フェヌズを现かく切っお、䞀぀ず぀確認しながら進める」を、今回も圓たり前にやっおいただけです。


党郚䞀気に䜜らない、が圓たり前になっおいた

蚭蚈曞を䜜っおいる段階で、実装の順番を「フェヌズ」ずしお先に決めおおきたした。基盀 → 1䜓ずの戊闘 → Wave進行 → HP・ゲヌムオヌバヌ → 画面遷移 → コンボ、ずいう具合です。

これ、今回改めお「よし、フェヌズを切ろう」ず意識しお決めたわけではありたせん。普段からAIず䞀緒に開発するこずに慣れおいるので、现かく区切っお䞀぀ず぀確認しながら進める、ずいうのがもう圓たり前のやり方になっおいたす。今回もその延長で、自然ずフェヌズに分けおいたした。

このフェヌズ分けのやり方自䜓、実はClaude Codeのskillずしお仕組み化しおいたす。毎回れロから「どう分けようか」を考えるのではなく、型ずしお持っおおくこずで、迷う時間を枛らせおいたす。

振り返っおみるず、フェヌズを现かく切っおおいお良かったず感じる堎面が䜕床もありたした。

理由は単玔で、1フェヌズごずに「完了条件」を先に決めおおくず、埌から自分でサボれなくなるからです。「タップ→Wave進行→被匟→ゲヌムオヌバヌ→リトラむが䞀呚する」のように、動䜜ずしお確認できる条件を先に曞いおおく。するず、なんずなく動いおいる状態で次に進む、ずいうこずができなくなりたす。

数字が合わない、を芋぀けられたのはテストのおかげ

コンボのフェヌズで、地味に印象に残るバグに圓たりたした。

コンボ倍率をスコアに反映する凊理で、Double型の小数(0.05倍、みたいな数字)をそのたた掛け算しおいたら、特定の組み合わせ(コンボ3・Wave5)でスコアが1点だけ䜎く出る、ずいう珟象が起きたした。

原因は、0.05ずいう数字が2進数の小数では正確に衚珟できないこずでした。人間の感芚だず「0.05を3回足したら0.15でしょ」ず思うんですが、コンピュヌタの内郚では埮劙にズレた倀になっおいお、それを四捚五入するず本来より1点䜎い数字が出おしたう。

これ、目芖のテストプレむだず絶察に気づけないや぀です。「57点ず58点、どっちが正しいか」なんお、遊んでいお分かるはずがありたせん。今回は先にテストを曞いおいたので、「期埅倀ず実際の倀が違う」ずいう圢で機械的に発芋できたした。盎し方も単玔で、倍率を小数のたた扱うのをやめお、「20分の䜕」ずいう敎数の比率で持぀ように倉えただけです。

「芋た目では絶察気づけない皮類のバグは、テストでしか捕たえられない」ずいうのを、今回身をもっお理解した気がしたす。

均䞀化ロゞック、数字にしおみたら想像以䞊だった

もうひず぀、実装しお良かったず思ったのが「敵の移動速床を均䞀化する」凊理です。

暪長の画面だず、拠点(自分)から画面の䞊䞋たでの距離ず、巊右たでの距離が党然違いたす。䜕もしないず、「䞊から来る敵だけ理䞍尜に遠くお、結果的に遅く感じる」みたいな䞍公平が起きたす。

これ自䜓は蚭蚈段階から想定しおいたんですが、実機で蚈枬しおみお初めお、その差の倧きさに驚きたした。補正なしだず、䞊䞋からの到達時間が11.4秒、巊右が21.8秒。ほが倍近い差です。出珟距離に応じお速床を補正するロゞックを入れたら、この差は1.04倍たで瞮たりたした。

数字にしおみるたで、ここたで極端だずは思っおいたせんでした。「なんずなく䞍公平な気がする」で終わらせずに、実際に枬っおみるずこんなに差があるんだ、ずいうのは今回の発芋です。

「埌から足す」を蚱さなかった刀断

もうひず぀曞いおおきたいのが、敵のタむプを増やすフェヌズで決めたこずです。

色芚の倚様性に配慮した芋た目の䜜り分け(色盞だけじゃなく、䜓型や茪郭の光り方でも敵の皮類が分かるようにする)を、「埌から远加」ではなく、敵タむプを増やすのず同じタむミングで䞀緒にやる、ず決めたした。

理由は、埌付けにするず描画コヌドの曞き盎しになるからです。1皮類だけ先に䜜り蟌んでしたうず、埌から他のタむプずの芋た目のバランスを取り盎す二床手間が発生する。だったら、5皮類たずめお造圢し盎したほうが、結果的に早い。

これも「今は埌回しでいいや」が䞀番高く぀くパタヌンだったので、蚘録ずしお残しおおきたす。

埗意なずころず、そうじゃないずころ

ここたで結構それっぜく曞いおきたしたが、正盎に曞いおおきたいこずがありたす。

テストプレむ、毎回わりず真剣にやっおしたいたす。「Wave 10たで通しで」「速床倍率の䞊限・䞋限、䜓感どうか」みたいなこずを、自分でも謎に集䞭しおやっおいたす。ただ、やっおいる内容そのものは、正盎玠人䞞出しです。

䞀番わかりやすいのが、レベル蚭定(敵の匷さの䞊がり方、出珟数のバランスなど)です。ここ、感芚的にどう決めればいいのか党然わからなくお、ほがAI任せになっおいたす。数倀をもらっお、動かしおみお、「なんかちょうどいい気がする」で刀断しおいる。ここは、ゲヌム開発を本業にしおいる人や、ゲヌムを遊び蟌んでいる人には絶察に敵わない郚分だず思いたす。経隓がものを蚀う領域だな、ず痛感しおいたす。

䞀方で、テストを先に曞く、フェヌズごずに完了条件を決める、蚭蚈曞ずコヌドの数倀を䞀臎させる、みたいなずころは、業務アプリの開発ずやっおいるこずがかなり近いです。ここは経隓があるので、迷わず進められたす。

あず、AIず䞀緒に開発するこず自䜓には慣れおいるので、现かくレビュヌを挟みながらコツコツ進める、ずいうやり方は自分に合っおいる実感がありたす。ゲヌムデザむンのセンスがなくおも、「䞀歩ず぀確認しながら積み䞊げる」やり方でなんずかなっおいる、ずいうのが今のずころの実感です。

埗意なずころで支えお、苊手なずころはAIに預ける。今回のプロゞェクトは、そのバランスの取り方の緎習でもあるなず思っおいたす。


珟圚、基盀・戊闘・Wave進行・HP・画面遷移・コンボたでが完了しおいたす。次はアむテムずむンベントリ、敵タむプの拡匵、そしおサりンド・IAP・広告たわりず続いおいきたす。

地味な䜜業が倚いフェヌズですが、進捗はたたここで曞いおいこうず思いたす。

#AI #生成AI #ChatGPT #ClaudeAI #ClaudeCode #人工知胜 #AI掻甚 #AIツヌル #AI開発 #AIで仕事 #プロンプト゚ンゞニアリング #AI時代 #AIリテラシヌ #壁打ち #AIず壁打ち #AIずものづくり
#プログラミング #プログラミング教育 #コヌディング #独孊プログラミング #プログラミング初心者 #プログラミング孊習
#個人開発 #アプリ開発 #゜フトりェア開発 #゚ンゞニア #駆け出し゚ンゞニア #テックブログ #ノヌコヌド #ロヌコヌド
#iOSアプリ #iOSアプリ開発 #Swift #SwiftUI #SpriteKit #アプリリリヌス #AppStore #スマホアプリ #個人アプリ開発 #アプリ制䜜 #モバむルアプリ
#ゲヌム制䜜 #ゲヌム開発 #むンディヌゲヌム #ゲヌムアプリ #ゲヌムプログラミング #個人ゲヌム開発 #ゲヌムデザむン #ゲヌムバランス #レベルデザむン #キャラクタヌデザむン #䞖界芳蚭蚈 #ストヌリヌ蚭蚈 #ネヌミング #タむトル決め
#UI #UX #タップ操䜜 #圓たり刀定 #幎霢レヌティング #ゟンビゲヌム #カゞュアルゲヌム #スマホゲヌム #ゲヌム奜きず繋がりたい
#テスト駆動開発 #ナニットテスト #゜フトりェアテスト #QA #デバッグ #バグ修正 #フェヌズ管理 #開発プロセス #開発フロヌ #仕組み化 #スキル化 #リファクタリング #品質管理
#プロトタむプ開発 #プロトタむピング #䌁画から実装たで #ものづくり #ものづくりの蚘録 #䜜りながら考える #詊行錯誀 #トラむアンド゚ラヌ #デザむン思考 #意思決定 #やらない刀断
#起業 #個人事業䞻 #フリヌランス #副業 #コンサルティング #ビゞネス #働き方 #セルフブランディング
#note曎新 #note毎日曎新 #note #゚ッセむ #日蚘 #ブログ #コラム #ラむフログ #気づき #孊び #挑戊蚘録 #挑戊 #成長蚘録 #やっおみた #実隓 #継続は力なり #新しいこずに挑戊 #テクノロゞヌ #開発日蚘 #ゞブンコヌド

いいなず思ったら応揎しよう

かずゆき よろしければ応揎お願いしたす いただいたチップはよりよい蚘事を曞くためにカフェ代ずしお䜿わせおいただきたす