Dave Hoover 038604d1d2 Make piece prediction harder.
Since the client & server share RNGs, many puzzles (e.g. yohoho's
swordfighting) wind up lending themselves to easy piece prediction; the
board is set up with a seed, and the RNG is only ever used to generate
pieces. Someone snooping that could (and people have) pre-generate all
the pieces in order, letting you snoop ahead.

Now, Board implementations can choose to use certain events to pull bits
from the RNG so that the actual ACTIONS taken perturb things, making
things branch to the point that prediction is prohibitively hard.

A while back, I'd wanted to do this across the board for all actions,
but unfortunately in yohoho we have various non-board-altering events
that come in and are executed in different orders on client and server,
so things fell out of sync pretty quickly. The thought rattled around in
my head again, so I'm doing it again. This time, Boards have to
explicitly opt in on each event, so they can be sure to restrict it to
those that are safe to use.

git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@896 c613c5cb-e716-0410-b11b-feb51c14d237
2010-02-09 04:11:36 +00:00
2010-01-04 21:47:24 +00:00
2006-08-23 18:18:30 +00:00
2010-02-09 04:11:36 +00:00
2007-10-26 18:37:21 +00:00

The Vilya library
-----------------

The Vilya library provides various facilities for making networked multiplayer
games. It's various packages include:

  * whirled - builds on the crowd framework and defines a scene graph with
    portals to move between scenes and provides hooks for distributing and
    updating scene data (for example isometric rendering information) over
    the network
  * parlor - builds upon the crowd framework to create the notion of a
    game with players and provides tools for making turn based games
  * puzzle - builds on the parlor and media frameworks to provide tools
    for implementing puzzle games in a networked environment
  * micasa - builds on the parlor framework to provide lobbies and
    matchmaking for multiplayer games 

Documentation is somewhat sparse at the moment, but inspection of the code in
the tests/ directory shows examples of use of many features of the library.

Building
--------

Building the library is very simple. First ensure that the necessary third
party jar files are available in the lib/ directory. See lib/README for a list
of the necessary third party jar files and how to get them.

The library is built using Ant, a modern build tool written in and for Java. If
you aren't already using Ant for other projects, it can be found here:

  http://ant.apache.org/

Invoke ant with any of the following targets:

  all: builds the distribution files and javadoc documentation
  compile: builds only the class files (dist/classes)
  javadoc: builds only the javadoc documentation (dist/docs)
  dist: builds the distribution jar files (dist/*.jar)

Distribution
------------

The Vilya library is released under the LGPL. The most recent version of the
library is available here:

  http://www.threerings.net/code/vilya/

Contribution
------------

Contributions to Vilya are welcome. Read-only access to the subversion
repository is available at:

svn://code.threerings.net/vilya/trunk

Patches can be mailed to Michael Bayne <mdb@threerings.net>.

Contact Information
-------------------

Vilya is actively developed by the scurvy dogs at Three Rings Design, Inc.
Contact Michael Bayne <mdb@threerings.net> with questions, comments and other
wordly endeavors.

$Id$
S
Description
No description provided
Readme 5.3 MiB
Languages
Java 78.2%
ActionScript 19.9%
Shell 1.7%
HTML 0.2%