Wayfarer Javascript Game Engine
JavaScript Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
client
server
README

README

= Wayfarer Engine

The Wayfarer Engine is a proprietary engine for creating online browser-based games.

The primary concept behind developing with the Wayfarer Engine, is the end-developer specifies their own set of game objects, which handle game-specific functionality such as input, physics, and drawing.
Wayfarer steps in to handle things such as user input, network communication, graphics drawing and buffering, event loops, and other things that are common between games.
In addition, Wayfarer comes with some usable game object prototypes, based upon which a variety of simple games can be built.

Wayfarer supports a client-server system - it is up to the developer to create game objects and logic for both the client and the server simulation. The server is always considered the authority in disputes, but every client maintains their own game simulation, to gracefully handle network and system latency issues.

The server implementation is free to be built in any language or system, but the reference implementation shall be built in Ruby. Wayfarer uses HTTP and JSON for it's client-server communication.

Wayfarer is Copyright 2010 Adrian Pike.

== NEAT FEATURES

* Persistent update stream.

== QUICKSTART

Change line 32 of client/client.html to reflect your IP address. Make sure you use an outside IP and not localhost/127.0.0.1.

$ cd server
$ rackup wayfarer.ru

Fire up thy browser, and navigate to http://[YOUR IP ADDRESS]:9292. Now do it with another browser. Gape in awe.

== PROBLEMS

* Make sure you're accessing it on an outside IP, and not localhost, otherwise you'll run into some crossdomain headaches.

== KNOWN LIMITATIONS

* Currently, Wayfarer is only being developed against Chrome. This should be fixed.

== TODO

Engine:
* Monitor latency to help reduce warping.
* Authenticate update requests.
* Chat capabilities.
* Modularize & Refactor
* User console
* Documentation
* TDD Framework
* Parallax Backgrounds
* Bring in Johnson (http://github.com/jbarnette/johnson/) to codeshare game objects between client & server.

Game Stubs:
* ColideableObject

== CHANGELOG
=== 0.0.1
* Initial release of POC. This hasn't happened yet.