ntasfi / PyGame-Learning-Environment

PyGame Learning Environment (PLE) -- Reinforcement Learning Environment in Python.
MIT License
1.02k stars 231 forks source link

bug in flappy bird game #52

Open adibyte95 opened 6 years ago

adibyte95 commented 6 years ago

position of the keys in state (where state = p.getGameState() and is a dictionary of key value pairs ) changes every time the game is re run

lets us say that in one instance player_vel is the first key as shown in the figure below image

but in another run this changes image

how one is supposed to train an reinforcement learning algorithm with this type of observation inputs

adibyte95 commented 6 years ago

if you have the same problem take a look at this pull request

ntasfi commented 6 years ago

@adibyte95 in python the order of a dict's keys will not be the same between runs. This is because it uses a hashmap under the hood. I would recommend explicitly referring to a quantity you require by the key name. Eg: state["next_pipe_top_y"].

adibyte95 commented 6 years ago

@ntasfi by using an ordered dictionary as compared to ordinary dictionary the keys will be in the same position as they were inserted and will not change during different runs. i know that in an dictionary a value can be easily found through its corresponding key, but if someone tries to use only the values as in my case they will get confused, so i think this is more elegant this way.