5 ms·
I really wish Adobe would write a Flash runtime in WebAssembly. There are tens of thousands of great Flash games that are unplayable in modern browsers... Sure,
by jim-greer 10y ago
I really wish Adobe would write a Flash runtime in WebAssembly. There are tens of thousands of great Flash games that are unplayable in modern browsers... Sure, you could rewrite them in js, but no one is going to.
- moron4hire 10y agoWhat happened to Mozilla Shumway? Looks like there haven't been any commits in over half a year.
- steveklabnik 10y agoIts wikipedia page links to http://www.ghacks.net/2016/02/23/flash-replacement-shumway-is-as-good-as-dead/ http://www.ghacks.net/2016/02/23/flash-replacement-shumway-i...
- qwertyuiop924 10y agoWhy would it have to be Adobe? Plenty of people could do that kind of work.
- jim-greer 10y agoThat's true. Would be nice if Adobe at least threw some resources at it though. It's a huge undertaking. There are just a ton of library calls to support. Here's the list of AS3.0 classes: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/class-summary.html http://help.adobe.com/en_US/FlashPlatform/reference/actionsc... And a whole lot of games are still in AS2 - game developers never really embraced AS3. It really isn't going to happen, I'm afraid. EDIT - Maybe it's possible to compile the C++ sources for the Flash Player to WebAssembly? Then you wouldn't have to re-implement the libraries. I don't know the state of these compilers, but there was a Mozilla post about it a while back: https://hacks.mozilla.org/2015/12/compiling-to-webassembly-its-happening/ https://hacks.mozilla.org/2015/12/compiling-to-webassembly-i.... Adobe hasn't open sourced the Flash Player, so it would have to be them.
- IvanK_net 10y agoThese classes / libraries are not built inside a Flash Player. They are part of the SWF file after compilation. SWF specification is here http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/swf/pdf/swf-file-format-spec.pdf http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/swf/p... It is definitely shorter and simpler, than e.g. PDF file format.
- 0xcde4c3db 10y agoThere's still a pretty big gap between parsing and actually rendering. I don't think that spec contains anywhere near enough information to play animations the same way that Flash Player does.
- joeyjojo 10y agoAdobe should do it because lots of people still use Adobe Air and Animate CC (previously called Flash Professional) to build games. If they could make the vector animation capabilities fast with WebAssembly it would bring back a set of extremely fast and flexible workflows for building games. There presently seem to be a lack of viable workflows for building games with vector animations, which is where Flash's strengths have always been.
- qwertyuiop924 10y agoBut Adobe's too busy trying to shoehorn flash into places it doesn't fit.
- IvanK_net 10y agoThree years ago, I had an idea to write my own Flash Player in Javascript, but I was too lazy to start working on it. Today, we have PDF.js, emulators of gaming consoles, or even emulators of a whole x86 computer, which can run Windows OS. I believe that "SWF interpreter" in Javascript can run pretty fast. The specification is free available online. The only problem I see is, that in Flash, you can create TCP / UDP sockets, which is not possible in a web environment.
- merb 10y ago> The only problem I see is, that in Flash, you can create TCP / UDP sockets, which is not possible in a web environment. You can send it to a backend via WebSocket, tough TCP/UDP proxy.
- Ph0X 10y agowho's running these proxies? The idea is to have a replacable flash player that works out of the box with all the flash content on the web.
- imtringued 10y agoYou can do it yourself.
- catshirt 10y agolike https://github.com/mozilla/shumway https://github.com/mozilla/shumway ?
- jim-greer 10y agoThere are some other things you can't do from the browser in addition to sockets. Full screen, camera, and microphone. But most games don't use that stuff.
- od14 10y agoThis is not true, all of the things you mentioned are possible in modern browsers and are being standardized. However some of them require permission from the user. (1) Full screen: https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_... (2) Camera + Microphone: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices https://developer.mozilla.org/en-US/docs/Web/API/MediaDevice...
- white-flame 10y agoAs long as it does the antialiasing correctly, then yeah! But I've seen .swf->.js stuff which has the telltale garish seams between adjacent vector objects, showing it's just deferring to the broken AA use of the immediate-mode canvas renderer. Does anybody know how much of the Flash plugin AA runs on CPU vs GPU? Obviously the older versions were CPU-only, though I'm not sure how much of actual Flash object rendering has moved to the GPU in recent years, especially as a ton of it is bezier based. If it is still fully CPU-based, with GPU just doing blits & blends, then wasm should allow fast enough use of a proper .swf AA renderer without going through canvas's forgetful AA.
- joeyjojo 10y agoMost of new games built with Flash are using Stage3D which runs on the GPU. These games however don't really rely much on the vector capabilities and animation timeline, which still uses the CPU. Adobe could probably make a vector renderer run on the GPU though. Some people have made vector animation renderers as a proof of concept. https://www.youtube.com/watch?v=NmgRiMhP4q4 https://www.youtube.com/watch?v=NmgRiMhP4q4
- white-flame 10y agoRight, the polished Stage3D stuff would just go through to WebGL. It's the vector stuff I'm concerned about. There's a lot of great, fun little Newgrounds-style animations & games made with that level of graphics.
- IvanK_net 10y agoI have made several Flash games in the past, and I really wanted them to run in a web environment (i.e. without a dependancy on any plugin). That is why I made IvanK.js http://lib.ivank.net http://lib.ivank.net . It is a library for doing graphics (including rewritable text fields), mouse and keyboard events in a "Flash way". I was able to rewrite my flash games to JS in a couple of hours, it was just a "mechanic" rewriting of ActionScript 3 to Javascript. If you want to port your flash projects to the web, it may be extremely useful to you :)