BeeBEEP has always been about people talking to each other over their own network. The new BeeBEEP is also becoming a place where other programs can join the conversation: a game of chess with a colleague, a hand of briscola, a voice call, one day a survey or a shared whiteboard. All of them as plugins, built on the same connection that carries your messages.
Nothing inside, on purpose
Years ago BeeBEEP came with a small game, a falling-blocks one. Some companies took it out of the package, and then a single extra file in the folder was enough to make their IT departments reject the whole program. The lesson stayed: the BeeBEEP you install contains no game at all. A plugin is downloaded apart from it, and lives in a folder of its own. With an empty folder BeeBEEP shows nothing and announces nothing.
An administrator decides what is allowed: plugins on or off, a whole category (say, games) switched off, and whether unsigned ones may run. Before any plugin code is started, BeeBEEP reads its description and checks it against the signed copy inside the library: if they disagree, the code never runs.
One way to play together
Whatever a plugin is, it starts the same way, and it looks like something you already know: an invitation is a chat message, and the answer is signed, as in the group invitations. You can accept, decline, or say you are busy. A session survives a restart: it can be suspended and resumed, and it is remembered until it ends. The plugin does not have to build any of this, only the game or the tool.
Three ways to be a plugin
- A library that BeeBEEP loads, for the plugins that come with BeeBEEP itself, on the desktop.
- An application of its own, in any programming language. BeeBEEP starts it for the session and talks to it through a local channel, one line of JSON at a time, just like the console. It sees the same things a library sees: the people in the session, the messages, the network path. Chess and briscola already run this way, with four BeeBEEPs around one table.
- A small web page, served only to the computer it runs on and shown in the phone's own web view, speaking the same commands as the application above: one vocabulary, two carriers. The page is fenced in: it cannot fetch anything from the internet, and it can only reach its own session.
Why a web page for the phones
An iPhone loads no code that was not shipped with the app, and Apple does not allow downloading programs. So a game cannot be "a file in a folder" on a phone. A web page is the answer both the App Store and BeeBEEP can live with: the games travel as signed bundles, and the same page runs on a computer and on a phone.
Fast when it has to be
A call or a shared screen cannot wait for a message to be acknowledged. For them BeeBEEP offers a live channel: encrypted datagrams straight to the other person, dropping what arrives too late, and falling back to the ordinary connection when the network does not let them through. The voice call, the first plugin planned, is its first user.
What is missing
The foundation is built and tested: the wire, the sessions, the loading, the bridge, the live channel. Still to come are the web page's bundle (its signature, its delivery to a colleague who does not have it) and the view on the phones. The kit that lets someone outside BeeBEEP write a plugin is not published yet, but it is planned, because the aim is a platform where other developers can build something of their own, and keep what they earn.
