Difference between revisions of "Help Wanted List"

From Flashpoint Database
Jump to: navigation, search
(Updated Linux task)
(Added automated builds task)
(32 intermediate revisions by 3 users not shown)
Line 1: Line 1:
# '''Flashpoint Curation Creator developers''': Flashpoint Curation Creator is our solution to make curating for Flashpoint simple and easy. It will allow users to fill out a few boxes, drag in a Content folder, and be on their way to submitting a curation. We even hope to integrate scripts that will automate grabbing game files from select sites. We need another developer to pick up the pace on this project.
+
# '''Help developing a curation submission website''': We are planning to introduce a new website to be used for submitting [[Curation_Format#What_is_a_Curation.3F|curations]]. It is nearly finished, but it needs a little bit more polish before it can be rolled out. The code is available from the [https://github.com/colin969/Flashpoint-Submissions GitHub repository]. We specifically need the following features to be implemented:
#* See the GitHub repository: https://github.com/XXLuigiMario/FlashpointCC
+
#* A public page listing submitted curations (including filename, title, library and a download link)
#* Developers must be familiar with our [[Curation Format]].
+
#* An interface for administrators to give users the "staff" role, which allows them to approve the submissions of other users
#* We hope to also add support for our overhauled Curation Format, planned to be introduced soon: https://docs.google.com/document/d/1_Lyxkfw7Zwlmd1V-E1hq3etn-z_oR5fQ4V_jeonmj44/edit
+
#* Parsing curation meta files that use [[YAML_Format#Lists|YAML lists]] rather than [[Curation_Format#Metadata|semicolon-separated lists]]
#* For the latest builds and information, please join #curator-development on the Flashpoint Discord. As of May 31, 2019, the latest build is available here: https://cdn.discordapp.com/attachments/516027726851735632/549681477210865665/CuratorAlpha.zip
+
#* Optionally also parsing [[Curation_Format#A_Good_Meta_File|meta.txt files]]
#* Skills needed: proficiency with C#
+
# '''Help developing a system for automated Flashpoint builds''': Currently, every build of Flashpoint is created on BlueMaxima's computer using his master copy. To improve release quality and frequency, we need an automated way to build Flashpoint, including Windows and Linux builds. If you have knowledge of Linux and Git, and preferably CI/CD skills, please join the #development-chat channel in [http://discord.gg/S9uJ794 our Discord] and let us know that you'd like to help! We're also looking for people with experience with automation tools such as Salt, Ansible or Chef.
# '''Linux testers and developers''': Since Flashpoint 5.2, we have been unable to offer a Linux version of Flashpoint. We hope to once again offer a Linux version, but we need help finalizing our experimental build. For more information and the latest download link, see [[Linux Support]]. Please join our Discord, and let us know in #tech-development what's working and what isn't. We are also looking for help developing the build further.
+
# '''Linux testers and developers''': We are unable to offer an official Linux version of Flashpoint due to a lack of maintainers. We hope to once again offer an official Linux version, but we need help finalizing our experimental builds. For more information and the latest download links, see [[Linux Support]]. Please join [http://discord.gg/S9uJ794 our Discord], and let us know in #development-chat what's working and what isn't. We are also looking for help developing the build further.
 +
# '''Mac testers and developers''': A heavily experimental package of Flashpoint for Mac is available, but we need help fixing a lot of Launcher issues before we can offer an official version. None of our Launcher developers currently have access to a Mac, so we need someone to help us solve Mac-specific issues with the launcher. To download the latest package and get started, see [[Mac Support]].
 
# '''Flashpoint Launcher developers''': We use a custom Electron app called Flashpoint Launcher for displaying and launching games in Flashpoint. We need some more help with its development.  
 
# '''Flashpoint Launcher developers''': We use a custom Electron app called Flashpoint Launcher for displaying and launching games in Flashpoint. We need some more help with its development.  
 
#* See the GitHub repository for more info: https://github.com/FlashpointProject/launcher
 
#* See the GitHub repository for more info: https://github.com/FlashpointProject/launcher
 
#* See the Trello board for some features we'd like implemented: https://trello.com/b/Tu9E5GLk/launcher
 
#* See the Trello board for some features we'd like implemented: https://trello.com/b/Tu9E5GLk/launcher
 
#* Skills needed: proficiency with Electron and TypeScript
 
#* Skills needed: proficiency with Electron and TypeScript
 +
# '''Flashpoint Launcher extension developers''': We are looking for developers to help develop new features for the Flashpoint project through launcher extensions. To learn more about creating launcher extensions, see the [https://github.com/FlashpointProject/launcher/blob/master/docs/extensions.md extension documentation] and the [https://flashpointproject.github.io/launcher_ApiDocs/modules/_typings_flashpoint_launcher_d_._flashpoint_launcher_.html API documentation].
 +
#* See [[Launcher Extensions]] for some examples of useful launcher extensions.
 +
#* One idea we have for a future extension is one that detects common error conditions (such as <code>router.php</code> being deleted by antivirus), alerts the user to the problem, and provides the user with instructions to fix the problem. Work on this extension has been started but is unfinished; the code is [https://github.com/FlashpointProject/Troubleshooter available here]. If you're interested in working on the extension, please join our Discord and let us know!
 +
# '''Flashpoint Launcher translators''': One great way to help us reach more people is localizing Flashpoint Launcher into your language. See [[Translation Guide]] for more details on how to translate.
 
# '''Help with XML-RPC games''': some Adobe Flash games use XML remote procedure calls for some of their functionality. We need help coding this functionality for each game that requires it, using Flashpoint’s PHP library. Here’s an example of how XML-RPC is used: https://help.adobe.com/en_US/as3/dev/WSb2ba3b1aad8a27b061afd5d7127074bbf44-7fff.html
 
# '''Help with XML-RPC games''': some Adobe Flash games use XML remote procedure calls for some of their functionality. We need help coding this functionality for each game that requires it, using Flashpoint’s PHP library. Here’s an example of how XML-RPC is used: https://help.adobe.com/en_US/as3/dev/WSb2ba3b1aad8a27b061afd5d7127074bbf44-7fff.html
# '''Portable Shockwave Player plugin''':
 
#* The Shockwave Player was discontinued on April 9, 2019: https://helpx.adobe.com/shockwave/shockwave-end-of-life-faq.html
 
#* The consumer version of the Shockwave Player no longer functions properly. This is because it attempts to download various legacy components from Adobe/Macromedia servers in order to play Shockwave content. However, those components were removed from the Adobe/Macromedia servers on April 9.
 
#* The licensed version of the Shockwave Player is equivalent to the consumer version, but it includes all legacy components. It continues to function properly. It is available for download here: https://www.adobe.com/products/shockwaveplayer/shwv_distribution3.html
 
#* The Shockwave Player installs to the following folders: "C:\Windows\SysWOW64\Adobe\Shockwave 12", "C:\Users\USERNAME\AppData\LocalLow\Adobe\Shockwave Player 12" "C:\Users\USERNAME\AppData\LocalLow\Macromedia\Shockwave Player", "C:\Windows\SysWOW64\Macromed\Shockwave 10". The first two are for modern components and the next two are for legacy components.
 
#* It also uses a number of keys and CLSIDs in the Registry. We are not sure how to allow the Shockwave Player to run without installation.
 
#* A possible solution is to use Enigma Virtual Box or Cameyo. We need someone to look into their feasibility for creating a portable Shockwave Player. It would likely need to be packaged with a portable browser such as K-Meleon Portable.
 
 
# '''HTTPS support''': Some games have obfuscation or exact URL sitelocks that make them only work on HTTPS URLs. We would like to support HTTPS in Flashpoint without installing a root certificate on the user's system. We need someone to set up the Apache server to use HTTPS, generate an SSL root certificate (self-signed should be fine), and direct one of our portable browsers to trust this certificate on all sites. The Apache server should act as a proxy for HTTPS traffic and serve files from its htdocs folder, just as it does for HTTP traffic. Tech234a from our Discord has proposed some potential solutions:
 
# '''HTTPS support''': Some games have obfuscation or exact URL sitelocks that make them only work on HTTPS URLs. We would like to support HTTPS in Flashpoint without installing a root certificate on the user's system. We need someone to set up the Apache server to use HTTPS, generate an SSL root certificate (self-signed should be fine), and direct one of our portable browsers to trust this certificate on all sites. The Apache server should act as a proxy for HTTPS traffic and serve files from its htdocs folder, just as it does for HTTP traffic. Tech234a from our Discord has proposed some potential solutions:
 
## My plan for implementing it would be based on [https://github.com/mdn/webextensions-examples/tree/master/http-response this sample extension], and replace the response data outright with a version fetched over HTTP on certain URL match patterns. This is very similar to how I implemented [https://addons.mozilla.org/en-US/firefox/addon/annotationsreloaded/ AnnotationsReloaded].  
 
## My plan for implementing it would be based on [https://github.com/mdn/webextensions-examples/tree/master/http-response this sample extension], and replace the response data outright with a version fetched over HTTP on certain URL match patterns. This is very similar to how I implemented [https://addons.mozilla.org/en-US/firefox/addon/annotationsreloaded/ AnnotationsReloaded].  
 
##* <code>filterResponseData</code> was added in Firefox 57, though you could also restrict it on earlier versions in <code>manifest.json</code>.  
 
##* <code>filterResponseData</code> was added in Firefox 57, though you could also restrict it on earlier versions in <code>manifest.json</code>.  
 
##* Theoretically you could create a "fake domain" to store a configuration for this extension to be picked up by the proxy and then have the extension dynamically update its matched patterns every time the browser launches (<code>manifest.json</code> would not be able to be updated dynamically). This would require a browser based on Firefox 57+. You wouldn't even need to dynamically process the actual response, just overwrite it.
 
##* Theoretically you could create a "fake domain" to store a configuration for this extension to be picked up by the proxy and then have the extension dynamically update its matched patterns every time the browser launches (<code>manifest.json</code> would not be able to be updated dynamically). This would require a browser based on Firefox 57+. You wouldn't even need to dynamically process the actual response, just overwrite it.
##* [https://sourceforge.net/projects/libportable/files/Iceweasel/Stable/ This] is a possible Firefox 57+ -based and fully portable browser (recommended by nosamu)
 
 
## Another potential solution would be something like [https://github.com/Rob--W/crxviewer/blob/master/src/domain-fronter.js this], which changes the URL of the request rather than modifying the response. It might perform better in terms of network requests, as they wouldn't be duplicated. I believe the domain fronter changes the URL back once the response is returned, so XHR would report the correct URL.
 
## Another potential solution would be something like [https://github.com/Rob--W/crxviewer/blob/master/src/domain-fronter.js this], which changes the URL of the request rather than modifying the response. It might perform better in terms of network requests, as they wouldn't be duplicated. I believe the domain fronter changes the URL back once the response is returned, so XHR would report the correct URL.
# '''Help curating Pogo games''': Pogo.com is removing all of their Java and Flash games. We need help from someone familiar with capturing network activity (ex. Wireshark) so that we can have a chance to save these games. If you or someone you know have this expertise, please let us know. Please join our efforts to archive these games at this Google doc link: https://docs.google.com/document/d/1PW58X2jfpt57Ce2fN4r4BXeALO0iW9o-r7-cYrI-w2A/edit
+
# '''Help curating Pogo games''': Pogo.com is removing all of their Flash games. We need help from someone familiar with capturing network activity so that we can have a chance to save these games. If you or someone you know have this expertise, please let us know. Please join our efforts to archive these games at this Google doc link: https://docs.google.com/document/d/1PW58X2jfpt57Ce2fN4r4BXeALO0iW9o-r7-cYrI-w2A/edit. Also, We need help analyzing our packet captures and re-implementing enough of the server backend to make the single-player modes playable in Flashpoint.
 +
# '''RTMP streaming support''': Some games use [https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol Real-Time Messaging Protocol] (RTMP) for streaming video or audio. We need help supporting this technology in Flashpoint.
 +
#* Flash's RTMP connections appear to completely bypass the Redirector and standard browser developer tools. We need help figuring out how to force Flash Player's RTMP connections to go through Flashpoint's proxy.
 +
#* Flashpoint's Apache/PHP server does not support RTMP, and according to this [https://en.wikipedia.org/wiki/List_of_RTMP_software#RTMP_server_software list of RTMP server software], there may not be any way to do so. We need help figuring out how to add support for RTMP to Flashpoint's server.
 +
#* Using [http://rtmpdump.mplayerhq.hu/ RTMPDump], we can download the videos or audio streamed to a Flash game/movie. We need help figuring out which games in Flashpoint or elsewhere may be using RTMP, so we can download the media they depend on. The top priority should be checking games that are already in Flashpoint because we do not want to be unknowingly relying on external RTMP servers that may go offline at any time.
 +
#* Here is an example of a game that uses RTMP for streaming video: [http://downloads.bbc.co.uk/tv/isite-flash/doctorwho/games/graske/geoip/bbc_drwho.swf Link], [https://cdn.discordapp.com/attachments/444854424515379201/620820731793768478/ATTACK_OF_THE_GRASKE.7z Curation]
 +
# '''Help implementing Kongregate user content in Flashpoint''': [https://docs.google.com/spreadsheets/d/1OnnhmWgvljBZK4_oxoO6itpQWCddRc-usz5iPcrUvzU/edit This Google doc] lists all of the games on Kongregate for which we've scraped the user levels. We need help re-implementing the Kongregate API and possibly hacking the games so the user levels can be loaded in Flashpoint. It's especially complicated because games use HTTPS, and possible interactions between the games and the pages on which they're embedded.
  
 
== Former Projects: ==
 
== Former Projects: ==
  
 
+
# '''Differential updates''': An updater for Flashpoint Ultimate has been released, and is [https://github.com/FlashpointProject/FlashpointUpdater/releases available here].
# '''Differential updates''': We've figured out the details of a differential updater, and are working on squashing the remaining bugs and improving the user experience. An updater for Flashpoint Ultimate will be released soon.
 
 
# '''Action Message Format support''': We finished adding an AMF implementation to PHP on Flashpoint's server, so now we are working to save user content databases for games that require AMF.
 
# '''Action Message Format support''': We finished adding an AMF implementation to PHP on Flashpoint's server, so now we are working to save user content databases for games that require AMF.
 
# '''Help curating Geocities.jp games''': Geocities.jp closed on March 31, 2019, and some of the games hosted there were lost forever. At Flashpoint, we worked to curate some of the games, and save the assets for as many as possible so they can be added to Flashpoint later.
 
# '''Help curating Geocities.jp games''': Geocities.jp closed on March 31, 2019, and some of the games hosted there were lost forever. At Flashpoint, we worked to curate some of the games, and save the assets for as many as possible so they can be added to Flashpoint later.
 +
# '''PHP script/library to read SWF headers''': Staff member XXLuigiMario created a PHP script that can read the width and height of any SWF, along with a userscript to call this PHP script whenever the browser loads an SWF. To see it in action, download his patches for Flashpoint [https://cdn.discordapp.com/attachments/569426826691346444/674753616002678793/Infinity7.1BasiliskPatch.7z Infinity] or [https://cdn.discordapp.com/attachments/569426826691346444/674745464683233337/Core4.1BasiliskPatch.7z Core].
 +
# '''Portable Shockwave Player plugin''': We finished integrating a portable Shockwave Player plugin with Flashpoint, and it is available in current Flashpoint releases. This was accomplished using our [https://github.com/FlashpointProject/ShockwaveExtender/ Browser Plugin Extender] module.
 +
# '''Hacking Unity Web Player games''': we discovered a viable method for hacking Unity Web Player games, the details of which have been [[Unity_Curation#Hacking_Unity_Web_Player_Games|shared here]].
  
  
 
'''See Also''': [[Help Wanted Games]]
 
'''See Also''': [[Help Wanted Games]]
 +
 +
<noinclude>
 +
[[Category:Meta]]
 +
</noinclude>

Revision as of 07:09, 9 May 2021

  1. Help developing a curation submission website: We are planning to introduce a new website to be used for submitting curations. It is nearly finished, but it needs a little bit more polish before it can be rolled out. The code is available from the GitHub repository. We specifically need the following features to be implemented:
    • A public page listing submitted curations (including filename, title, library and a download link)
    • An interface for administrators to give users the "staff" role, which allows them to approve the submissions of other users
    • Parsing curation meta files that use YAML lists rather than semicolon-separated lists
    • Optionally also parsing meta.txt files
  2. Help developing a system for automated Flashpoint builds: Currently, every build of Flashpoint is created on BlueMaxima's computer using his master copy. To improve release quality and frequency, we need an automated way to build Flashpoint, including Windows and Linux builds. If you have knowledge of Linux and Git, and preferably CI/CD skills, please join the #development-chat channel in our Discord and let us know that you'd like to help! We're also looking for people with experience with automation tools such as Salt, Ansible or Chef.
  3. Linux testers and developers: We are unable to offer an official Linux version of Flashpoint due to a lack of maintainers. We hope to once again offer an official Linux version, but we need help finalizing our experimental builds. For more information and the latest download links, see Linux Support. Please join our Discord, and let us know in #development-chat what's working and what isn't. We are also looking for help developing the build further.
  4. Mac testers and developers: A heavily experimental package of Flashpoint for Mac is available, but we need help fixing a lot of Launcher issues before we can offer an official version. None of our Launcher developers currently have access to a Mac, so we need someone to help us solve Mac-specific issues with the launcher. To download the latest package and get started, see Mac Support.
  5. Flashpoint Launcher developers: We use a custom Electron app called Flashpoint Launcher for displaying and launching games in Flashpoint. We need some more help with its development.
  6. Flashpoint Launcher extension developers: We are looking for developers to help develop new features for the Flashpoint project through launcher extensions. To learn more about creating launcher extensions, see the extension documentation and the API documentation.
    • See Launcher Extensions for some examples of useful launcher extensions.
    • One idea we have for a future extension is one that detects common error conditions (such as router.php being deleted by antivirus), alerts the user to the problem, and provides the user with instructions to fix the problem. Work on this extension has been started but is unfinished; the code is available here. If you're interested in working on the extension, please join our Discord and let us know!
  7. Flashpoint Launcher translators: One great way to help us reach more people is localizing Flashpoint Launcher into your language. See Translation Guide for more details on how to translate.
  8. Help with XML-RPC games: some Adobe Flash games use XML remote procedure calls for some of their functionality. We need help coding this functionality for each game that requires it, using Flashpoint’s PHP library. Here’s an example of how XML-RPC is used: https://help.adobe.com/en_US/as3/dev/WSb2ba3b1aad8a27b061afd5d7127074bbf44-7fff.html
  9. HTTPS support: Some games have obfuscation or exact URL sitelocks that make them only work on HTTPS URLs. We would like to support HTTPS in Flashpoint without installing a root certificate on the user's system. We need someone to set up the Apache server to use HTTPS, generate an SSL root certificate (self-signed should be fine), and direct one of our portable browsers to trust this certificate on all sites. The Apache server should act as a proxy for HTTPS traffic and serve files from its htdocs folder, just as it does for HTTP traffic. Tech234a from our Discord has proposed some potential solutions:
    1. My plan for implementing it would be based on this sample extension, and replace the response data outright with a version fetched over HTTP on certain URL match patterns. This is very similar to how I implemented AnnotationsReloaded.
      • filterResponseData was added in Firefox 57, though you could also restrict it on earlier versions in manifest.json.
      • Theoretically you could create a "fake domain" to store a configuration for this extension to be picked up by the proxy and then have the extension dynamically update its matched patterns every time the browser launches (manifest.json would not be able to be updated dynamically). This would require a browser based on Firefox 57+. You wouldn't even need to dynamically process the actual response, just overwrite it.
    2. Another potential solution would be something like this, which changes the URL of the request rather than modifying the response. It might perform better in terms of network requests, as they wouldn't be duplicated. I believe the domain fronter changes the URL back once the response is returned, so XHR would report the correct URL.
  10. Help curating Pogo games: Pogo.com is removing all of their Flash games. We need help from someone familiar with capturing network activity so that we can have a chance to save these games. If you or someone you know have this expertise, please let us know. Please join our efforts to archive these games at this Google doc link: https://docs.google.com/document/d/1PW58X2jfpt57Ce2fN4r4BXeALO0iW9o-r7-cYrI-w2A/edit. Also, We need help analyzing our packet captures and re-implementing enough of the server backend to make the single-player modes playable in Flashpoint.
  11. RTMP streaming support: Some games use Real-Time Messaging Protocol (RTMP) for streaming video or audio. We need help supporting this technology in Flashpoint.
    • Flash's RTMP connections appear to completely bypass the Redirector and standard browser developer tools. We need help figuring out how to force Flash Player's RTMP connections to go through Flashpoint's proxy.
    • Flashpoint's Apache/PHP server does not support RTMP, and according to this list of RTMP server software, there may not be any way to do so. We need help figuring out how to add support for RTMP to Flashpoint's server.
    • Using RTMPDump, we can download the videos or audio streamed to a Flash game/movie. We need help figuring out which games in Flashpoint or elsewhere may be using RTMP, so we can download the media they depend on. The top priority should be checking games that are already in Flashpoint because we do not want to be unknowingly relying on external RTMP servers that may go offline at any time.
    • Here is an example of a game that uses RTMP for streaming video: Link, Curation
  12. Help implementing Kongregate user content in Flashpoint: This Google doc lists all of the games on Kongregate for which we've scraped the user levels. We need help re-implementing the Kongregate API and possibly hacking the games so the user levels can be loaded in Flashpoint. It's especially complicated because games use HTTPS, and possible interactions between the games and the pages on which they're embedded.

Former Projects:

  1. Differential updates: An updater for Flashpoint Ultimate has been released, and is available here.
  2. Action Message Format support: We finished adding an AMF implementation to PHP on Flashpoint's server, so now we are working to save user content databases for games that require AMF.
  3. Help curating Geocities.jp games: Geocities.jp closed on March 31, 2019, and some of the games hosted there were lost forever. At Flashpoint, we worked to curate some of the games, and save the assets for as many as possible so they can be added to Flashpoint later.
  4. PHP script/library to read SWF headers: Staff member XXLuigiMario created a PHP script that can read the width and height of any SWF, along with a userscript to call this PHP script whenever the browser loads an SWF. To see it in action, download his patches for Flashpoint Infinity or Core.
  5. Portable Shockwave Player plugin: We finished integrating a portable Shockwave Player plugin with Flashpoint, and it is available in current Flashpoint releases. This was accomplished using our Browser Plugin Extender module.
  6. Hacking Unity Web Player games: we discovered a viable method for hacking Unity Web Player games, the details of which have been shared here.


See Also: Help Wanted Games