[HN Gopher] I still use Flash
___________________________________________________________________
I still use Flash
Author : rogual
Score : 793 points
Date : 2022-12-21 12:01 UTC (10 hours ago)
(HTM) web link (foon.uk)
(TXT) w3m dump (foon.uk)
| Nuthen wrote:
| Great article, thank you for sharing this experience. The part I
| found most interesting is the section about the aspect ratio and
| interpolating between the 16:9 and 16:10 views relative to the
| original, although I'm having some trouble fully understanding
| the implementation. Why is the game interpolating between them
| based on the games aspect ratio?
| rogual wrote:
| I can't know ahead of time the exact aspect ratio the player
| will run the game at. 16:9 and 16:10 are the most common on
| today's monitors, but the game might be running in a window, or
| fullscreen on an unusual monitor.
|
| If I just made the game at a fixed 16:9 ratio, it'd leave empty
| space at the edges of any window that isn't exactly 16:9. Same
| if I chose 16:10 or any fixed aspect ratio.
|
| By supporting a range of ratios between 16:9 and 16:10, I
| maximize the number of window sizes that the game will display
| nicely in without any empty space (black bars) at the sides.
|
| The best way, I thought, to support a range of aspect ratios
| was to define two rectangles in the scene, having the minimum
| and maximum ratios supported, and interpolate the camera
| rectangle between them.
|
| Hope that makes sense!
| RulerOf wrote:
| I really appreciated the visualization you provided for that.
| superkuh wrote:
| I still use Flash too. I even have the old flash brower plugin
| that use /tmp for storying flash*... files. I just don't have it
| set to auto-play. It's always click to play.
|
| Additionally I use a flash created "alarm clock" from the early
| 2000s almost every day for various tasks.
| moolcool wrote:
| Flash is fantastic and I wish it got the respect it deserves from
| tech circles. It got an entire generation into animation and
| software engineering, and had really robust and approachable
| tooling which is yet to be replicated. I think back to the gaming
| experiences made in Flash and Shockwave as far back as the mid
| 90s, and nothing today even comes close. Back then, you could
| load up a webpage on a Pentium II and play a really robust game
| made by a teenager in their spare time, and that game will be
| stable and display extremely good performance. Compare that with
| the complexity and barriers that come with mobile game
| development today, or the jank and poor performance of JS based
| games.
|
| TL;DR: It's been decades and there's still no suitable
| replacement for Flash, and the web is poorer for it.
| BulgarianIdiot wrote:
| Flash was conceptually fantastic, and today we can do
| everything Flash did, and more, with HTML, and WebGL.
| Unfortunately we don't have the authoring tool to do so. Flash
| IDE became Adobe Animate, but it has relatively restricted
| output and capabilities, compared to Flash before.
|
| Unfortunately also Flash was full of bugs, FULL. I mean the
| player, the IDE, everything. And Macromedia and consequently
| Adobe were increasingly desperate in monetizing the player by
| attaching downloads to it, like Adobe Reader or anti-virus
| software. Or adding nonsense features like half-baked 3D gaming
| to it.
| mFixman wrote:
| > today we can do everything Flash did, and more, with HTML,
| and WebGL.
|
| There's one big piece missing: we don't have an
| animation/gaming interface that's as easy and intuitive as
| Flash.
|
| Flash didn't become ubiquitous because it was powerful, but
| because it was easy for any 13 year old to pick up and do
| something nice in a couple of days without reading any
| documentation or doing any course. Good luck getting anything
| to work in WebGL without any web programming experience.
| robertoandred wrote:
| The Flash editor is still around, it's just called Adobe
| Animate now. It can export to web for you.
| rchaud wrote:
| Developers love saying "But you can do everything that was
| in Flash directly in Javascript today!!"
|
| I wish they could understand that what they're saying would
| be equivalent to switching out Excel for a Python IDE and
| saying "but you can do calculations here too!"
| dusted wrote:
| _slowly lowers flamethrower_ indeed, you 're right, HTML and
| WebGL with JavaScript or webasm can do anything flash can..
|
| They can't do it in the cycle-count that flash could (I
| remember seeing 3D vector demos running in 640x480 pixels on
| my 133 mhz pentium), but they will do it, and probably look
| almost identical across two different versions of the same
| brand of browser..
|
| But the real point is the authoring tools, and there simply
| aren't any.. We're stuck in the early 80s with a f*cking
| text-editor for GUI work..
|
| Geez, there were authoring tools for making nice GUI
| applications in the Windows 3.11 era.. But modern web
| development has yet to reach that level of maturity.
| moolcool wrote:
| This is admittedly a few years ago, and the scene has
| evolved _a bit_ since then, but I remember seeing really
| simple JS games (think tetris, or a very simple
| sidescroller) being heartily applauded on sites like reddit
| and HN. We're unironically cheering approaching parity with
| a toolset from almost 20 years ago! Things could be so much
| better.
| BeFlatXIII wrote:
| > Tetris or a very simple side scroller
|
| Back when it was still Dynamic HTML and I was in middle
| school, I copied the page source to put those into my
| homepage. I even figured out how to edit levels in the
| Mario clone.
| dncornholio wrote:
| > and today we can do everything Flash did, and more, with
| HTML, and WebGL
|
| This is a myth, theoretical true, but practically impossible.
| Flash was so much more than a browser plugin. With HTML5 it
| is so much harder to maintain a framerate, while in Flash you
| almost didn't need to care about that.
| whywhywhywhy wrote:
| Adobe never cared about Flash beyond it being the webs video
| player.
|
| Honestly the whole thing just began to rot from a tool
| perspective since their purchase.
|
| Their management is too PDF-brained to think of investing in
| quality work in their tools as insane as it sounds they seem
| to consider their creative tools an afterthought and B2B PDF
| solutions their main business. I can't find any other way to
| explain their actions.
| moolcool wrote:
| I don't deny that it had lots of issues. In addition to what
| you mentioned, it was an accessibility nightmare, and had
| tons of security problems. All that said, it's difficult to
| argue with results.
| warent wrote:
| No way! This is the creator of Hapland... As a kid playing flash
| games on websites all day like Addicting Games, Armor Games, etc.
| you don't really think much about the people behind these
| projects. Then time goes on and they cement themselves in your
| mind as a myth.
|
| The fact that I now get to read and understand articles by this
| legend, and work in the same industry vertical him... what a
| privilege!
|
| Thanks for your work. Hugely inspirational to my career.
| coldtea wrote:
| It's nothing to be ashamed o..., wait, Flash you said? Well, then
| it is...
| shzhdbi09gv8ioi wrote:
| I'd imagine lightspark would be useful here, rather than yet
| again reinvent a wheel.
|
| https://lightspark.github.io/
| ho_schi wrote:
| Interesting read. And it doesn't end up with Electron, which is
| "Flash for the Desktop".
|
| _Notarization_
|
| Why I don't wonder? I come from Linux and the weird rules for App
| Bundles and Notarization on Mac are pain. And badly documented.
| And the tools suck! Which entitlements my app needs? How to
| change libraries paths? Compiling applications on Mac is easy
| (with Hombrew), shipping to ordinary users as App Bundles is
| complex and difficult. If you're not a MacOS-Developer using
| XCode?
| mike_hearn wrote:
| If you want to create Mac apps from other platforms then check
| out Conveyor:
|
| https://hydraulic.software/
|
| It can build, sign and notarize Mac apps (and Windows apps, and
| Linux apps) with auto update and can do so from any platform.
| So you can ship to everyone from Linux if you want. It also
| does auto update, generates a download page that detects your
| OS and it includes control over low level OS-specific things
| like setting entitlements, custom deb dependencies, Windows
| manifest extensions etc.
|
| Notarization as a process is actually OK in my view. Yes it
| sucks to have to pay, especially for hobbyist stuff. Still,
| process-wise it's pretty lightweight and it seriously beats
| having a virus scanner intercept and rummage through all your
| file IO all the time. Windows has a lot of problems with
| aggressive AV engines mucking up programs and macOS doesn't,
| because notarization is in effect an ahead of time virus
| scanner that moves the work off the end user laptop. Also these
| days the notarization protocol is open and documented.
| Caitlynmeeks wrote:
| Man I miss Flash too!
|
| Tumult Hype is the closest thing to it, but the editor's Mac
| only.
|
| https://tumult.com/hype/
| bashmelek wrote:
| Great timing for this article! I just used Flash CS5 this week to
| make my first animation. I'll admit that I'm rough with it (made
| a few games with it many years ago, but that is all, stuck with
| Actionscript and static images). Some of the logic hasn't stuck
| with me yet, namely with the timeline and movieclips, and I get
| frustrated. That said, I'm having a great time with it.
| TylerGlaiel wrote:
| Flash is great and tons of devs still use flash. I also use flash
| in my custom game engine (the one powering The End is Nigh and
| the upcoming Mewgenics), a different approach to what the dev in
| this article did (seeing as these are new games and not ports of
| existing flash games), my approach is to load SWF files as the
| resource files for art and animation in my game, and render them
| as vector. Flash puts a lot of information in those files, and I
| parse just enough actionscript bytecode that I hook and trigger
| C++ functions from my actionscript parser. This lets us use flash
| almost exactly the way we used it for making flash games back in
| the mid 2000s, with all of the interesting workflow tricks and
| hacks that made it so nice, while being able to write all the
| actual gameplay code in a real language and render it with openGL
| so its actually fast.
| LoveMortuus wrote:
| Anyone knows of a modern browser that still supports flash? I'm
| stuck having to use old browsers, which I'm not very happy about.
| Ruffle doesn't work the for game that I play (Crystal Saga).
| 4RealFreedom wrote:
| I use flash occasionally to run some older code. I've been
| running this setup for a few years now on my Intel Mac because
| it won't work with Apple's new M chips. There are a couple of
| things you will need. First, download Firefox 84.0 here:
| https://ftp.mozilla.org/pub/firefox/releases/84.0/mac/en-US/.
| Next, you need the Flash Player itself. Adobe, as far as I
| know, removed the links to download it and I don't have
| anywhere I would trust to download. After you have the Flash
| Player, install Firefox 84 and disable the auto-updates. Now
| install Flash and everything should work. Good luck!
| iKnowKungFoo wrote:
| Flash was shuttered due to being a constant, huge security
| risk. So no modern browsers support it and there aren't any
| plugins for it other than Ruffle.
| AndriyKunitsyn wrote:
| Web itself is a constant huge security risk - Playstations 3,
| 4 and 5 were all hacked through Webkit, for example. The
| reason to kill off Flash was just because Apple wanted it
| gone, and Adobe didn't want to make them angry.
| makach wrote:
| Wow! Talk about a love letter at the end of 2022! The dev has
| identified a gap and applies time and effort to solve it through
| building it.
|
| Halfway, the dev complains about the orignal devs using XML,
| because it is not efficient "Hey, I'm not complaining, it makes
| my job easier."
|
| Well sounds like the original developers of Flash made a good
| decision. If it makes it easier to parse the content at a later
| stage, I'm willing to call it a win!
| chubot wrote:
| Yup, this is classic Unix style! Having data-centric
| interoperability among tools also helps you port to new
| platforms more smoothly, as opposed to throwing away your code
| or rewriting from scratch.
|
| Examples:
|
| 1. Using text formats embedded in XML -- he took advantage of
| this when reverse engineering
|
| 2. Generating text ASM -- he said this aids debuggability, and
| allows using existing ASM tools that he didn't have to write
|
| 3. Generating C++ -- taking advantage of the type system, as
| mentioned, and a huge array of other tools (profilers and
| debuggers)
|
| It's data-centric rather than code-centric. It's a
| interoperable and transparent architecture, not a monolithic
| one. (Which is not surprising because Flash itself was made for
| the web.)
|
| Related: _The Internet Was Designed with a Narrow Waist_
| https://www.oilshell.org/blog/2022/02/diagrams.html
|
| _A Sketch of the Biggest Idea in Software Architecture_
| https://www.oilshell.org/blog/2022/03/backlog-arch.html
| anonymous344 wrote:
| how about swishmax? it still works in win xp and can make exe.
| still use that old exe as one app i created is still useful
| rogual wrote:
| Hey HN, I haven't done a lot of technical postmortem blogpost-
| style writing so I'd welcome any feedback or tips on how to
| improve. Is it too long, too short, too technical, not technical
| enough? Boring? Interesting? Is it enlightening or does it just
| come off like content marketing? I literally have no idea how
| good I am at this.
| Jasper_ wrote:
| Worth noting that there is a spec for the custom XML file, it's
| known as FXG. S starts a cubic Bezier curve in absolute
| coordinates:
| https://web.archive.org/web/20110611002637/http://opensource...
| darkwater wrote:
| I think you nailed it at every layer, it was a very
| entertaining, nostalgic and instructive read. Thank you!
| namuol wrote:
| It was perfect! Full of low-key wisdom and fun observations.
| Doesn't feel like "content marketing" in the slightest.
|
| I wish the Hapland series was coming to Mac, but I respect your
| decision to snub Apple.
| lsferreira42 wrote:
| You are very good at this, i'll follow your site from now on
| hoping for more publications like that!
| kulor wrote:
| There's a gem of a hidden narrative here for more junior
| developers that you don't always need to start over (which 9/10
| fails) but instead be resourceful within your constraints and
| to be mindful of what your constraints actually are, which
| don't have to be new and shiny.
| thor_molecules wrote:
| Very interesting, and frankly inspiring to see you get this
| creative.
| HanClinto wrote:
| I really enjoyed it! It didn't come off as content marketing at
| all. Well done!!
| replwoacause wrote:
| I thought it was great, and I have no interest in games or game
| development, but I read the whole thing top to bottom and came
| away thoroughly impressed. Excellent post and work!
| bjackman wrote:
| It was great, loved the concise writing style, and it was a
| cool story.
| rogual wrote:
| Thanks! It's actually great to hear you describe it as
| concise, I was worried it was a bit waffly to be honest.
| mastersummoner wrote:
| It was long because there were a lot of steps to describe.
| But for each, the writing was concise, interesting and
| entertaining.
| jonathanyc wrote:
| Great post! No complaints at all from me. The mix of your
| thought process + screenshots + examples is perfect.
| wila wrote:
| Keep on writing! I enjoyed reading what you tried and why you
| ended up with what you did. It is fine to mention your game, I
| do not consider that content marketing at all.
| sh4rks wrote:
| This was a great read. I distinctly remember playing Hapland as
| a kid. Armour games or Crazymonkeygames, can't remember which
| one it was. So this was a great nostalgia trip.
| civilized wrote:
| 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?
| bambax wrote:
| 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?
| kmeisthax wrote:
| 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.
| Asooka wrote:
| Have you tried splitting the area covered by each shape
| into several 8x8 pixel rectangles, then running a compute
| shader over each one that executes the exact same
| rasterisation algorithm as Flash did? That's more or less
| how triangles are rasterised on the GPU anyway.
|
| It's definitely not a simple solution, but might enable
| you to do runtime rasterisation with a good framerate on
| the GPU rather than pre-rasterising all the vector art.
| detritus wrote:
| > "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"
|
| Well fuck me, I had no idea. I figured that 'simple 2D
| vectors' would be beyond piss-easy for modern GPUs. I'd
| never considered that it wasn't the actual math space
| that was accelerated, rather the fast memory mapping of
| everything on presumably comparatively simple geometries.
| You've just turned my view of the world upside down :(
| ChuckMcM wrote:
| Yeah, this is something that many many people assume
| (vectors are "easy" on GPUs) and then are amazed (like I
| was!) that they aren't even in the function set. My
| thought was that if you were "accelerating" desktops
| you'd really want vectors right? But no.
| jcelerier wrote:
| > they aren't even in the function set.
|
| they are, but on nvidia only...
| https://developer.nvidia.com/gpu-accelerated-path-
| rendering
| karteum wrote:
| I though that there were some "GPU accelerated path
| rendering" already 10 years ago ?
| https://developer.nvidia.com/nv-path-rendering
| https://developer.nvidia.com/gpu-accelerated-path-
| rendering
|
| (OK those links are for NVidia, but if they can do it I
| guess others can too ?) (also see
| https://www.researchgate.net/publication/262357352_GPU-
| accel... )
| karteum wrote:
| Also, as far as I understood, both GNU Gnash and
| Lightspark were using OpenGL for rendering. So I always
| expected that GPU would still bring some sort of
| acceleration for 2D path rendering ?
| Nihilartikel wrote:
| Riffing off of other recent HN posts, I'm wondering if
| signed distance fields might be a contender for 2d
| strokes.
|
| I've seen some font rendering work that has already
| embraced them for high perf rasterization.
|
| Still, may be hard to get flash equivalency.
| bambax wrote:
| Thanks for this! Very informative!
| [deleted]
| rogual wrote:
| I did consider it. Infinite scalability isn't required
| during runtime; the scene doesn't ever zoom or scale in the
| games, because that was always so slow in Flash, so the
| only real benefits would be 1) supporting higher
| resolutions and 2) reducing file size.
|
| For 1) I decided I'd rather just release an update with
| larger textures if these ones ever start to look dated.
| That way I get to keep the runtime code simple. Less code
| means fewer bugs. I don't want to spend a lot of time
| fielding support requests from users who hit edge cases in
| the rasterizer. As for not changing too often, that's true,
| but taking advantage of that means doing change tracking
| with dirty-rectangles or similar, which not only adds
| complexity but also feels like it would make performance
| less predictable.
|
| And for 2) the game as it stands now is under 50MB so I
| didn't feel a pressing need to make it smaller, although a
| tiny executable would be cool in a satisfying, demoscene
| kind of way.
| bambax wrote:
| Ah, thanks. That could maybe go into the article as well?
| Although it's already pretty thorough as it is.
| dontwearitout wrote:
| Flash was my 2nd programming language (after VB6) back when it
| was still Macromedia. I had a lot of fun making really crappy
| minigames and learning the basics of coding. This article
| brought some good nostalgia and plenty of astonishment at the
| lengths you went to.
|
| Your writing itself is great. A lot of writing linked by HN
| seems too verbose because people try to sound smart. Yours is
| succinct while engaging. Right length, just technical enough,
| and interesting. I really enjoyed this, thanks for writing it!
|
| Also:
|
| > Object-orientation is not fashionable right now in gamedev
| circles
|
| Can you elaborate on this?
| japhib wrote:
| Object-orientation is kind of the old-school way of doing
| things, these days it's all about ECS - entity component
| system. This is a more data-oriented approach that has the
| potential for much higher performance when you have thousands
| of objects that need updating in your game. It's similar to
| how OO languages like Java/C# are going out of style and more
| (nominally, at least) data-oriented languages such as Go or
| Rust are in style.
| BlueTemplar wrote:
| Probably how OO teachers and mentors failed horribly (AFAIK
| we _still_ don 't warn new students about the pitfalls of
| inheritance ?), so ECS got popular as a better alternative to
| shitty OOP code ?
|
| https://www.gamedev.net/blogs/entry/2265481-oop-is-dead-
| long...
| stelonix wrote:
| Not only that, but due to CPU caches and memory alignment
| issues, ECS have better performance than inheritance; also
| because most ECS systems ditch virtual function calls.
| cogman10 wrote:
| > ECS have better performance than inheritance
|
| Can have.
|
| Whether or not an ECS will actually be faster depends
| entirely on the type of game and access patterns of the
| inheritance structure. Further, it matters how you are
| doing inheritance (LTO can eliminate a lot of the
| pitfalls even if you use virtual function calls).
|
| This is nothing against ECS. I just find the current
| claims of performance dubious and potentially flat out
| wrong given modern compiler optimizations and changes in
| CPU caches (mainly that they got a LOT bigger).
| robertlagrant wrote:
| Just to say: thank you for these games. I loved them when I was
| in my 20s.
| log101 wrote:
| It was a pretty insightful article, I didn't know how a flash
| game worked internally and how it could be reimplemented! I
| think it is also relevant for those migrating their projects to
| newer technologies, I always found this process fun(except
| there is a deadline) :)
|
| (Edit: I love your games and used to play a lot when I was a
| kid)
| unsafecast wrote:
| I liked it a lot! It doesn't feel like marketing at all, and I
| think it's a good balance between technical and non-technical
| (though I wouldn't mind more details).
|
| Keep writing!
| JoeyJoJoJr wrote:
| Great article! I also still use Flash by using a custom runtime
| that interprets the output of the "Export as texture atlas"
| feature. I was wondering if you had attempted to use this
| feature in order the rasterize the graphics?
|
| https://github.com/jackwlee01/animate_cc_runtime
| pie_flavor wrote:
| This is pretty great writing, I'd love to read more of it.
| Tepix wrote:
| It's interesting for sure, I'm left wondering if it was less
| work to make flash continue to work somehow instead of re-
| authoring the original games.
|
| I mean you've probably learned a lot, but you could have
| learned to author games using a more modern tool than flash
| instead and that would have been useful in the future, right?
| vfclists wrote:
| You know the IT media is full of hacks when they all studiously
| ignore the fact that the reason Flash was ultimately abandoned is
| that it would allow app developers to bypass the appstores of
| Apple and Google.
|
| The two will never create anything to match Flash.
|
| Even Microsoft abandoned Silverlight for the same reason and it
| is why Mozilla abandoned Shumway because they don't want to bite
| Google's hand.
| Faruk66 wrote:
| Tuhin46 wrote:
| yamtaddle wrote:
| > GPUs don't really like drawing vector graphics. They like big
| batches of textured triangles. So, I needed to rasterize these
| vectors.
|
| I remember in the distant past of like 15 years ago when it was
| still common wisdom to avoid vector images on web pages, or
| drawing _anything_ using fancy CSS features, because the resource
| cost to the client was too high and it 'd hurt performance.
|
| I think proliferation of runtime-rendered vector-icons/CSS-
| drawing/CSS-animation is under-appreciated when it comes to
| finding things to blame for why the web performs like dogshit,
| even on super computers. Sure it's probably mostly Javascript's
| fault, but I think those very likely play a non-negligible role.
| gibspaulding wrote:
| I was expecting "Attempt 3" to involve Bluemaxima's Flashpoint,
| and was surprised not to see it mentioned. Does anyone know why
| that wouldn't have been an option, or is this essentially what
| Attempt 1 would have involved?
|
| For anyone not familiar with Flashpoint, it's a project to
| preserve old flash games and animations and keep them playable on
| modern platforms. It's open source and includes a huge library
| (including it looks like Hapland 1-3).
|
| https://bluemaxima.org/flashpoint/
|
| Edit: Reading a bit further down the article, it looks like they
| were able to make some big improvements by building their own
| engine like supporting wide screen and higher FPS so that sort of
| answers my question!
| TylerGlaiel wrote:
| flashpoint is not a flash emulator, its a preservation effort
| that has archived tons of flash content from the web
|
| Ruffle is the flash emulator https://ruffle.rs/
| EamonnMR wrote:
| It's like Steam for Flash, Shockwave, and Java Applet games. I
| highly recommend it. Though I do wonder if it's going to
| survive the transition away from x86...
| oneepic wrote:
| I still play games on Flashpoint. Hell, I speedrun and showcase
| games in Flashpoint during some regular events with my other
| friends playing ""real"" games. It's not the best UI, but you
| do have an easy search function to find content you might like.
|
| Gotta be careful to avoid the porn games though. Flashpoint
| archived some.
| usui wrote:
| > The way forward was obvious; I'd have to make my own Flash
| player.
|
| Uhhhhhhh, hold on a second, wait a second... this is not readily
| apparent nor obvious as a course of action at all!!
|
| I would rather have gathered the raw assets and tried recoding
| the game using the same game logic on a better platform...
| jmull wrote:
| I think that's essentially what the author did?
| tinco wrote:
| Would it have been less work? I wouldn't be so sure, given that
| the author was actually successful.
| the-alchemist wrote:
| The frustrating thing for me personally is that we--as an
| industry--just keep rewriting/porting the same pieces of software
| from one API to another.
|
| Here is was Flash -> Steam SDK. In another HN article, it was
| PlantUML (Java) to D3 (Javascript).
|
| Didn't they re-write Minecraft to something else (Bedrock
| Edition)?
| Alifatisk wrote:
| Yes, they did re-write to Minecraft Bedrock Edition but did not
| deprecate java edition, it's still alive an thriving.
| not2b wrote:
| From the article: "GPUs don't really like drawing vector
| graphics. They like big batches of textured triangles. So, I
| needed to rasterize these vectors."
|
| The author certainly wasn't the first person to have this
| problem. What is available for fast display of vector graphics
| animations with GPU acceleration? Anything better or higher level
| than just doing huge numbers of calls to
| OpenGL/Vulcan/Metal/etc.?
| andai wrote:
| You mention that while using Flash you found it missing basic
| features, could you give some examples?
|
| One of my long-term projects is to build a Flash clone (Flash-
| the-authoring-tool). So I'd love to hear from people who are
| still using Flash, to see what features / pain points are most
| important.
| rogual wrote:
| Sure!
|
| * You can't set keyboard shortcuts for some common actions like
| changing the brush mode between "paint behind", "paint inside",
| etc. You have to click the button every time.
|
| * No way to import or export any standard vector graphics
| formats.
|
| * No easy way to just add custom properties to objects on the
| stage.
|
| * No outliner. Unless you put exactly one object on each layer,
| it's very hard to find and select objects on the stage that
| aren't large and obvious. Invisible objects? Nightmare!
|
| * You can name frames, but there's no menu to quickly select
| one to jump to. In a 500+ frame timeline, you've just gotta
| manually scroll around to find the frame you're looking for,
| even if you've named it.
|
| * You can't set an alpha component for the grid to make it
| semitransparent.
|
| These are all missing in Flash CS6, the last thing that was
| called "Flash". I don't know if any were added in Adobe Animate
| because I don't like to rent software.
|
| There's definitely room for a Flash authoring replacement.
| Every now again I look at all the programs I can find in the
| space and try them out, but nothing reaches Flash yet, in my
| opinion, despite its limitations. Best of luck with yours!
| eldenlad wrote:
| Have you tried writing any custom plugins/editor panels to
| use in the editor? The process is pretty arcane at first, but
| eventually you are just writing html+javascript and have
| access to a very powerful editor API.
|
| When I was working with Animate a few years ago I wrote a
| plugin to navigate around the timeline to find tagged frames
| and export things.
| FrostKiwi wrote:
| OMG, was a huge fan of the Hapland series during middle school.
| Definetly gonna buy such a lovely crafted remaster.
|
| Also happy to see all the libraries I love to work with pop up
| here and there.
| samiam_iam wrote:
| keewee7 wrote:
| IIRC many 2D animators considered the old Adobe Flash
| Professional to be one of the best 2D animation tools ever made.
| codetrotter wrote:
| Fun fact: An animated TV series that ran from 2010 to 2019
| developed by Lauren Faust, was animated in Adobe Flash.
|
| https://en.wikipedia.org/wiki/My_Little_Pony:_Friendship_Is_...
| thesuitonym wrote:
| Actually, there were quite a few animated TV series that were
| animated in Flash (And later Adobe Animate).
|
| https://en.wikipedia.org/wiki/List_of_Flash_animated_televis.
| ..
| yreg wrote:
| That is indeed quite a few.
| isametry wrote:
| The abundance of obscure and overly specific lists is one
| of my favorite features of Wikipedia. Thanks for linking!
| tetris11 wrote:
| Many Adult Swim shows too: Harvey Birdman and Metalocalypse
| come to mind
| themodelplumber wrote:
| Many 2D illustrators, industrial designers, and graphic
| designers considered it one of the best 2D drawing tools ever
| made.
|
| One of my roommates in the heyday of Flash was an industrial
| designer who was paid by an Italian business to design
| aftermarket wheels for cars, which he did in Flash. Eventually
| he figured out a Flash > Studio Max workflow he liked and
| finished projects in 3D that way.
|
| That guy could draw anything in Flash and preferred it over
| Illustrator, Photoshop, and Fireworks.
| kmeisthax wrote:
| Funnily enough that was actually the original goal of Flash -
| back when it was called SmartSketch. The idea was to have a
| vector drawing tool for pen tablets. But it sold absolutely
| horribly.
|
| Jonathan Gay pivoted it to animation shortly thereafter and
| rebranded it as FutureSplash, and then got bought out by
| Macromedia.
| robertoandred wrote:
| It's still around, it's just called Adobe Animate now. Can
| export to video, to web, etc.
| rburhum wrote:
| I saw the headline and I was ready to talk trash... then I opened
| the blog post and wow. What an incredible job for a single
| person. Hats off on the different approaches you took. Excellent
| work! I loved the post and congrats on launching it on Steam!
| alxlaz wrote:
| > 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 enough that you can
| tell one from the other_.
| legohead wrote:
| I am _still_ clicking on Gmail on accident because I think it
| 's Maps. The icons are horrible.
| quickthrower2 wrote:
| Classic HTML gmail
| https://support.google.com/mail/answer/15049?hl=en (final
| link on that page)
| indymike wrote:
| > The lost art of UI design.
|
| This sounds like a great title for a really good book.
| isametry wrote:
| I find it somehow intriguing how you already pre-destined
| this imaginary book to be great... That stood out to me for
| some reason. How about a great title for a shitty book?
|
| Funnily enough, _The Lost Art Of UI Design_ sounds like a
| potentially very mediocre book to me. One of those stretched-
| out "self-teaching" design guides that listicles will
| recommend you. It chooses a couple of very specific rules of
| thumb, it gives way too much importance to them, and somehow
| manages to water them down to 250 pages. Probably written
| either by someone who's a skilled writer but barely knows
| enough about the industry, or an experienced specialist in
| the field who unfortunately can't write for life.
| indymike wrote:
| Ah... soon the publishers will just have chatgpt write it.
| ilyt wrote:
| It's like entire industry at one point decide to optimize UIs
| for the first 30 minutes of usage and not the _years of users
| using apps once they get familiar with them_.
|
| "oooh let's not put too many buttons to scare users away",
| "they got 22 inch screens, let's just waste space for no good
| reason, it looks modern and airy"
| dkarl wrote:
| That's the discipline of data-driven business. If 20 people
| use your app and despise it and are depressed by it, that's
| better than 19 people using it and loving it. No
| sentimentality allowed.
| sosborn wrote:
| How could anyone possibly measure that an app is despised
| and depresses people (or vice versa)?
|
| Usage can't be it, because I use a ton of software that I
| despise and get depressed by, but only because I get paid
| to do so, or the app is so niche there isn't a viable
| replacement.
| layer8 wrote:
| They don't. They just measure that the more "modern"
| design gets 5% more users, so clearly it must be better.
| TeMPOraL wrote:
| > _How could anyone possibly measure that an app is
| despised and depresses people (or vice versa)?_
|
| You'd have to actually _talk to your users_. But that
| requires genuine human investment, so it doesn 't scale.
| It doesn't come in the form of a third-party SaaS with a
| pretty dashboard, generous free plan, and integration via
| single <script> tag.
|
| In short: they could measure this, they just don't bother
| to.
| fallat wrote:
| Yes. What we see in UI design today is a consequence of game
| theory at work. It's to optimize business. In fairness you
| don't want to scare users away. I think though many people
| equated it all to "clean looking", without realizing removing
| micro-interactions is a net negative....
| Izkata wrote:
| One of the early attempts to balance those two goals was an
| option in the settings to switch between
| Beginner/Intermediate/Advanced mode. Never really see that
| anymore.
| zozbot234 wrote:
| I think touch screens are a bigger factor. You can't have
| small buttons in a touch-screen UI, because they must be
| targets for your finger. (OTOH, swipes in a touch UI are a
| lot easier than mouse drag-and-drop. So the optimal touch
| UX probably has lots of drag-activated pie menus. And
| confirmation flows for potentially destructive actions, to
| cope with the lower accuracy of touch interactions.)
| hansworst wrote:
| Yeah, if my memory serves a lot of UI design started to
| get more airy around the time smartphones became more
| popular. Even on desktops, which I think may just be
| because large buttons and text became trendy and although
| some may deny it, I think a lot of ui design is just
| following trends. It takes a good designer to not just
| blindly copy things because they look cool.
| rhn_mk1 wrote:
| Large buttons and text were trendy already in the 20th
| century. There's only so small you can go on an 800x600
| 14' screen.
|
| The crucial difference between then and now is the amount
| of whitespace.
| dmitriid wrote:
| The problem is these "designers" bring those touch-
| optimised UIs to desktop. And so you end up with
| hamburger menus on 4k-screens, tall narrow alert dialogs
| on MacOS etc.
| BlueTemplar wrote:
| Yes, and that is one of the reasons why your touchscreen
| UI must be radically different from your mouse and
| keyboard UI.
| squarefoot wrote:
| Spot on. And I would add "let's make every GUI either web
| based or mobile based just to further annoy PC users".
| yamtaddle wrote:
| UI is now optimized for PowerPoint. The #1 goal of all UI
| work is so the designer and/or product manager can get an
| "oh, that looks nice!" showing off screenshots to an
| interviewer or to someone higher-up who'll help them get a
| promotion. Trendy (you don't want to look _outdated_ , do
| you?) and pretty are what matter, not usability.
|
| I seriously think that's what's going on.
| thrdbndndn wrote:
| I get (and agree with) this idea in general, but these buttons
| are still present in any Adobe apps (esp. Photoshop) and
| they're not going anywhere.
|
| Hell, I don't think they're original to Flash to begin with,
| more like borrowed from Photoshop when Adobe bought Macromedia
| (this is purely my speculation; but Photoshop is much older).
| bugmen0t wrote:
| Surprising there is no mention of the wasm/rust-implemented flash
| player https://ruffle.rs/ in the article.
| ZiiS wrote:
| "oldest ones, including the original Haplands, are AS2 Flash,
| which runs pretty well thanks to Ruffle."
| [deleted]
| graderjs wrote:
| I recently used Ruffle [2] to get some Flash applications [0]
| working in the Pro version of my web browser [1], which is
| specifically designed to be remotely accessible and embeddable
| in an iframe. To run Ruffle on pages that require it, I utilize
| the Chrome Remote Debugging Protocol [3], similar to how a
| Chrome extension content script operates. Ruffle itself relies
| on WebAssembly and runs smoothly. It's been exciting to see the
| audio and video functionality of these old games restored and
| being able to play them again.
|
| -
|
| [0]: https://github.com/ruffle-rs/ruffle/wiki/Test-SWFs
|
| [1]: https://github.com/crisdosyago/BrowserBox#bb-pro-vs-
| regular-...
|
| [2]: https://github.com/ruffle-rs/ruffle
|
| [3]: https://chromedevtools.github.io/devtools-protocol/tot/
| zulu-inuoe wrote:
| They did mention it. They use it for some of their older games
| but it seems like Ruffle isn't yet feature-complete with Action
| Script 3 and thus cannot be used to run their newer games
| jokethrowaway wrote:
| It sounds like adding those features to ruffle would have
| been three order of magnitudes easier than writing a flash
| player from scratch
|
| I understand contributing to OSS is a pain (I often end up
| with half implemented features in my own branch and never
| manage to merge them upstream) but he could have saved
| himself some trouble.
| roywiggins wrote:
| It seems to me like a very different skillset required to
| reimplement a runtime like the SWF player vs hacking
| together an alternative FLA compiler that's just good
| enough to work on your own games.
|
| Ruffle still doesn't support Actionscript 3.0, I suspect
| the task is not that straightforward.
| codetrotter wrote:
| Ruffle plays compiled Flash swf files
|
| The tool that the author made reads Flash fla files and
| exports data from that.
|
| Swf files contain binary data. The ActionScript code has
| been compiled into bytecode. The vector data is probably
| also represented in binary format.
|
| Fla files, as pointed out in the OP blog post, contain XML
| data.
|
| It sounds like OP is doing something quite different from
| what Ruffle does.
|
| Ruffle tries to be a player for swf files.
|
| OP wanted to export data from Fla XML to other formats, so
| that he could build executable games.
| adrian17 wrote:
| While Ruffle's AS3 support is still lacking a lot of
| features, since a couple months ago it's been able to play
| some simple games that require it. The build used on author's
| site is from 2021, and I just checked that the latest build
| is able to play several more AS3 games hosted there.
|
| (note: I'm a Ruffle dev)
| LoveMortuus wrote:
| I'm waiting for it to develop further, I'm very excited,
| especially because I still play Crystal Saga everyday, I
| don't know why, but it's got something that I haven't been
| able to find in any other games.
|
| But sadly, I haven't been able to make Crystal Saga work
| using Ruffle
| adrian17 wrote:
| MMOs are pretty much the last game Ruffle or any in-
| browser emulator will get to support - not just because
| it's likely some of the most complex piece of code you
| can find, but also because MMOs are likely to use
| sockets, which AFAIK can't really be accessed in modern
| browsers at all.
| rogual wrote:
| That's great news! I've been meaning to write a cron script
| or something to fetch the latest Ruffle every week or so,
| so thanks for reminding me to do that. Thanks also for your
| work on Ruffle, it's really great.
| worldsavior wrote:
| But flash is terribly insecure.
| strix_varius wrote:
| One of my favorite things about HN is that comments from folks
| who obviously didn't read the article tend to sink to the
| bottom.
| worldsavior wrote:
| There are ups and downs in life.
| syntaxfree wrote:
| Creatives: look at this beautiful chalice made of Roman
| dichroic glass.
|
| Security people: %drops it on the ground and it shatters% yes
| but glass is terribly insecure, why not redo it with PVC and
| LEF strip Christmas lights.
| numpad0 wrote:
| More like "yeah but not RoHS2 compliant and fabrication
| involves mercury"
| shadowgovt wrote:
| The problem wasn't creatives.
|
| Bank UI authors: Management wanted a pretty UI, so we made a
| semi-attractive chalice out of Roman dichroic glass. If it
| breaks, bad guys take your money.
| nkozyra wrote:
| I didn't read the whole thing but my sense was what was
| actually preserved was the game's code in AS3.
|
| I think you could still call this a soft port.
| ZiiS wrote:
| the AS3 was converted to CPP; sounds like some automation but
| fairly manually.
| loloquwowndueo wrote:
| But if you had read TFA you would have realized it talks about
| creating a new player that can understand swf files so those
| don't have to be rewritten, it's not about using the old, ugly,
| insecure Flash player from Adobe.
| teddyh wrote:
| Like Ruffle? https://ruffle.rs/
| worldsavior wrote:
| The title is just as important as the article itself. It's
| something that could be called "clickbait".
| bjackman wrote:
| > I like to use binary formats where possible for end-user
| software; I don't believe in making customers' computers chew
| through reams of XML.
|
| I feel an urge to object here! This is a false dichotomy; there
| are efficient middle-ground solutions between XML and custom
| binary formats e.g. Protobuf and Cap'n proto.
|
| Having said that, I loved the trick of using an assembler to
| write it.
| beardyw wrote:
| I was expecting the graphics to be converted first to SVG.
| tomsato wrote:
| That would be the easy part. From the post they are already
| stored as such, but the complexity would be to render the
| vector graphics in C++ at 60FPS. There is no simple solution to
| this, and rolling it yourself is quite the task too.
|
| If you look at some of the modern approaches to animation in
| C++ (like Lottie or Rive) their C++ clients are pretty poorly
| supported in my opinion, mostly for anti-aliasing quality in
| native clients over their web equivalents.
| T3RMINATED wrote:
| throwaway3245 wrote:
| I really enjoyed this, thanks for writing the article. Just the
| idea of bits of Actionscript on Frames and figuring that out
| would have made me quit never mind everything else. I miss Flash.
| I used to love the Flex Builder/SWC setup as I used to be really
| productive with it.
| wolverineoflove wrote:
| Real talk, I've been shipping an Adobe AIR app (Flash on the
| desktop) to a major healthcare provider still (just did a build
| yesterday).
|
| Samsung subsidiary Harmann took over the support contract from
| Adobe a couple years ago, and I think they have one or two souls
| running support for the AIR SDK, they're doing... okay.
|
| After years of searching for an Electron alternative (2016-2019)
| I broke down and wrote an Electron + Vue application. I had
| really really wanted Wails to work, but it simply has too many
| sharp corners for an enterprise desktop application that needs to
| run 24/7.
|
| The corporation customer basically stonewalled and refuses to let
| the AIR app die. We're pulling up the ladder with the Apple
| Silicon cutover, and hoping they bleed out on bugs. What a mess.
|
| I'm commenting because I too "still use Flash" in a way. It's a
| secret shame :X
| dljsjr wrote:
| Would ruffle + WASM + Electron work? https://ruffle.rs
| astroalex wrote:
| I was a huge fan of Hapland back in the day! My friends and I
| were obsessed. It actually inspired me to make my own Flash
| games, which is how I learned programming. So nostalgic to see
| screenshots of that game.
| amne wrote:
| I would invest more time into a tool that ports your game to
| Unity. You already have "code" attached to "sprites" with
| "actions" happening based on some triggers and entity states.
|
| From this far away it looks like it could work.
| Alifatisk wrote:
| Couldn't stop thinking of ruffle.rs
| ux wrote:
| > Blending done in perceptual (sRGB) space
|
| Oh please don't say that. The sRGB transfer function may be
| somehow roughly correlated with how we perceive lightness, but
| it's in no way a perceptual space.
| hgsgm wrote:
| jcmontx wrote:
| This guy sees the matrix
| pfoof wrote:
| Glad to see someone trying to reverse engineer it somewhat. We
| had a lot of approaches to clone it: Shumway, Ruffle, cross-
| compile through Haxe and OpenFL, but we are still not complete.
| And open-source AIR can be just a dream.
| georgefrick wrote:
| Really awesome to see this. I've done some conversion work for
| Flash to PhaserJS for educational games. We had to just rewrite
| everything as we didn't even have the original source code.
| Luckily Phaser animations can get a lot of the "walk across and
| open a door" stuff done easily. I was also excited to see Hapland
| as I'd forgotten the name and so was never able to Google to find
| the games again!
| samhickmann wrote:
| bulbosaur123 wrote:
| How dare you
| theandrewbailey wrote:
| > GPUs don't really like drawing vector graphics. They like big
| batches of textured triangles. So, I needed to rasterize these
| vectors.
|
| I don't follow. In my mind, triangles are natively defined in
| vector space. I didn't think it was impossible to convert vectors
| to GPU-friendly triangles. Rasterization is the easy way out and
| will (probably) help performance, but it will fall apart as
| screen resolutions increase.
| zozbot234 wrote:
| It can be done, see pathfinder and piet-gpu. But these
| solutions are still highly experimental, not really in common
| use.
| logotype wrote:
| Working with Flash was like working with future technologies,
| back in the day. You could build amazing things with it, things
| that was not possible using standard browser API's. In fact,
| Flash led the way and was the prototype for what browsers can to
| today.
|
| If you cared about what you built, with clever hacks and bitwise
| performance tricks then the Flash runtime could run your code
| efficiently. I remember developing an app which used Box2D,
| camera based gesture control with sound effects and background
| music all running simultaneously, reaching 60 FPS. In other
| projects we used software based 3D (a la Papervision 3D), Adobe
| dropped the ball and Molehill/GPU accelerated 2D/3D arrived too
| late. Perhaps it's not common knowledge but we could develop true
| cross-platform apps, compiling for different targets (SWF, IPA
| for iOS and .app/.exe).
|
| AS3 was a good language, and definitely reminds me of TS. Here's
| a piece of code from 15 years ago:
| https://github.com/PureMVC/puremvc-as3-standard-framework/bl...
|
| That letter from Steve Jobs destroyed it all, many talented
| developers left the Flash world at that time. It was a bit
| depressing to see all the (unjustified) mainstream hate for the
| Flash platform that started to appear at that time, which felt
| bad as there were many of us that put a lot of time, care and
| effort in creating amazing stuff with it. Thanks Flash!
| d0100 wrote:
| 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
| AshleysBrain wrote:
| 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.
| strix_varius wrote:
| 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.
| zamadatix wrote:
| Similar experience with using the showcase "AsteroidX"
| albeit no "unresponsive" dialog though just wouldn't load.
| It looks like the root of that issue is it requires 3rd
| party cookies to load but modern browsers block that by
| default and the error isn't bubbled up to the user.
| https://www.construct.net/en/free-online-
| games/asteroidx-650...
| zamadatix wrote:
| If only web games were this smooth during my childhood :).
| Great stuff!
| Karawebnetwork wrote:
| One college near me still teaches 101 classes through Flash.
| When presented as an educational tool with disclaimers that the
| end result is not secure, it's a perfect product to teach with.
| You can take someone who does not even know how to turn on a
| computer and by the end of the class they understand what
| programming is, how to draw on a computer, vector vs bitmap,
| etc.
| rchaud wrote:
| Flash could do 3D 20 years ago, before WebGL and threeJS, and
| you didn't have to be a Javascript (or ActionScript) expert to
| build them.
|
| Nothing really exists that beats Flash, partially because the
| switch to mobile killed Flash's momentum. It also led to the
| switch in Internet content from Flash animations/toons/games to
| Youtube/Patreon/Twitch videos. It was easier to make money with
| weekly videos than trying to get Adsense bucks by making a game
| every few months.
| deltarholamda wrote:
| Flash was actually pretty great. The big problem with it was
| the "oh, that thing? it's still around?" attitude of Adobe,
| which led to massive security problems.
|
| Actionscript was a pretty good language, certainly around the
| level of what Javascript has become. It was poor-mouthed for
| the same reasons Javascript was (is?), but now we use
| Javascript to run 90% of the Web.
|
| I remember back in the early 00s playing with the PHP Flash
| module. It was a really interesting environment that had a lot
| of promise. But, alas, it was doomed.
| mind-blight wrote:
| Action script 3 was actually pretty great. It was essentially
| a strongly typed JavaScript long before Typescript came out.
|
| I was always surprised that it didn't get more traction.
| Though Typescript is leaps and bounds beyond where AS3 ever
| was
| goatlover wrote:
| The Flash Builder was really good for complex vector
| manipulation. I don't know if there is anything as good for
| SVG/HTML.
| dmitriid wrote:
| > I don't know if there is anything as good for SVG/HTML.
|
| There's not because the DOM isn't suited for complex
| animations. People manage to animate SVGs (see Greensock
| etc.), but it's a pain in the nether regions
| adamredwoods wrote:
| Scratch has some nice features: it has a sound editor, vector
| drawing, and primitive animation... but I agree, the Flash UX
| was the best.
|
| https://scratch.mit.edu/
| dncornholio wrote:
| I still use it to introduce students to coding.. ActionScript
| is amazing for this
| justinator wrote:
| Best of HN - what an incredible read.
| hoten wrote:
| This was a fun read!
|
| rogual: I'm sure you would be able to manage this yourself, but
| if time is a factor I'd be happy to assist in converting the
| final result to a WASM build playable in a browser.
|
| Shouldn't be difficult to just plop in SDL (which is trivially
| portable to WASM) to handle the drawing. Found a basic example
| here[1] that uses STB + SDL. Should be rather straightforward.
|
| [1] https://github.com/svoisen/wasm-
| imageviewer/blob/master/rend...
| heystefan wrote:
| > In the end, I settled for a bit of a hack. My exporter reads
| the ActionScript from each frame and applies a bunch of regexes
| to attempt to turn it into C++.
|
| Haha, I lost it at this part. Brilliant read!
|
| How much time did it take you to build the whole thing?
| rogual wrote:
| Thank you!
|
| Git log tells me I started in November 2019, so 3 years, but
| the pace of work definitely varied a lot over that time.
| Sometimes I was putting full days of work into it, sometimes
| stolen moments here and there between paying work, and some
| long stretches of just not working on it at all.
|
| Maybe I'll do another post with a graph, haha.
| valeg wrote:
| C'mon, Adobe. Open source it.
| danuker wrote:
| Hah! They have let Flash die rather than open source it.
|
| Also, it might compete with Adobe Animate.
|
| "Service as a Software Substitute"
|
| https://www.gnu.org/philosophy/who-does-that-server-really-s...
| rchaud wrote:
| You can do 3D on Flash. Adobe Animate is a step backwards,
| it's all HTML/CSS3/JS, so 2D only.
| DrThunder wrote:
| dj_mc_merlin wrote:
| 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&pasted&modified. And it worked! And
| people played it!
|
| They all thought it was pretty shit, but to me it was more
| important that some random person across the globe genuinely
| picked up something I wrote, played it, and then wrote up a
| review of it.
|
| I showed it to my parents and they immediately started pushing me
| to learn programming.. and well here I am now. Thanks Flash.
|
| It blows my mind that no one has made a tool like that in so
| long. It had the same quality as Excel, where any non-technical
| person could just look up a tutorial, right click a bit, and make
| something usable. Why has the pinnacle of ease of use in game
| creation been achieved and never replicated since?
| iKlsR wrote:
| Some of the better years of my life a little over a decade ago
| were spent on mofunzone playing the stick figure fights with
| friends. I remember bullet time fighting (matrix clone with
| swords, guns, slow motion) and there was also an amazing action
| narrative series called Ray with Southpark themed characters
| and one of the craziest platformers I ever played called N. I
| managed to snag some of these a while back and preserve them
| offline and can still enjoy them using https://ruffle.rs/. We
| lost so many good things from the flash era.
| Vinnl wrote:
| Wow, hitting a bunch of memories there. Bullet time fighting
| was amazing, and I had a bunch of friends who were way into N
| ("way of the ninja") - built a couple of the most popular
| levels for it. Which also was pretty cool that they were able
| to do that, come to think of it. I remember one of them
| dabbling into creating games with Flash as well, and when he
| got stuck, I encouraged him to reach out to the creator of N
| to ask how he had solved that. (I think it was collisions
| with curved floors.) Got a nice message back that explained
| to him how to do it. Good times.
| ddulaney wrote:
| N is one of my favorite platformers of all time. Happily,
| it's still around and doesn't require any Flash hacks!
| https://www.thewayoftheninja.org/n.html
|
| Do you know if there's been any progress on preserving the
| older Macromedia games? I remember those starting to get
| flaky even in the Flash heyday.
| iKlsR wrote:
| Not to my knowledge, I only got introduced to flash ~2007,
| I've mostly been going by stuff I can recall and hunting
| for them on wayback machine.
| Cpoll wrote:
| FYI N has some console and PC updated versions. One being N++
| https://store.steampowered.com/app/230270/N_NPLUSPLUS/
| vlunkr wrote:
| I really hope all these games a preserved somewhere. There
| are big movements to preserve old console and PC games, but
| flash, and possibly to a bigger extent, mobile games seem
| more overlooked.
|
| I think there's a tendency to look back at these games as
| trash, but it was a pretty wildly experimental time. Indie
| games as we know them now weren't really a thing yet.
| segh wrote:
| Flashpoint has a nice UI and I managed to find many old
| favorites.
|
| https://bluemaxima.org/flashpoint/
| kokanee wrote:
| My time spent creating "stick death" videos in Flash as a kid
| is probably one of the main reasons I'm a software engineer
| today.
| kitd wrote:
| 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.
| rr808 wrote:
| Yep I was going to say the same thing. I write small internal
| tools for corporates and my team in 2020 is a fraction of the
| productivity of my team in the 90s. Lots of tools, the
| complexity is nuts these days.
| rapind wrote:
| What I loved about VB was how the basic UI was handled
| seamlessly and yet you could really dig in on optimizing user
| flow on top of it. It wasn't pretty, but it was functional,
| and you could spend your time making sure it _felt good_.
|
| I can still get there with modern tools, but the defaults /
| conventions in VB are simply superior to anything I've worked
| with since.
| clarge1120 wrote:
| The redpill in me says MSFT created dotnet to kill VB6. That
| tool made it too easy (and cheap) to create value through
| automation.
| numair wrote:
| 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.
| kome wrote:
| it's a generalized trend. Python is the new BASIC, but
| Python is SO much more complicated than BASIC. Web
| development was easy, now it's impossibly complicated, etc
| etc...
|
| Rebol, Red, tcl/tk are good and easy programming languages,
| but kinda niche and obscure. I have no idea why computing
| is getting more complicated instead of easier.
| marcosdumay wrote:
| I only disagree on web development. It was never easy.
| The web always always a mess, and nothing really worked.
| Today it's a mess, but you can make it work if you know
| what you are doing.
|
| But yes, looks like the web was a trendsetter that pushed
| things into becoming harder without any good reason. Or
| maybe the web was just following the trend of the
| toolmakers all going out business at the early 00's
| (thanks a lot to Microsoft).
| falcolas wrote:
| Ironically - given the article we're commenting on - a
| lot of the early problems with the web were solved, and I
| hesitate to say it, solved well by Flash. Its insecurity
| is what really pushed us away from it (well, and that it
| was a closed sourced Adobe project)
| Consultant32452 wrote:
| I miss the days when JQuery was the only JS library a
| person needed to know to do professional web dev. I stuck
| with web dev through the peak of Struts, but the constant
| changing of frameworks with (imo) minimal benefit to user
| experience pushed me to things besides web dev.
| bottlepalm wrote:
| To be fair, WinForms is the spiritual successor to VB6, a
| lot more powerful, and just as productive.
| vkazanov wrote:
| I remember how the last VisualBasic programmer left the first
| company I worked for.
|
| On one hand, he was ignorant in regards to everything we
| thought was mandatory for development: version control, code
| style, code structure. We, young Cpp/Python programmers,
| despised him.
|
| But nothing we had (QT, 2007-2008 web tech, etc) made it
| possible to spit out a business UI in an hour.
|
| To be honest, I still don't see anything comparable.
| TuringTest wrote:
| > To be honest, I still don't see anything comparable.
|
| I think it's just around the corner for those types of
| applications to come back. And surprisingly, they will come
| hand in hand with note-taking outliners, not your run-of-
| the-mill no-code or low-code tools.
|
| See for example Obsidian canvas, released this week. I see
| it as functionally similar to Visual Basic GUI editor,
| except simpler and easier to edit; and its layout is stored
| as JSON in a .canvas file. The open-source Logseq is adding
| similar visual layout templates together with data-recovery
| primitives.
|
| They just need to add the core interactive data widgets
| (text field, text area, buttons) and expose the cards to a
| programming language in a end-user accesible way, and
| you'll have the power of a visual language, except web-
| integrated and with a really simple way to add data (the
| outliner editor).
|
| [1] https://obsidian.md/canvas
| dheera wrote:
| I feel like Python is starting to get a lot of the same bad
| rep because non-techies can learn it. It's actually a great
| language if you want to build stuff _really_ fast. Not
| everything needs to crunch a billion operations per second
| and even if you want that, there are several good libraries
| for that.
| albertzeyer wrote:
| Yep. Python has potential to support some environment like
| Visual Basic. But there is no such project, as far as I
| know. All GUI frameworks are more complex, and there is no
| nice drag & drop GUI editor build into an easy Python IDE.
| At least I don't know it. Maybe if you use PyCharm, select
| some framework, find the right PyCharm plugins for it, you
| would have sth similar, but still much more difficult to
| use, and also there is no prebuilt and ready to be used
| package for such thing.
| jimnotgym wrote:
| I have lost count of the number of 'I miss
| VB6/Flash/Delphi, they were so much more productive'
| threads on hn!
|
| Yet in this community of all the people who could make it
| happen, we can't make it happen! What are we missing?
| Time? Money? Co-ordination?
| albertzeyer wrote:
| For Delphi, there is Lazarus, which is absolutely great.
| However, it's somehow really niche? Maybe because Object
| Pascal is somewhat outdated now?
| jimnotgym wrote:
| I don't really know Delphi/Lazurus well enough... but I
| suppose it is similar to the following... for VB there is
| Winforms and .NET, which as someone above pointed out is
| 'much more powerful', but somehow not what people want!
| RandomWorker wrote:
| Have you tried processing it gets close to action script and
| canvas. We just need to put processing on a time framed canvas.
| With a Figma like editing experience.
|
| https://processing.org/tutorials/gettingstarted
| zackmorris wrote:
| That's how I feel about HyperCard. Some apps were so ahead of
| their time that when they were axed, nothing comparable
| replaced them.
|
| I believe that this is due to a tragedy of the commons in the
| software industry. We're all so creative, with so many dreams,
| but spend the majority of our lives working 40 hour weeks to
| outcompete each other and make rent. Then when someone wins the
| internet lottery, they succumb to their ego and do a bunch of
| stuff in business to hoard even more wealth, rather than
| working to reform the system which keeps so many others down.
|
| I would very much like to write a programming language, a
| blogging tool, a web framework, a game, a game development
| tool, etc etc etc. But I never will. Most of the people reading
| this never will either.
|
| So I endure. I meditate, I practice stoicism, I go to the gym.
| But I had to let my dreams die for my own self-preservation
| because opportunity cost grew to consume my entire psyche. I
| simply can't think about all of the other things I could be
| doing while I have to work. And all I do is work.
|
| There doesn't seem to be much help coming in terms of UBI or
| having N people split a 40 hour workweek or forming artist
| communes for makers. Sure, we hear the occasional stories. But
| it's like we're all waiting around for a billionaire to
| liberate us, rather than creating a scalable cooperative system
| to sustain all of us right now today.
|
| What I'm saying is that until we look beyond the technical
| challenges and see that the problem is subjugation, we'll never
| get free of the lackluster tools, because we'll never have time
| to make better ones.
| itsoktocry wrote:
| > _But it 's like we're all waiting around for a billionaire
| to liberate us_
|
| Only in Silicon Valley, and that's probably a big part of the
| problem. In some of the highest paying, most creative
| occupations on the planet people are drooling at the feet of
| billionaires to save them while they slave away M-F.
|
| Most people throughout history didn't look at the rich with
| anything but contempt. In Silicon Valley they're held up as
| geniuses on every subject. Look at how a subsection of the
| industry treated Elon Musk taking the axe to Twitter
| (politics aside).
| warkdarrior wrote:
| > Most people throughout history didn't look at the rich
| with anything but contempt.
|
| Citation needed. I don't think wealth as the main cause of
| contempt.
| chucksmash wrote:
| > Then when someone wins the internet lottery, they succumb
| to their ego and do a bunch of stuff in business to hoard
| even more wealth, rather than working to reform the system
| which keeps so many others down.
|
| It doesn't even have to come down to greed though.
|
| If some meme stock speculation 1000x'd, my family could live
| off the gains in perpetuity and I could spend all my time
| working in a soup kitchen, doing good.
|
| But if I instead figured out how to turn that into even more
| money, I could start a new soup kitchen and help even more
| people, doing even more good.
|
| But if I instead figured out how to turn that into even more
| money, ...
| thelastgallon wrote:
| Is this effective altruism?
| [deleted]
| TeMPOraL wrote:
| It's altruism if GP stops the recursion at some point and
| actually uses the money to help people and do good.
|
| It's effective altruism if they use the money in a smart
| way, that reasonably maximizes the good it does for
| others, instead of doing something stupid or just
| extremely suboptimal.
| quijoteuniv wrote:
| " Then when someone wins the internet lottery, they succumb
| to their ego and do a bunch of stuff in business to hoard
| even more wealth, rather than working to reform the system
| which keeps so many others down."
|
| Well said
| imperfect_blue wrote:
| Because for everyone to make what they want to make is, as of
| current year, a pie in the sky fantasy until scarcity is
| solved, and perhaps not even then.
|
| There are 8 billion humans, the world doesn't need another
| hundred thousand programming languages or web frameworks or
| game development platform or even indie games or fiction or
| music or film, produced every year when the whim strikes
| someone's fancy. Even if we could, who can even consume that
| much content?
|
| Being a cog in a machine at least means you're probably doing
| something of value to someone instead of writing another book
| that nobody reads.
|
| As of now we have no better solution to coordination failure
| except to create the AGI that will save/doom us.
| zackmorris wrote:
| You make a good point. I've latched onto some goals (like
| making games) because I forget that they're a stepping
| stone to something bigger.
|
| The bigger thing would have been the web framework, or the
| programming language. But even those aren't quite big
| enough.
|
| If I'm being honest, the biggest stuff is curing disease,
| eliminating wealth inequality.. biblical stuff. Truly I
| want to be an inventor and work to solve the very hardest
| problems.
|
| So it feels undignified to be fixing someone's computer
| when I could be helping researchers to like, cure death and
| stuff.
|
| But you're right, that act of helping someone is the very
| essence of our humanity and shouldn't be written off as
| something inconsequential just because it's not glorious.
| There is glory to be found though, a different kind of
| glory in that covenant.
|
| And I totally agree about AGI.
|
| Edit: as far as scarcity goes, I think that economics
| correctly attempts to allocate resources between people
| with unlimited wants and needs. It just never got as far as
| the endgame we're in now, where the primary scarce resource
| is time. That's an artificial scarcity, so we might have a
| chance to turn things around if we optimize for that
| instead of material wealth.
|
| https://en.wikipedia.org/wiki/Artificial_scarcity
| yawnxyz wrote:
| I left the tech world to "cure disease" (working on a
| phage clinical trial, currently treating three patients,
| and they're doing super well!)
|
| With that said, I'm consumed with FOMO and opportunity
| cost every day. I've missed the boat on being founder-
| level or early designer/engineer on so many projects that
| have gone on to raise Series B it's mind numbing. Also,
| we were paid $0 bootstrapping our stuff in the first five
| years, and now finally we get paid, but $60k a year.
|
| I'm saying this as a warning to all devs and designers
| out there. Do NOT do this. If you can get into Google or
| FAANG or whatever, build wealth that way. Maybe you'll
| feel like a sell-out or you never scratched your itch or
| done something good for the world, but then you can also
| remember you can take a year off in Bali or whatever.
| falcolas wrote:
| Personal opinion: I think scarcity is mostly a solved
| problem, in that most of us are working on projects that
| only exist to make someone else more money, not to fulfill
| any actual needs of those 8 billion humans.
|
| There are exceptions of course.
|
| But most of us could stop working tomorrow, and aside from
| the lack of income, the scarcity of resources available to
| us would not change.
|
| The real problems that causes hunger/poverty in our world
| has more to do with logistics and politics, not a deficit
| of resources.
| quickthrower2 wrote:
| If most of us "humans" not "hn subset" stopped working
| we'd be in deep trouble.
|
| Who will maintain buildings, infrastructure, essential
| services, government etc.
|
| I think we could work towards long term fewer hours and
| more people who don't need to work though.
| falcolas wrote:
| My thinking is this - less than half of the population in
| the US holds a traditional job. 150M or so. And a vast
| majority of those are not jobs related to "essential"
| work. They're largely part of the retail and
| administrative workforce.
|
| And so, if a majority of less than half of the US
| population is working unnecessary jobs (i.e. only
| valuable to our economy)... how much of what we do is
| really valuable to us as a species?
|
| Which is a roundabout way to say that scarcity is a
| mostly if not completely solved problem; working to
| survive is largely no longer necessary, just customary.
| imperfect_blue wrote:
| I cannot understand why you would think so, even in a
| first world nation.
|
| Who would grow your food? Who would make the tools and
| fertilizer that enable the farmers to grow your food? The
| robotics and software that enables those tools and
| fertilizer to be produce? Who would organize, transport,
| package, preserve and process the produce so that you can
| access it?
|
| Apply the same questions to healthcare, education,
| transport, construction, entertainment, etc.
|
| Some jobs are superfluous and arise out of coordination
| failure, that's true. Lawyers, administrators,
| salespeople and parts of finance and the government comes
| to mind. But "most people could stop working" is an
| unreasonable assertion.
| fhd2 wrote:
| Parent has a point from my experience - most products I
| worked on never really caught on in terms of being
| reasonably widely used. I don't think I've ever worked on
| anything I'd call truly essential.
|
| From what I've seen, most programmers are indeed spending
| their time building experiments that have the primary
| goal of making money for the person that pays them - if
| they create true value that's more of a lucky side
| effect. And lots of those experiments fail.
| falcolas wrote:
| > Who would grow your food?
|
| >> There are exceptions of course.
|
| There are about 2M farmers and ranchers in the US. 22M
| health care professionals. 4M teachers. 2M truckers, 135k
| rail workers, 40k miners, etc.
|
| Even at our highest employment levels, under half of
| those in the US are employed. They're just not counted as
| unemployed because they're either children, in school,
| retired, or simply not seeking employment.
|
| Yes, I do believe that most jobs are superfluous - that
| many more people could not have to work without a
| material impact to the availability of goods.
| gus_massa wrote:
| You forgot to count plumbers, and everyone in the
| construction industry.
|
| Also the guy that fills the milk bottles. My brother used
| to work in a milk bottling plant, but he was not filing
| the bottles by hand. A machine filled the bottles,
| someone overlook the machine, my brother was making the
| chemistry and biological test to ensure the milk was safe
| to drink. And there was some additional people they call
| in case the machine gets broken (or to build a new
| machine.)
|
| You are forgetting to count a lot of people.
| falcolas wrote:
| Even if every single position in the US held today were
| considered essential, there would still be more people in
| the US who are unemployed than employed.
|
| And every job currently held today is absolutely not
| essential.
| leetrout wrote:
| "but spend the majority of our lives working 40 hour weeks to
| outcompete each other and make rent"
|
| THIS.
|
| I am so sick of the competition in most tech jobs / companies
| to climb the stupid ladder. Everyone just wants more more
| more and our society reinforces that. I _REALLY_ miss working
| on teams that didn't have that amount of competition causing
| mild dysfunction.
| TedDoesntTalk wrote:
| Do you feel compelled to participate in that competition?
| If not, why does it bother you?
| ThrowawayR2 wrote:
| Fail to compete and you'll be left behind in terms of
| compensation, performance review rankings, and career
| growth, the last of which also limits your future job
| choices. It also puts you nearer the top of the list for
| layoffs when corporate finances get tight.
| TedDoesntTalk wrote:
| You must live with a lot of fear. I am sorry.
| kortilla wrote:
| But those things shouldn't bother you if you aren't
| interested in the "more more more" society. It's easy to
| get a stable programming job in the US that pays $80k and
| has very little lay-off risk.
|
| You can't have it both ways complaining about being left
| behind in comp while not participating in the grind that
| allows those comps to go higher.
| quickthrower2 wrote:
| Lower paid jobs can be worse. That they can't afford to
| pay you more might mean they are doing something noble
| but usually it is a wannabe growth startup being badly
| run and pushing down pressure on lower waged staff to
| compensate.
|
| But you have a point: at 80k requirement you could easily
| freelance to earn that, for non technical people. Help
| set up shopify stores etc. and not need to constantly be
| on a learning grind.
| lazyasciiart wrote:
| I don't, but it bothers me because the people who win it
| get to decide what I work on and they are too often
| fundamentally incompetent.
| bityard wrote:
| Just for some perspective, the 40-hour work week is a
| relatively new invention that only surfaced with the recent
| rise of the white-collar workforce. In my parents' day, the
| 40-hour work week was called "bankers hours" and this was
| used in a highly derogatory "sure must be nice" tone of
| voice. Many or most of us are probably descended from
| farmers that worked doing hard physical labor from sun-up
| to sun-down six days a week at a bare minimum with the rare
| holiday being reserved for family gatherings and religious
| observances. No travel at all unless you could hire someone
| (or left your kids at home) to feed the pigs or whatever
| while you were gone.
|
| I'll take 40 hours over that kind of life in a hearbeat,
| thankyouverymuch. Although I am still trying very hard to
| make it so that I don't have to do even that much for the
| rest of my life.
|
| In general, I don't disagree that it's sad that we spend
| such a huge proporation of our precious, finite time on our
| planet working. Most work without enjoyment because that's
| how you put food on the table.
|
| On the other hand, the person who cracks this nut will
| enjoy unprecedented fame and their name in the history
| books for the rest of human civilization if they figure it
| out. (And no, it's not going to happen no matter how many
| 140-char political rants there are on the bird site. Very
| arguably, those are in fact the opposite of progress no
| matter which "side" you think you are on.)
| teaearlgraycold wrote:
| And thousands of years ago it would be feasible to live
| on 30 hours of work a week. I wouldn't want to give up
| modernity for that, but it's not as though tremendous
| amounts of labor is the original work week.
| water-your-self wrote:
| Can I ask the rough scale of the company you work for?
| mejutoco wrote:
| This brings so many memories. One could use decompilers to see
| how other games were made. It was fantastic for learning.
|
| I am surprised Adobe did not manage to get Flash / Adobe
| Animate adapted to html5/js without people jumping ship.
| thatguy0900 wrote:
| You should look into roblox. I think a lot of the kids who want
| to create are doing it there or in minecraft. There are really
| some pretty expansive games created there.
| taeric wrote:
| The scratch set of tools still enables kids do a lot of this
| stuff.
| axus wrote:
| 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.
| rogual wrote:
| I took a similar path to you. Sometimes I feel the best thing
| my high school did for me was having Flash, VB6 and HyperStudio
| installed on the school computers.
| junkieradio wrote:
| Wick editor is the closest modern thing to traditional flash
| ie. Flash 8.
|
| I've made a fully animated pixel platformer tech demo type
| thing in it, it's somewhat capable.
| dandigangi wrote:
| Had an awesome experience learning programming on AS also!
| Simple projects/games but great language to learn. Can involve
| so many key concepts.
| thedragonline wrote:
| I miss AS. I used it to build a gis engine that packed 5D
| into what superficially looked like 2D - item renderers
| helped make that happen. It is aggravating to no end to watch
| people pile on Flash for its faults - they either don't
| understand what was lost or just don't want to understand the
| loss. Steve Jobs is in this group.
| dandigangi wrote:
| Flash really was great. Its unfortunate that they killed
| it. The Mini Clip and animated shorts days were awesome.
| Used to love finding cool animations in Deviant Art.
| yawnxyz wrote:
| I made a game / synthesizer combo in AS3 for college. Good
| times. I wouldn't even know where or how to begin doing that
| today in JS
| CharlesW wrote:
| > _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 away1 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 kids/enthusiasts, orders of
| magnitude more kids are having the kind of experience you had
| with Minecraft and Roblox instead.
|
| 1 https://www.adobe.com/products/animate.html
| dj_mc_merlin wrote:
| 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?
| robotnikman wrote:
| Definitely still possible, various modding frameworks like
| Forge or Spigot for Java Minecraft still thrive.
| bionade24 wrote:
| There are 2 editions of Minecraft. One, is the original
| one, now called Java edition. They definately still work on
| it, because despite not running well on Java > 8 for a long
| time, it now does. But afaik, they're still stuck on LWJGL
| 2.
|
| The newer one written in C++ was first called "pocket
| edition" and targeted mobile. It's now called "Bedrock
| edition" and is also the version that has RTX support.
|
| It'll be hard to move the modding community over to the
| Bedrock edition. I personally don't have any knowledge how
| limited modding is in the latter one.
| thayne wrote:
| It's still possible for the java edition.
| ecshafer wrote:
| 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.
| dwild wrote:
| 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.
| vkazanov wrote:
| World of tanks used Flash-based tech for game UIs as
| well.
|
| PS At least that was the case 9-10 years ago when I was
| involved.
| texuf wrote:
| Scaleform - it came with the big world engine
| vkazanov wrote:
| Did it? I remember it was something Adobe, suspected
| Adobe Air.
|
| Anyways, the client ui team definitely used Actionscript,
| which I had to read from time to time as a server-side
| dev.
| shlubbert wrote:
| For context, most of these games use(d) a Flash
| derivative called Scaleform for their GUIs:
| https://en.wikipedia.org/wiki/Scaleform_GFx -- it's
| discontinued now but was indeed hugely popular.
|
| A lot of games today use an HTML-powered UI library from
| Coherent Labs which can still be authored using Adobe
| Animate (i.e. what the Flash editor turned into):
| https://coherent-labs.com/
| lostgame wrote:
| It could also run in its own standalone environment you
| could redistribute. IIRC you could even export something
| like an EXE and bundle the flash player with the installer.
| CharlesW wrote:
| > _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.)
| romwell wrote:
| >Roblox does allow you to make a game from scratch
|
| ...with the caveat that once Roblox (the company) folds,
| all the games will be gone.
|
| ...and that since Roblox changes the code all the time,
| you have no idea whether your game will look the same in
| a year. Or even run.
|
| So yes, while I understand what you mean by the spiritual
| successor.. Roblox takes everything that made Flash bad
| (i.e. dependence on a clunky binary that one day may not
| be supported), and _makes it worse_.
|
| _Source_ : worked in Roblox when a new shiny material
| pack was rolled out, which replaced _existing_ materials
| in _existing_ games, messing up the look of games where
| materials were used creatively.
| CharlesW wrote:
| > _...with the caveat that once Roblox (the company)
| folds, all the games will be gone._
|
| True, and I guess Flash is a useful lesson in that sense,
| although no platforms I jammed with as a kid are around
| either. It makes me wonder if Godot apps written today
| will work on the web 20 years from now.
| hutzlibu wrote:
| "FWIW it never went away1 and targets standards-based
| runtimes these days. "
|
| I just tried Adobe Animate recently and nothing worked out of
| the box or like flash used to.
|
| I basically had to tinker, until even basic animations
| somewhat worked.
|
| And I even have quite some experience with EaselJS, the
| target framework, but that didn't helped much.
|
| The power of flash was the ease of use - that is gone.
| AndrewSwift wrote:
| You might like Svija -- you can easily animate SVGs using
| Illustrator. It's not as powerful yet as Flash, but that's
| our goal. Disclaimer, I made it ;-)
| tomcam wrote:
| Gorgeous home page. What does Svija do?
| detritus wrote:
| You need to work on your self-promotion a bit more - both
| here ( :) ) and on your website:
|
| https://svija.love/
|
| I must admit, this isn't the most inspiring landing page
| for someone like me, who could be your exact target
| demographic (long-time Illy user and someone who likes to
| tinker with new web tools). I don't really 'get it' and
| (this is entirely personal) the design looks quite dated.
|
| I'll bookmark it, share it and keep an eye on it though -
| Good luck!
| skocznymroczny wrote:
| Ahh Hapland. I managed to beat 1 and 2 without a solution. Never
| beat 3. Didn't know how to get started. Once you get started
| things start to get rolling.
| onepointsixC wrote:
| I absolutely adore Flash and it was my first introduction to
| programming. I greatly miss the feeling of the web when Flash was
| king and there was a pot luck of animators and game makers
| sharing neat things they made. I myself made a game but never
| actually published it. Always regretted not putting it up
| publicly before Flash went EoL.
| underdeserver wrote:
| Kinda click-baity because he _doesn 't_ use Flash - at least not
| Flash Player, which was my first association.
|
| I think there's a very strong case for writing a clean-room Flash
| Player implementation.
| pentagrama wrote:
| It reminds me that the show BoJack Horseman was created on Adobe
| Flash [1]. The creator calls himself an "Old School Flash Hack"
| in a same vibe like the OP.
|
| Don't know if the latest seasons they still used Flash, maybe
| yes, because they just exported to video? Migrate to other tool
| maybe was a pain and/or changed some illustration aesthetics. Not
| sure if a project like that can migrate properly to Adobe Animate
| [2], the Flash successor.
|
| I believe that Flash was a tool with a friendly UI/UX for casual
| animators but also many advanced features for pros, that's why
| was so popular and loved.
|
| [1] https://youtu.be/0KofIRvAr0M?t=626
|
| [2] https://en.wikipedia.org/wiki/Adobe_Animate
| numair wrote:
| Really great writeup. So people stop asking the obvious question,
| here is the GitHub issue that clearly shows Ruffle doesn't
| support ActionScript 3:
|
| https://github.com/ruffle-rs/ruffle/issues/1368
|
| I recently picked up a copy of Flash MX to use on an old
| PowerBook, highly recommend others do the same. As many have
| commented, today's authoring tools are poor substitutes (someone
| should do a list of the superior abandonware versions of SaaS
| products).
| tetris11 wrote:
| It looks like its 99% there though in terms of support
| adrian17 wrote:
| 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 each available class, but that's a
| lot of bookkeeping and it doesn't really say that much about
| real support (as, assuming pareto principle, 80% of fancier
| features are used by only 20% of games).
| numair wrote:
| Thank you for this very thorough and honest explanation.
| Really appreciate what you're doing with Ruffle!
| qwerty456127 wrote:
| I wish Flash would just be fully open-sourced for niche users to
| maintain and use it AS IS. I know it supposedly has a lot of
| vulnerabilities but there are use cases where the pros matter
| more and this con doesn't matter too much.
| Marazan wrote:
| The Flash Player had a bunch of licensed 3rd Party software in
| it so very hard to open source it.
|
| The AS3 VM at its heart however was open sourced.
| leetrout wrote:
| I know it is not the same thing but Godot is close for being able
| to get something working in 2D as fast as you could in Flash.
|
| I am optimistic we will see a Flash alternative popup as WASM and
| WebGPU continue to grow.
| dandigangi wrote:
| I miss that beautiful old keyframe timeline and writing some AS2.
| The good days.
| swayvil wrote:
| There are a million flash games. Treasures! Surely there is a
| good flash (p5js?) to JavaScript converter out there.
|
| Also, is there a better way of doing it than converting flash to
| JavaScript?
| lukaszkups wrote:
| I do really enjoyed this kin-of-post-mortem! Please write more,
| I'd love to hear about your other projects!
|
| As a side note: In my opinion the closest replacement for Flash
| is currently Construct 3 engine - you should definitely take a
| look on it! (I'm not associated with Construct 3 team (Scirra) by
| any means - I'm just a happy user of their product)
| nonethewiser wrote:
| So he created his own flash player. Couldnt someone use WASM to
| run a flash player in the browser? Without the original flash
| security risks.
| jraph wrote:
| That's what Shumway did (it's now unmaintained), and what
| Ruffle does.
|
| https://github.com/mozilla/shumway
|
| https://ruffle.rs/
| _joel wrote:
| Ruffle's neat! Never seen that before
| Narretz wrote:
| Like the sibling comment says, while there are alternative
| flash players, they are either unmaintained (Shumway since
| 2016) or not feature complete yet (Ruffle). Since performance
| was stated as the main goal, a bespoke solution that only
| supports what the games actually use is probably the best
| performing.
| est31 wrote:
| It was pretty interesting to read how they chose .asm text files
| for encoding of animations.
| namuol wrote:
| Ah, Flash. Simulating a bouncing ball using keyframe-driven
| ActionScript that I only sort of understood was my "hello world"
| moment. Love to see it being used like this. If only I could find
| those old .fla files...
| pmarreck wrote:
| > Although I developed the game mostly on my Mac, during
| development Apple invented this thing called "Notarization" where
| if you run any app on a new version of MacOS, it'll make a
| network request to Apple to ask if the app's developer pays Apple
| a yearly fee. If the developer does not pay Apple a yearly fee,
| MacOS will pop up a dialog strongly implying the app is a virus
| and refuse to start it.
|
| > For this reason, Windows will be the first and maybe only
| release platform for this game.
|
| this seems like the wrong answer to the (arguably legitimate)
| concern posed. the first and maybe only release platform for this
| game, based on the reasoning, should have been Linux. It's not
| like Microsoft can't decide to arbitrarily force exe's to phone
| home for "security" reasons, but good luck getting the Linux
| kernel, or any distro, to do that.
|
| I'm 100% convinced that Linux will be the way all software will
| be preserved in the future; Proton will take care of windows
| exe's and VM's will take care of Macs, and a deterministic OS
| like NixOS will let you define exactly what any piece of software
| needs to build and run, forever. The incentives just line up.
| whywhywhywhy wrote:
| If Proton is accepted as the solution to Linux gaming what is
| the reason for a developer to build for Linux over Windows?
|
| Funnily enough there are parallels with that to why Apple
| didn't want Flash on iOS. If you could make it in Flash and
| ship to both why code an iOS app.
|
| Same thing, zero reason to make a native Linux build while that
| works fine.
| pmarreck wrote:
| It's a good point. Turns out that the Windows API is more
| stable than whatever Linux offers; I have multiple games now
| that have native Linux versions on Steam but whose Windows
| versions running under Proton are simply less buggy (and also
| synchronize cloud saves with my pure-Windows machine).
| themagician wrote:
| Initially, Apple actually looked at an iOS version of Flash.
| This was around 2009/2010 IIRC. There were special dev
| iPhones that ran Flash. Adobe didn't want to optimize it
| because they thought the iPhone would fail. Apple thought the
| performance was garbage and the communication mostly ended. I
| got to play with one for a few days and the performance was
| terrible. Even simple games lagged and the touch points were
| a disaster.
| steeleduncan wrote:
| A native Linux build is still better performance than Proton,
| so with the popularity of Steam Deck it is worth the effort
| recompiling for Linux for higher performance games.
| ezfe wrote:
| Also the fact that macOS doesn't actually block unnotarized
| software...Many programs are un-notarized and just need to give
| the user the 1 step instruction to bypass it
| richrichardsson wrote:
| Also the fact that you only need to pay the PS99 fee once;
| after the executable is signed, notarised and stapled, that's
| it. I think there might be a network request if the
| executable hasn't been stapled, but it's only to check that
| it has been notarised in the past, it doesn't check for an
| active Developer Subscription. At least this is my
| understanding of the situation, I would be happy to be
| corrected if any of that is wrong.
| mike_hearn wrote:
| Also - you have to sign code on Windows too! If you don't
| then Edge will try as hard as possible to stop the user
| opening it, and AV scanners can get very curious about what
| you're doing. Maybe Steam doesn't care if your game is
| signed?
|
| I didn't quite follow the logic around notarization either.
| Steam imposes more requirements and takes a slice of
| revenue! Notarization is a lot cheaper and faster than
| that. But I guess the idea is that Steam gives you
| features, whereas notarization is just a tax.
| pmarreck wrote:
| Yes, and I also never felt the macOS warning about it
| "strongly suggested it was a virus." That was pretty much
| hyperbole. And I could also argue that Apple expecting devs
| to pay a nominal fee to get their app officially code-signed
| creates a barrier to entry for bad actors who are likely to
| not want (or be unable to afford) to pay such a fee,
| especially when that simultaneously gives control to Apple to
| block the malicious code en-masse once it is discovered.
| pier25 wrote:
| What about Haxe and OpenFL?
___________________________________________________________________
(page generated 2022-12-21 23:00 UTC)