- You can play against an AI agent trained by reinforcement learning.
- Developed with @TaiseiHashimoto
- You can select the training steps.
- You can register your score for the rankings.
pong_rl's Introduction
pong_rl's People
pong_rl's Issues
selectAction の実行が間に合っていない
ゲームをスムーズに動かすために 60 fps (~ 17 msec / step) を確保したいが、selectAction は 20 msec 以上かかることも多い。
スマートフォンではさらに時間がかかるかも。
対処法として、メインのフローと並列して selectAction を実行したい。
JavaScript は基本的にシングルスレッドのため、例えば async を使うなどの方法では並列処理ができない。(ここは自信なし)
Web Workers という機能を使うとマルチスレッドを実現できるらしいが、より簡単で JavaScript らしい解決法はあるのだろうか?
クライアント側のエラー処理
ゲーム難易度の調整
ボール、パドルの速度を調整し、再学習
ゲームはポーズされているが、タイマーはポーズされていない
バグ報告:他のタブに切り替えるとき、ゲームはポーズされているが、タイマーはポーズされていないようです。ゲーム開始直後すぐ他のタブに切り替えれて、しばらくたってまた戻れば、一番難しいAI相手でも0か-1を簡単にとってしまいます
herokuの導入
herokuに関して調べたことなどをメモ
タイマーが一瞬61になる
herokuへのpush時にseedsもういらない説
FPS が環境によって異なる
スリープに requestAnimationFrame を使っているため、環境(デバイス、ブラウザなど)によって FPS が異なっている。
npm run build時のエラー
こんなエラーが急に出るようになった
原因を調査中
・とりあえずwebpack
とwebpack-cli
をインストールし直してみたけど効果なし
・俺のnodeのversionが古いかも・・?
[webpack-cli] SyntaxError: Invalid regular expression: /(\p{Uppercase_Letter}+|\p{Lowercase_Letter}|\d)(\p{Uppercase_Letter}+)/: Invalid escape
at pathToArgumentName (/Users/sosuke/node_modules/webpack/lib/cli.js:66:4)
at addFlag (/Users/sosuke/node_modules/webpack/lib/cli.js:170:16)
at traverse (/Users/sosuke/node_modules/webpack/lib/cli.js:243:21)
at traverse (/Users/sosuke/node_modules/webpack/lib/cli.js:299:23)
at traverse (/Users/sosuke/node_modules/webpack/lib/cli.js:248:24)
at Object.getArguments (/Users/sosuke/node_modules/webpack/lib/cli.js:308:2)
at WebpackCLI.getBuiltInOptions (/Users/sosuke/node_modules/webpack-cli/lib/webpack-cli.js:681:47)
at loadCommandByName (/Users/sosuke/node_modules/webpack-cli/lib/webpack-cli.js:838:38)
at Command.program.action (/Users/sosuke/node_modules/webpack-cli/lib/webpack-cli.js:1483:23)
at Command.listener [as _actionHandler] (/Users/sosuke/node_modules/webpack-cli/node_modules/commander/index.js:922:31
node versionが異なるものになってた。
修正して解決
数字がアルファベットになる謎のバグ
名前入力の時日本語だとどうするか、長さ制限
ゲームプレイ中にrlstepボタンを押すとstart準備画面に戻るようにしたい
PongRLを全てJSで動かすコードに変更する
- Pongrlenvクラスの実装
- ディレクトリ構成の一新
- モジュールインポートできるように(npm管理?)
- 余計なコードの除去
名前の入力の最低文字数
timerをdelayの際は止めたい
betweenMatchIntervalとかgoaleffectの際はstopしなければならない
iphoneで動作が遅い・・・
iphone操作時の問題点
実際にiphoneでプレイしてみたけど色々問題あった
・ダブルタップすると拡大してしまう
・長押しするとcopy look up speak
が出ちゃって邪魔
・resartボタンとrankingボタンの色がおかしい
・スクロール可能になってる
・実際の画面の大きさは色々(上側のURL表示や下側のブックマークとかのエリア)考慮すると意外と小さい
ゲーム画面を縦長にする
iphoneで音声が鳴らない
同率順位どうするか
UIについて考える
左右ボタンを押すとブラウザも動く問題
鶴岡研WEBサイトからリンクを飛ばす
・凌寒さん、安井さん?から許可を得る
・イベントの欄を書き換える
・ラボWikiでレポジトリ のリンクを知らせる
音を入れたい
npm run build-rlのerror
npm run build-rl
するとエラーが起こる
ページの読み込みが遅い
ネットワーク越しの読み込みが遅いため、原因を調べる。
score表示が変わったことがわかりにくい
DB 関連のエラー処理
現状エラー処理は全くしていない。
エラー発生時にどうするかはクライアント側も含めて考える必要あり。
サーバ側の仮実装を作成
ユーザーの行動を受け取り, エージェントの行動と合わせて環境に渡す.
環境から次のフレームを受け取り, ユーザーに返す.
エージェントの行動はとりあえずランダム.
読み込み時一瞬cssが反映されていない
クライアント側の仮実装を作成
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.