The Narya library ----------------- The Narya library provides various facilities for making networked multiplayer games. It's various packages include: * geom, util, io - basic tools for doing networked I/O, data structure manipulation and some geometry math * resource - tools for bundling, deploying and managing media (images, sounds, etc.) with a game * media - a framework for doing "active" rendering in Java * media.image - tools for loading, caching, manipulating and displaying images * media.sound - tools for loading, caching, and playing audio * media.animation, media.sprite - works in concert with the active rendering system and provides tools for defining and manipulating sprites (graphical entities that follow paths) and animations (graphical entities that affect the display in other ways) * miso - a framework for defining and displaying isometrically rendered scenes * presents - a framework for distributing information among a server and networked clients * crowd - builds on the presents framework to create the notion of bodies and rooms and provides chat infrastructure * 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 * cast - a framework for defining and using recolorable, composited characters with different poses and actions * 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 either in the lib/ directory or in the system wide jar file location specified in build.xml. 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 available from The Jakarta Project. If you aren't already using ant for other projects, it can be found here: http://jakarta.apache.org/ant/ 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 Narya library is released under the LGPL. The most recent version of the library is available here: http://www.threerings.net/code/narya/ Contribution ------------ Contributions to Narya are welcome. Control of the CVS repository is presently in the hands of mdb@threerings.net, who should be emailed about submissions. Soon we will be migrating to Subversion and making the repository publicly accessible. For now, source releases are available at the above website. Contact Information ------------------- Narya is actively developed by the scurvy dogs at Three Rings Design, Inc. Contact Michael Bayne with questions, comments and other wordly endeavors. $Id$