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

[BUG] No Envs after installing from sources #287

Open
3 tasks done
AcademicWaste opened this issue Oct 31, 2023 · 19 comments
Open
3 tasks done

[BUG] No Envs after installing from sources #287

AcademicWaste opened this issue Oct 31, 2023 · 19 comments
Assignees
Labels
question Further information is requested

Comments

@AcademicWaste
Copy link

Describe the bug

I have tried to install the envpool from the source on a docker image by calling make docker-dev.

In the repo, I called

make bazel-release
pip install ./dist/envpool-0.8.4-cp310-cp310-linux_x86_64.whl 

Envpool is added to my python library. However, when I enter into python console,

Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import envpool
>>> env = envpool.make("Pong-v5", env_type="gym", num_envs=2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/app/envpool/registration.py", line 61, in make
    assert task_id in self.specs, \
AssertionError: Pong-v5 is not supported, `envpool.list_all_envs()` may help.
>>> envpool.list_all_envs()
[]

To Reproduce

Create new docker

make docker-dev

In docker:

make bazel-release
pip install ./dist/envpool-0.8.4-cp310-cp310-linux_x86_64.whl 

After install:

import envpool
env = envpool.make("Pong-v5", env_type="gym", num_envs=2)
envpool.list_all_envs()

Expected behavior

Some envs in the list.

System info

Describe the characteristic of your environment:

  • Describe how the library was installed (pip, source, ...)
  • Python version
  • Versions of any other relevant libraries
>>> print(envpool.__version__, numpy.__version__, sys.version, sys.platform)
0.8.4 1.26.1 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] linux

Checklist

  • I have checked that there is no similar issue in the repo (required)
  • I have read the documentation (required)
  • I have provided a minimal working example to reproduce the bug (required)
@Trinkle23897
Copy link
Collaborator

You need to change directory, try cd /tmp and python -c "import envpool"?

@Trinkle23897 Trinkle23897 added the question Further information is requested label Oct 31, 2023
@AcademicWaste
Copy link
Author

You need to change directory, try cd /tmp and python -c "import envpool"?

Thanks. It is working! I wonder what I can do to make it globally available.

@Trinkle23897
Copy link
Collaborator

Trinkle23897 commented Nov 1, 2023

it's a python issue -- if you have a dir called envpool and performing python -c "import envpool", it will import from that directory instead of ~/.local/.../python3.10/site-packages/envpool/

@renos
Copy link

renos commented Mar 30, 2024

@Trinkle23897 this works only when i'm in the docker container, but when I am out of it, and I pip install the wheel (even if the original folder is completely gone) this still occurs. How do I proceed?

@Trinkle23897
Copy link
Collaborator

could you execute python -c "import envpool; print(envpool)" to check the real import path?

@renos
Copy link

renos commented Mar 31, 2024

@Trinkle23897 I made a conda environment enp, pip installed the wheel, Here's the output:
(enp) @:~$ python -c "import envpool; print(envpool)"
<module 'envpool' from '/home/renos/anaconda3/envs/enp/lib/python3.10/site-packages/envpool/init.py'>

@Trinkle23897
Copy link
Collaborator

interesting, how did you install the package?

@renos
Copy link

renos commented Apr 1, 2024

@Trinkle23897

I tried this on both the server it was built on (in the docker container), for both I moved the wheel to /home/renos/temp/ and ran the following:

pip install envpool-0.8.4-cp310-cp310-linux_x86_64.whl

@Trinkle23897
Copy link
Collaborator

could you exec tree /home/renos/anaconda3/envs/enp/lib/python3.10/site-packages/envpool?

@renos
Copy link

renos commented Apr 1, 2024

@Trinkle23897

(enp) renos@hansel:~/envpool-1$ tree /home/renos/anaconda3/envs/enp/lib/python3.10/site-packages/envpool
/home/renos/anaconda3/envs/enp/lib/python3.10/site-packages/envpool
├── atari
│   ├── atari_envpool.so
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-310.pyc
│   │   └── registration.cpython-310.pyc
│   ├── registration.py
│   └── roms
│       ├── adventure.bin
│       ├── air_raid.bin
│       ├── alien.bin
│       ├── amidar.bin
│       ├── assault.bin
│       ├── asterix.bin
│       ├── asteroids.bin
│       ├── atlantis2.bin
│       ├── atlantis.bin
│       ├── backgammon.bin
│       ├── bank_heist.bin
│       ├── basic_math.bin
│       ├── battle_zone.bin
│       ├── beam_rider.bin
│       ├── berzerk.bin
│       ├── blackjack.bin
│       ├── bowling.bin
│       ├── boxing.bin
│       ├── breakout.bin
│       ├── carnival.bin
│       ├── casino.bin
│       ├── centipede.bin
│       ├── chopper_command.bin
│       ├── crazy_climber.bin
│       ├── crossbow.bin
│       ├── darkchambers.bin
│       ├── defender.bin
│       ├── demon_attack.bin
│       ├── donkey_kong.bin
│       ├── double_dunk.bin
│       ├── earthworld.bin
│       ├── elevator_action.bin
│       ├── enduro.bin
│       ├── entombed.bin
│       ├── et.bin
│       ├── fishing_derby.bin
│       ├── flag_capture.bin
│       ├── freeway.bin
│       ├── frogger.bin
│       ├── frostbite.bin
│       ├── galaxian.bin
│       ├── gopher.bin
│       ├── gravitar.bin
│       ├── hangman.bin
│       ├── haunted_house.bin
│       ├── hero.bin
│       ├── human_cannonball.bin
│       ├── ice_hockey.bin
│       ├── jamesbond.bin
│       ├── journey_escape.bin
│       ├── kaboom.bin
│       ├── kangaroo.bin
│       ├── keystone_kapers.bin
│       ├── king_kong.bin
│       ├── klax.bin
│       ├── koolaid.bin
│       ├── krull.bin
│       ├── kung_fu_master.bin
│       ├── laser_gates.bin
│       ├── lost_luggage.bin
│       ├── mario_bros.bin
│       ├── miniature_golf.bin
│       ├── montezuma_revenge.bin
│       ├── mr_do.bin
│       ├── ms_pacman.bin
│       ├── name_this_game.bin
│       ├── othello.bin
│       ├── pacman.bin
│       ├── phoenix.bin
│       ├── pitfall2.bin
│       ├── pitfall.bin
│       ├── pong.bin
│       ├── pooyan.bin
│       ├── private_eye.bin
│       ├── qbert.bin
│       ├── riverraid.bin
│       ├── road_runner.bin
│       ├── robotank.bin
│       ├── seaquest.bin
│       ├── sir_lancelot.bin
│       ├── skiing.bin
│       ├── solaris.bin
│       ├── space_invaders.bin
│       ├── space_war.bin
│       ├── star_gunner.bin
│       ├── superman.bin
│       ├── surround.bin
│       ├── tennis.bin
│       ├── tetris.bin
│       ├── tic_tac_toe_3d.bin
│       ├── time_pilot.bin
│       ├── trondead.bin
│       ├── turmoil.bin
│       ├── tutankham.bin
│       ├── up_n_down.bin
│       ├── venture.bin
│       ├── video_checkers.bin
│       ├── video_chess.bin
│       ├── video_cube.bin
│       ├── video_pinball.bin
│       ├── wizard_of_wor.bin
│       ├── word_zapper.bin
│       ├── yars_revenge.bin
│       └── zaxxon.bin
├── box2d
│   ├── box2d_envpool.so
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-310.pyc
│   │   └── registration.cpython-310.pyc
│   └── registration.py
├── classic_control
│   ├── classic_control_envpool.so
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-310.pyc
│   │   └── registration.cpython-310.pyc
│   └── registration.py
├── entry.py
├── __init__.py
├── mujoco
│   ├── assets_dmc
│   │   ├── acrobot.xml
│   │   ├── ball_in_cup.xml
│   │   ├── cartpole.xml
│   │   ├── cheetah.xml
│   │   ├── common
│   │   │   ├── materials.xml
│   │   │   ├── skybox.xml
│   │   │   └── visual.xml
│   │   ├── dog.xml
│   │   ├── finger.xml
│   │   ├── fish.xml
│   │   ├── hopper.xml
│   │   ├── humanoid_CMU.xml
│   │   ├── humanoid.xml
│   │   ├── lqr.xml
│   │   ├── manipulator.xml
│   │   ├── pendulum.xml
│   │   ├── point_mass.xml
│   │   ├── quadruped.xml
│   │   ├── reacher.xml
│   │   ├── stacker.xml
│   │   ├── swimmer.xml
│   │   └── walker.xml
│   ├── assets_gym
│   │   ├── ant.xml
│   │   ├── half_cheetah.xml
│   │   ├── hopper.xml
│   │   ├── humanoidstandup.xml
│   │   ├── humanoid.xml
│   │   ├── inverted_double_pendulum.xml
│   │   ├── inverted_pendulum.xml
│   │   ├── point.xml
│   │   ├── pusher.xml
│   │   ├── reacher.xml
│   │   ├── swimmer.xml
│   │   └── walker2d.xml
│   ├── dmc
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   │   ├── __init__.cpython-310.pyc
│   │   │   └── registration.cpython-310.pyc
│   │   └── registration.py
│   ├── gym
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   │   ├── __init__.cpython-310.pyc
│   │   │   └── registration.cpython-310.pyc
│   │   └── registration.py
│   ├── __init__.py
│   ├── libmujoco.so.2.2.1
│   ├── mujoco_dmc_envpool.so
│   ├── mujoco_gym_envpool.so
│   └── __pycache__
│       └── __init__.cpython-310.pyc
├── procgen
│   ├── assets
│   │   ├── kenney
│   │   │   ├── Backgrounds
│   │   │   │   ├── blue_desert.png
│   │   │   │   ├── blue_grass.png
│   │   │   │   ├── blue_land.png
│   │   │   │   ├── blue_shroom.png
│   │   │   │   ├── colored_desert.png
│   │   │   │   ├── colored_grass.png
│   │   │   │   ├── colored_land.png
│   │   │   │   └── colored_shroom.png
│   │   │   ├── Enemies
│   │   │   │   ├── barnacle_attack.png
│   │   │   │   ├── barnacle_dead.png
│   │   │   │   ├── barnacle.png
│   │   │   │   ├── bee_dead.png
│   │   │   │   ├── bee_move.png
│   │   │   │   ├── bee.png
│   │   │   │   ├── fishBlue_dead.png
│   │   │   │   ├── fishBlue_fall.png
│   │   │   │   ├── fishBlue.png
│   │   │   │   ├── fishGreen_dead.png
│   │   │   │   ├── fishGreen_move.png
│   │   │   │   ├── fishGreen.png
│   │   │   │   ├── fishPink_dead.png
│   │   │   │   ├── fishPink_move.png
│   │   │   │   ├── fishPink.png
│   │   │   │   ├── fly_dead.png
│   │   │   │   ├── fly_move.png
│   │   │   │   ├── fly.png
│   │   │   │   ├── frog_dead.png
│   │   │   │   ├── frog_move.png
│   │   │   │   ├── frog.png
│   │   │   │   ├── ladybug_fly.png
│   │   │   │   ├── ladybug_move.png
│   │   │   │   ├── ladybug.png
│   │   │   │   ├── mouse_dead.png
│   │   │   │   ├── mouse_move.png
│   │   │   │   ├── mouse.png
│   │   │   │   ├── saw_dead.png
│   │   │   │   ├── sawHalf_dead.png
│   │   │   │   ├── sawHalf_move.png
│   │   │   │   ├── sawHalf.png
│   │   │   │   ├── saw_move.png
│   │   │   │   ├── saw.png
│   │   │   │   ├── slimeBlock_dead.png
│   │   │   │   ├── slimeBlock_move.png
│   │   │   │   ├── slimeBlock.png
│   │   │   │   ├── slimeBlue_dead.png
│   │   │   │   ├── slimeBlue_hit.png
│   │   │   │   ├── slimeBlue_move.png
│   │   │   │   ├── slimeBlue.png
│   │   │   │   ├── slimeGreen_dead.png
│   │   │   │   ├── slimeGreen_hit.png
│   │   │   │   ├── slimeGreen_move.png
│   │   │   │   ├── slimeGreen.png
│   │   │   │   ├── slimePurple_dead.png
│   │   │   │   ├── slimePurple_hit.png
│   │   │   │   ├── slimePurple_move.png
│   │   │   │   ├── slimePurple.png
│   │   │   │   ├── snail_move.png
│   │   │   │   ├── snail.png
│   │   │   │   ├── snail_shell.png
│   │   │   │   ├── wormGreen_dead.png
│   │   │   │   ├── wormGreen_move.png
│   │   │   │   ├── wormGreen.png
│   │   │   │   ├── wormPink_dead.png
│   │   │   │   ├── wormPink_move.png
│   │   │   │   └── wormPink.png
│   │   │   ├── Ground
│   │   │   │   ├── Dirt
│   │   │   │   │   ├── dirtCenter.png
│   │   │   │   │   ├── dirtCenter_rounded.png
│   │   │   │   │   ├── dirtCliffAlt_left.png
│   │   │   │   │   ├── dirtCliffAlt_right.png
│   │   │   │   │   ├── dirtCliff_left.png
│   │   │   │   │   ├── dirtCliff_right.png
│   │   │   │   │   ├── dirtCorner_left.png
│   │   │   │   │   ├── dirtCorner_right.png
│   │   │   │   │   ├── dirtHalf_left.png
│   │   │   │   │   ├── dirtHalf_mid.png
│   │   │   │   │   ├── dirtHalf.png
│   │   │   │   │   ├── dirtHalf_right.png
│   │   │   │   │   ├── dirtHill_left.png
│   │   │   │   │   ├── dirtHill_right.png
│   │   │   │   │   ├── dirtLeft.png
│   │   │   │   │   ├── dirtMid.png
│   │   │   │   │   ├── dirt.png
│   │   │   │   │   └── dirtRight.png
│   │   │   │   ├── Grass
│   │   │   │   │   ├── grassCenter.png
│   │   │   │   │   ├── grassCenter_round.png
│   │   │   │   │   ├── grassCliffAlt_left.png
│   │   │   │   │   ├── grassCliffAlt_right.png
│   │   │   │   │   ├── grassCliff_left.png
│   │   │   │   │   ├── grassCliff_right.png
│   │   │   │   │   ├── grassCorner_left.png
│   │   │   │   │   ├── grassCorner_right.png
│   │   │   │   │   ├── grassHalf_left.png
│   │   │   │   │   ├── grassHalf_mid.png
│   │   │   │   │   ├── grassHalf.png
│   │   │   │   │   ├── grassHalf_right.png
│   │   │   │   │   ├── grassHill_left.png
│   │   │   │   │   ├── grassHill_right.png
│   │   │   │   │   ├── grassLeft.png
│   │   │   │   │   ├── grassMid.png
│   │   │   │   │   ├── grass.png
│   │   │   │   │   └── grassRight.png
│   │   │   │   ├── Planet
│   │   │   │   │   ├── planetCenter.png
│   │   │   │   │   ├── planetCenter_rounded.png
│   │   │   │   │   ├── planetCliffAlt_left.png
│   │   │   │   │   ├── planetCliffAlt_right.png
│   │   │   │   │   ├── planetCliff_left.png
│   │   │   │   │   ├── planetCliff_right.png
│   │   │   │   │   ├── planetCorner_left.png
│   │   │   │   │   ├── planetCorner_right.png
│   │   │   │   │   ├── planetHalf_left.png
│   │   │   │   │   ├── planetHalf_mid.png
│   │   │   │   │   ├── planetHalf.png
│   │   │   │   │   ├── planetHalf_right.png
│   │   │   │   │   ├── planetHill_left.png
│   │   │   │   │   ├── planetHill_right.png
│   │   │   │   │   ├── planetLeft.png
│   │   │   │   │   ├── planetMid.png
│   │   │   │   │   ├── planet.png
│   │   │   │   │   └── planetRight.png
│   │   │   │   ├── Sand
│   │   │   │   │   ├── sandCenter.png
│   │   │   │   │   ├── sandCenter_rounded.png
│   │   │   │   │   ├── sandCliffAlt_left.png
│   │   │   │   │   ├── sandCliffAlt_right.png
│   │   │   │   │   ├── sandCliff_left.png
│   │   │   │   │   ├── sandCliff_right.png
│   │   │   │   │   ├── sandCorner_leftg.png
│   │   │   │   │   ├── sandCorner_right.png
│   │   │   │   │   ├── sandHalf_left.png
│   │   │   │   │   ├── sandHalf_mid.png
│   │   │   │   │   ├── sandHalf.png
│   │   │   │   │   ├── sandHalf_right.png
│   │   │   │   │   ├── sandHill_left.png
│   │   │   │   │   ├── sandHill_right.png
│   │   │   │   │   ├── sandLeft.png
│   │   │   │   │   ├── sandMid.png
│   │   │   │   │   ├── sand.png
│   │   │   │   │   └── sandRight.png
│   │   │   │   ├── Snow
│   │   │   │   │   ├── snowCenter.png
│   │   │   │   │   ├── snowCenter_rounded.png
│   │   │   │   │   ├── snowCliffAlt_left.png
│   │   │   │   │   ├── snowCliffAlt_right.png
│   │   │   │   │   ├── snowCliff_left.png
│   │   │   │   │   ├── snowCliff_right.png
│   │   │   │   │   ├── snowCorner_left.png
│   │   │   │   │   ├── snowCorner_right.png
│   │   │   │   │   ├── snowHalf_left.png
│   │   │   │   │   ├── snowHalf_mid.png
│   │   │   │   │   ├── snowHalf.png
│   │   │   │   │   ├── snowHalf_right.png
│   │   │   │   │   ├── snowHill_left.png
│   │   │   │   │   ├── snowHill_right.png
│   │   │   │   │   ├── snowLeft.png
│   │   │   │   │   ├── snowMid.png
│   │   │   │   │   ├── snow.png
│   │   │   │   │   └── snowRight.png
│   │   │   │   └── Stone
│   │   │   │       ├── stoneCenter.png
│   │   │   │       ├── stoneCenter_rounded.png
│   │   │   │       ├── stoneCliffAlt_left.png
│   │   │   │       ├── stoneCliffAlt_right.png
│   │   │   │       ├── stoneCliff_left.png
│   │   │   │       ├── stoneCliff_right.png
│   │   │   │       ├── stoneCorner_left.png
│   │   │   │       ├── stoneCorner_right.png
│   │   │   │       ├── stoneHalf_left.png
│   │   │   │       ├── stoneHalf_mid.png
│   │   │   │       ├── stoneHalf.png
│   │   │   │       ├── stoneHalf_right.png
│   │   │   │       ├── stoneHill_left.png
│   │   │   │       ├── stoneHill_right.png
│   │   │   │       ├── stoneLeft.png
│   │   │   │       ├── stoneMid.png
│   │   │   │       ├── stone.png
│   │   │   │       └── stoneRight.png
│   │   │   ├── HUD
│   │   │   │   ├── hud0.png
│   │   │   │   ├── hud1.png
│   │   │   │   ├── hud2.png
│   │   │   │   ├── hud3.png
│   │   │   │   ├── hud4.png
│   │   │   │   ├── hud5.png
│   │   │   │   ├── hud6.png
│   │   │   │   ├── hud7.png
│   │   │   │   ├── hud8.png
│   │   │   │   ├── hud9.png
│   │   │   │   ├── hudCoin.png
│   │   │   │   ├── hudHeart_empty.png
│   │   │   │   ├── hudHeart_full.png
│   │   │   │   ├── hudHeart_half.png
│   │   │   │   ├── hudJewel_blue_empty.png
│   │   │   │   ├── hudJewel_blue.png
│   │   │   │   ├── hudJewel_green_empty.png
│   │   │   │   ├── hudJewel_green.png
│   │   │   │   ├── hudJewel_red_empty.png
│   │   │   │   ├── hudJewel_red.png
│   │   │   │   ├── hudJewel_yellow_empty.png
│   │   │   │   ├── hudJewel_yellow.png
│   │   │   │   ├── hudKey_blue_empty.png
│   │   │   │   ├── hudKey_blue.png
│   │   │   │   ├── hudKey_green_empty.png
│   │   │   │   ├── hudKey_green.png
│   │   │   │   ├── hudKey_red_empty.png
│   │   │   │   ├── hudKey_red.png
│   │   │   │   ├── hudKey_yellow_empty.png
│   │   │   │   ├── hudKey_yellow.png
│   │   │   │   ├── hudPlayer_beige.png
│   │   │   │   ├── hudPlayer_blue.png
│   │   │   │   ├── hudPlayer_green.png
│   │   │   │   ├── hudPlayer_pink.png
│   │   │   │   ├── hudPlayer_yellow.png
│   │   │   │   └── hudX.png
│   │   │   ├── Items
│   │   │   │   ├── coinBronze.png
│   │   │   │   ├── coinGold.png
│   │   │   │   ├── coinSilver.png
│   │   │   │   ├── flagBlue1.png
│   │   │   │   ├── flagBlue2.png
│   │   │   │   ├── flagBlue_down.png
│   │   │   │   ├── flagGreen1.png
│   │   │   │   ├── flagGreen2.png
│   │   │   │   ├── flagGreen_down.png
│   │   │   │   ├── flagRed1.png
│   │   │   │   ├── flagRed2.png
│   │   │   │   ├── flagRed_down.png
│   │   │   │   ├── flagYellow1.png
│   │   │   │   ├── flagYellow2.png
│   │   │   │   ├── flagYellow_down.png
│   │   │   │   ├── gemBlue.png
│   │   │   │   ├── gemGreen.png
│   │   │   │   ├── gemRed.png
│   │   │   │   ├── gemYellow.png
│   │   │   │   ├── keyBlue.png
│   │   │   │   ├── keyGreen.png
│   │   │   │   ├── keyRed.png
│   │   │   │   ├── keyYellow.png
│   │   │   │   └── star.png
│   │   │   ├── Particles
│   │   │   │   ├── brickBrown.png
│   │   │   │   ├── brickGrey.png
│   │   │   │   └── fireball.png
│   │   │   ├── Players
│   │   │   │   ├── 128x256
│   │   │   │   │   ├── Beige
│   │   │   │   │   │   ├── alienBeige_climb1.png
│   │   │   │   │   │   ├── alienBeige_climb2.png
│   │   │   │   │   │   ├── alienBeige_duck.png
│   │   │   │   │   │   ├── alienBeige_front.png
│   │   │   │   │   │   ├── alienBeige_hit.png
│   │   │   │   │   │   ├── alienBeige_jump.png
│   │   │   │   │   │   ├── alienBeige_stand.png
│   │   │   │   │   │   ├── alienBeige_swim1.png
│   │   │   │   │   │   ├── alienBeige_swim2.png
│   │   │   │   │   │   ├── alienBeige_walk1.png
│   │   │   │   │   │   └── alienBeige_walk2.png
│   │   │   │   │   ├── Blue
│   │   │   │   │   │   ├── alienBlue_climb1.png
│   │   │   │   │   │   ├── alienBlue_climb2.png
│   │   │   │   │   │   ├── alienBlue_duck.png
│   │   │   │   │   │   ├── alienBlue_front.png
│   │   │   │   │   │   ├── alienBlue_hit.png
│   │   │   │   │   │   ├── alienBlue_jump.png
│   │   │   │   │   │   ├── alienBlue_stand.png
│   │   │   │   │   │   ├── alienBlue_swim1.png
│   │   │   │   │   │   ├── alienBlue_swim2.png
│   │   │   │   │   │   ├── alienBlue_walk1.png
│   │   │   │   │   │   └── alienBlue_walk2.png
│   │   │   │   │   ├── Green
│   │   │   │   │   │   ├── alienGreen_climb1.png
│   │   │   │   │   │   ├── alienGreen_climb2.png
│   │   │   │   │   │   ├── alienGreen_duck.png
│   │   │   │   │   │   ├── alienGreen_front.png
│   │   │   │   │   │   ├── alienGreen_hit.png
│   │   │   │   │   │   ├── alienGreen_jump.png
│   │   │   │   │   │   ├── alienGreen_stand.png
│   │   │   │   │   │   ├── alienGreen_swim1.png
│   │   │   │   │   │   ├── alienGreen_swim2.png
│   │   │   │   │   │   ├── alienGreen_walk1.png
│   │   │   │   │   │   └── alienGreen_walk2.png
│   │   │   │   │   ├── Pink
│   │   │   │   │   │   ├── alienPink_climb1.png
│   │   │   │   │   │   ├── alienPink_climb2.png
│   │   │   │   │   │   ├── alienPink_duck.png
│   │   │   │   │   │   ├── alienPink_front.png
│   │   │   │   │   │   ├── alienPink_hit.png
│   │   │   │   │   │   ├── alienPink_jump.png
│   │   │   │   │   │   ├── alienPink_stand.png
│   │   │   │   │   │   ├── alienPink_swim1.png
│   │   │   │   │   │   ├── alienPink_swim2.png
│   │   │   │   │   │   ├── alienPink_walk1.png
│   │   │   │   │   │   └── alienPink_walk2.png
│   │   │   │   │   └── Yellow
│   │   │   │   │       ├── alienYellow_climb1.png
│   │   │   │   │       ├── alienYellow_climb2.png
│   │   │   │   │       ├── alienYellow_duck.png
│   │   │   │   │       ├── alienYellow_front.png
│   │   │   │   │       ├── alienYellow_hit.png
│   │   │   │   │       ├── alienYellow_jump.png
│   │   │   │   │       ├── alienYellow_stand.png
│   │   │   │   │       ├── alienYellow_swim1.png
│   │   │   │   │       ├── alienYellow_swim2.png
│   │   │   │   │       ├── alienYellow_walk1.png
│   │   │   │   │       └── alienYellow_walk2.png
│   │   │   │   └── Variable sizes
│   │   │   │       ├── Beige
│   │   │   │       │   ├── alienBiege_climb1.png
│   │   │   │       │   ├── alienBiege_climb2.png
│   │   │   │       │   ├── alienBiege_duck.png
│   │   │   │       │   ├── alienBiege_front.png
│   │   │   │       │   ├── alienBiege_hit.png
│   │   │   │       │   ├── alienBiege_jump.png
│   │   │   │       │   ├── alienBiege_stand.png
│   │   │   │       │   ├── alienBiege_swim1.png
│   │   │   │       │   ├── alienBiege_swim2.png
│   │   │   │       │   ├── alienBiege_walk1.png
│   │   │   │       │   └── alienBiege_walk2.png
│   │   │   │       ├── Blue
│   │   │   │       │   ├── alienBlue_climb1.png
│   │   │   │       │   ├── alienBlue_climb2.png
│   │   │   │       │   ├── alienBlue_duck.png
│   │   │   │       │   ├── alienBlue_front.png
│   │   │   │       │   ├── alienBlue_hit.png
│   │   │   │       │   ├── alienBlue_jump.png
│   │   │   │       │   ├── alienBlue_stand.png
│   │   │   │       │   ├── alienBlue_swim1.png
│   │   │   │       │   ├── alienBlue_swim2.png
│   │   │   │       │   ├── alienBlue_walk1.png
│   │   │   │       │   └── alienBlue_walk2.png
│   │   │   │       ├── Green
│   │   │   │       │   ├── alienGreen_climb1.png
│   │   │   │       │   ├── alienGreen_climb2.png
│   │   │   │       │   ├── alienGreen_duck.png
│   │   │   │       │   ├── alienGreen_front.png
│   │   │   │       │   ├── alienGreen_hit.png
│   │   │   │       │   ├── alienGreen_jump.png
│   │   │   │       │   ├── alienGreen_stand.png
│   │   │   │       │   ├── alienGreen_swim1.png
│   │   │   │       │   ├── alienGreen_swim2.png
│   │   │   │       │   ├── alienGreen_walk1.png
│   │   │   │       │   └── alienGreen_walk2.png
│   │   │   │       ├── Pink
│   │   │   │       │   ├── alienPink_climb1.png
│   │   │   │       │   ├── alienPink_climb2.png
│   │   │   │       │   ├── alienPink_duck.png
│   │   │   │       │   ├── alienPink_front.png
│   │   │   │       │   ├── alienPink_hit.png
│   │   │   │       │   ├── alienPink_jump.png
│   │   │   │       │   ├── alienPink_stand.png
│   │   │   │       │   ├── alienPink_swim1.png
│   │   │   │       │   ├── alienPink_swim2.png
│   │   │   │       │   ├── alienPink_walk1.png
│   │   │   │       │   └── alienPink_walk2.png
│   │   │   │       └── Yellow
│   │   │   │           ├── alienYellow_climb1.png
│   │   │   │           ├── alienYellow_climb2.png
│   │   │   │           ├── alienYellow_duck.png
│   │   │   │           ├── alienYellow_front.png
│   │   │   │           ├── alienYellow_hit.png
│   │   │   │           ├── alienYellow_jump.png
│   │   │   │           ├── alienYellow_stand.png
│   │   │   │           ├── alienYellow_swim1.png
│   │   │   │           ├── alienYellow_swim2.png
│   │   │   │           ├── alienYellow_walk1.png
│   │   │   │           └── alienYellow_walk2.png
│   │   │   └── Tiles
│   │   │       ├── bomb.png
│   │   │       ├── bombWhite.png
│   │   │       ├── boxCoin_boxed.png
│   │   │       ├── boxCoin_disabled_boxed.png
│   │   │       ├── boxCoin_disabled.png
│   │   │       ├── boxCoin.png
│   │   │       ├── boxCrate_double.png
│   │   │       ├── boxCrate.png
│   │   │       ├── boxCrate_single.png
│   │   │       ├── boxCrate_warning.png
│   │   │       ├── boxExplosive_disabled.png
│   │   │       ├── boxExplosive.png
│   │   │       ├── boxExplosive_used.png
│   │   │       ├── boxItem_boxed.png
│   │   │       ├── boxItem_disabled_boxed.png
│   │   │       ├── boxItem_disabled.png
│   │   │       ├── boxItem.png
│   │   │       ├── brickBrown.png
│   │   │       ├── brickGrey.png
│   │   │       ├── bridgeA.png
│   │   │       ├── bridgeB.png
│   │   │       ├── bush.png
│   │   │       ├── cactus.png
│   │   │       ├── chain.png
│   │   │       ├── doorClosed_mid.png
│   │   │       ├── doorClosed_top.png
│   │   │       ├── doorOpen_mid.png
│   │   │       ├── doorOpen_top.png
│   │   │       ├── fenceBroken.png
│   │   │       ├── fence.png
│   │   │       ├── grass.png
│   │   │       ├── ladderMid.png
│   │   │       ├── ladderTop.png
│   │   │       ├── lava.png
│   │   │       ├── lavaTop_high.png
│   │   │       ├── lavaTop_low.png
│   │   │       ├── leverLeft.png
│   │   │       ├── leverMid.png
│   │   │       ├── leverRight.png
│   │   │       ├── lockBlue.png
│   │   │       ├── lockGreen.png
│   │   │       ├── lockRed.png
│   │   │       ├── lockYellow.png
│   │   │       ├── mushroomBrown.png
│   │   │       ├── mushroomRed.png
│   │   │       ├── plantPurple.png
│   │   │       ├── rock.png
│   │   │       ├── signExit.png
│   │   │       ├── signLeft.png
│   │   │       ├── sign.png
│   │   │       ├── signRight.png
│   │   │       ├── snow.png
│   │   │       ├── spikes.png
│   │   │       ├── spring.png
│   │   │       ├── sprung.png
│   │   │       ├── switchBlue.png
│   │   │       ├── switchBlue_pressed.png
│   │   │       ├── switchGreen.png
│   │   │       ├── switchGreen_pressed.png
│   │   │       ├── switchRed.png
│   │   │       ├── switchRed_pressed.png
│   │   │       ├── switchYellow.png
│   │   │       ├── switchYellow_pressed.png
│   │   │       ├── torch1.png
│   │   │       ├── torch2.png
│   │   │       ├── torchOff.png
│   │   │       ├── water.png
│   │   │       ├── waterTop_high.png
│   │   │       ├── waterTop_low.png
│   │   │       ├── weightAttached.png
│   │   │       ├── weight.png
│   │   │       └── window.png
│   │   ├── kenney-abstract
│   │   │   ├── Backgrounds
│   │   │   │   ├── set1_background.png
│   │   │   │   ├── set1_hills.png
│   │   │   │   ├── set1_tiles.png
│   │   │   │   ├── set2_background.png
│   │   │   │   ├── set2_hills.png
│   │   │   │   ├── set2_tiles.png
│   │   │   │   ├── set3_background.png
│   │   │   │   ├── set3_hills.png
│   │   │   │   ├── set3_tiles.png
│   │   │   │   ├── set4_background.png
│   │   │   │   ├── set4_hills.png
│   │   │   │   └── set4_tiles.png
│   │   │   ├── Enemies
│   │   │   │   ├── enemyFloating_1.png
│   │   │   │   ├── enemyFloating_2.png
│   │   │   │   ├── enemyFloating_3.png
│   │   │   │   ├── enemyFloating_4.png
│   │   │   │   ├── enemyFlying_1.png
│   │   │   │   ├── enemyFlying_2.png
│   │   │   │   ├── enemyFlying_3.png
│   │   │   │   ├── enemyFlying_4.png
│   │   │   │   ├── enemyFlyingAlt_1.png
│   │   │   │   ├── enemyFlyingAlt_2.png
│   │   │   │   ├── enemyFlyingAlt_3.png
│   │   │   │   ├── enemyFlyingAlt_4.png
│   │   │   │   ├── enemySpikey_1.png
│   │   │   │   ├── enemySpikey_2.png
│   │   │   │   ├── enemySpikey_3.png
│   │   │   │   ├── enemySpikey_4.png
│   │   │   │   ├── enemySwimming_1.png
│   │   │   │   ├── enemySwimming_2.png
│   │   │   │   ├── enemySwimming_3.png
│   │   │   │   ├── enemySwimming_4.png
│   │   │   │   ├── enemyWalking_1.png
│   │   │   │   ├── enemyWalking_2.png
│   │   │   │   ├── enemyWalking_3.png
│   │   │   │   └── enemyWalking_4.png
│   │   │   ├── GroundThemes
│   │   │   │   ├── Blue
│   │   │   │   │   ├── $.png
│   │   │   │   │   ├── 1.png
│   │   │   │   │   ├── 2.png
│   │   │   │   │   ├── a.png
│   │   │   │   │   ├── b.png
│   │   │   │   │   ├── default.png
│   │   │   │   │   ├── L.png
│   │   │   │   │   ├──  .png
│   │   │   │   │   ├── !.png
│   │   │   │   │   ├── #.png
│   │   │   │   │   ├── %.png
│   │   │   │   │   ├── &.png
│   │   │   │   │   ├── =.png
│   │   │   │   │   ├── ^.png
│   │   │   │   │   └── S.png
│   │   │   │   ├── Brown
│   │   │   │   │   ├── $.png
│   │   │   │   │   ├── 1.png
│   │   │   │   │   ├── 2.png
│   │   │   │   │   ├── a.png
│   │   │   │   │   ├── b.png
│   │   │   │   │   ├── default.png
│   │   │   │   │   ├── L.png
│   │   │   │   │   ├──  .png
│   │   │   │   │   ├── !.png
│   │   │   │   │   ├── #.png
│   │   │   │   │   ├── %.png
│   │   │   │   │   ├── &.png
│   │   │   │   │   ├── =.png
│   │   │   │   │   ├── ^.png
│   │   │   │   │   └── S.png
│   │   │   │   ├── Green
│   │   │   │   │   ├── $.png
│   │   │   │   │   ├── 1.png
│   │   │   │   │   ├── 2.png
│   │   │   │   │   ├── a.png
│   │   │   │   │   ├── b.png
│   │   │   │   │   ├── default.png
│   │   │   │   │   ├── L.png
│   │   │   │   │   ├──  .png
│   │   │   │   │   ├── !.png
│   │   │   │   │   ├── #.png
│   │   │   │   │   ├── %.png
│   │   │   │   │   ├── &.png
│   │   │   │   │   ├── =.png
│   │   │   │   │   ├── ^.png
│   │   │   │   │   └── S.png
│   │   │   │   └── Yellow
│   │   │   │       ├── $.png
│   │   │   │       ├── 1.png
│   │   │   │       ├── 2.png
│   │   │   │       ├── a.png
│   │   │   │       ├── b.png
│   │   │   │       ├── default.png
│   │   │   │       ├── L.png
│   │   │   │       ├──  .png
│   │   │   │       ├── !.png
│   │   │   │       ├── #.png
│   │   │   │       ├── %.png
│   │   │   │       ├── &.png
│   │   │   │       ├── =.png
│   │   │   │       ├── ^.png
│   │   │   │       └── S.png
│   │   │   ├── Items
│   │   │   │   ├── blueCrystal.png
│   │   │   │   ├── blueGem.png
│   │   │   │   ├── blueJewel.png
│   │   │   │   ├── discGreen.png
│   │   │   │   ├── discRed.png
│   │   │   │   ├── greenCrystal.png
│   │   │   │   ├── greenGem.png
│   │   │   │   ├── greenJewel.png
│   │   │   │   ├── keyGreen.png
│   │   │   │   ├── keyRed.png
│   │   │   │   ├── outlineCrystal.png
│   │   │   │   ├── outlineDisc_alt.png
│   │   │   │   ├── outlineDisc.png
│   │   │   │   ├── outlineGem.png
│   │   │   │   ├── outlineJewel.png
│   │   │   │   ├── outlineKey.png
│   │   │   │   ├── outlinePuzzle.png
│   │   │   │   ├── puzzleGreen.png
│   │   │   │   ├── puzzleRed.png
│   │   │   │   ├── redCrystal.png
│   │   │   │   ├── redGem.png
│   │   │   │   ├── redJewel.png
│   │   │   │   ├── yellowCrystal.png
│   │   │   │   ├── yellowGem.png
│   │   │   │   └── yellowJewel.png
│   │   │   ├── Other
│   │   │   │   ├── blockBrown_broken.png
│   │   │   │   ├── blockBrown.png
│   │   │   │   ├── blockGreen_key.png
│   │   │   │   ├── blockGreen_lock.png
│   │   │   │   ├── blockGreen.png
│   │   │   │   ├── blockGreen_puzzle.png
│   │   │   │   ├── blockGrey_broken.png
│   │   │   │   ├── blockGrey.png
│   │   │   │   ├── blockRed_key.png
│   │   │   │   ├── blockRed_lock.png
│   │   │   │   ├── blockRed.png
│   │   │   │   ├── blockRed_puzzle.png
│   │   │   │   ├── buttonFloor.png
│   │   │   │   ├── buttonFloor_pressed.png
│   │   │   │   ├── buttonGreen.png
│   │   │   │   ├── buttonGreen_pressed.png
│   │   │   │   ├── buttonRed.png
│   │   │   │   ├── buttonRed_pressed.png
│   │   │   │   ├── doorGreen_lock.png
│   │   │   │   ├── doorGreen.png
│   │   │   │   ├── doorGreen_top.png
│   │   │   │   ├── doorOpen.png
│   │   │   │   ├── doorOpen_top.png
│   │   │   │   ├── doorRed_lock.png
│   │   │   │   ├── doorRed.png
│   │   │   │   ├── doorRed_top.png
│   │   │   │   ├── fenceBroken.png
│   │   │   │   ├── fenceLeft.png
│   │   │   │   ├── fenceMid.png
│   │   │   │   ├── fenceOpen.png
│   │   │   │   ├── fence.png
│   │   │   │   ├── fenceRight.png
│   │   │   │   ├── flagGreen_down.png
│   │   │   │   ├── flagGreen_up.png
│   │   │   │   ├── flagRed_down.png
│   │   │   │   ├── flagRed_up.png
│   │   │   │   ├── fluidBlue.png
│   │   │   │   ├── fluidBlue_top.png
│   │   │   │   ├── fluidBrown.png
│   │   │   │   ├── fluidBrown_top.png
│   │   │   │   ├── fluidGreen.png
│   │   │   │   ├── fluidGreen_top.png
│   │   │   │   ├── fluidRed.png
│   │   │   │   ├── fluidRed_top.png
│   │   │   │   ├── ladderNarrow_mid.png
│   │   │   │   ├── ladderNarrow_top.png
│   │   │   │   ├── ladderWide_mid.png
│   │   │   │   ├── ladderWide_top.png
│   │   │   │   ├── lockGreenBottom.png
│   │   │   │   ├── lockGreenLeft.png
│   │   │   │   ├── lockGreenLock.png
│   │   │   │   ├── lockGreenMid.png
│   │   │   │   ├── lockGreen.png
│   │   │   │   ├── lockGreenRight.png
│   │   │   │   ├── lockGreenTop.png
│   │   │   │   ├── lockRedBottom.png
│   │   │   │   ├── lockRedLeft.png
│   │   │   │   ├── lockRedLock.png
│   │   │   │   ├── lockRedMid.png
│   │   │   │   ├── lockRed.png
│   │   │   │   ├── lockRedRight.png
│   │   │   │   ├── lockRedTop.png
│   │   │   │   ├── plantBlue_1.png
│   │   │   │   ├── plantBlue_2.png
│   │   │   │   ├── plantBlue_3.png
│   │   │   │   ├── plantBlue_4.png
│   │   │   │   ├── plantBlue_5.png
│   │   │   │   ├── plantBlue_6.png
│   │   │   │   ├── plantBottom_1.png
│   │   │   │   ├── plantBottom_2.png
│   │   │   │   ├── plantDark_1.png
│   │   │   │   ├── plantDark_2.png
│   │   │   │   ├── plantDark_3.png
│   │   │   │   ├── plantDark_4.png
│   │   │   │   ├── plantDark_5.png
│   │   │   │   ├── plantDark_6.png
│   │   │   │   ├── plantGreen_1.png
│   │   │   │   ├── plantGreen_2.png
│   │   │   │   ├── plantGreen_3.png
│   │   │   │   ├── plantGreen_4.png
│   │   │   │   ├── plantGreen_5.png
│   │   │   │   ├── plantGreen_6.png
│   │   │   │   ├── plantLeaves_1.png
│   │   │   │   ├── plantLeaves_3.png
│   │   │   │   ├── plantRed_1.png
│   │   │   │   ├── plantRed_2.png
│   │   │   │   ├── plantRed_3.png
│   │   │   │   ├── plantRed_4.png
│   │   │   │   ├── plantRed_5.png
│   │   │   │   ├── plantRed_6.png
│   │   │   │   ├── plantStem_cornerLeft.png
│   │   │   │   ├── plantStem_cornerRight.png
│   │   │   │   ├── plantStem_cross.png
│   │   │   │   ├── plantStem_horizontal.png
│   │   │   │   ├── plantStem_Tleft.png
│   │   │   │   ├── plantStem_Tright.png
│   │   │   │   ├── plantStem_vertical.png
│   │   │   │   ├── plantThorns_horizontal.png
│   │   │   │   ├── plantThorns_vertical.png
│   │   │   │   ├── plantTop_blue.png
│   │   │   │   ├── plantTop_leaves.png
│   │   │   │   ├── plantTop_red.png
│   │   │   │   ├── plantTop_yellow.png
│   │   │   │   ├── signArrow_BL.png
│   │   │   │   ├── signArrow_BR.png
│   │   │   │   ├── signArrow_down.png
│   │   │   │   ├── signArrow_left.png
│   │   │   │   ├── signArrow.png
│   │   │   │   ├── signArrow_right.png
│   │   │   │   ├── signArrow_TL.png
│   │   │   │   ├── signArrow_TR.png
│   │   │   │   ├── signArrow_up.png
│   │   │   │   ├── signLarge.png
│   │   │   │   ├── signpost.png
│   │   │   │   ├── signSmall.png
│   │   │   │   ├── spikesHigh.png
│   │   │   │   ├── spikesLow.png
│   │   │   │   ├── switchGreen_left.png
│   │   │   │   ├── switchGreen_mid.png
│   │   │   │   ├── switchGreen_off.png
│   │   │   │   ├── switchGreen_on.png
│   │   │   │   ├── switchGreen_right.png
│   │   │   │   ├── switchRed_left.png
│   │   │   │   ├── switchRed_mid.png
│   │   │   │   ├── switchRed_off.png
│   │   │   │   ├── switchRed_on.png
│   │   │   │   ├── switchRed_right.png
│   │   │   │   ├── vine_bottomAlt.png
│   │   │   │   ├── vine_bottom.png
│   │   │   │   └── vine.png
│   │   │   ├── Players
│   │   │   │   ├── Player Blue
│   │   │   │   │   ├── playerBlue_dead.png
│   │   │   │   │   ├── playerBlue_duck.png
│   │   │   │   │   ├── playerBlue_fall.png
│   │   │   │   │   ├── playerBlue_hit.png
│   │   │   │   │   ├── playerBlue_roll.png
│   │   │   │   │   ├── playerBlue_stand.png
│   │   │   │   │   ├── playerBlue_swim1.png
│   │   │   │   │   ├── playerBlue_swim2.png
│   │   │   │   │   ├── playerBlue_switch1.png
│   │   │   │   │   ├── playerBlue_switch2.png
│   │   │   │   │   ├── playerBlue_up1.png
│   │   │   │   │   ├── playerBlue_up2.png
│   │   │   │   │   ├── playerBlue_up3.png
│   │   │   │   │   ├── playerBlue_walk1.png
│   │   │   │   │   ├── playerBlue_walk2.png
│   │   │   │   │   ├── playerBlue_walk3.png
│   │   │   │   │   ├── playerBlue_walk4.png
│   │   │   │   │   └── playerBlue_walk5.png
│   │   │   │   ├── Player Green
│   │   │   │   │   ├── playerGreen_dead.png
│   │   │   │   │   ├── playerGreen_duck.png
│   │   │   │   │   ├── playerGreen_fall.png
│   │   │   │   │   ├── playerGreen_hit.png
│   │   │   │   │   ├── playerGreen_roll.png
│   │   │   │   │   ├── playerGreen_stand.png
│   │   │   │   │   ├── playerGreen_swim1.png
│   │   │   │   │   ├── playerGreen_swim2.png
│   │   │   │   │   ├── playerGreen_switch1.png
│   │   │   │   │   ├── playerGreen_switch2.png
│   │   │   │   │   ├── playerGreen_up1.png
│   │   │   │   │   ├── playerGreen_up2.png
│   │   │   │   │   ├── playerGreen_up3.png
│   │   │   │   │   ├── playerGreen_walk1.png
│   │   │   │   │   ├── playerGreen_walk2.png
│   │   │   │   │   ├── playerGreen_walk3.png
│   │   │   │   │   ├── playerGreen_walk4.png
│   │   │   │   │   └── playerGreen_walk5.png
│   │   │   │   ├── Player Grey
│   │   │   │   │   ├── playerGrey_dead.png
│   │   │   │   │   ├── playerGrey_duck.png
│   │   │   │   │   ├── playerGrey_fall.png
│   │   │   │   │   ├── playerGrey_hit.png
│   │   │   │   │   ├── playerGrey_roll.png
│   │   │   │   │   ├── playerGrey_stand.png
│   │   │   │   │   ├── playerGrey_swim1.png
│   │   │   │   │   ├── playerGrey_swim2.png
│   │   │   │   │   ├── playerGrey_switch1.png
│   │   │   │   │   ├── playerGrey_switch2.png
│   │   │   │   │   ├── playerGrey_up1.png
│   │   │   │   │   ├── playerGrey_up2.png
│   │   │   │   │   ├── playerGrey_up3.png
│   │   │   │   │   ├── playerGrey_walk1.png
│   │   │   │   │   ├── playerGrey_walk2.png
│   │   │   │   │   ├── playerGrey_walk3.png
│   │   │   │   │   ├── playerGrey_walk4.png
│   │   │   │   │   └── playerGrey_walk5.png
│   │   │   │   └── Player Red
│   │   │   │       ├── playerRed_dead.png
│   │   │   │       ├── playerRed_duck.png
│   │   │   │       ├── playerRed_fall.png
│   │   │   │       ├── playerRed_hit.png
│   │   │   │       ├── playerRed_roll.png
│   │   │   │       ├── playerRed_stand.png
│   │   │   │       ├── playerRed_swim1.png
│   │   │   │       ├── playerRed_swim2.png
│   │   │   │       ├── playerRed_switch1.png
│   │   │   │       ├── playerRed_switch2.png
│   │   │   │       ├── playerRed_up1.png
│   │   │   │       ├── playerRed_up2.png
│   │   │   │       ├── playerRed_up3.png
│   │   │   │       ├── playerRed_walk1.png
│   │   │   │       ├── playerRed_walk2.png
│   │   │   │       ├── playerRed_walk3.png
│   │   │   │       ├── playerRed_walk4.png
│   │   │   │       └── playerRed_walk5.png
│   │   │   └── Tiles
│   │   │       ├── Blue tiles
│   │   │       │   ├── tileBlue_01.png
│   │   │       │   ├── tileBlue_02.png
│   │   │       │   ├── tileBlue_03.png
│   │   │       │   ├── tileBlue_04.png
│   │   │       │   ├── tileBlue_05.png
│   │   │       │   ├── tileBlue_06.png
│   │   │       │   ├── tileBlue_07.png
│   │   │       │   ├── tileBlue_08.png
│   │   │       │   ├── tileBlue_09.png
│   │   │       │   ├── tileBlue_10.png
│   │   │       │   ├── tileBlue_11.png
│   │   │       │   ├── tileBlue_12.png
│   │   │       │   ├── tileBlue_13.png
│   │   │       │   ├── tileBlue_14.png
│   │   │       │   ├── tileBlue_15.png
│   │   │       │   ├── tileBlue_16.png
│   │   │       │   ├── tileBlue_17.png
│   │   │       │   ├── tileBlue_18.png
│   │   │       │   ├── tileBlue_19.png
│   │   │       │   ├── tileBlue_20.png
│   │   │       │   ├── tileBlue_21.png
│   │   │       │   ├── tileBlue_22.png
│   │   │       │   ├── tileBlue_23.png
│   │   │       │   ├── tileBlue_24.png
│   │   │       │   ├── tileBlue_25.png
│   │   │       │   ├── tileBlue_26.png
│   │   │       │   └── tileBlue_27.png
│   │   │       ├── Brown tiles
│   │   │       │   ├── tileBrown_01.png
│   │   │       │   ├── tileBrown_02.png
│   │   │       │   ├── tileBrown_03.png
│   │   │       │   ├── tileBrown_04.png
│   │   │       │   ├── tileBrown_05.png
│   │   │       │   ├── tileBrown_06.png
│   │   │       │   ├── tileBrown_07.png
│   │   │       │   ├── tileBrown_08.png
│   │   │       │   ├── tileBrown_09.png
│   │   │       │   ├── tileBrown_10.png
│   │   │       │   ├── tileBrown_11.png
│   │   │       │   ├── tileBrown_12.png
│   │   │       │   ├── tileBrown_13.png
│   │   │       │   ├── tileBrown_14.png
│   │   │       │   ├── tileBrown_15.png
│   │   │       │   ├── tileBrown_16.png
│   │   │       │   ├── tileBrown_17.png
│   │   │       │   ├── tileBrown_18.png
│   │   │       │   ├── tileBrown_19.png
│   │   │       │   ├── tileBrown_20.png
│   │   │       │   ├── tileBrown_21.png
│   │   │       │   ├── tileBrown_22.png
│   │   │       │   ├── tileBrown_23.png
│   │   │       │   ├── tileBrown_24.png
│   │   │       │   ├── tileBrown_25.png
│   │   │       │   ├── tileBrown_26.png
│   │   │       │   └── tileBrown_27.png
│   │   │       ├── Green tiles
│   │   │       │   ├── tileGreen_01.png
│   │   │       │   ├── tileGreen_02.png
│   │   │       │   ├── tileGreen_03.png
│   │   │       │   ├── tileGreen_04.png
│   │   │       │   ├── tileGreen_05.png
│   │   │       │   ├── tileGreen_06.png
│   │   │       │   ├── tileGreen_07.png
│   │   │       │   ├── tileGreen_08.png
│   │   │       │   ├── tileGreen_09.png
│   │   │       │   ├── tileGreen_10.png
│   │   │       │   ├── tileGreen_11.png
│   │   │       │   ├── tileGreen_12.png
│   │   │       │   ├── tileGreen_13.png
│   │   │       │   ├── tileGreen_14.png
│   │   │       │   ├── tileGreen_15.png
│   │   │       │   ├── tileGreen_16.png
│   │   │       │   ├── tileGreen_17.png
│   │   │       │   ├── tileGreen_18.png
│   │   │       │   ├── tileGreen_19.png
│   │   │       │   ├── tileGreen_20.png
│   │   │       │   ├── tileGreen_21.png
│   │   │       │   ├── tileGreen_22.png
│   │   │       │   ├── tileGreen_23.png
│   │   │       │   ├── tileGreen_24.png
│   │   │       │   ├── tileGreen_25.png
│   │   │       │   ├── tileGreen_26.png
│   │   │       │   └── tileGreen_27.png
│   │   │       └── Yellow tiles
│   │   │           ├── tileYellow_01.png
│   │   │           ├── tileYellow_02.png
│   │   │           ├── tileYellow_03.png
│   │   │           ├── tileYellow_04.png
│   │   │           ├── tileYellow_05.png
│   │   │           ├── tileYellow_06.png
│   │   │           ├── tileYellow_07.png
│   │   │           ├── tileYellow_08.png
│   │   │           ├── tileYellow_09.png
│   │   │           ├── tileYellow_10.png
│   │   │           ├── tileYellow_11.png
│   │   │           ├── tileYellow_12.png
│   │   │           ├── tileYellow_13.png
│   │   │           ├── tileYellow_14.png
│   │   │           ├── tileYellow_15.png
│   │   │           ├── tileYellow_16.png
│   │   │           ├── tileYellow_17.png
│   │   │           ├── tileYellow_18.png
│   │   │           ├── tileYellow_19.png
│   │   │           ├── tileYellow_20.png
│   │   │           ├── tileYellow_21.png
│   │   │           ├── tileYellow_22.png
│   │   │           ├── tileYellow_23.png
│   │   │           ├── tileYellow_24.png
│   │   │           ├── tileYellow_25.png
│   │   │           ├── tileYellow_26.png
│   │   │           └── tileYellow_27.png
│   │   ├── misc_assets
│   │   │   ├── ball_soccer1.png
│   │   │   ├── ball_soccer2.png
│   │   │   ├── ball_tennis1.png
│   │   │   ├── ball_volley2.png
│   │   │   ├── blockGreen.png
│   │   │   ├── blockRed.png
│   │   │   ├── bomb.png
│   │   │   ├── bunny2_jump.png
│   │   │   ├── bunny2_ready.png
│   │   │   ├── bunny2_stand.png
│   │   │   ├── bunny2_walk1.png
│   │   │   ├── bunny2_walk2.png
│   │   │   ├── cannonBall.png
│   │   │   ├── car_black_1.png
│   │   │   ├── car_black_2.png
│   │   │   ├── car_black_3.png
│   │   │   ├── car_black_4.png
│   │   │   ├── car_black_5.png
│   │   │   ├── car_blue_1.png
│   │   │   ├── car_blue_2.png
│   │   │   ├── car_blue_3.png
│   │   │   ├── car_blue_4.png
│   │   │   ├── car_blue_5.png
│   │   │   ├── car_green_1.png
│   │   │   ├── car_green_2.png
│   │   │   ├── car_green_3.png
│   │   │   ├── car_green_4.png
│   │   │   ├── car_green_5.png
│   │   │   ├── car_red_1.png
│   │   │   ├── car_red_2.png
│   │   │   ├── car_red_3.png
│   │   │   ├── car_red_4.png
│   │   │   ├── car_red_5.png
│   │   │   ├── carrot.png
│   │   │   ├── car_yellow_1.png
│   │   │   ├── car_yellow_2.png
│   │   │   ├── car_yellow_3.png
│   │   │   ├── car_yellow_4.png
│   │   │   ├── car_yellow_5.png
│   │   │   ├── character10.png
│   │   │   ├── character11.png
│   │   │   ├── character12.png
│   │   │   ├── character13.png
│   │   │   ├── character1.png
│   │   │   ├── character2.png
│   │   │   ├── character3.png
│   │   │   ├── character4.png
│   │   │   ├── character5.png
│   │   │   ├── character6.png
│   │   │   ├── character7.png
│   │   │   ├── character8.png
│   │   │   ├── character9.png
│   │   │   ├── cheese.png
│   │   │   ├── dirt_2.png
│   │   │   ├── dirt.png
│   │   │   ├── doorOpen_mid.png
│   │   │   ├── doorOpen_top.png
│   │   │   ├── elementStone007.png
│   │   │   ├── elementWood044.png
│   │   │   ├── enemyFloating_1b.png
│   │   │   ├── enemyFloating_1.png
│   │   │   ├── enemyFloating_2.png
│   │   │   ├── enemyFloating_3.png
│   │   │   ├── enemyFloating_4.png
│   │   │   ├── enemyFlying_1.png
│   │   │   ├── enemyFlying_2.png
│   │   │   ├── enemyFlying_3.png
│   │   │   ├── enemyFlying_4.png
│   │   │   ├── enemyShipBlack1.png
│   │   │   ├── enemyShipBlack2.png
│   │   │   ├── enemyShipBlack3.png
│   │   │   ├── enemyShipBlack4.png
│   │   │   ├── enemyShipBlack5.png
│   │   │   ├── enemyShipBlue1.png
│   │   │   ├── enemyShipBlue2.png
│   │   │   ├── enemyShipBlue3.png
│   │   │   ├── enemyShipBlue4.png
│   │   │   ├── enemyShipBlue5.png
│   │   │   ├── enemyShipGreen1.png
│   │   │   ├── enemyShipGreen2.png
│   │   │   ├── enemyShipGreen3.png
│   │   │   ├── enemyShipGreen4.png
│   │   │   ├── enemyShipGreen5.png
│   │   │   ├── enemyShipRed1.png
│   │   │   ├── enemyShipRed2.png
│   │   │   ├── enemyShipRed3.png
│   │   │   ├── enemyShipRed4.png
│   │   │   ├── enemyShipRed5.png
│   │   │   ├── enemySpikey_1b.png
│   │   │   ├── enemySpikey_1.png
│   │   │   ├── enemySpikey_2.png
│   │   │   ├── enemySpikey_3.png
│   │   │   ├── enemySpikey_4.png
│   │   │   ├── enemyWalking_1b.png
│   │   │   ├── enemyWalking_1.png
│   │   │   ├── enemyWalking_2.png
│   │   │   ├── enemyWalking_3.png
│   │   │   ├── enemyWalking_4.png
│   │   │   ├── explosion1.png
│   │   │   ├── explosion2.png
│   │   │   ├── explosion3.png
│   │   │   ├── explosion4.png
│   │   │   ├── explosion5.png
│   │   │   ├── fence_single.png
│   │   │   ├── fenceYellow.png
│   │   │   ├── finish2.png
│   │   │   ├── finish.png
│   │   │   ├── fire_1.png
│   │   │   ├── fire1.png
│   │   │   ├── fire_2.png
│   │   │   ├── fire_3.png
│   │   │   ├── fire_4.png
│   │   │   ├── fire_5.png
│   │   │   ├── fire_6.png
│   │   │   ├── fireball.png
│   │   │   ├── fishTile_072.png
│   │   │   ├── fishTile_074.png
│   │   │   ├── fishTile_076.png
│   │   │   ├── fishTile_078.png
│   │   │   ├── fishTile_080.png
│   │   │   ├── food1.png
│   │   │   ├── food2.png
│   │   │   ├── food3.png
│   │   │   ├── food4.png
│   │   │   ├── food5.png
│   │   │   ├── food6.png
│   │   │   ├── frog1.png
│   │   │   ├── frog2.png
│   │   │   ├── frog3.png
│   │   │   ├── frog4.png
│   │   │   ├── frog5.png
│   │   │   ├── frog6.png
│   │   │   ├── frog7.png
│   │   │   ├── fruit1.png
│   │   │   ├── fruit2.png
│   │   │   ├── fruit3.png
│   │   │   ├── fruit4.png
│   │   │   ├── fruit5.png
│   │   │   ├── fruit6.png
│   │   │   ├── gemBlue.png
│   │   │   ├── gemYellow.png
│   │   │   ├── genericItem_color_001.png
│   │   │   ├── genericItem_color_002.png
│   │   │   ├── genericItem_color_003.png
│   │   │   ├── genericItem_color_004.png
│   │   │   ├── genericItem_color_005.png
│   │   │   ├── genericItem_color_006.png
│   │   │   ├── groundA.png
│   │   │   ├── groundB.png
│   │   │   ├── groundC.png
│   │   │   ├── iconCircle_white.png
│   │   │   ├── keyBlue.png
│   │   │   ├── keyGreen.png
│   │   │   ├── keyRed2.png
│   │   │   ├── keyRed.png
│   │   │   ├── ladder_small.png
│   │   │   ├── laserBlue02.png
│   │   │   ├── laserBlue09.png
│   │   │   ├── laserGreen14.png
│   │   │   ├── laserRed11.png
│   │   │   ├── lock_blue.png
│   │   │   ├── lock_green.png
│   │   │   ├── lockRed2.png
│   │   │   ├── lock_red.png
│   │   │   ├── manBlue_silencer.png
│   │   │   ├── meteorBrown_big1.png
│   │   │   ├── meteorBrown_big2.png
│   │   │   ├── meteorBrown_big3.png
│   │   │   ├── meteorBrown_big4.png
│   │   │   ├── meteorGrey_big1.png
│   │   │   ├── meteorGrey_big2.png
│   │   │   ├── meteorGrey_big3.png
│   │   │   ├── meteorGrey_big4.png
│   │   │   ├── panel_wood.png
│   │   │   ├── playerShip1_blue.png
│   │   │   ├── playerShip1_green.png
│   │   │   ├── playerShip1_orange.png
│   │   │   ├── playerShip1_red.png
│   │   │   ├── playerShip2_blue.png
│   │   │   ├── playerShip2_green.png
│   │   │   ├── playerShip2_orange.png
│   │   │   ├── playerShip2_red.png
│   │   │   ├── playerShip3_blue.png
│   │   │   ├── playerShip3_green.png
│   │   │   ├── playerShip3_orange.png
│   │   │   ├── playerShip3_red.png
│   │   │   ├── powerupRed_star.png
│   │   │   ├── present1.png
│   │   │   ├── present2.png
│   │   │   ├── present3.png
│   │   │   ├── roadTile6b.png
│   │   │   ├── roadTile6.png
│   │   │   ├── robot_3Dblue.png
│   │   │   ├── robot_greenDrive1.png
│   │   │   ├── saw.png
│   │   │   ├── shield2.png
│   │   │   ├── ship_1.png
│   │   │   ├── ship_2.png
│   │   │   ├── ship_3.png
│   │   │   ├── ship_4.png
│   │   │   ├── ship_5.png
│   │   │   ├── ship_6.png
│   │   │   ├── spaceAstronauts_008.png
│   │   │   ├── spaceEffect1.png
│   │   │   ├── spaceEffect2.png
│   │   │   ├── spaceEffect3.png
│   │   │   ├── spaceEffect4.png
│   │   │   ├── spaceEffect5.png
│   │   │   ├── spaceEffect6.png
│   │   │   ├── spaceEffect7.png
│   │   │   ├── spaceEffect8.png
│   │   │   ├── spaceEffect9.png
│   │   │   ├── spaceMeteors_001.png
│   │   │   ├── spaceMeteors_002.png
│   │   │   ├── spaceMeteors_003.png
│   │   │   ├── spaceMeteors_004.png
│   │   │   ├── spaceRockets_001.png
│   │   │   ├── spaceRockets_002.png
│   │   │   ├── spaceRockets_003.png
│   │   │   ├── spaceRockets_004.png
│   │   │   ├── spaceShips_001.png
│   │   │   ├── spaceShips_002.png
│   │   │   ├── spaceShips_003.png
│   │   │   ├── spaceShips_004.png
│   │   │   ├── spaceShips_005.png
│   │   │   ├── spaceShips_006.png
│   │   │   ├── spaceShips_007.png
│   │   │   ├── spaceShips_008.png
│   │   │   ├── spaceShips_009.png
│   │   │   ├── spaceStation_018.png
│   │   │   ├── spaceStation_019.png
│   │   │   ├── spikeMan_stand.png
│   │   │   ├── tank_bigRed.png
│   │   │   ├── tank_blue.png
│   │   │   ├── tank_darkLarge.png
│   │   │   ├── tank_dark.png
│   │   │   ├── tank_green.png
│   │   │   ├── tank_huge.png
│   │   │   ├── tank_red.png
│   │   │   ├── tank_sand.png
│   │   │   ├── target_red2.png
│   │   │   ├── terrainTile6.png
│   │   │   ├── tile_316.png
│   │   │   ├── tile_318.png
│   │   │   ├── tile_bricksGrey.png
│   │   │   ├── tile_bricksGrown.png
│   │   │   ├── tile_bricksRed.png
│   │   │   ├── tileStone_slope2.png
│   │   │   ├── tileStone_slope.png
│   │   │   ├── towerDefense_tile203.png
│   │   │   ├── towerDefense_tile270.png
│   │   │   ├── towerDefense_tile295.png
│   │   │   ├── towerDefense_tile296.png
│   │   │   ├── towerDefense_tile297.png
│   │   │   ├── towerDefense_tile298.png
│   │   │   ├── ufoGreen2.png
│   │   │   ├── ufoGreen.png
│   │   │   ├── ufoRed2.png
│   │   │   ├── ufoRed.png
│   │   │   ├── window.png
│   │   │   ├── yellowCrystal.png
│   │   │   └── zombie2_silencer.png
│   │   ├── platform_backgrounds
│   │   │   ├── airadventurelevel1.png
│   │   │   ├── airadventurelevel2.png
│   │   │   ├── airadventurelevel3.png
│   │   │   ├── airadventurelevel4.png
│   │   │   ├── alien_bg.png
│   │   │   ├── another_world_bg.png
│   │   │   ├── back_cave.png
│   │   │   ├── battleback10.png
│   │   │   ├── battleback1.png
│   │   │   ├── battleback2.png
│   │   │   ├── battleback3.png
│   │   │   ├── battleback4.png
│   │   │   ├── battleback5.png
│   │   │   ├── battleback6.png
│   │   │   ├── battleback7.png
│   │   │   ├── battleback8.png
│   │   │   ├── battleback9.png
│   │   │   ├── blue_desert.png
│   │   │   ├── blue_grass.png
│   │   │   ├── blue_land.png
│   │   │   ├── blue_shroom.png
│   │   │   ├── cave_background.png
│   │   │   ├── caverns.png
│   │   │   ├── colored_desert.png
│   │   │   ├── colored_grass.png
│   │   │   ├── colored_land.png
│   │   │   ├── colored_shroom.png
│   │   │   ├── cyberpunk_bg.png
│   │   │   ├── landscape1.png
│   │   │   ├── landscape2.png
│   │   │   ├── landscape3.png
│   │   │   ├── landscape4.png
│   │   │   ├── living_tissue_bg.png
│   │   │   ├── parallax_forest.png
│   │   │   ├── scifi2_bg.png
│   │   │   ├── scifi_bg.png
│   │   │   └── sunrise.png
│   │   ├── platform_backgrounds_2
│   │   │   ├── beach1.png
│   │   │   ├── beach2.png
│   │   │   ├── beach3.png
│   │   │   ├── beach4.png
│   │   │   ├── candy1.png
│   │   │   ├── candy2.png
│   │   │   ├── candy3.png
│   │   │   ├── candy4.png
│   │   │   ├── fantasy1.png
│   │   │   ├── fantasy2.png
│   │   │   ├── fantasy3.png
│   │   │   └── fantasy4.png
│   │   ├── platformer
│   │   │   ├── blueCrystal.png
│   │   │   ├── enemySwimming_1.png
│   │   │   ├── enemySwimming_2.png
│   │   │   ├── enemySwimming_3.png
│   │   │   ├── enemySwimming_4.png
│   │   │   ├── fireball.png
│   │   │   ├── greenCrystal.png
│   │   │   ├── playerBlue_dead.png
│   │   │   ├── playerBlue_duck.png
│   │   │   ├── playerBlue_fall.png
│   │   │   ├── playerBlue_hit.png
│   │   │   ├── playerBlue_roll.png
│   │   │   ├── playerBlue_stand.png
│   │   │   ├── playerBlue_swim1.png
│   │   │   ├── playerBlue_swim2.png
│   │   │   ├── playerBlue_switch1.png
│   │   │   ├── playerBlue_switch2.png
│   │   │   ├── playerBlue_up1.png
│   │   │   ├── playerBlue_up2.png
│   │   │   ├── playerBlue_up3.png
│   │   │   ├── playerBlue_walk1.png
│   │   │   ├── playerBlue_walk2.png
│   │   │   ├── playerBlue_walk3.png
│   │   │   ├── playerBlue_walk4.png
│   │   │   ├── playerBlue_walk5.png
│   │   │   ├── playerGreen_dead.png
│   │   │   ├── playerGreen_duck.png
│   │   │   ├── playerGreen_fall.png
│   │   │   ├── playerGreen_hit.png
│   │   │   ├── playerGreen_roll.png
│   │   │   ├── playerGreen_stand.png
│   │   │   ├── playerGreen_swim1.png
│   │   │   ├── playerGreen_swim2.png
│   │   │   ├── playerGreen_switch1.png
│   │   │   ├── playerGreen_switch2.png
│   │   │   ├── playerGreen_up1.png
│   │   │   ├── playerGreen_up2.png
│   │   │   ├── playerGreen_up3.png
│   │   │   ├── playerGreen_walk1.png
│   │   │   ├── playerGreen_walk2.png
│   │   │   ├── playerGreen_walk3.png
│   │   │   ├── playerGreen_walk4.png
│   │   │   ├── playerGreen_walk5.png
│   │   │   ├── playerGrey_dead.png
│   │   │   ├── playerGrey_duck.png
│   │   │   ├── playerGrey_fall.png
│   │   │   ├── playerGrey_hit.png
│   │   │   ├── playerGrey_roll.png
│   │   │   ├── playerGrey_stand.png
│   │   │   ├── playerGrey_swim1.png
│   │   │   ├── playerGrey_swim2.png
│   │   │   ├── playerGrey_switch1.png
│   │   │   ├── playerGrey_switch2.png
│   │   │   ├── playerGrey_up1.png
│   │   │   ├── playerGrey_up2.png
│   │   │   ├── playerGrey_up3.png
│   │   │   ├── playerGrey_walk1.png
│   │   │   ├── playerGrey_walk2.png
│   │   │   ├── playerGrey_walk3.png
│   │   │   ├── playerGrey_walk4.png
│   │   │   ├── playerGrey_walk5.png
│   │   │   ├── playerRed_dead.png
│   │   │   ├── playerRed_duck.png
│   │   │   ├── playerRed_fall.png
│   │   │   ├── playerRed_hit.png
│   │   │   ├── playerRed_roll.png
│   │   │   ├── playerRed_stand.png
│   │   │   ├── playerRed_swim1.png
│   │   │   ├── playerRed_swim2.png
│   │   │   ├── playerRed_switch1.png
│   │   │   ├── playerRed_switch2.png
│   │   │   ├── playerRed_up1.png
│   │   │   ├── playerRed_up2.png
│   │   │   ├── playerRed_up3.png
│   │   │   ├── playerRed_walk1.png
│   │   │   ├── playerRed_walk2.png
│   │   │   ├── playerRed_walk3.png
│   │   │   ├── playerRed_walk4.png
│   │   │   ├── playerRed_walk5.png
│   │   │   ├── redCrystal.png
│   │   │   ├── shroom1.png
│   │   │   ├── shroom2.png
│   │   │   ├── shroom3.png
│   │   │   ├── shroom4.png
│   │   │   ├── shroom5.png
│   │   │   ├── shroom6.png
│   │   │   ├── tileBlue_05.png
│   │   │   ├── tileBlue_08.png
│   │   │   ├── tileBrown_06.png
│   │   │   ├── tileBrown_09.png
│   │   │   ├── tileGreen_05.png
│   │   │   ├── tileGreen_08.png
│   │   │   ├── tileYellow_06.png
│   │   │   ├── tileYellow_09.png
│   │   │   ├── yellowCrystal.png
│   │   │   ├── zombie_idle.png
│   │   │   ├── zombie_jump.png
│   │   │   ├── zombie_walk1.png
│   │   │   └── zombie_walk2.png
│   │   ├── space_backgrounds
│   │   │   ├── Background-1.png
│   │   │   ├── Background-2.png
│   │   │   ├── Background-3.png
│   │   │   ├── Background-4.png
│   │   │   ├── deep_sky_01.png
│   │   │   ├── deep_space_01.png
│   │   │   ├── eye_nebula_01.png
│   │   │   ├── ez_space_lite_01.png
│   │   │   ├── meyespace_v1_01.png
│   │   │   ├── milky_way_01.png
│   │   │   ├── parallax-space-backgound.png
│   │   │   ├── spacegen_01.png
│   │   │   └── space_nebula_01.png
│   │   ├── topdown_backgrounds
│   │   │   ├── backgrounddetailed1.png
│   │   │   ├── backgrounddetailed2.png
│   │   │   ├── backgrounddetailed3.png
│   │   │   ├── backgrounddetailed4.png
│   │   │   ├── backgrounddetailed5.png
│   │   │   ├── backgrounddetailed6.png
│   │   │   ├── backgrounddetailed7.png
│   │   │   ├── backgrounddetailed8.png
│   │   │   └── floortiles.png
│   │   └── water_backgrounds
│   │       ├── underwater1.png
│   │       ├── underwater2.png
│   │       ├── underwater3.png
│   │       ├── water1.png
│   │       ├── water2.png
│   │       ├── water3.png
│   │       └── water4.png
│   ├── __init__.py
│   ├── procgen_envpool.so
│   ├── __pycache__
│   │   ├── __init__.cpython-310.pyc
│   │   └── registration.cpython-310.pyc
│   └── registration.py
├── __pycache__
│   ├── entry.cpython-310.pyc
│   ├── __init__.cpython-310.pyc
│   └── registration.cpython-310.pyc
├── python
│   ├── api.py
│   ├── data.py
│   ├── dm_envpool.py
│   ├── envpool.py
│   ├── env_spec.py
│   ├── gym_envpool.py
│   ├── gymnasium_envpool.py
│   ├── __init__.py
│   ├── lax.py
│   ├── protocol.py
│   ├── __pycache__
│   │   ├── api.cpython-310.pyc
│   │   ├── data.cpython-310.pyc
│   │   ├── dm_envpool.cpython-310.pyc
│   │   ├── envpool.cpython-310.pyc
│   │   ├── env_spec.cpython-310.pyc
│   │   ├── gym_envpool.cpython-310.pyc
│   │   ├── gymnasium_envpool.cpython-310.pyc
│   │   ├── __init__.cpython-310.pyc
│   │   ├── lax.cpython-310.pyc
│   │   ├── protocol.cpython-310.pyc
│   │   ├── utils.cpython-310.pyc
│   │   └── xla_template.cpython-310.pyc
│   ├── utils.py
│   └── xla_template.py
├── registration.py
├── toy_text
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-310.pyc
│   │   └── registration.cpython-310.pyc
│   ├── registration.py
│   └── toy_text_envpool.so
└── vizdoom
    ├── bin
    │   ├── freedoom2.wad
    │   ├── vizdoom
    │   └── vizdoom.pk3
    ├── __init__.py
    ├── maps
    │   ├── basic.cfg
    │   ├── basic.wad
    │   ├── cig.cfg
    │   ├── cig.wad
    │   ├── cig_with_unknown.wad
    │   ├── D1_basic.cfg
    │   ├── D1_basic.wad
    │   ├── D2_navigation.cfg
    │   ├── D2_navigation.wad
    │   ├── D3_battle.cfg
    │   ├── D3_battle.wad
    │   ├── D4_battle2.cfg
    │   ├── D4_battle2.wad
    │   ├── deadly_corridor.cfg
    │   ├── deadly_corridor.wad
    │   ├── deathmatch.cfg
    │   ├── deathmatch.wad
    │   ├── defend_the_center.cfg
    │   ├── defend_the_center.wad
    │   ├── defend_the_line.cfg
    │   ├── defend_the_line.wad
    │   ├── health_gathering.cfg
    │   ├── health_gathering_supreme.cfg
    │   ├── health_gathering_supreme.wad
    │   ├── health_gathering.wad
    │   ├── learning.cfg
    │   ├── multi.cfg
    │   ├── multi_deathmatch.wad
    │   ├── multi_duel.cfg
    │   ├── multi_duel.wad
    │   ├── my_way_home.cfg
    │   ├── my_way_home.wad
    │   ├── oblige.cfg
    │   ├── predict_position.cfg
    │   ├── predict_position.wad
    │   ├── README.md
    │   ├── rocket_basic.cfg
    │   ├── rocket_basic.wad
    │   ├── simpler_basic.cfg
    │   ├── simpler_basic.wad
    │   ├── take_cover.cfg
    │   └── take_cover.wad
    ├── __pycache__
    │   ├── __init__.cpython-310.pyc
    │   └── registration.cpython-310.pyc
    ├── registration.py
    └── vizdoom_envpool.so

83 directories, 1544 files
(enp) renos@hansel:~/envpool-1$ python -c "import envpool; print(envpool.list_all_envs())"
[]

@Trinkle23897
Copy link
Collaborator

can you import envpool.mujoco.mujoco_gym_envpool?

@renos
Copy link

renos commented Apr 1, 2024

@Trinkle23897 Ah I think you found the culprit (or at least one):

(enp) renos@hansel:~$ python -c "import envpool.mujoco.mujoco_gym_envpool"
Traceback (most recent call last):
File "", line 1, in
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /home/renos/anaconda3/envs/enp/lib/python3.10/site-packages/envpool/mujoco/mujoco_gym_envpool.so)

How would I make a generic build? I've tried running make bazel-release and yield the same result

@Trinkle23897
Copy link
Collaborator

what's your os version? we don't support ubuntu 16.04

@renos
Copy link

renos commented Apr 1, 2024

@Trinkle23897

(enp) @:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal

When I pip install envpool I can see the environments, so I don't think OS version is the problem

@Trinkle23897
Copy link
Collaborator

Trinkle23897 commented Apr 1, 2024

okay, could you try creating docker via make docker-release-launch, build the wheel in this docker and install it to have a test? I guess the issue is the default docker dev is 22.04 which is higher than your host version

@renos
Copy link

renos commented Apr 1, 2024

@Trinkle23897
Ok this was my steps:

I edit docker-release-launch to include ENV USE_BAZEL_VERSION=6.4.0

make docker-release-launch
pyenv global 3.10-dev
make bazel-release
This is the output:

➜  /app git:(main) ✗ make bazel-release
# requires go >= 1.16
command -v go || (sudo apt-get install -y golang-1.18 && sudo ln -sf /usr/lib/go-1.18/bin/go /usr/bin/go)
/usr/bin/go
command -v bazel || (go install github.com/bazelbuild/bazelisk@latest && ln -sf /root/go/bin/bazelisk /root/go/bin/bazel)
/root/go/bin/bazel
cd third_party/pip_requirements && (cmp requirements.txt requirements-release.txt || ln -sf requirements-release.txt requirements.txt)
bazel run  //:setup --config=release -- bdist_wheel
INFO: Analyzed target //:setup (116 packages loaded, 31846 targets configured).
INFO: Found 1 target...
ERROR: /root/.cache/bazel/_bazel_root/8c069df52082beee3c95ca17836fb8e2/external/box2d/BUILD.bazel:1:11: Compiling src/common/b2_math.cpp failed: undeclared inclusion(s) in rule '@box2d//:box2d':
this rule is missing dependency declarations for the following files included by 'src/common/b2_math.cpp':
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/float.h'
ERROR: /root/.cache/bazel/_bazel_root/8c069df52082beee3c95ca17836fb8e2/external/box2d/BUILD.bazel:1:11: Compiling src/collision/b2_collision.cpp failed: undeclared inclusion(s) in rule '@box2d//:box2d':
this rule is missing dependency declarations for the following files included by 'src/collision/b2_collision.cpp':
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/float.h'
ERROR: /root/.cache/bazel/_bazel_root/8c069df52082beee3c95ca17836fb8e2/external/box2d/BUILD.bazel:1:11: Compiling src/collision/b2_collide_edge.cpp failed: undeclared inclusion(s) in rule '@box2d//:box2d':
this rule is missing dependency declarations for the following files included by 'src/collision/b2_collide_edge.cpp':
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/float.h'
ERROR: /root/.cache/bazel/_bazel_root/8c069df52082beee3c95ca17836fb8e2/external/box2d/BUILD.bazel:1:11: Compiling src/common/b2_settings.cpp failed: undeclared inclusion(s) in rule '@box2d//:box2d':
this rule is missing dependency declarations for the following files included by 'src/common/b2_settings.cpp':
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/float.h'
ERROR: /root/.cache/bazel/_bazel_root/8c069df52082beee3c95ca17836fb8e2/external/box2d/BUILD.bazel:1:11: Compiling src/common/b2_stack_allocator.cpp failed: undeclared inclusion(s) in rule '@box2d//:box2d':
this rule is missing dependency declarations for the following files included by 'src/common/b2_stack_allocator.cpp':
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/float.h'
ERROR: /root/.cache/bazel/_bazel_root/8c069df52082beee3c95ca17836fb8e2/external/box2d/BUILD.bazel:1:11: Compiling src/dynamics/b2_contact_manager.cpp failed: undeclared inclusion(s) in rule '@box2d//:box2d':
this rule is missing dependency declarations for the following files included by 'src/dynamics/b2_contact_manager.cpp':
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/float.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h'
ERROR: /root/.cache/bazel/_bazel_root/8c069df52082beee3c95ca17836fb8e2/external/box2d/BUILD.bazel:1:11: Compiling src/dynamics/b2_mouse_joint.cpp failed: undeclared inclusion(s) in rule '@box2d//:box2d':
this rule is missing dependency declarations for the following files included by 'src/dynamics/b2_mouse_joint.cpp':
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/float.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h'
external/box2d/src/dynamics/b2_mouse_joint.cpp: In member function 'virtual void b2MouseJoint::InitVelocityConstraints(const b2SolverData&)':
external/box2d/src/dynamics/b2_mouse_joint.cpp:87:8: warning: unused variable 'mass' [-Wunused-variable]
   87 |  float mass = m_bodyB->GetMass();
      |        ^~~~
ERROR: /root/.cache/bazel/_bazel_root/8c069df52082beee3c95ca17836fb8e2/external/box2d/BUILD.bazel:1:11: Compiling src/collision/b2_broad_phase.cpp failed: undeclared inclusion(s) in rule '@box2d//:box2d':
this rule is missing dependency declarations for the following files included by 'src/collision/b2_broad_phase.cpp':
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/float.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h'
ERROR: /root/.cache/bazel/_bazel_root/8c069df52082beee3c95ca17836fb8e2/external/box2d/BUILD.bazel:1:11: Compiling src/dynamics/b2_fixture.cpp failed: undeclared inclusion(s) in rule '@box2d//:box2d':
this rule is missing dependency declarations for the following files included by 'src/dynamics/b2_fixture.cpp':
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/float.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h'
ERROR: /root/.cache/bazel/_bazel_root/8c069df52082beee3c95ca17836fb8e2/external/box2d/BUILD.bazel:1:11: Compiling src/common/b2_draw.cpp failed: undeclared inclusion(s) in rule '@box2d//:box2d':
this rule is missing dependency declarations for the following files included by 'src/common/b2_draw.cpp':
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/float.h'
ERROR: /root/.cache/bazel/_bazel_root/8c069df52082beee3c95ca17836fb8e2/external/box2d/BUILD.bazel:1:11: Compiling src/dynamics/b2_edge_polygon_contact.cpp failed: undeclared inclusion(s) in rule '@box2d//:box2d':
this rule is missing dependency declarations for the following files included by 'src/dynamics/b2_edge_polygon_contact.cpp':
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/float.h'
ERROR: /root/.cache/bazel/_bazel_root/8c069df52082beee3c95ca17836fb8e2/external/box2d/BUILD.bazel:1:11: Compiling src/dynamics/b2_edge_circle_contact.cpp failed: undeclared inclusion(s) in rule '@box2d//:box2d':
this rule is missing dependency declarations for the following files included by 'src/dynamics/b2_edge_circle_contact.cpp':
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/float.h'
ERROR: /root/.cache/bazel/_bazel_root/8c069df52082beee3c95ca17836fb8e2/external/box2d/BUILD.bazel:1:11: Compiling src/dynamics/b2_weld_joint.cpp failed: undeclared inclusion(s) in rule '@box2d//:box2d':
this rule is missing dependency declarations for the following files included by 'src/dynamics/b2_weld_joint.cpp':
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdarg.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/stdint.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/float.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h'
  '/usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h'
Target //:setup failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 5.372s, Critical Path: 1.06s
INFO: 141 processes: 141 internal.
FAILED: Build did NOT complete successfully
ERROR: Build failed. Not running target
Makefile:109: recipe for target 'bazel-release' failed

@Trinkle23897
Copy link
Collaborator

Interesting, it seems the test is broken on master. I’ll try my best and get it fixed this week. Sorry for the break!

@Trinkle23897
Copy link
Collaborator

Sorry more delay, I can't make it this week, will try next week (try to ship a big thing to chatgpt training)

@renos
Copy link

renos commented Apr 17, 2024

@Trinkle23897 Hi just a bump on this, I can work around for my research for now but I can't test my pr till this is done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants