Title: Document minimal Java bot requirements and interaction model · Issue #21 · RLBot/RLBotJavaExample · GitHub
Open Graph Title: Document minimal Java bot requirements and interaction model · Issue #21 · RLBot/RLBotJavaExample
X Title: Document minimal Java bot requirements and interaction model · Issue #21 · RLBot/RLBotJavaExample
Description: This might be in the wrong place but I figured I'll document it somewhere for now and it can get moved if necessary or closed if it isn't valuable. I don't think this is an urgent need but I would like to suggest documenting the interact...
Open Graph Description: This might be in the wrong place but I figured I'll document it somewhere for now and it can get moved if necessary or closed if it isn't valuable. I don't think this is an urgent need but I would ...
X Description: This might be in the wrong place but I figured I'll document it somewhere for now and it can get moved if necessary or closed if it isn't valuable. I don't think this is an urgent need ...
Opengraph URL: https://github.com/RLBot/RLBotJavaExample/issues/21
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Document minimal Java bot requirements and interaction model","articleBody":"This might be in the wrong place but I figured I'll document it somewhere for now and it can get moved if necessary or closed if it isn't valuable. \r\n\r\nI don't think this is an urgent need but I would like to suggest documenting the interaction model and all functional dependencies of a well-behaved Java bot process. There's a little magic hidden by Gradle that devs would have to reverse engineer to understand correctly. Ideally we have a set of rules that, if any Java process follows, you can reasonably expect it to work. \r\n\r\nI recently tried to create the most bare-bones, minimal Java bot I could make using Maven as the build tool. Here's what I did: \r\n1. Created a standalone directory (under source control or not) for `bot.cfg`, `bot-appearance.cfg`, and `bot-module.py`; this is data that, once updated to reflect my own values and ingested into the RLBot UI, largely remains unchanged. \r\n1. Created the maven project with a single `pom.xml` and three classes: `Main`, `BotImpl`, and `PythonInterface`. That's it. \r\n1. Ensure the resultant jar has transitive dependencies packaged correctly. \r\n1. Ensure the resultant jar is executable.\r\n1. Ensure the system property `jna.library.path` is set to a directory with `RLBot_Core_Interface.dll` in it. In my case I'm just calling `System.setProperty` in `Main` to some stable, external directory (for now). \r\n\r\nDoing the above resulted in a working bot controller without any Gradle assumptions. I can rebuild and restart the jar completely independent of the `cfg` files or python module and everything keeps working. ","author":{"url":"https://github.com/Lambeaux","@type":"Person","name":"Lambeaux"},"datePublished":"2020-07-20T04:18:41.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/21/RLBotJavaExample/issues/21"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:0970831d-7d80-c60c-652c-7aa684c6d430 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D78C:30CF41:1CB27C7:25F9CD1:6971A919 |
| html-safe-nonce | 6c3bfecc09b98d438a58fc0a986c808c2c40a0e7030d59470fa3367a62a3e84f |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJENzhDOjMwQ0Y0MToxQ0IyN0M3OjI1RjlDRDE6Njk3MUE5MTkiLCJ2aXNpdG9yX2lkIjoiODA2NzY3NDY0NTExMzk3MzAxNyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | d6e645e0d9a15c8bd91cc20c1b753c244fb152fa2f7510b2d5288a5823a001f1 |
| hovercard-subject-tag | issue:661347454 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/RLBot/RLBotJavaExample/21/issue_layout |
| twitter:image | https://opengraph.githubassets.com/a6fe5ef6629a8dd7038f4d3b8fb16ae8b46de9303768e3f3a9c138442f5d5f2b/RLBot/RLBotJavaExample/issues/21 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/a6fe5ef6629a8dd7038f4d3b8fb16ae8b46de9303768e3f3a9c138442f5d5f2b/RLBot/RLBotJavaExample/issues/21 |
| og:image:alt | This might be in the wrong place but I figured I'll document it somewhere for now and it can get moved if necessary or closed if it isn't valuable. I don't think this is an urgent need but I would ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | Lambeaux |
| hostname | github.com |
| expected-hostname | github.com |
| None | 2b0f2f00499ad3dd2c21ad030a3c403edca54df20ea256f6517c6d8c4fa3a1a4 |
| turbo-cache-control | no-preview |
| go-import | github.com/RLBot/RLBotJavaExample git https://github.com/RLBot/RLBotJavaExample.git |
| octolytics-dimension-user_id | 36465262 |
| octolytics-dimension-user_login | RLBot |
| octolytics-dimension-repository_id | 125761265 |
| octolytics-dimension-repository_nwo | RLBot/RLBotJavaExample |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 125761265 |
| octolytics-dimension-repository_network_root_nwo | RLBot/RLBotJavaExample |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 979375c570cc30aefe2a734083debe402a612209 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width