Upgrade to Pro — share decks privately, control downloads, hide ads and more …

プログラミングで遊ぶ

Avatar for pocke pocke
October 25, 2025

 プログラミングで遊ぶ

Avatar for pocke

pocke

October 25, 2025
Tweet

More Decks by pocke

Other Decks in Technology

Transcript

  1. ElinでのMOD • ElinはMODフレンドリーなゲーム ◦ MOD作成、公開が許可されている ◦ Steam上に公式にMOD公開プラットフォームが存在する ◦ MODのソースコード公開が許可されている ◦

    Elin本体のソースコード公開が許可されている (?!?!) • Unity / C# 製 • 私は便利系を主に公開、時々ジョークMOD ◦ 現時点で12個公開 ◦ 利用者が一番多いMODで4700ユーザーほど
  2. Webアプリ編 ペット(仲間)の育成をするにあたって、困ることが増えてきた • 公式のWikiだと、情報が足りなかったり、検索性に難がある。 • MOD開発リソースとして、有志がゲーム内データのCSVを公開している ◦ https://docs.google.com/spreadsheets/d/1CJqsXFF2FLlpPz710oCpNFYF4W_5yoVn/edit?g id=1016121330#gid=1016121330 ◦

    そのCSVを眺めれば、キャラクターの (ほぼ)すべてが理解できる • しかし、CSVはとてもめんどくさい ◦ 複数のCSV(キャラクター、職業、種族など )を自力でmergeする必要がある ◦ アビリティ名がゲーム内 IDで表記されていて、自力で変換が必要 ◦ UIがスプレッドシート それならCSVをいい感じに見れるWebアプリを作ろう!
  3. 技術構成 • Next.js, SSG only • TypeScript ◦ (ちょっとだけRuby) •

    MUI • Cloudflare Pages ランニングコストをかけないため、完全に静的なページを生成、配信
  4. AIの活躍 開発のほとんどをClaude Codeで行った • HTML要素の配置をやってくれるのが本当に助かる ◦ 90点ぐらいのUIをうまく作ってくれればいい、という期待にしっかり応えてくれる • 結構めちゃくちゃなコードを書かれることもそこそこある ◦

    手直しの指示は必要 • コアのロジックはある程度自分で実装・細かく指示出しをした ◦ CSVの内容をどう解釈するべきか ◦ これもElin側のコードを合わせて読ませたら、もっと AIに任せられたかも…
  5. 問題: 完全飯を作る Elinでは、食事でキャラクターが成長する • 食事に含まれる特性によって、成長するステータス が変化する ◦ 対象となるステータスは 16個 •

    食事は料理スキルによって、複数の食材を組み合わ せてクラフトできる • 食材ごとに特性が決まっている(== 成長するステータ スが異なる) どのような組合せを選べば、全能力が上昇する完全飯を 作れるか
  6. 課題 • 単純に全探索すると、ものすごい数の組合せを探索しないといけない ◦ 5つの異なるカテゴリの食材を使うレシピ ◦ それぞれのカテゴリで食材の候補が 26, 400, 736,

    566, 20種類ある ◦ 全組み合わせは86647808000通り(866億通り) • 品種改良というややこしい要素がある ◦ 食材となる農作物は自作できる ◦ 農作物は品種改良でき、対象のステータス 16個の中の9個のいずれかを上昇させる事ができる ◦ つまり農作物の場合は候補数が 9倍になり、候補が更に膨れ上がる
  7. 前処理: パレート最適問題 ある食材Aのステータス上昇値が、別の食材Bのそれと比べてすべて同じか上回って いるのであれば、食材Bは考慮する必要がない 例: • 食材Aは筋力が3, 耐久が2上がる • 食材Bは筋力が3,

    耐久が1上がる • この場合、食材Bは必要がない 食材データがスプレッドシートで提供されていたので、GASで実装。 これで食材数が16, 71, 89, 73, 19に、組合せが140231248(1.4億)に減少
  8. まとめ • プログラミングを使って、ゲームを色々な方向から楽しんでいる ◦ MOD、コードリーディング、 Webアプリ、組合せ最適 • AIによって慣れない分野に手を出しやすくなった ◦ C#,

    Webフロントエンド • Elinはプログラミングを活かしやすいゲーム ◦ ゲームによってはデコンパイルが許されていない場合もあるので注意 Thanks for your listening!