Streaming interactive content. No Plugins

Let me introduce myself - my name is Valery, I started working as a 3D-artist, and then a little project manager at a well-known Russian company developing educational software for schools.

For a long time, Adobe (then Macromedia) Flash was chosen as the main development platform because it was quite simple and made it possible to solve all our problems using ActionScript. And it worked well on almost all the platforms that existed then (after all, there were not so many of them - they aimed only at desktops, and there were always excellent browsers with the ability to install the plugin).

This company has been on the market for more than a decade, and during this time it has accumulated a large database of digital textbooks. As time went on, technology developed, and over the past few years it has become especially clear that we need to somehow translate everything that we have - of course, on iOS. Well, in general, rethink the concept of cross-platform under the new realities.

Each of several tens of thousands of modules did not really want to rewrite / recompile and wrap in an AIR player. But mentally, we were already preparing for this and began to lead R&D in this direction ...

In one of the abstract dialogs with friends, we discussed some new demo from Amazon. There they showed a promising development and streamed the toy directly to their Kindle. And then I jumped: this is the solution! We just need to stream any non-native content to clients. This would solve a lot of problems right away, including the piracy of our products would be put to an end. For me, as a developer, this is not a key, but one of the important factors. Given that our flash drives specifically did not have high response requirements, unlike games, I presumptuously decided that the goal was achievable.

However, it was not possible to distract anyone from the team. Firstly, everyone was already busy with something, and secondly, they would look at me with suspicion as a 3D artist, and this is justified. I myself didn’t know exactly how long development could take, who needed it and how successful the idea would be. But I thoroughly understood what the final concept and part of the application architecture should look like.

Looking at my modest savings, I decided - I need to take a chance! Fortunately for me, I quickly found a talented programmer Anton on freelance, and he kindly agreed to help me. Later, another member, an expert in HTML5, joined the team. The period of research and experimentation began.

Obviously, here we are talking about client-server architecture: a flash drive is fed to the server, an image is streamed to the client, the coordinates of clicking back to the server are received from the client. Amazon was purchased for an objective assessment of the response and speed of the entire structure under combat load.

After a series of trial and error, as well as proposals made by potential customers, the core of the system was Chromium, which was regularly updated, fast and open. In the running browser process, which works in off-screen mode (OSR), we load the SWF exactly in its original form, without any modifications or recompilations of the flash drive itself. We remove the image from it and send it ... to the HTML5 client. Rather, at first I thought that clients would have to write their own for each platform, and although their function is extremely simple - I wanted to avoid this and write one universal one. However, the presence of the API leaves the possibility of platform orientation.

Current performance indicators are more than satisfactory for streaming educational flash content (the server can hold up to hundreds of connected and working clients). So far we are restricting the flow to 12 frames per second per client, but we have not even approached optimization issues and data formats.

Thus, the system is able to grind any interactive devices and deliver them even to smart watches, if necessary. Only a modern browser is needed. As a result, the legacy of decades of development can be saved and you don’t need to reinvent the wheel just because Adobe Flash is ignored by one apple company and anyone else.

Today we have a very working prototype. There is an understanding of what this design should come to - namely, a cloud service with the ability for everyone to stream any interactive content that can be pushed into a full-fledged desktop browser (that is, in fact, all existing plugins, from Java to Unity, etc. ) to any device. The ability to embed a stream player in a regular web page. No dependence on app stores like app store. In fact, applications will be able to work around them, without root and jailbreak.

I will be glad to hear the opinion of the community about this venture.

Thanks for attention!

Also popular now: