Immerse yourself in your favorite media and share with your friends by personalizing 3D worlds with your favorite stuff.
This article is meant to give developers an understanding of the over-all structure of SM Arcade. It focuses on features that will play the largest roll in future versions of the mod, and how BETA 1's style of game play will fit into it all. It is intended for people who already have at least a general knowledge of the released BETA 1 version.
Posted by SM_Sith_Lord on Dec 14th, 2010
At its core, this beta version of the mod is a 3D shortcut launching application. While BETA 1 is singleplayer only, the mod's design is centered around multiplayer use. Both dedicated and small peer-hosted multiplayer modes are intended to be supported.
Singleplayer mode is used to customize maps by placing a variety of 3D shortcuts who's skins and textures are dynamically selected according to the user's settings. As far as the back-end is concerned, these shortcuts are the same as a standard Windows shortcut. They could launch anything ranging from a local application to an internet hyper-link. The arrangement of these shortcuts in the game world can be saved to a configuration file that can easily be distributed to other players. The resources that the 3D shortcuts reference can also be distributed along with these configuration files.
FIGURE 1 - ARRANGEMENT EXAMPLE
FIGURE 1 shows an entry for the game "Splinter Cell: Conviction" from an arrangement file. Items referenced in this file are ambigious and need to be resolved to actual file locations on the end-user's computer.
While it is possible to distribute the resources referenced along with the configuration file, it is more likely that the end-user will already have many of the files referenced. A smarter design model is to allow the mod to check if the needed resources already exist on the end-user's computer before attempting to acquire them via internet connectivity. Although BETA 1 lacks any form of internet connectivity, it is built around this deisgn model. It keeps a clear distinction between references to a file and the file itself. This is especially important because SM Arcade's main function is launching games, and the install directory of a game's executable varies greatly from user to user. For example, the end-user's mod will have a higher chance of placing the correct item if the configuration file references a game as "Jedi Knight" instead of "C:/My Games/Jedi Knight/JK.exe".
This level of ambiguity is implemented through the use of *item list* files with the extension "UGL". These *item lists* are like mini-media libraries. They contain detailed information about every item specified within them. The items are filed under simple, ambigious, names such as "Jedi Knight" or "Minesweeper". The important details for each item, such as the file location and launch options, are stored under these simple headings. These details can be customized for each user to reflect their correct locations and preferences.
FIGURE 2 - ITEM EXAMPLE
FIGURE 2 shows an Item entry for the game "Splinter Cell: Conviction". Its type is defined as "GamesForWindows". SM Arcade uses this information to locate the correct resources to represent this game's 3D shortcut in the world.
Multiplayer mode will be an extension of this design where all clients will be using the same *item list* as the server. The consistency of the game world of each server can present an interesting virtual arcade feel and also encourage server admins to keep the content on their servers fresh and up-to-date. Multiplayer mode is not expected to be functional in Source Media Arcade until BETA 2.
An important feature of SM Arcade is its ability to be expanded to include user-defined content. This is accomplished through the use of plain text script files that define how each Item is to behave within the mod. They control everything from the Item's visual representation in the game world to the commands that are executed when the Item is launched.
The BETA 1 version of the mod includes script files that add enhanced support for Steam games. These script-powered features include a game library index complete with screenshot and art images for each Steam game, the automatic renaming of detected Steam games to match their titles in the index, and advanced filtering options when detecting games such as the ability to ignore duplicate or unplayable Steam games.
This enhanced support can be added for ANY custom application when the proper script files are used.
The mod's design is centered around multiplayer, and the primary use of singleplayer will be merely to arrange 3D shortcuts in the game world to create config files for multiplayer. Soon the mod will be able to obtain these arrangements and ItemLists via HTTP; enhancing the mod's abilities for arcade-server/community-website integration.
The BETA 1 version of the mod already has the ability to download or purchase any missing Steam game from the Steam store. Improvements to the mod's back-end will expand this functionality to be able to use user-defined sites or stores to acquire ANY type of missing game.
The majority of SM Arcade's functionality happens behind the scenes; out of the user's view. This is done to keep the user's experience as simple and enjoyable as possible.
The standard user experience of SM Arcade will be nothing more than a 3D multiplayer gaming lobby complete with comical chat and very intuitive match making, where EVERYTHING is represented by physical objects. The following Gmod comic depicts the mod's intended gameplay...
With BETA 1 already publicly tested for over a month, work is soon to resume on Source Media Arcade. There are many prestigious positions waiting to be filled such as Lead Programmer or Lead Art Designer. Watch the ModDB profile for information on how to apply.