Open main menu

HOWTO-Engine Release

Revision as of 22:32, 14 January 2024 by Dreammaster (talk | contribs) (Mention compatibility entry should use 'DEV')

Once an engine has been accepted into the master branch, finished, and is ready to be playtested, do this stuff to get it ready:

PREREQUISITES:

  1. Zero warnings on major platforms (GCC, clang, MSVC is nice to have). See the buildbot logs and GitHub actions for having a general understanding
  2. No major flaws in Coverity Scan. The guide is here.

CHECKLIST:

  1. Change any ADGF_UNSTABLE flags in the engine’s detection table to ADGF_TESTING
  2. Change the [build-by-default] flag in the engine’s configure.engine file to yes
  3. Update the engine’s and game’s information pages in the wiki:
    1. Change the engine’s category from Category:Engines Not Added to ScummVM to Category:Engines Added to ScummVM
    2. Change the game’s category from Category:Unsupported Games to Category:Supported Games
    3. Set the Support status in the infobox to the next ScummVM release version in form 'Since ScummVM X.X.0'
    4. Fill out any other missing information in the infobox
  4. Add the new game(s) to the NEWS file
  5. When the engine is using GUIO, add their description to the documentation (here is how to edit the documentation)
  6. Add the engine author(s) to the engines/<your-engine>/credits.pl file, in alphabetical order by last name (see SCUMM engine example) and run make credits to update the AUTHORS and credits.h files. You should also have scummvm-web repository checked out next to your scummvm directory, and then commit to both repositories. For the web repo the typical commit log message is "WEB: Sync credits".
  7. If the engine uses a data file, make sure it is added to the list of files to distribute:
    1. Add it to DIST_FILES_ENGINEDATA in Makefile.common
    2. Add it to dists/scummvm.rc
    3. Add it to dists/irix/scummvm.idb
    4. Add it to dists/win32/migration.txt
    5. Add it to backends/platform/maemo/debian/rules
    6. Add it to devtools/create_project/xcode.cpp (in the XcodeProvider::getResourceFiles() function).
    7. On the Buildbot, in the buildbot-config/builds.py file:
      1. If there is no DATA_FILES variable defined under the ScummVMStableBuild class, copy the DATA_FILES variable from the ScummVMBuild class to ScummVMStableBuild,
      2. Add the engine data file to the DATA_FILES list in the ScummVMBuild class.
      3. Ping rootfather for propagating the change to the buildbot.
  8. Make sure list of datafiles on the game pages are up to date (for example see Beneath_a_Steel_Sky#Required_data_files as a template)
  9. Make sure the engine and game are added to the bug tracker (engine in Components, game in Custom Fields->game)
  10. Prepare the Website update
    1. Update the compatibility data at the ScummVM Data spreadsheet with compatibility information for the new game(s) (ping sev or rootfather for the access)
      1. If necessary, add the company to 'companies' tab
      2. Add engine to the 'engines' tab, make sure it is marked as enabled
      3. Add game to the 'games' tab, don't forget to provide the game hook to the Datafiles
      4. Add game to the 'compatibility' tab (to the very bottom, it is sorted by the release) using 'DEV' as the release
    2. If necessary, update the demos list at the ScummVM Data spreadsheet with new game demos
  11. Upload the demos if any
    1. After uploading demos, put the links to the data spreadsheet
    2. Add the game category icon as described here
  12. Publish a news entry announcing game testing at scummvm/scummvm-web:data/en/news/ (e.g. Full Pipe announcement). Also, provide to sev several screenshots for the Facebook post. It is advised to put your draft to Google Docs and publish the link to the #team-talk on Discord for feedback and grammar fixes.
    1. The following needs to be done in a close time gap, so please coordinate with sev before proceeding.
    2. Copy the news to the forums, General Discussion subforum, mark the post as an announcement
    3. Ask sev to publish on Facebook and provide the game screenshots
    4. Ask sev to publish the link on Twitter
    5. Ask rootfather to publish the news on Mastodon
    6. Ask sev to copy the announcement text to the #news channel on Discord
  13. Publish the website changes
    1. Access the URL https://www.scummvm.org/admin/update for updating the website. You need to be a member of the website admin group in order to do so.