Out of our undying love for the sport of tennis, we have created a high-fidelity, realistic tennis simulation game, complete with physically-simulated ball bounce physics and racket movement. Unfortunately, our 3d modeler is on vacation, so we currently render through ASCII art:
example_ai example_ai
2 3
|
|
|
0 |
) |
| (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You can build an AI in any FIDL-supported language and have them fight each other, or use the manual_player script to play against an AI by yourself.
Set your packages to include Tennis:
fx set core.x64 --with //examples/tennis fx build
After either paving or starting QEMU, you‘ll want to open three fx shells. In the first, you’ll want to run tennis_viewer, and in the other two run tennis_example_ai.
We‘ve written an example AI in Rust in the examples/tennis/bots/example_ai folder. It’s not very good, so you should be able to beat it! To make your own AI using the base as an example, you can copy the example_ai folder to your own, taking care to rename meta/tennis_example_ai.cmx and the various rules in your bot‘s BUILD.gn file to create a new package. You’ll also want to add your bot to the list at garnet/packages/experimental/disabled/tennis and rerun fx set so it will build.
The example is in Rust, but you can definitely build an AI in any FIDL-supported language! The FIDL service definition is available at sdk/fidl/fuchsia.game.tennis/tennis.fidl.