Otter does not currently have even a built-in text chat facility. It
does have a way to share a URL for a voice chat.
-Right now Otter is in a beta state. There are significant
-as-yet-unimplemented improvements that would make it work better for
-more people and more games. I don't currently promise savefile
-compatibility, or upgradeability, from one Otter version to the next.
-And there are still bugs.
-
Free software, and user freedom
-------------------------------
.. _rustup: https://rustup.rs
-3. Switch your Rust install to use Rust Nightly and add the WASM
- target::
+ Otter is known to work with Rust 1.59. Probably, many earlier
+ versions well work. Current versions of the dependencies quoted in
+ ``Cargo.toml`` will work, but the minimum versions may be
+ optimistic - newer versions may be needed than are declared.
+
+3. Add the WASM Rust target::
- rustup default nightly
rustup target add wasm32-unknown-unknown
rustup component add miri # for the tests
- Unfortunately, it is possible that the Rust Nightly you find when
- you run this is missing some pieces, or is not compatible with the
- version of Otter you have. The following is known to work with
- Otter 0.7.1::
-
- rustup default nightly-2022-03-19 # downloads 1bfe40d11 2022-03-18
-
**If you just want to run the otter cli client over ssh to an existing server, or edit and preview the shape libraries (ie the piece shapes) you can stop here.**
4. For the tests, install the webdriver binary from Mozilla. Visit
Apologia
........
-Rust Nightly
-````````````
-
-This was needed almost solely because Rocket needs it.
-Hopefully we will compile on stable shortly.
-
The many dependencies of Otter
``````````````````````````````
Adding shapes (pieces, cards, etc.) to the builtin library
----------------------------------------------------------
-(Consider defining an uploadable game bundle instead.)
+(Consider making an uploadable game bundle instead.)
Otter's builtin shape libraries use SVGs. The sources for the SVGs
are all in the otter source tree, in the `library/` directory.
documented in the Rustdoc documentation for the module
`otter::shapelib_toml`. If you run `make -j8 shapelib` it will print
out a `file://` url for these docs.
+XXX
You can preview the shapes, including any changes you make, without a
whole game server, by running `make -j8 shapelib`, and looking at
Code shared by the host and the WebAssembly. Notably, the Z
coordinate handling, but also a a few other minor functions needed
- by both client and server. To avoid duplicating they are written
+ by both client and server. To avoid duplication they are written
once in Rust and compiled twice - once for the host and once for
WebAssembly for use in the client. This crate is kept fairly small
- to keeep the WebAssembly binary small (currently, ~100kby).
+ to keeep the WebAssembly binary small (currently, ~140kby).
* `wasm/`
The tests produce a single portmanteau binary to reduce compile
times. You run it with `target/debug/wdriver --test=wdt-something`.
+* `jstest/`
+
+ Node.js--based unit-end tests.
+ XXX explain
+
* `specs/`. The table and game specs, as used directly by `otter`.
* `library/`: The shape libraries.
* ``type``: Piece type or piece spec type. One of the types listed
in `Piece Spec Types`_. [string, enum, required]
- * ``pos``:Position, in game coordinates, of
+ * ``pos``: Position, in game coordinates, of
the centre of the piece. The origin is at the top left.
[2-element array, default ``[20,20]``]