blob: fca895f2d95e0f15a8deec101fb02d930ae1c3c2 [file] [log] [blame] [view] [edit]
# FIDL Tennis
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.
## Running the Game
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 shell`s. In
the first, you'll want to `run tennis_viewer`, and in the other two `run
tennis_example_ai`.
## Writing Your Own 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`.