User:Dukktape: Difference between revisions

From Flashpoint Datahub
Jump to navigation Jump to search
m (→‎Broken Or Non-Functional Games: ran it through a grammar checker and fixed some issues)
(checking metadata section in progress)
Line 1: Line 1:
'''''This is a draft of pending changes to the HTML5 Curation Tutorial. It is unfinished.'''''
'''''This is a draft of a new page for FPFSS testing instructions. It is unfinished.'''''


----
----


HTML5 games are not nearly as endangered as Flash games, and are in fact often cited as replacing the Flash medium. However, they still pose a risk of disappearing at some point in time, and therefore should be considered for curation just like other web game formats.
This guide is intended to help Staff Members with testing submissions on the FPFSS.


This tutorial assumes you've read the standard [[Curation Tutorial]], which is highly recommended to go through. Try curating a Flash game before moving on to HTML5.
==How To Test Using the FPFSS==


== Identifying HTML5 Games ==
==Checking Metadata==
If a web game doesn't ask to enable Adobe Flash Player and there's no sign or mention of any of the other [[Platforms]], it is very likely an HTML5 game. Many use game engines as their base, the most prominent example being Unity WebGL, which replaced the previous [[Unity_Curation|Unity NPAPI implementation]] that no longer works.


To confirm this, press F12 to open the Developer Tools of your browser, click on the Inspect Element button and click on the game area. This will show you in the <code>Elements</code> tab the iframe the game is located in, and there you'll find the link for the main file of the game. You can also look for a <code>.html</code> file, likely with the filename <code>index.html</code>. However this is not always present, the iframe for many modern games will have no filename or extension at the end. These look like a regular URL rather than a link to a file.
This list contains the basic requirements for each metadata field, however this is not a complete list of all ways that the metadata can be correct or incorrect. If you're unsure whether something is allowed, you should ask in one of the staff channels.


Copy the file's link and go to it. If it plays an unobstructed version of the game, you've found the source of your Launch Command. Keep in mind that not all games should be divorced from the page they are found in, such as individual games outside of webgame websites.
{| class="wikitable sortable"
! Field !! Requirements
|-
| '''Title''' and '''Alternate Title'''
| '''Titles''' should:
* Roughly match the submission's logo (if it has one).
* Not have spelling errors.
Along with the above, '''Alternate Titles''' should:
* Not be a shorter version of the Main Title.
* Not be the same text as the Main Title. For example, an Alternate Title which is the same as the Main Title but with different capitalization should be removed.
|-
| '''Library'''
| The '''Library''' field should be:
* <code>Games</code> if the submission contains some interactive element beyond a start menu or play button.
* <code>Animations</code> if the submission contains no interactivity beyond a start menu or play button.
|-
| '''Series'''
|The '''Series''' field should:
* Not be the franchise it relates to, a Franchise Tag should be added to the curation instead if it isn't already.
:- e.g. a Mario game should have the <code>Super Mario</code> tag and not "Super Mario" in the Series field.
|-
| '''Developer''' and '''Publisher'''
| Changes should be requested for either of these two fields if:
* The field is wrong.
* There is nothing in the field despite Developer or Publisher is shown in an obvious place in the game/animation.
* There are significant spelling errors that would prevent the submission from being properly searched for.
You don't need to request changes for differences in how the Developer or Publisher's name is written. For example <code>Addicting Games</code>, <code>AddictingGames</code>, and <code>AddictingGames.com</code> are different ways people could write the same Publisher. In the future Flashpoint may have a way to unify these spellings, but for now they don't matter.
|-
| '''Tags'''
| Changes should be requested if:
* The tags are irrelevant to the curation.
* The curation is missing Content Warning or NSFW tags.
* There is a tag used which is not on the [[Tags]] wiki page.
* The curation has no Gameplay (or Animation) Tags or if the Gameplay tags it has are incorrect.
* The <code>LEGACY-Extreme</code> tag is used. This tag should not be added to any new submissions.
|-
| '''Play Mode'''
| Changes should be requested if the '''Play Mode''' is missing supporting modes or if the listed mode is incorrect.
|-
| '''Status'''
| Changes should be requested if:
* The Status is incorrect.
* The submission is labeled as <code>Partial</code> or <code>Hacked</code> and has no Note explaining why.
|-
| '''Version''' and '''Release Date'''
| These fields are only incorrect if the information is wrong. The information being missing is not something that needs to have changes requested for.
|-
| '''Language'''
| The '''Language''' field should:
* Include all languages present in the work, regardless of whether it's written or spoken.
* Use the two letter [https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes ISO 639-1 language codes], unless the language doesn't have a two letter code. In these cases the three letter code can be used.
* Works which have no text or spoken language in them should have either <code>en</code> or the language that the Title is, if not English. Either is correct.
|-
| '''Source'''
| The '''Source''' field should:
* Be the full URL of where the curator found the game.
* If the curation was not sourced from a webpage, there will be some other way of indicating where it came from, e.g. a game from a CD should have the name of the CD.
|-
| '''Platform'''
| Changes should be requested if this field is incorrect.
For information specific to each '''Platform''' go to [[#Platform Specific Requirements]].
|-
| '''Application Path'''
| Changes should be requested if the '''Application Path''':
* Is incorrect for the submission's Platform.
* Is invalid or otherwise not working.
|-
|}


'''Make sure to always use http:// instead of https:// to make sure Flashpoint grabs files from the fake Internet instead of the real one!'''
==Platform Specific Requirements==
 
== Grabbing The Game From The Internet ==
[[File:Individual-Sprites-HTML5-example.png|thumb|300px|Some games have one or more image files that act as sprite sheets, others will have each unique texture as an individual file, so make sure to get them all.]]
 
There are an extremely low number of HTML5 games that are single-asset. For multi-asset curations, you have two main options, both of which are [[Curation Tutorial#Multi-Asset_Games|described here]], but each is more suited for different tasks which we'll explain here.
 
Create a new curation in the Curate tab of Flashpoint Core and fill it out with as much information as you can, including the Launch Command you found earlier. The Platform should be <code>HTML5</code>, and the Application Path should be <code>FPSoftware\Basilisk-Portable\Basilisk-Portable.exe</code>, referring to the Basilisk browser used for most HTML5 games.
 
After inputting the launch command, use <code>Run with MAD4FP</code>, and start playing the game. [[MAD4FP]] will download any assets automatically as you play and make progress.
 
'''REMEMBER, ALWAYS TEST THE GAME 100%, NO MATTER HOW BIG OR SMALL!''' This is true for all games, but especially HTML5, as nearly none are single-asset, you are almost guaranteed to find a multi-asset. Because of how it works, most games will only call assets when needed, so make sure to navigate all the menus, click all the buttons, and play the game as thoroughly as possible. This may include hidden collectables, unique voice lines, downloadables, completion bonuses, etc.
 
Wayback will not save these missing assets on a normal capture, and computers/browsers tend to clear cache much more frequently for optimization, making cache dumps unlikely to yield anything, so once it's gone, it's likely gone for good. Better to catch everything first try and make sure it's not lost. For more information on multi-assets in general, [[Curation Tutorial#Multi-Asset_Games|go here]].
 
Once you've finished playing through the game, you need to make sure that all of the game's assets have actually been downloaded. To do this, first clear Basilisk's cache by following [[Extended FAQ#ClearBasiliskCache|these instructions]], then close Basilisk. Next, press the <code>Run</code> button to test the game again, this time without using MAD4FP. If the game does not work, MAD4FP likely failed to download some of the required assets. Follow the instructions in the [[#Missing Assets|Missing Assets]] section to complete the curation.
 
== Other Browsers ==
[[File:BasiliskError.png|thumb|300px|Common error message for games that don't work in Basilisk.]]
[[File:UnityWebglError.PNG|thumb|300px|Error message seen in Unity WebGL games that need to be run in another browser.]]
Some games will not work in the version of Basilisk used by Flashpoint. This is generally for one of two reasons: 1) The game requires a feature or technology not present in the 32-bit version of Basilisk, which no longer receives updates; or 2) The game requires a Chromium-based browser to work properly. In order for these games to work in Flashpoint, two other browsers were added, <code>Browser Mode</code> and <code>Chromium</code>. The two have somewhat different uses, so testing the game in both versions may be needed to see what will work best.
 
Sometimes a game that doesn't work in Basilisk will show an error message. A message similar to the examples is typically a sure sign that another browser must be used for the curation. In other cases, the game may work to some degree, but certain elements may be missing or not working properly. Common issues include: the game loading with no graphics, the game's music and/or sound effects not playing, the game's controls not working, or the game experiencing lag issues not present in other browsers. Performance issues are especially common with Unity WebGL games in Basilisk.
 
=== Browser Mode ===
Browser Mode is a way of running games using Flashpoint's launcher. It is usually the first one to try when a game doesn't work in Basilisk. However, since Browser Mode is not a full web browser, it has some limitations that mean it isn't an option for all games.
 
The limitations of Browser Mode include:
* Cannot open multiple tabs or windows.
* Doesn't support games that require a webcam
* Games that require the cursor to be captured may not work properly.
* Currently cannot be used for Alternate Applications (but may support them in the future).
 
'''The Application Path for Browser Mode is''' <code>:browser-mode:</code>.
 
=== Chromium ===
Ungoogled Chromium is included in Flashpoint as a second full browser alongside Basilisk. It is currently not used for many games but fixes issues that Basilisk and Browser Mode cannot. The main limitation Chromium has over the other two browsers is that it cannot load Flash content for the few HTML5/Flash hybrid games.
 
'''The Application Path for Chromium is''' <code>FPSoftware\startChrome.bat</code>.
 
== Google Fonts Elements ==
[[File:Google Fonts Missing.png|thumb|300px|Missing icons and the default font, compared to how it should look with everything being displayed.]]
Some games will make use of Google's library of fonts and icons, and these can have trouble displaying in Flashpoint.
 
This may be because the <code>index.html</code> (or equivalent) may not be calling the font file directly, but making a request to Google's servers to serve one or more fonts depending on the URL parameters. When the page uses multiple fonts, the same <code>css</code> file may be requested with different parameters. If so, you'll need to follow the steps below to make the fonts display properly.
 
<ol>
<li>
Look at the logs and check for any 404 requests from <code>fonts.googleapis.com</code>. You might observe the differences between the version you have and the one hosted on the live web, but check the logs to be sure. <br>
For example, <code>https://fonts.googleapis.com/css?family=Corben:400&display=swap&subset=latin-ext</code>
</li>
<li>
Take the request URL and open it in your web browser. <br>
The previous example will get this response from the server:
<pre>/* latin-ext */
@font-face {
  font-family: 'Corben';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/corben/v14/LYjDdGzzklQtCMpNqQNFlVs.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Corben';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/corben/v14/LYjDdGzzklQtCMpNpwNF.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}</pre>
</li>
<li>
Search the response for the font/icon URLs. In the previous example, these are the font URLs:
<pre>https://fonts.gstatic.com/s/corben/v14/LYjDdGzzklQtCMpNqQNFlVs.woff2
https://fonts.gstatic.com/s/corben/v14/LYjDdGzzklQtCMpNpwNF.woff2</pre>
Download the URLs with cURLsDownloader to get them with the correct file structure, then move them to the curation <code>content</code> folder.
</li>
<li>
Open a text editor such as Notepad and copy the server response into it, replace any <code>https</code> URLs with <code>http</code>, then save the file as <code>fonts.css</code> (not .txt!)<br>
Several of these request URLs may be present so name subsequent ones sequentially (<code>fonts2.css</code> <code>fonts3.css</code>). In the case of Icons use <code>icons.css</code>.
</li>
<li>
Place these files in the same folder where the <code>.html</code> file is located.
</li>
<li>
Open the <code>.html</code> file in a text editor and replace the original requests with the name of the .css file you created. <br>
For example, replace: <br>
<code>https://fonts.googleapis.com/css?family=Corben:400&display=swap&subset=latin-ext</code> with <code>fonts.css</code> <br>
<code>https://fonts.googleapis.com/icon?family=Material+Icons</code> with <code>icons.css</code> <br>
And so on.
</li>
<li>
Repeat this with other request URLs the game might need.
</li>
</ol>
 
After this, make sure the fonts are displaying correctly just like they are on the live web version.
 
== Responsive Design Mode and Mobile Elements ==
[[File:DesktopvsMobileHTML5.png|thumb|200px|Some games will have mobile controls, loading different assets.]]
 
Unlike traditional plugins, HTML5 allows games to be played on both Desktop and Mobile. This means that some games will implement Responsive Design elements so games work better on mobile platforms. This can load new assets such as the pages, scripts, elements, images, etc.
 
To check whether a game has these elements, play the game both in desktop and Responsive mode. On Basilisk in the developer console, enable <code>Responsive Design Mode</code>, then on the Responsive menu enable <code>Touch Events</code>, and make sure to reload the page as these elements might not have been loaded on Desktop mode. Use the <code>Rotate</code> button to test, as some games do not allow you to play in a certain orientation and will load warning messages.
 
Make sure to skim through the entire game where these elements might show up, like parts with game controls or menus.
== Game Engines ==
Many HTML5 games are made in game engines. Knowing how to identify them will make it easier to be sure your game is properly tagged. In some cases, knowing what engine you're working with can help with troubleshooting. Some engines have specific issues or common errors that can be easily fixed.
 
For information on game engines see [[Placeholder Link that Dukk will fix later]].
 
== YouTube Games ==
See [[HTML5 Curation/YouTube Games]].
 
== Troubleshooting ==
=== HTTPS Removal ===
Don't be surprised if it doesn't work at first, HTML5 games are relatively stable and mostly work, but a common occurrence is the game refusing to load assets.
 
This most likely is because of <code>https</code> requests inside the code of the game calling for files on the live web and failing, instead of <code>http</code> which calls local files. You will need to find and replace all instances of <code>https</code> with <code>http</code> in the game files. You might need to repeat this step multiple times for different parts of the game, due to most games being muiltiassets, they will only call certain parts that are needed during sections of gameplay.
 
To streamline and simplify the process, we suggest using Notepad++ and its <code>Find in Files</code> function, where you can input the Directory that points to the content folder of your curation, and then click <code>Replace in Files</code> where it will search in all the game files each instance and replace it.
 
Doing this process once is not always enough, so if the game continues to not load assets, you'll probably need to do it multiple times. You'll need to download more files before replacing <code>https</code> again.
 
In rare cases, you may have <code>https</code> requests coming from an obfuscated file. In these cases you will need to deobfuscate the code. There are online tools that can help with this.
 
This is a really common form of modification for HTML5 games, but it is minor enough that games with altered https requests don't really need to be marked as Hacked. Note that this rule only applies to text files (such as HTML and JS files); you must always mark a game as Hacked if you edit binary files (such as SWFs).
 
=== Missing Assets ===
While curating, there might be a few missing files, so to get them we can use cURLsDownloader.
 
* If MAD4FP isn't able to download certain files, or they are missing while testing without it, go to the Logs tab, click on <code>Copy 404 URLs</code>, create a <code>.txt</code> file, paste and save.
* If Basilisk is having trouble running the application, run the game on the live web with the network tab open, and play the game as if you were curating it as normal. After finishing, copy all cURLs, create a <code>.txt</code> file, paste and save.
 
Next, drag & drop the file onto <code>cURLsDownloader.bat</code>. Copy the contents of the <code>Downloads</code> folder outputted by cURLsDownloader, select the <code>Open Folder</code> button on your curation in the Curate tab, and paste the folder into the <code>content</code> folder of your curation. For more information about cURLsDownloader, be sure to read the included manual.
 
=== Clean-up of Junk Files ===
Since MAD4FP downloads every file requested by the game that still exists on the live web, you can get a lot of files that are unnecessary for the game to work. Be careful not to enter pages outside of the game as it will download them too, best way to prevent this is by knowing where this happens inside the game.
 
Even with these precautions, you will download junk from other services the website uses outside of the game. After deleting them, make sure the games still work without them.
 
=== Broken Or Non-Functional Games ===
Some games might require a certain browser we do not support or features not available in the browsers we have. While we are now able to support most HTML5 games, there are still some that may not be curatable. The most common example of this is HTML5 games that only work in a mobile browser. While we may be able to support these games in the future, they are currently unable to be properly added to Flashpoint.
 
When dealing with a game we currently can't support, the best option (if possible) is to run the game on the live web with the network tab open, and playing the game as if you were curating it as normal. After finishing, copy all cURLs, create a <code>.txt</code> file, paste and save. Next, drag & drop the file onto <code>cURLsDownloader.bat</code>. Copy the contents of the <code>Downloads</code> folder outputted by cURLsDownloader, select the <code>Open Folder</code> button on your curation in the Curate tab, and paste the folder into the <code>content</code> folder of your curation.
 
Upload this curation to #curator-lounge on our Discord server for safekeeping, as it might be able to work in the future.
 
== Wrapping It Up ==
{{:Wrapping It Up}}
 
<noinclude>
[[Category:Curation Guides]]
</noinclude>

Revision as of 03:03, 16 April 2022

This is a draft of a new page for FPFSS testing instructions. It is unfinished.


This guide is intended to help Staff Members with testing submissions on the FPFSS.

How To Test Using the FPFSS

Checking Metadata

This list contains the basic requirements for each metadata field, however this is not a complete list of all ways that the metadata can be correct or incorrect. If you're unsure whether something is allowed, you should ask in one of the staff channels.

Field Requirements
Title and Alternate Title Titles should:
  • Roughly match the submission's logo (if it has one).
  • Not have spelling errors.

Along with the above, Alternate Titles should:

  • Not be a shorter version of the Main Title.
  • Not be the same text as the Main Title. For example, an Alternate Title which is the same as the Main Title but with different capitalization should be removed.
Library The Library field should be:
  • Games if the submission contains some interactive element beyond a start menu or play button.
  • Animations if the submission contains no interactivity beyond a start menu or play button.
Series The Series field should:
  • Not be the franchise it relates to, a Franchise Tag should be added to the curation instead if it isn't already.
- e.g. a Mario game should have the Super Mario tag and not "Super Mario" in the Series field.
Developer and Publisher Changes should be requested for either of these two fields if:
  • The field is wrong.
  • There is nothing in the field despite Developer or Publisher is shown in an obvious place in the game/animation.
  • There are significant spelling errors that would prevent the submission from being properly searched for.

You don't need to request changes for differences in how the Developer or Publisher's name is written. For example Addicting Games, AddictingGames, and AddictingGames.com are different ways people could write the same Publisher. In the future Flashpoint may have a way to unify these spellings, but for now they don't matter.

Tags Changes should be requested if:
  • The tags are irrelevant to the curation.
  • The curation is missing Content Warning or NSFW tags.
  • There is a tag used which is not on the Tags wiki page.
  • The curation has no Gameplay (or Animation) Tags or if the Gameplay tags it has are incorrect.
  • The LEGACY-Extreme tag is used. This tag should not be added to any new submissions.
Play Mode Changes should be requested if the Play Mode is missing supporting modes or if the listed mode is incorrect.
Status Changes should be requested if:
  • The Status is incorrect.
  • The submission is labeled as Partial or Hacked and has no Note explaining why.
Version and Release Date These fields are only incorrect if the information is wrong. The information being missing is not something that needs to have changes requested for.
Language The Language field should:
  • Include all languages present in the work, regardless of whether it's written or spoken.
  • Use the two letter ISO 639-1 language codes, unless the language doesn't have a two letter code. In these cases the three letter code can be used.
  • Works which have no text or spoken language in them should have either en or the language that the Title is, if not English. Either is correct.
Source The Source field should:
  • Be the full URL of where the curator found the game.
  • If the curation was not sourced from a webpage, there will be some other way of indicating where it came from, e.g. a game from a CD should have the name of the CD.
Platform Changes should be requested if this field is incorrect.

For information specific to each Platform go to #Platform Specific Requirements.

Application Path Changes should be requested if the Application Path:
  • Is incorrect for the submission's Platform.
  • Is invalid or otherwise not working.

Platform Specific Requirements