Difference between revisions of "Curation Tutorial"

From Flashpoint Database
Jump to: navigation, search
(Added link to video tutorial, not embedding as it may seem invasive)
(Curating with Flashpoint Core: added link to Format Page at the bottom of the Screenshot of Metadata Fields)
Line 67: Line 67:
  
 
== Curating with Flashpoint Core ==
 
== Curating with Flashpoint Core ==
[[File:LaunchCommandMatchesContent.png|thumb|What your curation should look like when you're finished. Note how the Launch Command matches the Content Files.]]
+
[[File:LaunchCommandMatchesContent.png|thumb|What your curation should look like when you're finished. Note how the Launch Command matches the Content Files. For details on the other fields see the [https://bluemaxima.org/flashpoint/datahub/Curation_Format#List_of_Metadata_Fields|Curation Format page] ]]
 
The most optimal way to curate is to use the "Curate" tab in Flashpoint Core. To do that, open Core and select the Curate tab, then click the New Curation button to see a list of fields to fill in. These are the most important ones:
 
The most optimal way to curate is to use the "Curate" tab in Flashpoint Core. To do that, open Core and select the Curate tab, then click the New Curation button to see a list of fields to fill in. These are the most important ones:
 
* The Title, which tells the game apart from others. Name it "Interactive Buddy" or "Test Game" or anything you like, it doesn't matter right now.
 
* The Title, which tells the game apart from others. Name it "Interactive Buddy" or "Test Game" or anything you like, it doesn't matter right now.

Revision as of 09:26, 9 September 2020

This page is a basic tutorial on how Flashpoint works and how to curate games for addition to Flashpoint.

If you would like an overview, check out this video tutorial

How Flashpoint Works

Flashpoint is more than just a program to play files; rather, it's a combination of two programs working in parallel:

  • a web server, which hosts game files from a hard drive and pretends to be the original Internet source the games ran off of,
  • and a launcher, the user interface to select and play games from.

Flashpoint itself also comes in three primary versions:

  • Infinity, the version that downloads games from a server as you play them,
  • Ultimate, the gigantic version with every game included and ready for offline play,
  • and Core, the version with only a few games for testing, most often used by Curators to add games.

Infinity will download files as you play games that request them, while Ultimate and Core know the files are already there. All three make the files believe they're being ran on their original source. This has numerous benefits, the two most important being bypassing sitelocks and supporting multi-asset games. Before we understand how Flashpoint handles those cases, though, let's walk through the simplest case possible; curating a single-asset SWF file.

Setting Up Our Software

To download game files from the Internet, you'll need:

  • Flashpoint Core, used to add and test new games. It can be found at the bottom of our Downloads page.
  • A modern browser such as Chrome or Firefox, which have a built in Network monitor that we can use to find and grab individual SWFs, and sometimes multi-asset titles with low amounts of resources.
  • cURLsDownloader, found in the Utilities folder of the Flashpoint Core directory. This isn't strictly necessary, but it helps immensely; you'll see why later on.

Download Flashpoint Core, extract it to your hard drive, run it via its shortcut in the extracted folder, and make sure that the included games play properly before you continue.

Finding the Source of a Flash Game

The SWF for Interactive Buddy in Chrome's network tab; it should look similar on Firefox.

Be sure to check the Game Master List before settling on a game! Otherwise, you might waste time and effort to save a game that's already been saved.

As a tutorial, we'll start by curating the simplest type of Flash game: a single SWF file that isn't sitelocked, specifically Interactive Buddy. You might need to enable Flash in your browser to get it to play (this tutorial won't work if you're using another player such as the Newgrounds Player).

  • If you're using Chrome or Firefox, press F12 to open the Developer Tools and click on the Network tab. This shows us every asset that loads on the page in real time.
  • You can filter miscellaneous types of assets such as Flash files by clicking the Other tab within the Network tab.
  • Refresh the page to find that a few assets loaded. The game file has an extension of .swf, and has a type of x-shockwave-flash in the table.
  • Once you find the SWF, you can hover over it to see its URL and confirm that it ends in .swf.
  • Right-click the asset and select Copy > Copy link address.

If you know your game is Flash but still can't get it to work, check the Flash Curation page for more detailed info on specifically Flash games. If all else fails, ask away in #curator-lounge on our Discord and we'll try to solve the issue together.

Other Methods for Obtaining Game Source URLs

If you're having a hard time finding the game's source this way, or just desire a more convenient method, two additional options are available.

Option 1: Press Ctrl+U on the page the game is embedded on to open its source HTML file. Press Ctrl+F to open the search bar, then type in ".swf". You'll likely come across a link directly to the game's SWF source file., which you can copy and save for later.

Be careful of red herring SWFs! Use common sense when finding SWFs this way, as some pages may embed multiple SWFs at once, only one of which is the actual game file. Kongregate games notoriously use a konduit SWF instead of the game's source SWF within the HTML embed, making it impossible to find the link using this method.

Option 2: Open Developer Tools, but instead of clicking on the Network tab, click on the Elements tab instead. Use Ctrl+F just like with Option 1 to find and copy the link to the game's source file. This is useful when neither of the above options work, especially when attempting to find flashvars.

Non-Flash Games

If a context menu that mentions Adobe Flash Player doesn't appear when right clicking the game canvas, it's probably not a Flash game. Don't worry, we got you covered! Try viewing our tutorials specifically tailored for other Platforms like Shockwave or HTML5.

Generating Content Folders with cURLsDownloader

If you've followed the tutorial up to this point, you should have copied this link to the SWF for Interactive Buddy:

https://uploads.ungrounded.net/218000/218014_DAbuddy_latest.swf?123

Flashpoint calls files from a file directory created from the URL of a game, packaged into a folder called content for each curation. Instead of creating a content folder manually, though, we can use a tool called cURLsDownloader to do it automatically.

  • cURLsDownloader should be in your Flashpoint Core folder > Utilities > cURLsDownloader.
  • Open cURLsDownloader and paste your game URL into its input.
  • Select Option 1 to grab the SWF file.
  • cURLsDownloader will automatically download the SWF and create a content folder for Flashpoint, located in its Downloads folder. Use option 1 when finished if it detects a broken filename, which will very likely fix it.

We'll come back to this Downloads folder later to move it to its proper place.

Curating with Flashpoint Core

What your curation should look like when you're finished. Note how the Launch Command matches the Content Files. For details on the other fields see the Format page

The most optimal way to curate is to use the "Curate" tab in Flashpoint Core. To do that, open Core and select the Curate tab, then click the New Curation button to see a list of fields to fill in. These are the most important ones:

  • The Title, which tells the game apart from others. Name it "Interactive Buddy" or "Test Game" or anything you like, it doesn't matter right now.
  • The Platform, which determines where the game goes inside our database, split into several platforms (Flash, Shockwave, Unity, etc). When using Core for testing purposes, this isn't massively important, but Flash is selected for SWF files and by default.
  • The Application Path. This determines what piece of software is used to start up the file we specify. In this case we're using a single, simple SWF, so we'll use the Flash Player Projector; in the current version of Core, this is listed as "FPSoftware\Flash\flashplayer_32_sa.exe", and is selected by default.
  • The Launch Command, based on the URL of the game's source file.

To summarize, the Launch Command of a game is most often the URL of its source file. However, be extremely careful about the beginning of this game's URL; it uses HTTPS instead of HTTP. Flashpoint can't handle using HTTPS, and will download assets from the live Internet instead of from its fake Internet server, which can lead to a game going off the web later and not working in Flashpoint when that happens. To summarize, no matter the URL, always use http:// at the beginning of any Launch Command, NO EXCEPTIONS.

To add the content you generated earlier using cURLsDownloader, click the "Open Folder" button at the bottom of your curation and you should see a "content" folder. Move everything from cURLsDownloader's "Downloads" folder into this "content" folder, and then click the "Refresh Content" button.

Take a look at the image to the right to see how your tutorial curation should look. If any field is highlighted in yellow, it's a warning; take another look at your own curation and see what's wrong. Curations of your own should have as much metadata filled in as possible, but the fields mentioned above ensure the game will work in Flashpoint. You can fill in the rest of the fields if you like, but it's not necessary right now.

Once you're confident your curation looks good, click the "Run" button next to the "Open Folder" button to test the game and you should see Interactive Buddy pop up.

Congrats! You've successfully made a curation. Now let's see how to deal with more complex games.

Sitelocks

The sitelock telling you to go to Andkon Arcade, despite the game already being on Andkon Arcade.

Some Flash games will check the domain the game is being hosted on, and "lock" the game from being played if it's not on the correct site, called a sitelock.

This can even occur, though very rarely, on the original site where the game was hosted, as is the case with Monster Slayers. Click this link and try to play the game; your result will be the image on the right. Despite the game already being hosted on andkon.com, it'll activate its sitelock and tell you to go to Andkon Arcade. Try to find and download the SWF using the method described in the previous section.

You should find this source URL:

http://andkon.com/arcade/adventureaction/monsterslayers/monsterslayers.swf

This ironic sitelock is due to Andkon's main domain changing to "andkon.com", when it used to be "arcade.andkon.com". Therefore, changing the "andkon.com" in the URL to "arcade.andkon.com" will give us a Launch Command that bypasses the sitelock:

http://arcade.andkon.com/arcade/adventureaction/monsterslayers/monsterslayers.swf

This particular URL uses http:// instead of https://, but always make sure the Launch Command uses http:// regardless.

Try to create a new curation by downloading the SWF from the top URL using cURLsDownloader, and setting the bottom URL as the Launch Command. Use the Curate tab in Flashpoint Core to test your game; Flashpoint should bypass the sitelock and allow you to play Monster Slayers, just like Andkon used to.

It's important to use correct Launch Commands and proper content folders for every curation you make (even if you're curating a non-sitelocked SWF), to ensure that all the game's assets are loaded exactly as they would be on the real Internet, without running into any possible sitelocks on the way (even if the game appears to be playable outside of Flashpoint).

Using cURLsDownloader for Multi-Asset Games

Up until now, we've only curated single-asset SWF files. However, many web games were made at a time where downloading one large file was intensive on Internet speeds and took longer than it should. This meant lots of games were split into several, smaller assets so the overall game loaded faster. Whether these games load all of the assets when the game first starts up or intermittently as you play the game depends on how they were programmed, making curation of multi-asset games more difficult than single-assets.

Let's check out a multi-asset game called Gateway II. Here's the link to the main SWF of the game:

https://chat.kongregate.com/gamez/0000/3268/live/gateway_2.swf?kongregate_game_version=1581667106

Try curating this SWF as described above and testing it in Flashpoint with the Run button. You'll only get to the language select screen before the game freezes once you pick one.

Select the Logs tab in Flashpoint. Find the Filters menu in the top-left corner and uncheck everything except "Redirector", then look near the bottom of the log. You should see a line with "200 HTTP/1.1" followed by a directory to the main SWF, followed by one or more lines with "404 HTTP/1.1" followed by directories to additional assets.

This means the game was calling for one or more assets that it didn't have offline, making the game freeze because it failed to load a required asset. Thankfully, Flashpoint can handle these assets as long as they're downloaded properly.

Once again, instead of manually downloading lots of assets, we can use cURLsDownloader to save time and effort.

Option 1: Download the assets called by the game as you test it in Flashpoint Core.

  1. Click the Copy Text button in the top-right of the Logs tab.
  2. Paste the results into a text file and remove every line except for ones beginning with "404 HTTP/1.1". Remove that section from each line along with anything before it such as timestamps, then add "http://" to the beginning of each line.
  3. Save the text file and drag it over cURLsDownloader.
  4. Wait for cURLsDownloader to finish fetching assets. Use option 1 when finished if it detects broken filenames, which will very likely fix them.
  5. Move the contents of the Downloads folder in cURLsDownloader to the content folder of your curation.
  6. Test your game with the Run button. If anything fails to work as it should, look for more lines beginning with "404 HTTP/1.1" in the Logs tab and repeat this process.

Option 2: Download all the assets that the source page of a game loads as you play it on the live Internet (but some assets downloaded won't be part of the game).

  1. Once again, press F12 to open your browser's Network viewer, then refresh the page.
  2. Play through your game on the Internet, loading assets as you go.
  3. When you're confident you've loaded all of the game's assets, click the "All" tab in the Network viewer and right-click on an asset.
  4. Select Copy > Copy all as cURL (cmd) and paste the results into a text file.
  5. Save the text file and drag it over cURLsDownloader.
  6. Wait for cURLsDownloader to finish fetching assets. Use option 1 when finished if it detects broken filenames, which will very likely fix them.
  7. Open the Downloads folder in cURLsDownloader and determine which folder contains the necessary files to play the game.
  8. Move the contents of your chosen folder to the content folder of your curation.
  9. Test your game with the "Run" button.

When testing games, if a game lets you get through more than one level without loading another asset, you'll generally be okay to assume that there's no more assets to be found, but this is never a guarantee, and you should always test your game in Flashpoint as much as you can.

Wrapping It Up

Once you're sure you've gotten a game working in Flashpoint, it's time to add the additional parts of any curation. The Curation Format page tells you how curations are laid out in order to add it to the master build of Flashpoint with as much information as possible. You should read the List of Metadata Fields section specifically; there are more than a few fields that need to be filled in on each curation this tutorial didn't specifically cover.

When you've created a proper curation in the Curate tab, click the "Export" button at the bottom of your curation, which will save a .7z archive of the curation ready to be imported into the master build. Name it something relevant (typically the name of the game), and save it wherever you'll remember it.

Once you have your .7z ready, follow these instructions to make sure it gets added to Flashpoint:

Becoming a Trial Curator

Before you can officially submit curations, you will need permission from the Flashpoint Staff. Head to the Flashpoint Discord server and upload your submission to the #curator-auditions channel.

If your file is too large for Discord, please upload it to our site Bluepload instead. Once the file has finished uploading, paste the link to the file into #curator-auditions.

If you have any questions, ask in #curator-lounge and a Curator will answer them. No discussion is allowed in #curator-auditions - you should only post your curation there.

After you have posted your curation in #curator-auditions, a Curator will check it. This can take some time, so please be patient.

  • If you see a green checkmark underneath your submission, that means your submission passed our test. You are now a Trial Curator - you can officially submit your curation!
  • If you see red X underneath your submission, that means something is wrong with your curation. Check the #curator-lounge channel for an explanation of how to fix your curation.

Submitting a Curation

Now that you have the Trial Curator role, you need to upload your curation again to officially submit it. You have two main options for how to do this: using Discord, or using one of our upload sites. Choose one option - don't upload both to Discord and our website.

Uploading via Discord

If your curation is under 8MB, this is the easiest option.

  1. If you are submitting a Flash game, head to the #flash-game-curations channel. If the game uses a separate technology, go to #other-game-curations. If it's an animation and not a game, go to #animation-curations.
  2. Once you're in the right channel, drag your curation onto your Discord window. Then type the title of the game/animation you are submitting and click "Upload" to submit the curation.

Uploading via our website

You may use one of our web services to upload curations instead of using Discord. Unlike Discord, there is no size limit for curations uploaded via our sites. Note that you are still required to post the name of your submission in the appropriate Discord channel. See below for more details.

  1. If you are submitting a Flash game, head to the Flash Curations upload site. If the game uses a separate technology, go to the Other Game Curations site. If it's an animation and not a game, go to the Animation Curations site.
  2. After your curation has finished uploading, go back to Discord. If you are submitting a Flash game, head to the #flash-game-curations channel. If the game uses a separate technology, go to #other-game-curations. If it's an animation and not a game, go to #animation-curations.
  3. Once you're in the right channel, post the title of the game/animation you just uploaded. You don't need to provide a link as long as you uploaded it in the right place.

Congratulations! Your submitted game/animation will appear in the next version of Flashpoint.

After Submitting

Editing Your Curations

If you notice a mistake with your curation after you've submitted it, read our article on Metadata Edits and head over to the #pending-fixes channel in our Discord so you can make necessary changes.

If you're wondering whether your curation has been added to Flashpoint yet, look for a :Tools: emoji reaction anywhere below your post in the Curations channel.

Having Problems?

Because we can't remind you enough already, join our Discord and ask away in the #curator-lounge channel.