I wanted to create a DeepQ AI for playing a specific game/problem. I do know how to create static enviroments but I cannot find any solution for changing enviroments. Let me introduce the problem first.
As input there exist a list of 5 elements to brew, 6 spells to learn (both will be updated, whenever one is brewed/learned) and the current spellbook which is dynamically sized and the inventory which is static. Basically the character can do 4 things: wait, rest, learn a spell, cast a spell, brew a potion.
This would mean that as output it would be:
self._action_spec = array_spec.BoundedArraySpec(
shape=(), dtype=np.int32, minimum=0, maximum=4, name='play')
But now here my problem comes. How do I implement into the enviroment that there exist a spell-list and that it's not just Cast a spell, but cast spell xy and similarly brew potion xy and learn spell xy
Could I do something similar to:
self._observation_spec = array_spec.BoundedArraySpec(
shape=(3,DYNAMIC), dtype=np.int32, minimum=?, maximum=?, name='playfield')
Maybe if someone has any usefull links I would happy to read through them. As of right now I can't find anything apart from how to create a custom enviroment.
Thanks in advance,
Alex