Gaming meets WebRTC.
I don’t know about you, but people always say how great WebRTC is for the gaming industry. And yet, while we have a gazillion vendors doing plain-old-video-conferencing, there are no gaming vendors out there. Or at least there weren’t.
Jocly is the first vendor to go WebRTC as far as I know, while the rest are just show cases and demos of what can be done with WebRTC for games.
Once I found Jocly, I had to have a chat with its CEO, Michel Gutierrez. Here’s what he had to say about Jocly, gaming and WebRTC.
What is Jocly all about?
Jocly is a board-gaming platform running in pure HTML5. The idea is to provide a number of generic features that apply to a large number of games. This includes a common artificial intelligence for playing against the computer, support for live and turn-based games between actual people, saving and loading games for analysis, a developer API for modifying existing games or creating new ones, and many other cool things.
One of the most remarkable features of Jocly is the use of the WebGL HTML5 technology. This allows viewing and moving around the board in 3D as if you had the real game craft in front of you. This results in a much better immersion. Most popular games and all the new ones we develop support the 3D view, but of course all games are also available in 2D for browsers or devices that do not have WebGL capabilities.
The fact we use only standard Web technologies allows Jocly to run almost anywhere, desktop, tablets and mobiles.
What games do you support?
For now, Jocly is limited to 2-players games which potentially represent thousands of games in the history of humanity. We support classics like Chess, Checkers, 9-men morris, Connect 4, Reversi, …, but also newly invented games like Yohoho, Margo or Mana.
We currently have over 50 games but it’s growing quickly since developing a new game is relatively painless as we capitalize on our existing libraries.
Why use WebRTC for gaming?
Jocly would exist even if the WebRTC technology wouldn’t be available. As a matter of fact, when we started Jocly, two years ago, having a live video chat between connected users was just a “dreamed” feature. It’s only 6 months ago that we realized the technology was mature enough to be integrated into the service.
Playing board games is not just a matter of solving mathematical problems; it has an important social dimension. Providing as many interaction channels as possible contributes greatly to the player experience. Live text chat was obvious but audio/video connection is definitely a step further.
How do you make use of WebRTC inside Jocly?
The most obvious usage is to provide audio/video interaction between live players. Since we make the 3D WebGL a key feature, we worked on integrating the WebRTC video stream to the 3D scene. This way, you can see your opponent directly in the game, which brings more value than just having a rectangular viewer in a corner of the screen.
In one of our games, Mana, we use some image recognition algorithm to extract the player’s face and stick it onto a 3D head mesh. This proves to be a lot of fun, but the quality is not excellent and even if we have the feature in place, we did not use it on other games.
We also use video streams inside 3D for displaying TV ads in dedicated sponsor game apps, but that’s not really part of the WebRTC specifications.
On what platforms does it work on?
It works in an interoperable way on the latest versions of Firefox and Chrome.
What excites you about working in WebRTC?
This is a new technology just being made available to the public. There is for sure many good ideas about usage that have not been had yet and that is exciting! Moreover, like for Web technologies, it does not take much investment to realize and test your idea.
What signaling have you decided to integrate on top of WebRTC?
Given that we already have the infrastructure to put the players in relation, there is no need for a sophisticated signaling protocol. We just use our existing game signaling channel in a proprietary way to setup the call and exchange face recognition data when this feature is used.
What technologies and architecture are you using there?
We are using a node.js server for all the players’ interactions and Drupal for serving the files, however Drupal should be removed in the future and everything server side being done through node.js. Websockets are used to exchange data in real-time between the client and the server.
For the client application, we use heavily AngularJS to provide a very dynamic user interface. We open-sourced a layer over AngularJS, Jaingee, that we use to maintain the layout and provide the basic application behavior.
Regarding the gaming AI itself, both Alpha-beta and UCT are being used, along with some in-house genetic algorithms to tune the game parameters.
Where do you see WebRTC going in 2-5 years?
There will be fewer opportunities for new ideas for sure!
Hopefully the WebRTC technology will be present on almost every device and since Web based applications will be extensively used, we should have video chat and screen-sharing features present in many places.
There also should be an open-source Javascript library that will have emerged to provide trivial ways to integrate WebRTC into web apps.
Finally, I think WebGL/WebRTC coupling will be widely used as this provides original ways to display video streams.
If you had one piece of advice for those thinking of adopting WebRTC, what would it be?
If you have ideas, it’s now! Tomorrow will be too late to play in this arena unless you are a big one.
If, as a developer, you hesitate putting the technology in place, give it a try, it’s certainly much easier than you think.
Given the opportunity, what would you change in WebRTC?
I cannot tell much about the protocol itself but there are big efforts to be done on the interoperability and in browsers support like being able to switch easily between cameras.
What’s next for Jocly?
Many more games, other game types like cards, better integration with social networks, smoother mobile support, … it’s the kind of project that can extend infinitely!
–
Now please excuse me – I need to go play a game or two – see if you can find me online on Jocly.
The interviews are intended to give different viewpoints than my own – you can read more WebRTC interviews.