{ "info": { "author": "Anssi 'Miffyli' Kanervisto", "author_email": "anssk@cs.uef.fi", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: Microsoft :: Windows", "Operating System :: Unix", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Artificial Intelligence" ], "description": "
\n\n# ToriLLE\nToribash Learning Environment. Extra \"L\" to make words more memorable for Finns (\"Torille\" = \"To the marketplace\").\n\nToriLLE provides learning agents an interface to video-game [Toribash](http://www.toribash.com/), a humanoid fighting game.\nToribash provides environment for MuJoCo-like humanoid control, specifically aimed for competitive gameplay. This makes\nToriLLE suitable for e.g. self-play experiments. \n\nToriLLE comes with a Python interface and pre-made OpenAI Gym environment with various tasks. Following white-paper includes baseline experiments and benchmarks conducted using ToriLLE: [https://arxiv.org/abs/1807.10110](https://arxiv.org/abs/1807.10110)\n\n## Requirements\nTested to work on Windows 10, Ubuntu 16.04 and MacOS 10.13. Tested on Python versions 3.5 and 3.6, and will likely not work on 2.7. \n\n* Numpy (Python)\n* FileLock (Python)\n* [Wine](https://wiki.winehq.org/Download) (For Linux/MacOS. **Requires modern version. Tested on 3.0.3**)\n\n## Quickstart\nRemember to install [Wine](https://wiki.winehq.org/Download) if you are on Linux or MacOS. Make sure `wine` command is defined.\n\nFollowing will download ToriLLE with stripped down version of Toribash:\n```\npip install torille\n```\n\nRandom agent:\n```python\nfrom torille import ToribashControl\nfrom torille.utils import create_random_actions\n\n# Show gameplay\ntoribash = ToribashControl(draw_game=True)\ntoribash.init()\n\n# Random agent\nwhile 1:\n state, t = toribash.get_state()\n if t: break\n toribash.make_actions(create_random_actions())\ntoribash.close()\n```\n\nOpenAI Gym environment:\n```python\nimport gym\nimport torille.envs\n\nenv = gym.make(\"Toribash-DestroyUke-v0\")\n# Show gameplay\nenv.set_draw_game(True)\n\ninitial_state = env.reset()\nt = False\n# Random agent\nwhile not t:\n s, r, t, _ = env.step(env.action_space.sample())\nenv.close()\n```\n\n## Manual installation \n\nYou can install ToriLLE without PyPI/pip with the following:\n\n* Install [Toribash](http://toribash.com/) (note: Only Steam version may be up to date)\n* Copy contents of `toribash-codes` to Toribash installation directory. Overwrite files\n * **Note:** This will prevent using that specific installation as a regular game. Remove/rename `profile.tbs` file \n to revert most of the changes and use game normally again.\n * **Note2:** Starting with Toribash 5.4 / Steam version of Toribash, settings file is stored in under user's directory at\n `Saved Games/Toribash/custom.cfg`. Toribash loads this file by default if it finds it, which may cause \n ToriLLE to run in wrong settings.\n* Provide path the installed `toribash.exe` when creating `ToribashControl` objects (if you use provided Python library)\n\n## Playing in multiplayer\n\n**Note: Multiplayer does not work on Linux Wine!**\n\nWant to try your agents against human players in multiplayer? Check how [manual remote control](docs/manual_torille.md) works.\n\n\n## Documentation\n\nExamples in `examples` provide quickstart to how to use ToriLLE, and also show how to apply settings or \nrecord replays.\n\nFor references see:\n\n* [Python library](docs/torille.md)\n* [Gym environment](docs/envs.md)\n\nFor troubleshooting, see the [FAQ](docs/faq.md).\n\nIf you wish to modify ToriLLE or use other language to control Toribash instance, see [hacking](docs/hacking.md) and [documentation on protocol](docs/protocol).\n\n## Repository structure\n- `./torille/`: Python codes for the learning environment (inc. Gym environment)\n - `./torille/toribash`: This will include stripped version of the Toribash game when installed from PyPi\n- `./toribash-codes/`: Files required for Toribash to make this learning environment work \n- `./examples/`: Python examples on how to use this library\n- `./docs/`: Detailed documentation of the inner workings\n- `./experiments/`: Codes used to run experiments in the white paper\n- `./images/`: Contains GIFs used here\n\n## Related work and useful links\n\n* Options/chat rules: http://forum.toribash.com/showthread.php?t=317900\n* Lua functions: https://github.com/trittimo/ToriScriptAPI/blob/master/docs/toribash_docs.txt\n* Bodypart list: http://forum.toribash.com/showthread.php?t=9391\n* Previous experiments at machine learning with Toribash: \n * http://forum.toribash.com/showthread.php?t=170100\n * http://forum.toribash.com/showthread.php?t=167355\n * http://forum.toribash.com/showthread.php?t=25263\n * https://www.researchgate.net/profile/Jonathan_Byrne/publication/228848637_Optimising_offensive_moves_in_toribash_using_a_genetic_algorithm/links/0046351420d5001396000000.pdf\n\n## Citing\n\nWe wouldn't mind a citation if you find ToriLLE useful in your work. It also helps us to see what people have been up to!\n\n```\n@article{kanervisto2018torille,\n author = {Anssi Kanervisto and Ville Hautam{\\\"a}ki},\n title = {ToriLLE: Learning Environment for Hand-to-Hand Combat},\n year = {2018},\n journal = {arXiv preprint arXiv:1807.10110},\n}\n```\n\n## Special thanks & Acknowledgements\n- hampa and Dranix for invaluable help with configuring Toribash and lua scripts (also for developing the game in the first place!)\n- Siim P\u00f5der (user \"windo\" on GitHub) for original [toribash-evolver](https://github.com/windo/toribash-evolver) code\n- box (Toribash user) for comments during inception of this project\n\n## License \nCode original to ToriLLE is licensed under GNU GPL 3.0. Toribash is property of Nabistudios. Toribash binary in PyPI package is shared with the permission of main developer \"hampa\".", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Miffyli/ToriLLE", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "torille", "package_url": "https://pypi.org/project/torille/", "platform": "", "project_url": "https://pypi.org/project/torille/", "project_urls": { "Homepage": "https://github.com/Miffyli/ToriLLE" }, "release_url": "https://pypi.org/project/torille/1.0.2/", "requires_dist": null, "requires_python": "", "summary": "Toribash as an agent learning environment", "version": "1.0.2" }, "last_serial": 5858068, "releases": { "0.9.0": [ { "comment_text": "", "digests": { "md5": "f43f14a574faa5197cd2b19d80f406c6", "sha256": "fcb0eaf29ef7c80e6ba9c14b7193b0bf945f85504238db50d3c2cbe7ac743763" }, "downloads": -1, "filename": "torille-0.9.0.tar.gz", "has_sig": false, "md5_digest": "f43f14a574faa5197cd2b19d80f406c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22437400, "upload_time": "2018-07-26T15:51:48", "url": "https://files.pythonhosted.org/packages/05/ce/5b19fd06dc7dfe5bf03957bdff3ec9c4ea486f97d01d07878e84b5f7beba/torille-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "68eb1cfd945b5bb199908cd59f486eec", "sha256": "0ecb35bbf2fdbb289cf95d86296d411d3bf513fda1b5c34558169d1307255c99" }, "downloads": -1, "filename": "torille-0.9.1.tar.gz", "has_sig": false, "md5_digest": "68eb1cfd945b5bb199908cd59f486eec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22437508, "upload_time": "2018-07-27T10:10:13", "url": "https://files.pythonhosted.org/packages/ee/7d/8c727fdc017e8d0be977d6de0216277381c7aec0738f5ea48ec147273cb3/torille-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "ba20b51ef1c818a8cd26ab85704c0cac", "sha256": "05d501988e9578fb750f4e61c48f38638d471eb0080150e9695b66675d1de899" }, "downloads": -1, "filename": "torille-0.9.2.tar.gz", "has_sig": false, "md5_digest": "ba20b51ef1c818a8cd26ab85704c0cac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22438292, "upload_time": "2018-07-28T17:09:15", "url": "https://files.pythonhosted.org/packages/a3/9b/ef4c0c1a1bd61ef30b4ac3a9f231ea584ff47588e518f7d36285f0305abc/torille-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "3df2d2e313c6d12ca893a0a165c53c2c", "sha256": "f4123e6bcc2932345028facac4aaa5eb5b72b2dd9d0a277cc243056d3b72c364" }, "downloads": -1, "filename": "torille-0.9.3.tar.gz", "has_sig": false, "md5_digest": "3df2d2e313c6d12ca893a0a165c53c2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22438304, "upload_time": "2018-08-20T08:03:23", "url": "https://files.pythonhosted.org/packages/55/cc/b133e8d9c3f91a9800b0204e46ffcc93aa02776ea408895b701eb581c162/torille-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "7164864d6e570cfe7af680075cf5a64c", "sha256": "2bfa6854f80f3d5247ce7c1f329d2b275032d44782c221333597e4694975f7bb" }, "downloads": -1, "filename": "torille-0.9.4.tar.gz", "has_sig": false, "md5_digest": "7164864d6e570cfe7af680075cf5a64c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22438366, "upload_time": "2018-08-20T08:28:15", "url": "https://files.pythonhosted.org/packages/4c/40/6652ecd3e0e923b1198f87674e0a474fb9b6e24f93db092c8999690d0ea2/torille-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "2103ce7d20cd46ef5fd029545b182603", "sha256": "eb9aa096e70247c474c7b36df0d41c2cd0118b58dbbf9b7f7198d3a712782f4b" }, "downloads": -1, "filename": "torille-0.9.5.tar.gz", "has_sig": false, "md5_digest": "2103ce7d20cd46ef5fd029545b182603", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22438473, "upload_time": "2018-08-20T13:31:20", "url": "https://files.pythonhosted.org/packages/6d/e2/39929f76e91909fe7c374949bac64e80793dbf66d4c84262631734f56881/torille-0.9.5.tar.gz" } ], "0.9.9": [ { "comment_text": "", "digests": { "md5": "80674a22b1b94264d20c6a6e95301eb7", "sha256": "2b83627d0af96872ae4ec0c73589e12699116b9ea2269e34c225258e08f93480" }, "downloads": -1, "filename": "torille-0.9.9.tar.gz", "has_sig": false, "md5_digest": "80674a22b1b94264d20c6a6e95301eb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22443040, "upload_time": "2018-11-08T18:07:32", "url": "https://files.pythonhosted.org/packages/0a/fe/734ccc4cde4029fd7e3e56a7bb4fc5d2c4f4a7cbe0e7f9346c21b2d1b8c1/torille-0.9.9.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "8cd0ee7c5389b53b20275292f59f32b0", "sha256": "bf909a058cd55678be122f230a50cac017478548c0151b06e54c374f0e4db336" }, "downloads": -1, "filename": "torille-1.0.0.tar.gz", "has_sig": false, "md5_digest": "8cd0ee7c5389b53b20275292f59f32b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35586394, "upload_time": "2019-02-18T12:34:45", "url": "https://files.pythonhosted.org/packages/fd/ae/05e42d694ceaa4f267cd5cf86a50aaa627b9d5f84ed076d0798099b9a601/torille-1.0.0.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "4fd35450d6ebbf524b9db02151dbf95b", "sha256": "24f7865f58cf7058e94a758f2fe5bad70db0eea4a463d109702cb50ccf480ba3" }, "downloads": -1, "filename": "torille-1.0.2.tar.gz", "has_sig": false, "md5_digest": "4fd35450d6ebbf524b9db02151dbf95b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35616865, "upload_time": "2019-09-19T18:27:02", "url": "https://files.pythonhosted.org/packages/4f/eb/d78dfa37b479cfda6e3fd2f76dd3e624eac094c315fc3b8943e4b6602e29/torille-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4fd35450d6ebbf524b9db02151dbf95b", "sha256": "24f7865f58cf7058e94a758f2fe5bad70db0eea4a463d109702cb50ccf480ba3" }, "downloads": -1, "filename": "torille-1.0.2.tar.gz", "has_sig": false, "md5_digest": "4fd35450d6ebbf524b9db02151dbf95b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35616865, "upload_time": "2019-09-19T18:27:02", "url": "https://files.pythonhosted.org/packages/4f/eb/d78dfa37b479cfda6e3fd2f76dd3e624eac094c315fc3b8943e4b6602e29/torille-1.0.2.tar.gz" } ] }