Package: diambra-arena
Documentation•WebsiteLinkedin•Discord•Twitch•YouTube•TwitterDIAMBRA ArenaIndexOverviewCompetition PlatformInstallationQuickstart & ExamplesReinforcement Learning Libs CompatibilityReferencesSupport, Feature Requests & Bugs ReportsCitationTerms of UseOverviewDIAMBRA Arena is a software package featuring a collection ofhigh-quality environments for Reinforcement Learning research and experimentation. It provides a standard interface to popular arcade emulated video games, offering aPython API fully compliant with OpenAI Gym/Gymnasium format, that makes its adoption smooth and straightforward.Itsupports all major Operating Systems(Linux, Windows and MacOS) andcan be easily installed via Python PIP, as described in theinstallation sectionbelow. It iscompletely free to use, the user only needs toregister on the official website.In addition, it comes with acomprehensive documentation, and this repository provides acollection of examplescovering main use cases of interestthat can be run in just a few steps.Main FeaturesAll environments are episodic Reinforcement Learning tasks, with discrete actions (gamepad buttons) and observations composed by screen pixels plus specific RAM states (like characters health bars or characters stage side).They allsupport both single player (1P) as well as two players (2P) mode, making them the perfect resource to explore all the following Reinforcement Learning subfields:Standard RLCompetitiveMulti-AgentCompetitiveHuman-AgentSelf-PlayImitation LearningHuman-in-the-LoopAvailable GamesInterfaced games have been selected among the most popular fighting retro-games. While sharing the same fundamental mechanics, they provide slightly different challenges, with specific features such as different type and number of characters, how to perform combos, health bars recharging, etc.Whenever possible, games are released with all hidden/bonus characters unlocked.Additional details can be found in thededicated sectionof our Documentation.DeadOrAlive ++StreetFighter III3rd StrikeTekken TagTournamentUltimateMortalKombat 3SamuraiShowdown5 SpecialThe King ofFighers '98UltimateMatch HeroMany more are coming soon...Competition PlatformOur competition platform allows you to submit your agents and compete with other coders around the globe in epic video games tournaments!It features a public global leaderboard where users are ranked by the best score achieved by their agents in our different environments.It also offers you the possibility to unlock cool achievements depending on the performances of your agent.Submitted agents are evaluated and their episodes are streamed on our Twitch channel.We aimed at making the submission process as smooth as possible,join us and try it now!InstallationCreate an account on our website, it requires just a few clicks and is 100% freeInstall Docker Desktop:Linux|Windows|MacOSInstall DIAMBRA Command Line Interface:python3 -m pip install diambraInstall DIAMBRA Arena:python3 -m pip install diambra-arenaUsing a virtual environment to isolate your python packages installation is strongly suggestedQuickstart & ExamplesDIAMBRA Arena usage follows the standard RL interaction framework: the agent sends an action to the environment, which process it and performs a transition accordingly, from the starting state to the new state, returning the observation and the reward to the agent to close the interaction loop. The figure below shows this typical interaction scheme and data flow.Download Game ROM(s) and Check ValidityCheck out available games:diambra arena list-romsOutput extract:[...]Title:DeadOrAlive++-GameId:doappDifficultylevels:Min1-Max4SHA256sum:d95855c7d8596a90f0b8ca15725686567d767a9a3f93a8896b489a160e705c4eOriginalROMname:doapp.zipSearchkeywords:['DEAD OR ALIVE ++ [JAPAN]','dead-or-alive-japan','80781','wowroms']Characterslist:['Kasumi','Zack','Hayabusa','Bayman','Lei-Fang','Raidou','Gen-Fu','Tina','Bass','Jann-Lee','Ayane'][...]Search ROMs on the web usingSearch Keywordsprovided by the game list command reported above.Pay attention, follow game-specific notes reported there, and store all ROMs in the same folder, whose absolute path will be referred in the following asyour/roms/local/path.Specific game ROM files are required, check validity of the downloaded ROMs:diambra arena check-roms your/roms/local/path/romFileName.zipThe output for a valid ROM file would look like:Correct ROM file for Dead Or Alive ++, sha256 = d95855c7d8596a90f0b8ca15725686567d767a9a3f93a8896b489a160e705c4eMake sure to check out ourTerms of Use, and in particular Section 7. By using the software, you accept them in full.Base scriptRunning a complete episode with a random agent requires about 10 python lines:importdiambra.arenaenv=diambra.arena.make("doapp",render_mode="human")observation,info=env.reset(seed=42)whileTrue:env.render()actions=env.action_space.sample()observation,reward,terminated,truncated,info=env.step(actions)ifterminatedortruncated:observation,info=env.reset()breakenv.close()To execute the script run:diambra run -r your/roms/local/path python script.pyAdditional details and use cases are provided in theGetting Startedsection of the documentation.ExamplesTheexamples/folder contains ready to use scripts representing the most important use-cases, in particular:Single Player EnvironmentMulti Player EnvironmentWrappers OptionsEpisode RecordingEpisode Data LoaderThese examples show how to leverage both single and two players modes, how to set up environment wrappers specifying all their options, how to record human expert demonstrations and how to load them to apply imitation learning. They can be used as templates and starting points to explore all the features of the software package.Reinforcement Learning Libs CompatibilityDIAMBRA Arena is built to maximize compatibility will all major Reinforcement Learning libraries. It natively provides interfaces with the two most import packages: Stable Baselines 3 and Ray RLlib, while Stable Baselines is also available but deprecated. Their usage is illustrated in detail in thedocumentationand in theDIAMBRA Agentsrepository. It can easily be interfaced with any other package in a similar way.Native interfaces, installed with the specific options listed below, are tested with the following versions:Stable Baselines 3 |pip install diambra-arena[stable-baselines3](Docs-GitHub-Pypi): 2.1.*Ray RLlib |pip install diambra-arena[ray-rllib](Docs-GitHub-Pypi): 2.7.*Stable Baselines |pip install diambra-arena[stable-baselines](Docs-GitHub-Pypi): 2.10.2ReferencesDocumentation:https://docs.diambra.aiPaper:https://arxiv.org/abs/2210.10595Website:https://diambra.aiDiscord:https://diambra.ai/discordLinkedin:https://www.linkedin.com/company/diambraTwitch:https://www.twitch.tv/diambra_aiYouTube:https://www.youtube.com/c/diambra_aiTwitter:https://twitter.com/diambra_aiSupport, Feature Requests & Bugs ReportsTo receive support, use the dedicated channel in ourDiscord Server.To request features or report bugs, use theGitHub Issue Tracker.CitationPaper:https://arxiv.org/abs/2210.10595@article{Palmas22,
    author ={{Palmas}, Alessandro},
    title = "{DIAMBRA Arena: a New Reinforcement Learning Platform for Research and Experimentation}",
    journal ={arXiv e-prints},
    keywords ={reinforcement learning, transfer learning, multi-agent, games},
    year = 2022,
    month = oct,
    eid ={arXiv:2210.10595},
    pages ={arXiv:2210.10595},
    archivePrefix ={arXiv},
    eprint ={2210.10595},
    primaryClass ={cs.AI}}Terms of UseDIAMBRA Arena software package is subject to ourTerms of Use. By using it, you accept them in full.DIAMBRA, Inc. © Copyright 2018-2024. All Rights Reserved.