Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
STEPの割り振りをStreamlit
Search
show you
June 03, 2023
Programming
0
220
STEPの割り振りをStreamlit
ゲームのパラメータ割り振りを、PythonのライブラリであるStreamlitを使って行いました
show you
June 03, 2023
Tweet
Share
More Decks by show you
See All by show you
ラブライブ!向けのRDFを作ったよ!
showyou
0
74
AI真乃さんとLLMの発展
showyou
0
150
k8s低価格で使う
showyou
0
260
A horror story of digdag
showyou
1
1.1k
Other Decks in Programming
See All in Programming
CSC509 Lecture 08
javiergs
PRO
0
240
コードとあなたと私の距離 / The Distance Between Code, You, and I
hiro_y
0
190
Six and a half ridiculous things to do with Quarkus
hollycummins
0
210
はじめてのDSPy - 言語モデルを『プロンプト』ではなく『プログラミング』するための仕組み
masahiro_nishimi
4
14k
理論と実務のギャップを超える
eycjur
0
180
SODA - FACT BOOK(JP)
sodainc
1
8.7k
CSC509 Lecture 07
javiergs
PRO
0
240
デミカツ切り抜きで面倒くさいことはPythonにやらせよう
aokswork3
0
260
コード生成なしでモック処理を実現!ovechkin-dm/mockioで学ぶメタプログラミング
qualiarts
0
260
iOSでSVG画像を扱う
kishikawakatsumi
0
160
Vueのバリデーション、結局どれを選べばいい? ― 自作バリデーションの限界と、脱却までの道のり ― / Which Vue Validation Library Should We Really Use? The Limits of Self-Made Validation and How I Finally Moved On
neginasu
2
1.5k
「ちょっと古いから」って避けてた技術書、今だからこそ読もう
mottyzzz
12
7.1k
Featured
See All Featured
Building an army of robots
kneath
305
46k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
A better future with KSS
kneath
239
18k
Rails Girls Zürich Keynote
gr2m
95
14k
Thoughts on Productivity
jonyablonski
70
4.9k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
610
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
The Language of Interfaces
destraynor
162
25k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
880
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
630
Transcript
シャニマスのS.T.E.P.最適化 Webアプリを作ってみた IM@Study 2023 しょうゆ 1
諸注意 • 当発表はしょうゆの趣味で作成しております • 本業(アイマスでいう所の副業)とは無関係となっております • ここで話す”シャニマス”は、enza版ブラウザゲームの”アイドルマスター シャイニー カラーズ”の事を指します (つい先日音ゲーのシャニソンが発表されたので念のため)
2
今日話す内容 • シャニマスのSTEPの(条件付きで)最適な割り振りを行うツールを作った • もう少し学術的な話 3
自己紹介 名前:しょうゆ JTCのデータエンジニア リングチームのマネージャ SNS: Twitter: @showyou, @shsub(こっちが趣味の話多め) mstdn.jp:
@showyou imastodon.net: @showyou (フサギコさんお世話になってます) アイマス歴: 現地参戦:シャニ3rd -> デレ10th幕張 -> 765AS幕張 -> ミリ9th -> MoIW 担当:真乃, 美希, 卯月, 愛梨 サブ:このみ、歌織 諸事情によりモバマスは初期から知ってます 4
シャニマスのS.T.E.P.とは • 育成ゲームであるシャニマスの中でも、特に育成に特化したパート • ストーリー部分は自動カット(後で見返し可能) • トレーニング等でポイントを稼いで、”成長”でパラメータを上げる • 1プレイ10分くらいで育成可能 •
現状センター以外の育成はこれ一択 • センターだけは親愛度の問題で 使えない(今のところは) そもそもグレフェスを何人プレイしてるのか 5
育成時の悩み 育成ポイントは溜まった。 で、どういう風に割り振れば属性値一番高くなるか? 6
ステータスを上げるために必要なポイント 線形になっていれば方程式を解くだけで最適解は求まる しかしS.T.E.P.は非線形に必要ポイントが上がるので、解きにくい 7
http://showyou41.win/shinystep 自動で最適化するツール作りました 8
技術的な紹介 Streamlit: pythonで軽く書くだけで、Webアプリケーションが作れるツール https://streamlit.io/ straylight.run()・・ではなく streamlit run hoge.py でWebサーバ立ち上げ可能 9
実装方法 • Streamlitで入力部分のパーツを作成 • 最適化ロジックを実装 • 結果をStreamlitで表示 • 通常、状態変更時遷移の実装が必要だが、Streamlitは勝手に対応 10
最適化ロジック 本気で対応しようとすると、後述の線形計画法等の知識が必要? ここでは簡易的に、以下の方針で対応した 1. まず上限+10をできる限り選択 -> この時の上限値 >= 上げたい能力の最大値 2.
ここから上げたい能力を上げて、ポイントが不足したら上限値を下げていく ただし能力 <= 上限は守ること 11
デモ 12
もうちょっと学術的な話 一定の制約条件の中で、値を最小化する問題を 組み合わせ最適化問題と呼ぶ 最大化はどうなんだ?って話もありそうですが、評価関数に -をつければ最大化も最小化の問題と捉え ることが可能 https://qard.is.tohoku.ac.jp/T-Wave/knapsack-with-integer-weights/ 例:ナップサック問題 重さWまで耐えられるナップサックに、価値c が最大になるように荷物を詰めたい
13 他にも工場の最適な生産計画を導出するの 等にも使われる
今回のS.T.E.P.で言うと • • • 上限 >= 属性値 を満たす最大の(属性強化回数, 上限強化回数) を見つける問題になる
ただしf_属性(x)とf_sp(x)は、右図やP8でも挙げた 非連続関数 (ちなみに属性値、上限値は 初期値 + 強化回数*10で計算可能) 14 団結力
よくある解法 普通のプログラミング言語では、動的計画法(DP)を使って解かれる事が多い 一方でPythonにはPulpなどの線形計画法(数理最適化のうち、不等式などで表現できる もの)のライブラリがあるので、使えば効率的に出せそう?(非連続だが) http://www.nct9.ne.jp/m_hiroi/light/pulp01.html 15
結論 • シャニマスのSTEPの計算ツールをStreamlitで作った ソース https://github.com/showyou/shinycolors_step_calculator • 組み合わせ最適化問題の話もした • Streamlitを使えば、最適値の計算ツールなども サクッと作れる
16
できていないところ 本来のS.T.E.P.の強化では、属性値、属性上 限以外にもSP値消費で取れる上限アップも あります。 今回はこれらの要素は計算に含めていませ ん (条件付き=>これ) 計算後に残りSPを出すようにしているので、 そのSPを使って上限アップを取得して下さい 17
で、今は? 18 あれ?
ステータスを上げるだけではグレ7には上がれない 19 ノウハウ収集・・パーフェクトリー・・
あといいわけ 20
権利絡み アイドルマスター シャイニーカラーズなどの権利は、バンダイナムコ様が保有しておりま す こういったデータの解析は怒られそうな気もしますが、S.T.E.P.に関しては全ての情報が ユーザに見えてるので許してほしい・・ 21