Live data from Hacker News

A Flash Player emulator written in Rust

github.com

31–40 of 135 posts

Re: A Flash Player emulator written in Rust

#31
post #23
post #4

I'm excited for this; flash is still wholly unmatched as an artistic expression tool. HTML5 and WebAssembly can, obviously, provide the technical chops; but we've never recovered the experience of a novice Flash user who, with no prior domain experience, could realize an inspired prototype game or entertaining animation in less than an hour. The tool was just that accessible, and the community that good.

Whats missing from modern tools?

Which modern tools you have in mind?

Re: A Flash Player emulator written in Rust

#32
post #23
post #4

I'm excited for this; flash is still wholly unmatched as an artistic expression tool. HTML5 and WebAssembly can, obviously, provide the technical chops; but we've never recovered the experience of a novice Flash user who, with no prior domain experience, could realize an inspired prototype game or entertaining animation in less than an hour. The tool was just that accessible, and the community that good.

Whats missing from modern tools?

It's a combination of a lot of things. In theory, Adobe Animate still exists today, but it's wildly inaccessible both because of cost and its proprietary nature. There's also complications based on how PWA get deployed to mobile, etc...

But ignoring all of that, here's a quick list of (some) categories of things I still miss from Flash:

- nested animations/clips: The recursive nature of Flash made making animations very fast. It also opened up some workflows with AS2 that were not particularly scalable, but that were excellent for fast prototyping. This is the biggest thing I miss when I open programs like Aseprite. I can't begin to describe how great it was for programming to be able to embed code inside of animation, and have the entire thing be a clip that could be embedded inside another program. Doing stuff like point-and-click games with that workflow was so fast and easy, and it was so easy to build up animations with a lot of disparate parts.

- a content-first workflow: related to the above, Flash let you switch between coding and content very quickly without worrying about stuff like imports. The fact that the content/animation and coding were so synchronized was a different way of thinking about architecture. There were problems associated with it when it came to scalability and organization, but again, just very fast to work with, very accessible, and lent itself to a certain way of thinking about prototypes that had some big advantages. When you had an idea you could be switching back and forth from code to animation constantly, you didn't have to alt-tab or export anything.

- AS2: maybe controversial, because AS3 was pretty popular and a lot of programmers were campaigning hard that it was the "correct" way to do things, but again, I want to stress the weird combination of content/animation/code was part of what made Flash special, and abstracting some of that out and having more "professional" content pipelines and different ways of doing events and organizing everything -- I think something was lost with that transition.

- Also just, in general, the animation tools were good. I don't know of an Open Source (or shared source) tool that has the same level of animation tools. Blender is doing some really compelling stuff that I'm very excited about, but Greasepencil is not a substitute for Flash, it's going in its own direction, and it's much less accessible. Aseprite is great (being able to tag frames and export data about them is handy), but it has some quirks and annoyances around the timeline controls. It's also just a lot more limited, you're basically forced to do frame-by-frame animation. There are some programs that I see animators online using that seem to be very powerful, but they're often either quite expensive or so restrictive and narrowly targeted that I'm not even willing to think about using them.

- And again, I can't stress enough: even just as an animation tool, even forgetting about games, adding scripting to animations is useful. You can have a movie clip that repeats until you hit a frame and throw an event. You can have a hand-animated scene with a procedurally animated background. And that's all really, really fast to do because the way the UX is set up you just have everything accessible at the same time.

----

I don't think it would be impossible to replicate some of the things that made Flash great, and if someone really took the time to sit down and think about what made that workflow what it was, I don't think it would be impossible to make a Flash replacement considerably better than Flash. Flash had bad audio tools, its data formats were all closed down, it wasn't really extensible, it's drawing tools could have been better, and for most of its life it was terrible if you wanted to do anything with non-vector content. There are big improvements that an Open replacement could make.

It would be an uphill battle, because the ecosystem surrounding Flash didn't just exist because of Flash. There are a bunch of different factors that went into it. And there are some APIs on the web that are still annoying. Mobile support for web games is still annoying. Controller support is not great, rumble isn't really supported. There's stuff we could do better. But the core functionality that old-school Flash needed is mostly there, and we could have (functionally) a Flash replacement today. It also wouldn't need to be a web app, you could have a Flash replacement that targeted the web for compilation that itself ran as a native app, and that would be completely fine.

Heck, you could have one that didn't target the web. Obviously I'm thinking first about the web, but if there was a Flash-equivalent Open Source prototyping tool that targeted Linux/Windows, that would also be great, and as far as I know that kind of tool also doesn't exist today.

It could be done, it would just be a lot of work to build, and tricky to get right and to get polished. The really weird reality is that as far as I can tell, no one's ever tried to build a Flash successor that actually imitated the features I care about in Flash. There are plenty of game dev platforms, some very easy to use, but very few of them have great content creation tools baked in, very few are experimenting with completely novel approaches to architecture like Flash's movie clip system.

Re: A Flash Player emulator written in Rust

#33
post #30
post #23

Earlier quoted context omitted.

Whats missing from modern tools?

Flash was really special. The design philosophy behind flash was to let you make animations and interactive content. The design philosophy behind html/css/js/web stack is a composable system of modules that can be bundled, used to center objects, and plumb state to components. Flash was on another level. The web hasn't been the same since it left us.

Using Adobe Animate (previously called Adobe Flash {something?}) you can create all the same content you could previously exporting to html5/JS/CSS.

Re: A Flash Player emulator written in Rust

#34

Ok, funny story about ruffle: Years ago in 2012 some co-workers stumbled on the greatest website ever: http://www.novalight.net/NOVALIGHT.html (takes a while to load now) To prove that HTML5/CSS3 was finally ready, I started a side project to recreate it in JS: https://github.com/jtwaleson/NovaLight-Challenge . I never got far and I don't know if that means I never finish side projects or if Flash is officially super…

Awesome page, and it even works flawless on mobile.

Re: A Flash Player emulator written in Rust

#35
post #23

Earlier quoted context omitted.

Whats missing from modern tools?

It's a combination of a lot of things. In theory, Adobe Animate still exists today, but it's wildly inaccessible both because of cost and its proprietary nature. There's also complications based on how PWA get deployed to mobile, etc... But ignoring all of that, here's a quick list of (some) categories of things I still miss from Flash: - nested animations/clips: The recursive nature of Flash made making animations v…

> This is the biggest thing I miss when I open programs like Aseprite. I can't begin to describe how great it was for programming to be able to embed code inside of animation, and have the entire thing be a clip that could be embedded inside another program.

This was just _magic_.

Godot and Unity prefabs are sort of half-way there, but the scene view being the primary interaction for editing causes the _magic_ to disappear. Flash had the timeline as the primary view; so where in scene view you drop an object into a space, in Flash you drop an animation into a timeline.

The outcome is very different. With time moving forward in the scene view, IE in Unity play mode, the objects in the world move and behave in a linear fashion. A ball rolls forward until it finds the lowest point to settle in. With time moving forward in the timeline the animations within loop endlessly. Time goes from 0 to N and back to 0 to repeat.

This was absolute _magic_ for rapid iteration.

And yes, all the rest you discussed was goodly, as well.

And it was an absolutely great cartoon animation toolkit.,

Re: A Flash Player emulator written in Rust

#37
post #34

Ok, funny story about ruffle: Years ago in 2012 some co-workers stumbled on the greatest website ever: http://www.novalight.net/NOVALIGHT.html (takes a while to load now) To prove that HTML5/CSS3 was finally ready, I started a side project to recreate it in JS: https://github.com/jtwaleson/NovaLight-Challenge . I never got far and I don't know if that means I never finish side projects or if Flash is officially super…

Awesome page, and it even works flawless on mobile.

Took a while to load, but absolutely worth the wait!

Re: A Flash Player emulator written in Rust

#38
post #25
post #23

Earlier quoted context omitted.

Whats missing from modern tools?

I don’t think anything feature-wise is missing on the runtime side, but Flash’s keyframe/editor setup just let people make the most amazing things.

Isn't Adobe Animate the same thing, keyframes and everything, just with html output?

Re: A Flash Player emulator written in Rust

#40

What do you mean, a Flash player emulator ? There's no real CPU to emulate in the first place. Shouldn't we call that a Flash player ? Or is this because of trademark or something?

You're right it is a unofficial "flash player". I guess the original player was some sort of VM since it ran some byte code.
Post reply on HN