football
Check out the new game server:
파일 탐색기
최종 버전 다운로드 (.zip)- build-mac.yml
- publish-wheels.yml
- gfootball_example_from_prebuild.ipynb
- gfootball_example_from_scratch.ipynb
- api.md
- compile_engine.md
- docker.md
- imitation.md
- multi_agent.md
- observation.md
- saving_replays.md
- scenarios.md
- __init__.py
- agent.py
- bot.py
- gamepad.py
- keyboard.py
- lazy.py
- ppo2_cnn.py
- replay.py
- __init__.py
- config.py
- constants.py
- controller_base.py
- event_queue.py
- football_action_set.py
- football_action_set_test.py
- football_env.py
- football_env_core.py
- football_env_test.py
- gym_test.py
- observation_preprocessing.py
- observation_processor.py
- observation_rotation.py
- observation_rotation_test.py
- player_base.py
- remote_football_env.py
- scenario_builder.py
- script_helpers.py
- script_helpers_test.py
- wrappers.py
- wrappers_test.py
- game_server.proto
- game_server_pb2.py
- game_server_pb2_grpc.py
- master.proto
- master_pb2.py
- master_pb2_grpc.py
- __init__.py
- config.py
- example_client.py
- utils.py
- __init__.py
- models.py
- repro_checkpoint_easy.sh
- repro_scoring_easy.sh
- run_multiagent_rllib.py
- run_ppo2.py
- 11_vs_11_deterministic.py
- 11_vs_11_easy_deterministic.py
- 11_vs_11_hard_deterministic.py
- 11_vs_11_single_goal_deterministic.py
- 11_vs_11_single_goal_stochastic.py
- 11_vs_4_offence_deterministic.py
- 11_vs_4_offence_stochastic.py
- __init__.py
- corner_test.py
- goal_test.py
- keeper_test.py
- kickoff_for_goal_loosing_team_test.py
- multiagent_wrapper.py
- offside_test.py
- penalty.py
- second_half.py
- symmetric.py
- 11_vs_11_competition.py
- 11_vs_11_easy_stochastic.py
- 11_vs_11_hard_stochastic.py
- 11_vs_11_kaggle.py
- 11_vs_11_stochastic.py
- 1_vs_1_easy.py
- 5_vs_5.py
- __init__.py
- academy_3_vs_1_with_keeper.py
- academy_corner.py
- academy_counterattack_easy.py
- academy_counterattack_hard.py
- academy_empty_goal.py
- academy_empty_goal_close.py
- academy_pass_and_shoot_with_keeper.py
- academy_run_pass_and_shoot_with_keeper.py
- academy_run_to_score.py
- academy_run_to_score_with_keeper.py
- academy_single_goal_versus_lazy.py
- test_example_multiagent.py
- __init__.py
- build_game_engine.bat
- build_game_engine.sh
- dump_to_txt.py
- dump_to_video.py
- play_game.py
- replay.py
- AlegreyaSansSC-ExtraBold.ttf
- LICENSE
- FindEGL.cmake
- FindPackageHandleStandardArgs.cmake
- FindSDL2_gfx.cmake
- FindSDL2_image.cmake
- FindSDL2_ttf.cmake
- fcbarcelona_kit_02.bmp
- fcbarcelona_logo.bmp
- realmadrid_kit_02.bmp
- realmadrid_logo.bmp
- 000.anim
- 000_accel.anim
- 000_accel_close.anim
- 000_accel_far.anim
- 020.anim
- 020_accel_far.anim
- 045.anim
- 045_accel.anim
- 090.anim
- 090_accel.anim
- 090_accel_far.anim
- 135.anim
- 135_accel.anim
- 180.anim
- 180_accel.anim
- 020_decel_stretch.anim
- 000.anim
- 000_close.anim
- 000_decel.anim
- 020_decel.anim
- 020_right_nondecel_stretch.anim
- 045_decel.anim
- 090_decel_decel.anim
- 135_decel_decel_decel.anim
- 180_decel_decel_decel.anim
- 045_left_decel_far.anim
- 000.anim
- 000_accel.anim
- 000_accel_ballright.anim
- 000_accel_close.anim
- 000_close.anim
- 000_decel_decel.anim
- 020_accel.anim
- 020_accel_close.anim
- 020_decel_decel.anim
- 020_left.anim
- 020_left_close.anim
- 045.anim
- 045_accel_2step.anim
- 045_decel_decel.anim
- 090_decel_decel.anim
- 090_strongfoot.anim
- 135_decel_decel.anim
- 180_decel.anim
- 180_decel_decel.anim
- 000_decel_decel.anim
- 000.anim
- 000.anim
- 000_ground_holdball.anim
- 000_high_deflect_close.anim
- 000_high_deflect_far.anim
- 000_high_deflect_sideclose.anim
- 000_high_holdball.anim
- 000_kneeheight_holdball.anim
- 000_trunk_holdball.anim
- 090_ground_deflect_far.anim
- 090_ground_holdball_close.anim
- 090_high_deflect_far.anim
- 090_midheight_deflect_far.anim
- 090_midheight_holdball_close.anim
- 090_trunk_deflect_far.anim
- 000_ground_deflect_far.anim
- 000_ground_holdball.anim
- 000_ground_holdball_ballside.anim
- 090_ground_deflect_far.anim
- 090_ground_holdball_close.anim
- 090_high_deflect_far.anim
- 090_high_holdball_close.anim
- 090_midheight_deflect_far.anim
- 090_midheight_holdball_close.anim
- 090_trunk_deflect_far.anim
- 090_trunk_holdball_close.anim
- 000_ground_holdball_close.anim
- 000_kneeheight_holdball_close.anim
- 000_trunk_holdball_close.anim
- 045_kneeheight_deflect_far.anim
- 000.anim
- 000_throw.anim
- 045_throw.anim
- 000_long.anim
- 020.anim
- 090.anim
- 090.anim
- 090_slide.anim
- 000_throw.anim
- 000.anim
- 000_long.anim
- 045_air_left.anim
- 080.anim
- 090_long.anim
- 180_turn.anim
- 000_front.anim
- 000_header_jump.anim
- 000_side.anim
- 000_header_jump.anim
- 000_reach.anim
- 000_decel_side_behind.anim
- 000_stretch.anim
- D000_to_D045.anim
- D000_to_D045_045.anim
- D000_to_D045_090_left.anim
- D000_to_D135_090.anim
- D000_to_D135_135.anim
- D045_to_D135.anim
- D135_045.anim
- D135_to_D-135_left.anim
- D135_to_D045_000.anim
- D135_to_D045_000_accel.anim
- D135_to_D045_045_accel.anim
- D135_to_D045_045_left.anim
- D045.anim
- D045_decel.anim
- D135_045_decel.anim
- D135_decel.anim
- D135_to_D045_045.anim
- 045_decel.anim
- 090_decel.anim
- 135.anim
- 135_decel.anim
- 180_decel.anim
- D045_090_accel.anim
- D045_135_accel.anim
- D045_180_accel.anim
- 000_accel.anim
- 000_idlelevel1.anim
- 045_accel.anim
- 090_accel.anim
- 135_accel.anim
- 180_accel.anim
- D000_to_D045_045_left_decel_decel.anim
- D000_to_D045_decel.anim
- D045_decel_left.anim
- 000_decel_decel_decel_todo.anim
- 000_idlelevel1.anim
- 135_decel_decel_decel.anim
- D000_to_D045.anim
- D045_045.anim
- D045_to_D000.anim
- D045_to_D000_045_accel.anim
- D045_to_D000_accel.anim
- D045_to_D135_decel.anim
- D045_to_D000_accel.anim
- 000_accel.anim
- 045.anim
- 045_accel.anim
- 090_left_decel.anim
- 135_decel.anim
- D000_to_D135_180_holdball.anim
- D135_decel_holdball.anim
- D135_holdball.anim
- D135_left_holdball.anim
- D135_to_D000_holdball.anim
- 000_decel_holdball.anim
- 000_holdball.anim
- 090_decel_holdball.anim
- 000_accel_holdball.anim
- 000_back_to_front_holdball.anim
- 000_holdball.anim
- 000_stand_up_from_back.anim
- 000_stand_up_from_front.anim
- 000_stand_up_from_front_holdball.anim
- 045_holdball.anim
- 135_accel_holdball.anim
- 090_decel_ballside.anim
- 090_decel_ballside_otherside.anim
- 090_highball.anim
- 180_turn.anim
- 000_header.anim
- 000_header_jump_backwards.anim
- 000_header_jump_forwards.anim
- 070_header_jump.anim
- 090_header.anim
- 090_kneeheight.anim
- 135_header_jump.anim
- 000_throw.anim
- 045_throw.anim
- 000.anim
- 090.anim
- 180.anim
- 000_reach.anim
- 090_slide.anim
- 000_header_jump.anim
- 020_ballside.anim
- 000.anim
- 045.anim
- 090.anim
- 180.anim
- 040_reach.anim
- 040_side_reach.anim
- 090_reach.anim
- 000_kneeheight.anim
- D045_pass00_header_headheight.anim
- D045_pass90_header_headheight.anim
- 000_throw.anim
- 000.anim
- 000_short.anim
- 045.anim
- 090.anim
- 090_short.anim
- 135.anim
- D135.anim
- 090_zidane.anim
- 020.anim
- 090.anim
- 180_bicycle.anim
- 000_headerdive.anim
- 010_close.anim
- 010_short_bit_longer.anim
- 020_left.anim
- 030.anim
- 090_2step.anim
- D045_20_below.anim
- D045_20_header.anim
- 010_short.anim
- 010_short_bit_longer.anim
- 090_2step.anim
- 180_turn.anim
- D135_decel.anim
- 000.anim
- 090.anim
- 000.anim
- 000_ballside.anim
- 000.anim
- 000_showcard.anim
- dribbleD000.anim
- dribbleD045.anim
- dribbleD045_left.anim
- dribbleD135.anim
- dribbleD135_left.anim
- idleD000.anim
- sprintD000.anim
- walkD000.anim
- walkD045.anim
- walkD045_left.anim
- 000_chest.anim
- 000_chest_jump.anim
- 000_crotch.anim
- 000_knee.anim
- 020_chest_fromabove.anim
- 135_chest.anim
- 000_IB000.anim
- 090_IB000_accel_optional.anim
- 135_IB000.anim
- 135_IB000_accel_left_shallowangle.anim
- 135_IB000_accel_right.anim
- 000_chest.anim
- 000_fromside_kneeheight.anim
- 000_decel_decel_decel_stretch.anim
- 000_decel_decel_stretch.anim
- 000_D000_IB090_decel.anim
- 000_chest_ballfrombelow.anim
- 000_chest_jump_decel.anim
- 000_control_highball_decel.anim
- 000_knee.anim
- 135_chest.anim
- D045_chest.anim
- D045_to_D000_decel_chest.anim
- D135_chest_jump_180.anim
- D135_chest_jump_decel.anim
- 000_D000_IB090_decel_decel_lastditch.anim
- 000_D000_IB090_decel_short_lastditch.anim
- 000_frombehind_decel.anim
- 000_D000_IB000_decel_decel.anim
- 000_D000_IB000_short.anim
- 000_D000_IB090.anim
- 000_D000_IB090_decel_decel.anim
- 000_D045_IB090.anim
- 000_D045_IB090_decel_decel.anim
- 000_D045_IB135.anim
- 000_D135_IB135_decel_decel.anim
- 135_D000_IB000_decel_decel.anim
- 135_D045_IB090_decel_decel.anim
- 135_D045_IB135_decel_decel.anim
- 135_D135_IB135_decel_decel.anim
- 000_protectback.anim
- 000_protectfront.anim
- 000_protectside.anim
- 000_decel.anim
- 000_sidebump.anim
- 045_decel.anim
- 000_protectback.anim
- 000_protectfront.anim
- 028_D045_sidebump.anim
- 000_accel.anim
- D135_000bump.anim
- D135_180bump.anim
- 000_000.anim
- 000_090.anim
- 000_180.anim
- side_behind.anim
- 000.anim
- 045.anim
- 000_000.anim
- base.anim.util
- base.inverse.anim.util
- straight.anim.util
- black.bmp
- megabackground01.bmp
- loading01.bmp
- ball.bmp
- p1.bmp
- p2.bmp
- radar.bmp
- league.bmp
- scoreboard_bg.bmp
- ball.bmp
- generic.ase
- generic.object
- generic.object
- background01.ase
- redcard.ase
- redcard.bmp
- yellowcard.ase
- yellowcard.bmp
- bald.ase
- long01.ase
- long02.ase
- medium01.ase
- medium02.ase
- short01.ase
- short02.ase
- foot.ase
- fullbody.ase
- fullbody2.ase
- head.ase
- lowerarm.ase
- lowerleg.ase
- pelvis.ase
- trunk.ase
- upperarm.ase
- upperleg.ase
- black.bmp
- blonde.bmp
- brown.bmp
- darkblonde.bmp
- red.bmp
- arm_normal.bmp
- goalie_kit.bmp
- kit_template.bmp
- kit_UVWnormal.bmp
- knee_normal.bmp
- referee_kit.bmp
- shoe.bmp
- shoe_sole.bmp
- skin.bmp
- skin01.bmp
- skin02.bmp
- skin03.bmp
- skin04.bmp
- fullbody.object
- fullbody2.object
- player.object
- abstractads.bmp
- floor01wall.bmp
- floor01wall_selfillum.bmp
- floor01wall_specular.bmp
- floor02wall.bmp
- floor02wall_specular.bmp
- hekje.bmp
- lightgrey.bmp
- pitch.ase
- pitchonly.object
- test.ase
- test.object
- goals.ase
- goals.object
- white.bmp
- ambient.frag
- ambient.vert
- lighting.frag
- lighting.vert
- noise.bmp
- noise_colorful.bmp
- overlay.frag
- overlay.vert
- postprocess.frag
- postprocess.vert
- simple.frag
- simple.vert
- zphase.frag
- zphase.vert
- ad_3xblast01.bmp
- ad_altfunc01.bmp
- ad_blauwprint01.bmp
- ad_bleep01.bmp
- ad_brokenbread01.bmp
- ad_groningen01.bmp
- ad_indietopia01.bmp
- ad_omeganorth01.bmp
- ad_polygon01.bmp
- ad_polygon02.bmp
- ad_polygon_flyingdutchman02.bmp
- ad_polygon_jigsawHD02.bmp
- ad_stark01.bmp
- ad_stark02.bmp
- ad_tenshu01.bmp
- ad_your_ad_here.bmp
- concrete.wall01_normal.bmp
- concrete.wall01_specular.bmp
- concrete.wall01a.bmp
- overlay.bmp
- pitch_01.bmp
- pitch_02.bmp
- pitch_03.bmp
- pitch_04.bmp
- pitch_normal_01.bmp
- pitch_normal_02.bmp
- pitch_normal_03.bmp
- pitch_normal_04.bmp
- pitch_specular_01.bmp
- pitch_specular_02.bmp
- pitch_specular_03.bmp
- pitch_specular_04.bmp
- seamlessgrass08.bmp
- ad_placeholder.bmp
- crowd01.bmp
- crowd01_normal.bmp
- goalnetting.bmp
- greenish_floor.bmp
- almost_black.bmp
- almost_white.bmp
- black.bmp
- orange.bmp
- white.bmp
- ai_keyboard.cpp
- ai_keyboard.hpp
- aabb.cpp
- aabb.hpp
- line.cpp
- line.hpp
- plane.cpp
- plane.hpp
- triangle.cpp
- triangle.hpp
- trianglemeshutils.cpp
- trianglemeshutils.hpp
- bluntmath.cpp
- bluntmath.hpp
- matrix3.cpp
- matrix3.hpp
- matrix4.cpp
- matrix4.hpp
- quaternion.cpp
- quaternion.hpp
- vector3.cpp
- vector3.hpp
- log.cpp
- log.hpp
- properties.cpp
- properties.hpp
- sdl_surface.cpp
- sdl_surface.hpp
- utils.cpp
- utils.hpp
- backtrace.cpp
- backtrace.h
- file.cpp
- file.h
- SDL2_rotozoom.h
- wrap_SDL.h
- wrap_SDL_endian.h
- wrap_SDL_keyboard.h
- wrap_SDL_keycode.h
- wrap_SDL_surface.h
- wrap_SDL_ttf.h
- matchdata.cpp
- matchdata.hpp
- playerdata.cpp
- playerdata.hpp
- teamdata.cpp
- teamdata.hpp
- ihidevice.hpp
- aseloader.cpp
- aseloader.hpp
- imageloader.cpp
- imageloader.hpp
- resourcemanager.hpp
- gamepage.cpp
- gamepage.hpp
- radar.cpp
- radar.hpp
- scoreboard.cpp
- scoreboard.hpp
- loadingmatch.cpp
- loadingmatch.hpp
- menutask.cpp
- menutask.hpp
- pagefactory.cpp
- pagefactory.hpp
- empty.cpp
- hungarian.cpp
- hungarian.h
- perlin.cpp
- perlin.h
- AIfunctions.cpp
- AIfunctions.hpp
- mentalimage.cpp
- mentalimage.hpp
- default_def.cpp
- default_def.hpp
- default_mid.cpp
- default_mid.hpp
- default_off.cpp
- default_off.hpp
- goalie_default.cpp
- goalie_default.hpp
- strategy.cpp
- strategy.hpp
- elizacontroller.cpp
- elizacontroller.hpp
- humancontroller.cpp
- humancontroller.hpp
- icontroller.cpp
- icontroller.hpp
- playercontroller.cpp
- playercontroller.hpp
- refereecontroller.cpp
- refereecontroller.hpp
- animcollection.cpp
- animcollection.hpp
- humanoid.cpp
- humanoid.hpp
- humanoid_utils.cpp
- humanoid_utils.hpp
- humanoidbase.cpp
- humanoidbase.hpp
- player.cpp
- player.hpp
- playerbase.cpp
- playerbase.hpp
- playerofficial.cpp
- playerofficial.hpp
- ball.cpp
- ball.hpp
- humangamer.cpp
- humangamer.hpp
- match.cpp
- match.hpp
- officials.cpp
- officials.hpp
- proceduralpitch.cpp
- proceduralpitch.hpp
- referee.cpp
- referee.hpp
- team.cpp
- team.hpp
- teamAIcontroller.cpp
- teamAIcontroller.hpp
- camera.cpp
- camera.hpp
- geometry.cpp
- geometry.hpp
- image2d.cpp
- image2d.hpp
- light.cpp
- light.hpp
- skybox.cpp
- skybox.hpp
- geometrydata.cpp
- geometrydata.hpp
- surface.cpp
- surface.hpp
- scene2d.cpp
- scene2d.hpp
- node.cpp
- node.hpp
- scene3d.cpp
- scene3d.hpp
- iscene.hpp
- object.cpp
- object.hpp
- objectfactory.cpp
- objectfactory.hpp
- scene.cpp
- scene.hpp
- graphics_camera.cpp
- graphics_camera.hpp
- graphics_geometry.cpp
- graphics_geometry.hpp
- graphics_light.cpp
- graphics_light.hpp
- graphics_overlay2d.cpp
- graphics_overlay2d.hpp
- interface_renderer3d.hpp
- opengl_renderer3d.cpp
- opengl_renderer3d.hpp
- r3d_messages.hpp
- sdl_glfuncs.h
- texture.cpp
- texture.hpp
- vertexbuffer.cpp
- vertexbuffer.hpp
- graphics_object.cpp
- graphics_object.hpp
- graphics_scene.cpp
- graphics_scene.hpp
- graphics_system.cpp
- graphics_system.hpp
- graphics_task.cpp
- graphics_task.hpp
- isystem.hpp
- isystemobject.hpp
- command.cpp
- command.hpp
- interpreter.hpp
- loader.hpp
- material.hpp
- messagequeue.hpp
- observer.cpp
- observer.hpp
- refcounted.cpp
- refcounted.hpp
- resource.hpp
- spatial.cpp
- spatial.hpp
- subject.hpp
- animationextension.hpp
- footballanimationextension.cpp
- footballanimationextension.hpp
- caption.cpp
- caption.hpp
- frame.cpp
- frame.hpp
- image.cpp
- image.hpp
- root.cpp
- root.hpp
- guitask.cpp
- guitask.hpp
- page.cpp
- page.hpp
- style.cpp
- style.hpp
- view.cpp
- view.hpp
- windowmanager.cpp
- windowmanager.hpp
- animation.cpp
- animation.hpp
- objectloader.cpp
- objectloader.hpp
- orbitcamera.cpp
- orbitcamera.hpp
- splitgeometry.cpp
- splitgeometry.hpp
- xmlloader.cpp
- xmlloader.hpp
- blunted.cpp
- blunted.hpp
- defines.cpp
- defines.hpp
- game_env.cpp
- game_env.hpp
- gamedefines.cpp
- gamedefines.hpp
- gametask.cpp
- gametask.hpp
- gfootball_actions.h
- main.cpp
- main.hpp
- utils.cpp
- utils.hpp
- vcpkg.json
- vcpkg.json
- vcpkg.json
- vcpkg.json
- vcpkg.json
- __init__.py
- ai.cpp
- ai.hpp
- CMakeLists.txt
- LICENSE
- README.md
- sources.cmake
- .dockerignore
- .gitattributes
- .gitignore
- CHANGELOG
- CONTRIBUTING.md
- Dockerfile
- Dockerfile_examples
- LICENSE
- MANIFEST.in
- README.md
- requirements.txt
- run_docker_test.sh
- setup.py
# 설치 가이드
1. 코드 내려받기
git clone https://github.com/google-research/football
깃허브에서 프로젝트 코드 전체를 내 컴퓨터로 내려받습니다.
cd football
방금 내려받은 프로젝트 폴더 안으로 이동합니다.
2. 공식 설치 스크립트
쉬움 추천사전 준비물
- APT (Debian/Ubuntu 계열) Debian/Ubuntu 계열 리눅스에 기본 내장된 패키지 매니저입니다.
- Homebrew macOS/Linux용 패키지 매니저입니다.
sudo apt-get install git cmake build-essential libgl1-mesa-dev libsdl2-dev \
APT 패키지 저장소에서 바로 설치합니다 (Debian/Ubuntu 계열).
brew install git python3 cmake sdl2 sdl2_image sdl2_ttf sdl2_gfx boost boost-python3
Homebrew로 이미 빌드된 패키지를 바로 설치합니다. 소스 빌드가 필요 없습니다.
설치 후 새 터미널을 열고, 프로그램의 버전 확인 명령(예: --version)으로 정상 설치됐는지 확인하세요.
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
3. Docker
쉬움사전 준비물
- Git GitHub에서 프로젝트 코드를 내려받으려면 필요합니다.
- Docker Desktop 컨테이너를 빌드하고 실행하려면 필요합니다. 설치 후 실행해서 백그라운드에 켜두세요.
docker build -t football .
Dockerfile을 기반으로 실행 가능한 이미지를 빌드합니다.
docker run -p 8080:80 football
빌드된 이미지를 실제 컨테이너로 실행합니다.
터미널에 docker compose ps 를 입력해 컨테이너들이 Up 상태인지 확인하세요. README에 포트 번호가 적혀있다면 브라우저에서 http://localhost:포트번호 로 접속해보세요.
4. CMake
보통사전 준비물
sudo apt-get install git cmake build-essential libgl1-mesa-dev libsdl2-dev \
APT 패키지 저장소에서 바로 설치합니다 (Debian/Ubuntu 계열).
brew install git python3 cmake sdl2 sdl2_image sdl2_ttf sdl2_gfx boost boost-python3
Homebrew로 이미 빌드된 패키지를 바로 설치합니다. 소스 빌드가 필요 없습니다.
build 폴더 안에 실행 파일이 생성됐는지 확인하고, 직접 실행해보세요 (예: ./build/앱이름).
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
5. Python
쉬움사전 준비물
libdirectfb-dev libst-dev mesa-utils xvfb x11vnc python3-pip
이 명령어를 터미널에 그대로 입력해 실행하세요.
python3 -m pip install --upgrade pip setuptools psutil wheel
requirements.txt 등에 명시된 파이썬 라이브러리를 설치합니다.
python -m pip install --upgrade pip setuptools psutil wheel
requirements.txt 등에 명시된 파이썬 라이브러리를 설치합니다.
python3 -m pip install gfootball
requirements.txt 등에 명시된 파이썬 라이브러리를 설치합니다.
python3 -m venv football-env
파이썬 스크립트(또는 모듈)를 실행합니다.
에러 메시지 없이 실행되고 터미널에 안내 문구가 출력되면 정상입니다.
이 레포의 README에 적힌 실제 명령어를 그대로 가져왔습니다.
// repository documentation
Was this content helpful?
(0 ratings)
