diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 8023f233c..5e8430440 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -24,7 +24,7 @@ If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - OS: [e.g. mac/linux/windows] - - Version [e.g. 1.2.0] + - Version [e.g. 1.2.1] **Additional context** Add any other context about the problem here. diff --git a/readthedocs.yml b/.readthedocs.yaml similarity index 92% rename from readthedocs.yml rename to .readthedocs.yaml index 21a38194e..060ad8bd4 100644 --- a/readthedocs.yml +++ b/.readthedocs.yaml @@ -11,7 +11,7 @@ sphinx: # Build documentation with MkDocs #mkdocs: -# configuration: mkdocs.yml +# configuration: mkdocs.yml # Optionally build your docs in additional formats such as PDF formats: @@ -19,6 +19,6 @@ formats: # Optionally set the version of Python and requirements required to build your docs python: - version: 3.7 + version: 3.8 install: - requirements: docs/requirements.txt \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 11c70cc0f..bc547cb44 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.10.0) -project(Griddly VERSION 1.2.0) +project(Griddly VERSION 1.2.1) set(BINARY ${CMAKE_PROJECT_NAME}) diff --git a/bindings/python.cpp b/bindings/python.cpp index b32f2ce1d..11a95926b 100644 --- a/bindings/python.cpp +++ b/bindings/python.cpp @@ -12,7 +12,7 @@ namespace griddly { PYBIND11_MODULE(python_griddly, m) { m.doc() = "Griddly python bindings"; - m.attr("version") = "1.2.0"; + m.attr("version") = "1.2.1"; #ifndef NDEBUG spdlog::set_level(spdlog::level::debug); @@ -107,6 +107,7 @@ PYBIND11_MODULE(python_griddly, m) { observer_type.value("BLOCK_2D", ObserverType::BLOCK_2D); observer_type.value("ISOMETRIC", ObserverType::ISOMETRIC); observer_type.value("VECTOR", ObserverType::VECTOR); + observer_type.value("ASCII", ObserverType::ASCII); py::class_, std::shared_ptr>>(m, "Observation", py::buffer_protocol()) .def_buffer([](NumpyWrapper &m) -> py::buffer_info { diff --git a/docs/conf.py b/docs/conf.py index 06239da28..8a2533016 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -22,7 +22,7 @@ author = 'Chris Bamford' # The full version, including alpha/beta/rc tags -release = '1.2.0' +release = '1.2.1' # -- General configuration --------------------------------------------------- diff --git a/docs/getting-started/action spaces/index.rst b/docs/getting-started/action spaces/index.rst index 6353a4dce..84bb9af84 100644 --- a/docs/getting-started/action spaces/index.rst +++ b/docs/getting-started/action spaces/index.rst @@ -94,7 +94,7 @@ In order to easily support games with large action spaces such as RTS games, sev If ``mask_type == 'full'`` then a mask of dimensions (grid_height, grid_width) is returned. This mask can be used in the case where a one-hot representation of the entire grid is used for location selection. - If ``mask_type == 'reduced'`` then two masks are returned. One for ``grid_height`` and one for ``grid_width``. This mask can be used when two seperate one-hot representations are used for ``x`` and ``y`` selection. + If ``mask_type == 'reduced'`` then two masks are returned. One for ``grid_height`` and one for ``grid_width``. This mask can be used when two separate one-hot representations are used for ``x`` and ``y`` selection. .. warning:: player_id=0 is reserved for NPCs and internal actions diff --git a/docs/getting-started/procedural content generation/index.rst b/docs/getting-started/procedural content generation/index.rst index f4669e043..006d8e962 100644 --- a/docs/getting-started/procedural content generation/index.rst +++ b/docs/getting-started/procedural content generation/index.rst @@ -41,14 +41,15 @@ This is a basic example and generating levels for this environment might not be Clusters Level Generator ************************ -A much more complicated example would be to use the `Clusters` game and generate new levels. The aim of the Clusters game is for the agent to push coloured blocks together to form "clusters", whilst avoiding spikes. +A much more complicated example would be to use the :ref:`Clusters ` game and generate new levels. The aim of the Clusters game is for the agent to push coloured blocks together to form "clusters", whilst avoiding spikes. The game is fully deterministic and there are only 5 levels supplied in the original GDY file. This makes it a perfect candidate for building new levels and testing if Reinforcement Learning can still solve these levels! Level Generator Class ===================== -Here's an example of a level generator for the cluster's game. +Here's an example of a level generator for the cluster's game. Levels are generated with simple configurable heuristics such as maximum number of each coloured boxes and maximum numbers of spikes. +The boxes and spikes are randomly placed in the grid to create the initial game layout. The agent is also added to the grid in a random position. The ``LevelGenerator`` class can be used as a base class. Only the ``generate`` function needs to be implemented. diff --git a/docs/requirements.txt b/docs/requirements.txt index 4ca71000e..4ef3f775b 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ -sphinx==3.1.0 +sphinx==4.0.2 recommonmark==0.6.0 -sphinx_rtd_theme==0.4.3 -sphinxcontrib-images==0.9.2 +sphinx_rtd_theme==0.5.2 +sphinxcontrib-images==0.9.3 sphinx-copybutton==0.3.1 \ No newline at end of file diff --git a/docs/rllib/rts/index.rst b/docs/rllib/rts/index.rst index 9abd34afb..7c513205a 100644 --- a/docs/rllib/rts/index.rst +++ b/docs/rllib/rts/index.rst @@ -26,7 +26,7 @@ Full Example