SMF Arcade Info


SMF Arcade v2.7.0.1 [Official Release]


Introduction
SMF Arcade adds an arcade section to your forum where users can play games.
You must uninstall any previous versions of the Arcade prior to updating this modification.

Supported SMF Versions
This version supports the most recent SMF 2.1 branch.
Support has been dropped for the SMF 2.0 branch.

Recommended Minimal Requirements
OS minimum recommended versions: Ubuntu 18, Centos 7
HTTP Server: Apache 2.4 using PHP 8.3
Database: MySQL / Maria DB (using UTF-8 Unicode)
Extensions/modules: curl, mbstring, zlib, phar, mime, rewrite, headers
Forum software/versions: SMF 2.1 branch ~ (using UTF-8 Charset)
Hypertext Transfer Protocol Secure (HTTPS) ~ HTTP over TLS or HTTP over SSL

Optional RAR compression support: RAR (command-line tool) -> shell_exec must be enabled in PHP to use RAR compression
Optional RAR decompression support: UNRAR (PECL RarArchive class) package for Unix -> Extension must be enabled in php.ini (check phpinfo() to confirm)
RAR archive package for PHP 7.3 (check other PHP versions): https://centos.pkgs.org/8/remi-x86_64/php73-php-pecl-rar-4.0.0-4.el8.remi.x86_64.rpm.html
RAR compression for Unix: Install rar via yum, DNF or apt-get -> example: yum install rar
RAR compression for WIndows: Requires WinRAR to be installed in -> Program Files / Program Files (x86)

To use the game description translation feature, you must register at Microsoft Azure Translator Service to use their V3 API.
After registration, you must enter the Azure V3 API endpoint, path, subscription key (and region code if applicable) information into your Arcade Administration settings.

Supported game save types:
  • HTML5 v1 (requires specific SMF Arcade save code)
  • HTML5 v2 (IBP -> various HTML5 save codes)
  • HTML5 v3 (PHPBB -> various HTML5 save codes)
  • IBProArcade v1 / v2 / v3 / v3.2 (flash)
  • vBulletin v3Arcade (flash)
  • PHPBB (flash)
  • MochiAds are supported with external module
  • SMF v1 / v2 (flash)
  • General flash games are supported without score support
  • General HTML5 games are supported without score support
  • ROM games are supported without score support via the EmulatorJS plugin

All Flash games use the Ruffle Flash Emulator. Many Flash games will work but not all of them due to Ruffle still being in active development.
The Ruffle Flash Emulator is no longer included with this installation package.
You can use the Arcade Maintenance page to download that third party package to host the files on your server or you can opt to use the remote CDN from the main Arcade settings page.

All ROM games are supported via the EmulatorJS plugin which can be downloaded to your server via the Arcade Maintenance page.
There is now a remote CDN available for EmulatorJS where this plugin only uses the CDN for the "/data" path.

[HTML5 / Flash / ROM] Games
You can view this link for information regarding games for this arcade system: GAME RESOURCE LIST

Notes
Mod-Security should be disabled for the HTML5/JQuery upload script to function properly which is recommended for large sized game archives.
The default script can be used instead if necessary but may require adjustment to php.ini to facilitate large sized game archives.

Features:
  • Arena for users to challenge other users
  • Category Champions as well as Arcade Champions
  • Daily challenge
  • Sort games
  • Installs tar, tar.gz, zip and rar game files
  • Admin settings for added features
  • Notifications for high scores and tournament matches
  • Responsive/mobile support
  • Users can Report game errors
  • Download game option
  • Post new game to forum
  • Alternate game templates available
  • Option to allow auto adjustment of improper save types
  • Allows other mods to use hooks containing score or match information
  • Ability to add custom skins & lists via database entries
  • Ability to use Flash games via Ruffle emulator
  • Ability to play a variety of ROM games via a EmulatorJS plugin

Arcade Hooks

integrate_arcade_match
  • Called from: ArcadeGame.php, just after arena match data has been saved.
  • Purpose: Allows you to use the arena score data variables (read only).
  • Accepts: 1 function name.
  • Sends: $id_match, $user_info['id'], $matchInfo['current_round'], $submit_info['score'], $submit_info['duration'], $submit_info['end_time']
    • $id_match - match id number
    • $user_info['id'] - user id of submitted score
    • $matchInfo['current_round'] - round number
    • $submit_info['score'] - game score
    • $submit_info['duration'] - length of time game was played
    • $submit_info['end_time'] - when the score was submitted


integrate_arcade_score
  • Called from: ArcadeGame.php, just after a game score has been saved.
  • Purpose: Allows you to use the game score data variables (read only).
  • Accepts: 1 function name.
  • Sends: $context['game'], $member, $score
    • $context['game'] - array of game data
    • $member - array of member data (id, name, ip)
    • $score - array of score data (score, duration, endTime)


integrate_arcade_guest
  • Called from: ArcadeGame.php, just after a guest game score has been saved.
  • Purpose: Allows you to use the game score data variables (read only).
  • Accepts: 1 function name.
  • Sends: $context['game'], $submit_info['score']
    • $context['game'] - array of game data
    • $submit_info['score'] - game score


The $_SESSION['arcade']['highscore'] array contains data that is relevant to the 3 hooks shown above.
The array keys are as follows:

$_SESSION['arcade']['highscore'] = array(
 'id' => score id,
 'position' => save position,
 'game' => game id,
 'newChampion' => new champion,
 'personalBest' => is Personal Best,
 'score' => score,
 'start' => highscore page index,
 'saved' => was score saved to database
);


Example usage for the above hooks:
add_integration_function('integrate_arcade_match', 'modName_arcade_match');
add_integration_function('integrate_arcade_score', 'modName_arcade_score');
add_integration_function('integrate_arcade_guest', 'modName_arcade_guest');


For future reference regarding Arcade hooks and useful functions, please use this link:
Arcade Hooks & Functions

Reporting Bugs
Please report bugs to the Official Support Thread!
This helps make this modification better!

Note:
Pretty URL's modification for SMF is not recommended as it may cause compatibility issues with SMF Arcade due to URL manipulation.
If you use that SMF mod & require support to get the arcade working properly, you should ask the current Pretty URL's developer.

Copyright (c) 2004 - 2012, Niko Pahajoki
Copyright (c) 2015 - 2024, Chen Zhen
Current support provided by Chen Zhen @ web-develop.ca
SMF Arcade License: BSD 2

Beta / RC  Testers:
Skhilled, Bigguy, Legionaire, Origon, Hero, Vince, Ronald, Lesmond, Rowdy, Dave

Many thanks to our beta testers and all those that provide feedback to help improve this modification package.