Releases: Farama-Foundation/ViZDoom
ViZDoom 1.2.4: Support for NumPy 2.0+, add building of Windows and Apple Silicon wheels on GH Actions
ViZDoom 1.2.4 Release Notes
This is a maintenance release that fixes some bugs and adds support for NumPy 2.0+.
What's Changed
- Update learning_stable_baselines3.py and other examples by @mwydmuch in #581 and #583
- Fix the ongoing recording not being saved when close() method was called by @mwydmuch in #584
- Add LevDoom and COOM benchmarks to the tools/projects list by @TTomilin in #585
- Building and CI/CD updates/clean up by @mwydmuch in #579 and #586
- Update pybind11 version to 2.13.4 to support NumPy>=2.0 by @mwydmuch in #590
- Add workflows for building Windows wheels by @mwydmuch in #591
- Update workflows to support building macOS Apple Silicon (arm64) wheels by @mwydmuch in #592
New Contributors
Full Changelog: 1.2.3...1.2.4
ViZDoom 1.2.3: Support for Python 3.12, fix for the Gymnasium wrapper
ViZDoom 1.2.3 Release Notes
The aim of this release is mainly to add support for Python 3.12 and fix a serious bug in the Gymnasium wrapper (thanks @caozhenxiang-kouji for reporting).
What's Changed
- Add support for Python 3.12 by @mwydmuch in #570
- Fix the bug in the Gymnasium wrapper that was constructing correct actions only for
int
type but not fornp.int
types, whenaction_space = Discrete
(reported in #574) by @mwydmuch in #575 - Add Farama notifications to the Python package by @mwydmuch in #568
- Add workflows to build docs version by @mgoulao in #567
- Add
set/getGameArgs
/set/get_game_args
methods by @mwydmuch in #569 - Add support for +win_x/y CVARs on Linux and MacOS by @mwydmuch in #569
- Setup.py and tests updates by @mwydmuch in #573
- Add support for viz_noxserver option on macos by @mwydmuch in #577
- Documentation updates by @mwydmuch in #576 and #578
Full Changelog: 1.2.2...1.2.3
ViZDoom 1.2.2: Fix for Python source distribution missing pybind11, fix manual building
ViZDoom 1.2.2 Release Notes
The aim of this release is mainly to fix some issues with installing ViZDoom on configurations that cannot use binary wheels.
What's Changed
- Create FUNDING.yml by @mwydmuch in #557
- Create CODE_OF_CONDUCT.md by @mwydmuch in #559
- Building and CI/CD fixes by @mwydmuch in #558, #560, #562
- Documentation updates by @mwydmuch in #561, #563, and #564
load_config
/loadConfig
fix by @mwydmuch in #565
Full Changelog: 1.2.1...1.2.2
ViZDoom 1.2.1: Manylinux wheels, docstrings and argument names in the Python module, and a new documentation website
ViZDoom 1.2.1 Release Notes
This release focuses on improving the user experience by adding support for docstrings and argument names in the Python module, a new documentation website, and, finally, improvements to the building process that allows for prebuilding manylinux wheels. This release does not introduce any changes to the API and is 100% compatible with the previous version.
What's Changed
- Docstrings were added to the Python module by @mwydmuch in #544
- Argument names were added to the Python module by @mwydmuch in #549
- A new documentation website based on Sphinx was created by @mgoulao, @mwydmuch in #540, #551, #554
- Manylinux wheels workflow using cibuildwheel was added by @mwydmuch in #552
- Python 3.7 support was dropped by @mwydmuch in #550
Full Changelog: 1.2.0...1.2.1
ViZDoom 1.2.0: add Gymnasium wrapper, Pickle support, and ARM compatibility
ViZDoom 1.2.0 Release Notes
This release adds official Gymnasium support, support for serialization using Pickle, and ARM compatibility. Besides that, it improves and modernizes the codebase to simply further maintenance of the library.
ViZDoom core API and Gym wrapper remain unchanged in this release. The code using the 1.1.X version should be fully compatible with this release.
New Features and Improvements:
- Added Gymnasium support. The wrapper for Gymnasium 0.28 was added, and from now on it will be an integral part of the library. The old Gym 0.26 wrapper remains as an optional extra. Because of that, we mark this release as the next minor release for the first time in 4 years.
- Added Pickle support.
- The Gymnasium/Gym wrappers now support the serialization of environments via pickle. Now both the environments and their states can be serialized.
- The
GameState
object and its subobjects, which are returned from C++ byDoomGame.get_state()
method in core Python API, now also support serialization. However,DoomGame
object that wraps the game engine cannot be serialized.
- Compatibility with ARM. The library can now be easily compiled and installed on ARM Linux as well as on Apple Silicon.
- Python 3.11 support. The ViZDoom library can now be installed with Python 3.11.
Environments:
The default configurations for all build-in scenarios/environments were unified to use 320x240 resolution (original DOS Doom resolution) as default.
Bug Fixes and Documentation Updates:
This release introduces numerous improvements to the codebase that will simplify further maintenance:
- Pre-commit-hooks with code formatting and checks were added.
- All assembler code was removed. Instead, the C/C++ code that was present in the engine as a fallback is now used instead. Currently, these assembler parts are not bringing significant performance improvements and thus were not worth keeping in our opinion. Because of that, the assembler compiler was removed from the list of dependencies as it's no longer needed.
- Lemon and Zipdir libraries were updated to the newer versions to fix issues with a building project on ARM machines and some Windows configurations.
- Fixed some deprecation warnings in the C/C++ codebase.
- Updated and cleaned-up documentation related to the project building.
- Added a long description for the PyPI package page.
- Added many tests for both core API and the Gymnasium wrapper.
- Cleaned up the codebase and removed unused files, scripts, commented code blocks, and Visual Studio project files.
Full Changelog: 1.1.14...1.2.0
1.1.14
1.1.13
Changes in ViZDoom 1.1.13
Releases
- The pybind11 library and freedoom2.wad are now part of the source release instead of being downloaded during building.
Consts
- Added new consts:
DEFAULT_FPS
(=DEFAULT_TICRATE
),DEFAULT_FRAMETIME_S
(=1.0 / DEFAULT_TICRATE
),DEFAULT_FRAMETIME_MS
(=DEFAULT_FRAMETIME_S * 1000
);
1.1.12
1.1.11
1.1.10
Changes in ViZDoom 1.1.10
Python Bindings
- Fixed support for Python 3.10
- Removed dependency on Numpy and simplified the process of building Windows wheels.
Input/output
- Added support for tuples and ndarrays as arguments in many functions, where previously only lists were accepted.