Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update the FAQ section in the documentation #561

Merged
merged 3 commits into from
Sep 25, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 9 additions & 17 deletions docs/faq/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Did not find answer for your question? Post an [issue](https://github.com/Farama
## How to use original Doom's assets?

We cannot provide original Doom's assets due to licensing issues, that is why ViZDoom uses [freedoom2.wad](https://freedoom.github.io) as default assets.
If you own original Doom or Doom 2 game (can be bought them on Steam or GOG), you can replace Freedoom graphics with original Doom's assets by placing doom.wad or doom2.wad into your working directory or vizdoom package directory (same directory as vizdoom(.exe)). Alternatively, any base game WAD (including other Doom engine-based games) can be used by pointing to it with the [`DoomGame: setDoomGamePath`](DoomGame.md#setDoomGamePath) method. On Unix you can also set `DOOMWADDIR` environment variable to directory with your wads files.
If you own original Doom or Doom 2 game (can be bought them on Steam or GOG), you can replace Freedoom graphics with original Doom's assets by placing doom.wad or doom2.wad into your working directory or vizdoom package directory (same directory as vizdoom(.exe)). Alternatively, any base game WAD (including other Doom engine-based games) can be used by pointing to it with the [`DoomGame.set_doom_game_path`](../api/python/doomGame.md#vizdoom.DoomGame.set_doom_game_path) method. On Unix you can also set `DOOMWADDIR` environment variable to directory with your wads files.


## How to create/modify scenarios?
Expand All @@ -23,14 +23,16 @@ We recommend using one of these two editors:
You should select ZDoom as your Doom engine version and UDMF map format (Universal Doom Map Format),
that supports the widest range of features.

For more details check

**Original issue and answer:**
[https://github.com/Farama-Foundation/ViZDoom/issues/319](https://github.com/Farama-Foundation/ViZDoom/issues/319)


## How to stack frames?

ViZDoom does not automatically stacks frames for you.
You have to manually store the states from [`DoomGame: getState`](doomGame.md#getState). and build up stacked states for your agent.
You have to manually store the states from [`DoomGame.get_state`](../api/python/doomGame.md#vizdoom.DoomGame.get_state). and build up stacked states for your agent.

**Original issue and answer: (contains code an example)**
[https://github.com/Farama-Foundation/ViZDoom/issues/296](https://github.com/Farama-Foundation/ViZDoom/issues/296)
Expand All @@ -41,7 +43,7 @@ You have to manually store the states from [`DoomGame: getState`](doomGame.md#ge
When you launch an instance of vizdoom, it will create `_vizdoom.ini` in your working directory (if it does not exist yet).
This file contains all the additional engine settings, including key bindings, that you can edit freely.

You can also load .ini file from different location using [`DoomGame: setDoomConfigPath`](doomGame.md#setDoomConfigPath).
You can also load .ini file from different location using [`DoomGame.set_doom_config_path`](../api/python/doomGame.md#vizdoom.DoomGame.set_doom_config_path).

**Original issue and answer:**
[https://github.com/Farama-Foundation/ViZDoom/issues/253](https://github.com/Farama-Foundation/ViZDoom/issues/253)
Expand All @@ -57,7 +59,7 @@ Try [NavDoom](https://github.com/agiantwhale/navdoom) or [MazeExplorer](https://

## How to control game speed in `ASYNC` modes?

See: [`DoomGame: setTicrate`](DoomGame.md#setTicrate) and [examples/python/ticrate.py](https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/ticrate.py)
See: [`DoomGame.set_ticrate`](../api/python/doomGame.md#vizdoom.DoomGame.set_ticrate) and [examples/python/ticrate.py](https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/python/ticrate.py)

**Original issue and answer:**
[https://github.com/Farama-Foundation/ViZDoom/issues/209](https://github.com/Farama-Foundation/ViZDoom/issues/209)
Expand All @@ -71,9 +73,8 @@ See: [examples/python/delta_buttons.py](https://github.com/Farama-Foundation/ViZ
[https://github.com/Farama-Foundation/ViZDoom/issues/279](https://github.com/Farama-Foundation/ViZDoom/issues/279)

See also:
- [`Types: Button`](Types.md#button)
- [`Enums: Button`](../api/python/enums.md#vizdoom.Button)
- [examples/python/DeltaDuttons.cpp](https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/cpp/DeltaDuttons.cpp)
- [examples/python/DeltaDuttons.java](https://github.com/Farama-Foundation/ViZDoom/tree/master/examples/java/DeltaDuttons.java)


## Agent does not fire after picking up ammo or weapon?
Expand All @@ -92,7 +93,7 @@ See also:
## How to pick up items (medikit, ammo, armour) when inventory is full?

CVARs implemented in ZDoom engine are very helpful in quickly modifying some aspects of the game.
`game.add_game_args("+sv_unlimited_pickup 1")` adding before init will allow picking up unlimited items.
`doom_game.add_game_args("+sv_unlimited_pickup 1")` adding before init will allow picking up unlimited items.

**Original issue and answer:**
[https://github.com/Farama-Foundation/ViZDoom/issues/187](https://github.com/Farama-Foundation/ViZDoom/issues/187)
Expand Down Expand Up @@ -141,7 +142,7 @@ server proceeds by one frame). See discussion in Issues below for more informati
- [https://github.com/Farama-Foundation/ViZDoom/issues/417](https://github.com/Farama-Foundation/ViZDoom/issues/417)


## Why `game.get_state()` when `game.is_episode_finished() == True`
## Why `doom_game.get_state()` when `doom_game.is_episode_finished() == True`

After the end of the episode, ZDoom engine might change its state and exit the episode (map) resulting in some objects and variables being destroyed or reset. Because of that it's difficult to provide a proper state after that. When we were originally designing ViZDoom we wanted to have a simple logic and we only update state after complete logic tic. Because of that we are not able to detect end of episode early before to save a proper state and decided to provide null/none value instead. We believe that it's easy to provide dummy (e.g. filed with zeros) state if it's needed by an algorithm.

Expand Down Expand Up @@ -184,12 +185,3 @@ GUI apps do not work out-of-the-box on WSL on Windows 10/11. To make it work, yo
## What is a difference between ViZDoom, ZDoom and GZDoom

ViZDoom is based on the last version of ZDoom (2.8.1). ZDoom was discontinued in 2016, and the development switched to GZDoom, which provides a new 3D renderer implemented in OpenGL. ViZDoom, however, sticks to the original 2D software renderer, which is much faster for small resolutions than OpenGL. Because of that, ViZDoom modernized the ZDoom engine by adding support for Apple Silicon and ARM Linux and removing old unused parts of the code base (e.g., by removing Assembler parts).

15.1K Views
90%
1 month ago
Add to
Jump to
Report
28
3
Loading