Mordax

Software Developer

View My GitHub Profile

Java Applet Curation

Over the past weeks, I had been working on Mozilla Hubs and Apache httpd. My aim was to observe the differences between a well established, 20+ year old open source project and a new project curated by a community. Here’s what I learned:

Regardless of the age of the project, the same challenges remain - entering a community, documentation issues and of course, build problems.

I ran into a unique problem with Hubs - this was a company’s internal project made external, and my pull requests ended up being more of recommendations that other members would make into patches. It was disappointing for me and discouraging to put in more work just to have someone else implement it. So I decided to move on for now.

Apache on the other hand was a real adventure in the difficulties of being a Windows user. After finding out that the team only released Unix builds and the rest of the community did Windows (and even then, not having support for x64 versions and the documentation not updated to reflect that), I had to spin up a Linux distro. Even then, it took me weeks of trying to build a developer version, having to gather information on missing prerequisites in various different documentation and from forums. At the end of my hard work, I made this quick start guide for spinning up a working developer server for beginners. But the fear of breaking my build made me too cautious to start fixing the bug I found.

Seeing that I had spend an incredible amount of time dealing with these problems, I have decided to move on to a new project.

And that project was Bluemaxima’s Flashpoint.


To understand Flashpoint, I need to give a brief backstory on it. Adobe is killing support for Flash and Shockwave (Shockwave’s demise is happening in April 2019!). Most of the articles covering this understandably praise the move - plugins have notoriously had issues with security, and most modern browsers have been already been blocking access, such as Firefox. Chrome wants to do this by 2020.

Well, what’s the big deal? For anyone living through the 2000s era of the internet knows the huge amount of Flash content that has been made. Flash games, flash animations, Shockwave movies and onwards. Before the advent of HTML5 and processing, the only way you could make visualizations or interactive content without completely throttling the person’s bandwidth was through plugins like Flash and Java for Java applets. Modern browsers no longer wish to support a majority of the 2000s internet content.

So in comes Flashpoint. The project was started almost a year ago, in 2018, as a last ditch effort to try and archive these games into a modern, playable format.

Built on Electron, Flashpoint is a launcher that allows you to search for games and play them. It has expanded to support Flash animations, Shockwave, 3D Groove, Java Applets and even modern games built on Unity and HTML5.

This was a more unusual project - the crux of it is hosted on a personal domain and server, and only recently has moved to Github and other places. It’s an open source project but rather and “moving fast and breaking things” mentality that most open source projects have, it’s more of a “move fast, save as bunch of these games as quickly as possible and make sure it lasts” mentality. Which is a welcome change.

They have a public discord and I joined it. Right away, somebody welcomed me, I told them of my goal (to save some games from one of the sites I played as a child, freearcade.com, all java applet games) and was immediately directed to the specialists in the team and had someone to basically ask all my questions to.

So I decided to go ahead and try curating my first game.

I picked Wiz3, one of the more popular games on the site.

Issue:

Extracting a Java applet game from freearcade.com and learning the Flashpoint ropes (Flashpoints biggest issues for new developers is extracting and testing games in Flashpoint).

Solution:

Side Issues:

The amount of assets files that Wiz3 needed was insane. And some of the level files were missing. I had to hunt for another location of the game - which thankfully was still up on the original developers site. I couldn’t use the missing files with the existing ones I had already curated so I had to delete what I had curated and start over again, manually downloading dozens of files.

That prompted me to make a script file specifically for the site later on.

Benefit:

Getting more Java applet curation experience is nice due to the fact that Flash is a bit more straightforward than other types of web games, primarily due to the fact that you need the embedded HTML applet code in order for the game to run properly.

The community on discord is really great - serious, passionate and hardworking archivers that have done some incredible reverse engineering. Highly recommend anyone who wants a good open source community to check them out.

Download the curated Wiz3