Live data from Hacker News

I still use Flash

foon.uk

161–170 of 408 posts

Re: I still use Flash

#161

Earlier quoted context omitted.

> It blows my mind that no one has made a tool like that in so long. […] Why has the pinnacle of ease of use in game creation been achieved and never replicated since? FWIW it never went away¹ and targets standards-based runtimes these days. I'm sure there are many kids every month having the same kind of epiphanies with it! That being said, because Adobe Animate is marketed as a tool for professionals rather than ki…

There is a small but major difference with Flash vs Minecraft and Roblox. Flash let you create something from scratch (or close to it). You aren't just modding a game, you are making a game or a cartoon. It was fantastic. Minecraft you are limited to the world of minecraft.

> There is a small but major difference with Flash vs Minecraft and Roblox. Flash let you create something from scratch (or close to it). […] It was fantastic.

Absolutely fantastic, yes! Roblox does allow you to make a game from scratch — even though the primitives are generally less primitive and the constraints much different — but my point is just that if you're wondering where the spirit of dj_mc_merlin's experiences went, two places where it can be found in spades are in the Roblox and Minecraft communities. (Source: Am a parent experiencing this vicariously via my kids.)

Re: I still use Flash

#162

I remember creating a simple "catch the falling X" game in Flash 20 years ago. It was basic, but had everything you'd expect in a beginner project: points, multiple game states/screens, a victory condition, basic story (which was just a screen at the beginning, like NES). The thing is, I was a literal child and I also had no clue how to code -- I did everything by following tutorials and gluing together code I copy&p…

https://scratch.mit.edu/ seems like a social network for kids making basic games and learning to code. They seem to encourage forking and learning from existing projects.

Re: I still use Flash

#163
post #140

I remember creating a simple "catch the falling X" game in Flash 20 years ago. It was basic, but had everything you'd expect in a beginner project: points, multiple game states/screens, a victory condition, basic story (which was just a screen at the beginning, like NES). The thing is, I was a literal child and I also had no clue how to code -- I did everything by following tutorials and gluing together code I copy&p…

I'd add Visual Basic to your "glue bits together" list. After working on C++ & FORTRAN professionally, Visual Basic was like a breath of fresh air. I remember thinking "how could programming be this simple". It felt like cheating. Ofc, there's an evil undercurrent to the "any non-technical person can use it". We ended up having to support a tool that some "business analyst" had written. My eyes bled.

The redpill in me says MSFT created dotnet to kill VB6. That tool made it too easy (and cheap) to create value through automation.

Re: I still use Flash

#164
post #59

Earlier quoted context omitted.

I don't think anyone here is going to complain about a post where you make a game work by reverse engineering Bezier splines encoded in XML by Adobe Flash. If that's not "Hacker" News, what is?

Indeed! ;-) However I wonder why the OP didn't try to keep vector graphics and use to SVG for instance? That would allow for infinite scalability. It is mentioned that "GPUs don't like vectors" but if the game doesn't change too often it should not make a lot of difference?

So, I think I need to elaborate on "GPUs don't like vectors". What the OP meant was "GPUs have literally no support for rendering anything other than pixels on triangles and getting them to efficiently draw Bezier curves and fills is an active area of research". You'd need specific hardware support for rasterizing them, and as far as I'm aware no such hardware exists.

When Adobe hacked on "HTML5 support" to Animate, they did exactly the same thing the OP did. It renders every shape in the FLA to a sprite sheet and then draws it to a canvas tag. If you have knowledge over what will be drawn ahead of time, this is the most reasonable thing you can do.

Even before HTML5 support, the AS3 Starling framework that let you "use the GPU" would pre-render all your vector assets to bitmap textures at runtime. And that was a framework built for Flex developers; if you were accustomed to building things on the timeline, you rendered on CPU, because that's where all of Flash's very particular rendering logic has to live.

Ruffle gets around this by tesselating every shape into a GPU-friendly triangle mesh. This lets us render stuff that's technically vectors on GPU. But as you can imagine, this creates its own problems:

- Flash has very specific stroke-scaling rules. If a stroke is smaller than 1px[0], it will be rounded up to 1px. This is how Flash's "hairline stroke" feature works: it actually asks for a 1/20px[1] stroke, and that gets rounded up to whatever the current scaling factor for that shape is. When your stroke is a polygon mesh, you can't vary the stroke to match Flash without retesselating, so hairline strokes on shapes that stretch don't animate correctly.

- Likewise, any stretch of a stroke that changes the aspect ratio also distorts the stroke, since its baked into the tesselated mesh. There's a minigolf game that does this to hairlines and it will basically never look right in Ruffle.

- Tesselated vectors lose their smoothness, so we have to sort of guess what scale the art is drawn at and add enough detail polygons for things to render correctly. Most of the time we get it right. However, there are some movies that do crazy things like store all the art at microscopic scale and blow it up. This provides a compression benefit, because it quantizes the points on the art with little visual difference on Flash Player. On Ruffle, however, the art becomes very low-poly.

- All the tesselation work takes a significant amount of time. There are certain movies (notably, a lot of Homestuck) that would hang the browser because of how much ridiculously complicated vector art was being processed before the movie even loads. We had to actually limit how much art could tesselate per frame, and expose that to movies as bytesLoaded, which is why Ruffle movies have preloaders even though we don't support streaming download.

There's another approach to drawing Beziers on GPU: drawing the hull of control points with a procedural texture that calculates the underlying polynomial. This is especially simple for quadratic curves (the ones with one control point), which is what all Flash timeline art[2] is.

However, strokes are more complicated. You'd think we could just take the hull of the stroke and draw that as a fill, but you can't. This is because the offset of a Bezier curve is not a Bezier curve. Drawing the stroke in a pixel shader would make sense, except you still need to define a polygon mesh around your stroke with a reasonable texture coordinate system to make the math work. And the polygonal outlines of Bezier curves can get really funky; there's no obvious way to quickly say "here's a curve, now give me the polygon that encloses a 5px stroke around it". Remember how tesselation takes so long that it would hang Ruffle?

[0] I'm not sure if this is virtual or device pixels.

[1] Flash specifies vectors in fixed-point units called twips. That's why the zoom factor on Flash movies was locked to 2000%.

[2] Flash can draw cubics - the two-control-point curves you think of when you think Bezier - but only in response to an AS3 graphics command. We haven't implemented this in Ruffle yet.

Re: I still use Flash

#165
post #63

> The vintage Flash UI is great. Buttons have edges. Icons look like things. Space is well-used. It's amazing! Using old UIs makes me feel like an archaeologist discovering some sort of forgotten Roman technology. The lost art of UI design. It's neat. This was one my favourites parts in the article. An the real piece of the pie comes right after it: there's a screenshot with like thirty icons and they're different en…

I am still clicking on Gmail on accident because I think it's Maps. The icons are horrible.

Re: I still use Flash

#166

Earlier quoted context omitted.

It looks like its 99% there though in terms of support

This linked issue is - quote - "a non-exhuastive, basic checklist of where we are aiming". As in, a checklist for MVP level support. And indeed, we have pretty much reached the MVP level, with several simple games (and some nontrivial libraries like box2d or mochicrypt) working. From this point on, it's hard to make a simple TODO checklist. We could analyze the entire Flash API surface and make a tracking issue for e…

Thank you for this very thorough and honest explanation. Really appreciate what you’re doing with Ruffle!

Re: I still use Flash

#167

Earlier quoted context omitted.

> It blows my mind that no one has made a tool like that in so long. […] Why has the pinnacle of ease of use in game creation been achieved and never replicated since? FWIW it never went away¹ and targets standards-based runtimes these days. I'm sure there are many kids every month having the same kind of epiphanies with it! That being said, because Adobe Animate is marketed as a tool for professionals rather than ki…

There is a small but major difference with Flash vs Minecraft and Roblox. Flash let you create something from scratch (or close to it). You aren't just modding a game, you are making a game or a cartoon. It was fantastic. Minecraft you are limited to the world of minecraft.

The amount of commercial games that used (and still does actually) Flash is much higher than many could believe. Jackbox is probably one that many here have played in the past few years. Some games used it only for UI, like Borderlands.

Re: I still use Flash

#168
post #5

I still haven't seen anything beat Flash with its sweet 1-2 combo of vector drawing, animation and programming tool Or maybe it's just me reminiscing

It might not yet do everything, but we're having a go at a modern web-based animation tool with Construct Animate, currently in open beta: https://www.construct.net/en/blogs/construct-official-blog-1... It can export videos, GIFs, image sequences, can use modern JavaScript coding, and has a surprisingly strong block-based visual alternative to coding.

I'm sorry this isn't super actionable, but in case it's a helpful data point, I tried to check this out and wasn't able to. To repro:

1. Clicked on your link

2. Moused over "Construct 3" in the header, clicked "Showcase."

3. Clicked on a game in the showcase at random ("Bunnicula in Rescuing Harold").

4. Page loaded with a graphic & a play button.

5. I tried clicking play & nothing happened.

6. Shortly after, Brave (Chrome) showed its "Page unresponsive" dialog.

Re: I still use Flash

#169
post #140

Earlier quoted context omitted.

I'd add Visual Basic to your "glue bits together" list. After working on C++ & FORTRAN professionally, Visual Basic was like a breath of fresh air. I remember thinking "how could programming be this simple". It felt like cheating. Ofc, there's an evil undercurrent to the "any non-technical person can use it". We ended up having to support a tool that some "business analyst" had written. My eyes bled.

The redpill in me says MSFT created dotnet to kill VB6. That tool made it too easy (and cheap) to create value through automation.

A lot of large companies did a tremendous amount of back office using VB6 applications. I remember visiting Disney and seeing it all over the place in the late 90s.

Re: I still use Flash

#170

Earlier quoted context omitted.

> It blows my mind that no one has made a tool like that in so long. […] Why has the pinnacle of ease of use in game creation been achieved and never replicated since? FWIW it never went away¹ and targets standards-based runtimes these days. I'm sure there are many kids every month having the same kind of epiphanies with it! That being said, because Adobe Animate is marketed as a tool for professionals rather than ki…

I remember when Minecraft was released a bunch of kids had their first Java experience due to the modding scene. Funnily enough I didn't do that since by then I was a C enthusiast and had an irrational hatred towards Java (oh how the turntables..). I wonder if that's still possible now that Microsoft has changed the codebase IIRC?

Definitely still possible, various modding frameworks like Forge or Spigot for Java Minecraft still thrive.
Post reply on HN