📜 ⬆️ ⬇️

Streaming interactive content. No Plugins

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

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

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

Rewriting / recompiling and wrapping each of several tens of thousands of modules into an AIR player did not really want to. But morally, we already prepared for this and began to lead R & D in this direction ...
')
In one of the abstract conversations with friends, we discussed some new demo from Amazon. There they showed promising development and streamed the toy directly to their Kindles. And here I was twisted: here it 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 an end to. For me, as a developer, this is not the key, but one of the important factors. Taking into account the fact that specifically our flash drives did not have high requirements for response, unlike games, I self-confidently 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, as a 3D artist, with disbelief - and this is justified. I myself didn’t know exactly how long the development could take, who needed it and how successful the idea would be. But I thoroughly understood how the final concept and part of the application architecture should look.

Looking at my modest savings, I decided - I must take the risk! To my happiness, 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. Began a period of research and experimentation.

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

The core of the system after a series of trial and error, as well as suggestions made by potential customers, was Chromium, as regularly updated, fast and open. In the running browser process, which works in off-screen mode (OSR), we load SWF exactly in its original form, without any modifications and recompilations of the flash drive itself. We remove the image and send it ... in HTML5 client. Rather, at first I thought that customers 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 limiting the stream to 12 frames per second per client, but the optimization and data formats have not even been approached yet.

Thus, the system is able to grind any interaktiv and deliver them even on a smart watch, if necessary. All you need is a modern browser. As a result, the legacy of decades of development can be saved and there is no need to reinvent the wheel just because Adobe Flash is ignored by one apple company and anyone else.

Today we have a working prototype. There is an understanding of what this construction should come to — namely, a cloud service with the ability for everyone to stream any interactive content that can be thrown into a full-fledged dextup browser (that is, in fact, all existing plug-ins, from Java to Unity, etc. ) on any device. Ability to embed stream player in a regular web page. No dependency on app store stores. In fact, applications can work around them without rooting and jailbreaking.

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

Thanks for attention!

Source: https://habr.com/ru/post/249717/


All Articles