What is Kusht?
Kusht is an engine, written in PHP, designed to support next-generation browser-based real-time games. Using Web Sockets, from the HTML5 specification, Kusht is one of the first of what will likely be many projects which take advantage of this emergent technology to transform the browser into an actual game client, just like a traditional MMO or MMORPG client, with all of the same incredible functionality.
To learn more about Kusht, visit the Development Website
Details About the Codebase
Kusht is primarily a server-side game, modeled as a traditional Diku-inspired MUD, with an intentionally familiar architecture. Packaged along with the server, however, are two clients which show off the functionality of the new web sockets technology.
The server runs on Apache or any PHP-supporting server, setting up a socket server similar to that found in traditional mud based games. As of version v0.06 the game includes support for basic chat functions, rooms, and basic observation functions.
What makes Kusht so unique, however, is its implementation of a web-sockets JSON model which means that custom clients can be built on the fly, with limitless functionality. By transmitting data in JSON, Kusht allows clients to literally pick and choose how they wish to display and manipulate data from the server.
For Example: The "look" function is implemented client-side, not server side, because up-to-the-second data about room content is constantly pushed down from the server. This means also that a client can be built that keeps track of this data in real-time thus pushing beyond the boundaries of what MUDs have traditionally been able to do.
Along with JSON of course, browsers support images, videos, and multimedia of nearly any kind, meaning that MUDs are no longer purely "text" but can be enriched with any number of means of decoration. The test implementation of Kusht shows off rooms with pictures accompanying them. That's only the beginning of what could be done. A comparison of the "advanced" and "basic" clients gives a good idea of how any of a literally limitless number of clients can be developed to interact with the same game.
Releases through v0.5 are available on Google Code in .zip format. You can download it directly by clicking here. As of v0.5 there was no database implemented.
Downloading the from source repository (unstable!) comes packaged with a MySQL Database impementation.
However, since the entire architecture is abstracted via handlers, different parts of the code can be totally replaced simply by writing a new handler, without touching the rest of the implementation, for maximum extensibility and customizability.
Try It
Click here to try the demo for Kusht (a very simple game implementation called, well, Kusht).
The KUSHT client (including the demo here) requires the latest version of Google Chrome to function.
Build [something awesome].
The code has been released as 100% open source under the MIT License which means you're free to modify, destroy, improve upon, sell, or otherwise us it in whatever way you see fit.
The codebase is currently maintained over at Google Code.
It broke.
First stop would be the Google Group for just this purpose. There you'll find me and hopefully other successful KUSHT developers.
You might also send me an email directly at tutt.andrew (@) gmail.com and I'll do my best to get back to you.
