I've spent the last couple of days thinking up new projects that could be useful to Linux and other open source software. This idea is the one that I think could be the most useful, but I've never programmed anything to do with Jabber myself, so I thought I'd post here to see if you guys think it's possible.
Communication is one of the most important things for any piece of software. Giving users the ability to report bugs, find help easier and to work more as a team, brings big benefits for both developers and users alike.
We have OpenGL for developers to implement graphics & OpenAL for the sound. We also have SDL to take care of audio, 2D video, controls etc. but what about communication? A cross platform Open Communications Library could make it a lot easier for developers to implement communication features into programs & games.
The technology to make up the library is (mostly) already here in the form of the Jabber protocol (for text messaging & chat), the Speex codecs (for VOIP) & IRC (for continues text chat). All have proven themselves to be very good at what they were made to do & deserve to be used a hell of a lot more than they currently are.
A user starts a program which automatically notifies the Open Communications Library (if it's installed) that it's developers have Jabber/VOIP/IRC services available for use and gives OpenCL the address of the server that they are hosted on. OpenCL then connects the user to the services when the program issues it the correct commands.
Bob's downloaded a new program for testing..
- He gets stuck on how to use a certain feature of the program, so he clicks on the programs Help menu and selects the menu option called CHAT. This automatically connects him to the programs Jabber server & main chat room for text chatting with the software's user community.
- Bob finds out Joe can help him, but he's having trouble typing at the same time as trying to sort the problem out. He clicks on the next link called VOIP that automatically connects him to the programs VOIP server, where he can now have a live conversation with Joe (who joins too) and gets step by step instructions on sorting the problem out.
- They sort the problem but encounter a bug along the way. Bob clicks onto the next option in the Help menu called IRC and is automatically connected to the developers IRC server. He submits a bug report to one of the programs developers and gets back to testing the new software.
That's an example of how a normal program could use OpenCL. The software that would probably benefit the most though is games.
I've put together a quick PDF for the Gamers Example which contains quite a few mock up pictures that I made to try & get my idea across easier. You can download it by clicking here!
BENEFITS OF USE
A lot of the benefits of using something like OpenCL should be quite clear to most people, just by reading the examples provided. There are some less obvious benefits too though..
- One of the reasons that Ogg Vorbis has been so successful, is that it has two main uses and not just the one. It can be used as a straight replacement for MP3 & other codecs for use within hardware/software audio players, and the lack of restrictions also makes it ideal for implementing directly into software itself.
Unfortunately Jabber only has the one use at the moment. It might be the best messaging protocol currently out there, but that alone doesn't seem to be enough for a lot of users to swap from the protocols that they're already using. A project like OpenCL could boost Jabbers uptake.
If a Jabber ID's used for in game messaging, desktop messaging and the user can also use it as an OpenID for web pages, then people will be more inclined to use it. One Jabber ID would cover pretty much all the bases.
- It wouldn't just be software itself that could take advantage of OpenCL. It could handle link management from web pages too. This would give users an easy way of joining a VOIP server from a gaming clans website etc.
- So far VOIP, messaging and IRC have been primary tied to peoples desktops. With the release of devices like Nokia's N800 though, more people than ever are starting to use them on the move. An Open Communications Library would give these devices a stable & convenient platform to work from that ensures compatibility across different devices.
This has been a fairly quick post but I hope I've managed to convey the idea clearly enough. I can see it in my head fine, but found it very hard to put it to paper (erm.. forum). If anyone can think of a reason why something like this wouldn't work or has anything else at all to add, then please submit it to the comments