Discuss Scratch

darusuramoti
Scratcher
2 posts

バトルゲームのレベル別AIの作り方を議論しよう。

AIの作り方を知ることによって、ONLINEゲームとかの時に、練習モードを追加できるようにしたいです。
AIのクローンを作る
クローンされたときInfinity秒でx座標をAIの動きに、y座標をAIの動きに変える
futon0912
Scratcher
1000+ posts

バトルゲームのレベル別AIの作り方を議論しよう。

ScratchでAIを作ることはほぼ不可能だとは思いますが、結果などを保存してそれをもとに動かしたり攻撃をしたりすることは可能だと思います。
ちょっと前に文字を書いて書かれた文字を判別し、段々学習していくというプロジェクトを見た気がするのですが、知っている人いるでしょうか。

Last edited by futon0912 (Sept. 21, 2022 10:28:43)

newmomizi_txt
Scratcher
1000+ posts

バトルゲームのレベル別AIの作り方を議論しよう。

あなたが考えているバトルゲームがどのようなものかは分かりませんが、
レベル別に作りたい場合、最強レベルのものから作ることをおすすめします。
理由としては、強化する方法は限られているのに対して、弱くする方法は「使用可能なテクニックの数を減らす」「反応速度を遅くする」など色々あるからです。
darusuramoti
Scratcher
2 posts

バトルゲームのレベル別AIの作り方を議論しよう。

僕が考えているバトルゲームは、大乱闘スマ●シ●ブラザーズ的な奴です。
newmomizi_txt
Scratcher
1000+ posts

バトルゲームのレベル別AIの作り方を議論しよう。

とりあえずそのスマブラ風バトルゲームをまずは完成させるべきではないでしょうか
(もう完成していたらすみません)
takumarion
Scratcher
19 posts

バトルゲームのレベル別AIの作り方を議論しよう。

#4
プレイヤーの位置とAIの位置をX、Y座標別で比較し、それを元に移動させるといいと思います。また、AIやプレイヤーの技の性能、飛距離でどれぐらい近づいたら技を出すと丁度いいかも重要だと思うので距離に応じて出す技を判断させるプログラムも必要だと思います。
PPP-scratch
Scratcher
2 posts

バトルゲームのレベル別AIの作り方を議論しよう。

takumarion wrote:

#4
プレイヤーの位置とAIの位置をX、Y座標別で比較し、それを元に移動させるといいと思います。また、AIやプレイヤーの技の性能、飛距離でどれぐらい近づいたら技を出すと丁度いいかも重要だと思うので距離に応じて出す技を判断させるプログラムも必要だと思います。
面白い!
magicAho
Scratcher
1000+ posts

バトルゲームのレベル別AIの作り方を議論しよう。

futon0912 wrote:

ScratchでAIを作ることはほぼ不可能だとは思いますが、結果などを保存してそれをもとに動かしたり攻撃をしたりすることは可能だと思います。
ちょっと前に文字を書いて書かれた文字を判別し、段々学習していくというプロジェクトを見た気がするのですが、知っている人いるでしょうか。
Scratchはチューリング完全を満たしている[1]ため、作成することは不可能ではありません。
AIを作るためにはクラウド変数を使う必要もありそうです。

Last edited by magicAho (Oct. 28, 2022 13:51:29)

inoking
Scratcher
1000+ posts

バトルゲームのレベル別AIの作り方を議論しよう。

magicAho wrote:

AIを作るためにはクラウド変数を使う必要もありそうです。
そう主張するなら、なぜなのかの説明をお願いします。

futon0912 wrote:

ScratchでAIを作ることはほぼ不可能だとは思いますが、
機械学習というキーワードで検索すると以下のような投稿が見つかります
(ここで言っている「AI」の意味とはちょっと違うかもしれませんが)。
https://scratch.mit.edu/discuss/post/4411799/
https://scratch.mit.edu/discuss/post/3872578/

Last edited by inoking (Oct. 28, 2022 21:53:38)

newmomizi_txt
Scratcher
1000+ posts

バトルゲームのレベル別AIの作り方を議論しよう。

ニューラルネットワークによるAIを作る場合、問題となるのは学習方法・学習時間ですね。
学習方法は、この場合だと「教師あり学習」か「強化学習」の2択だと思いますが、前者は学習のセットアップが大変、後者は学習(練習)していないことに対して極端に弱いという欠点があります。
また、Scratchの処理速度や、ゲームの複雑さを考えると、強いAIが完成するのにはかなりの時間がかかりそうです。

自分的には、学習機能のない完全プログラム制御のAI(一般的にCOMと呼ばれるようなもの)を作る方が圧倒的に簡単だと思います。
というか、敵AIに機械学習を使用した格闘ゲームなんて前例はあるのだろうか…

そもそもの話、バトルゲームが完成しないことにはここでの話し合いも意味がない気がしますが

Last edited by newmomizi_txt (Oct. 28, 2022 21:58:27)

inoking
Scratcher
1000+ posts

バトルゲームのレベル別AIの作り方を議論しよう。

やはり、ここで言う「AI」がどういうものなのか明確にしないと発散するだけですね。

いわゆる「人工知能」の話であれば以下のようなトピックもあります。
人工知能を作るには…?
将棋のAI作成について話し合う!
オセロ(リバーシ)のAIを作ろう!

なお、ニューラルネットワークという前提も出ていません。
newmomizi_txt さんも用語が混乱しているようです。
magicAho
Scratcher
1000+ posts

バトルゲームのレベル別AIの作り方を議論しよう。

inoking wrote:

そう主張するなら、なぜなのかの説明をお願いします。
人の攻撃パターンを学習するのに使うと思います。
newmomizi_txt
Scratcher
1000+ posts

バトルゲームのレベル別AIの作り方を議論しよう。

確かに会話を見返してみると、「AI」という言葉の定義がうやむやですね。

1.辞書的な定義

広辞苑 wrote:

人工知能
推論・判断などの知的な機能を備えたコンピューター-システム。
(一部省略)
知識を蓄積する知識ベース部、集めた知識から結論をひきだす推論部が不可欠である。
「数字が偶数か奇数か判定するプログラム」も、「偶数は2で割り切れる自然数である」という知識をもとに判断を行っているため、一種のAIであると言えます。

2.一般的な定義
一般人がよく言う「AI」「人工知能」というのは、「学習を元に知識・推論力を向上させていくもの」という認識であることが多いようです。
(これは私の主観で、統計データ等がある訳ではありません。ご了承ください)
辞書的には間違いかもしれませんが、このような認識をする人も一定数いるようなので、一つの定義として書いておきます。

単に「AI」「人工知能」とだけ言ってもどちらのことを指しているのかが分かりません。
そのため、これ以降、学習機能のないものは「学習なしAI」、学習機能のあるものは「学習型AI」と呼ぶことにしましょう。
(AIという呼び方が嫌いであれば、「人工知能」に置き換えても大丈夫です)

#2や#8の投稿にある「AI」は、おそらく「学習型AI」のことを指していると考えられます。
そのため、私もその代表例であるニューラルネットワークについて書きました。

Last edited by newmomizi_txt (Oct. 29, 2022 00:23:18)

abee
Scratcher
1000+ posts

バトルゲームのレベル別AIの作り方を議論しよう。

#12
たとえば、このプロジェクトは機械学習の一種である遺伝的アルゴリズムを使った人工知能の実装ですが、クラウド変数は使われていません。
つまり、クラウド変数を使うことは、Scratchで人工知能を実装するための必要条件ではありません。
abee
Scratcher
1000+ posts

バトルゲームのレベル別AIの作り方を議論しよう。

#13
最近ではあまり使われていませんが、かつて、コンピューターは電子頭脳と呼ばれていました。
それはそれとして、新しい言葉を作らなくても、一般的に使われている強化学習とか、深層学習とか、エキスパートシステムなどの用語を使った方が厳密な議論ができると思います。
新しい言葉の定義を知らないとそこでまた混乱が生じます。

Powered by DjangoBB