|
Written by Fred Hirsch
|
|
Wednesday, 30 May 2007 |
The other big ongoing project that we have floating around is Convers. This project is based on a CGI based chat called SEaChat that was developed many years ago for a few online gaming communities that have rotated around the Internet. I'll discuss the design problems with SEaChat, how Convers will overcome these problems and where the design is going in the long term. The Flaws of Legacy Chat In the early days of online web based chats, there were a number of chat apps floating around that all had the same core design problem. Web based chats are like any other web application: they are asynchronous. This means that the only way the chat program can look for new messages is to poll the web server continously and query for more messages. The key issue is that all the messages have to be resent to the client on each refresh instance. This eventually becomes a huge bandwidth issue, not to mention the possible processor and memory load that can be caused by the chat application itself. As newer web technologies have emerged, there have been a variety of ways to overcome this issue. The first method that was used by the initial version of Convers was to use PHP scripts that generated messages based on the last update time and created Javascript data output instead of raw HTML. This allowed Javascript in the client to accept the incoming data and incorporate the data into the main message window using event handlers. With the advent of AJAX and Web 2.0 technologies, this becomes even easier to do than ever. Now calls can all be automated, returning well formatted XML that can easily be incorporated into the display. All of the fuss, none of the muss. The Convers Approach Convers is currently being redesigned in two phases: The first phase is to extract the application logic out of the old DarkPortal framework and implement it on CakePHP. This should be pretty simple, as the frameworks share many common traits. The second phase is to convert the main chat application from dynamic Javascript to AJAX based dynamic capabilities. Convers in its current incarnation has alot of additional features that distinguish its older predesessor: - Support for multiple chat aliases/avatars per user login.
- The ability to dynamically create chat rooms as needed.
- Built in plugin system that allows easy creation of new functional abilities in the interface.
Looking Feature Forward In the future, we will be adding the following features to Convers: - The core room structure will be changed to allow dynamic linking between rooms. This is much like how online games such as MUD's and MUSH's work.
- Ability to create automated chat agents, utilizing Alice AI bot engines. (NPC interactions).
- Pushing the chat into a more graphically oriented gaming environment.
|
|
Last Updated ( 2007-05-31 00:25:30 )
|