Difference between revisions of "Extensions (Click)"

From Mario Fan Games Galaxy Wiki
m (Lua/Lua+)
 
(15 intermediate revisions by 7 users not shown)
Line 1: Line 1:
'''Extensions''' are segments of code added to an application in modular nature to increase its capabilities. Extensions help expand the functionality of [[The Games Factory]] and [[Multimedia Fusion]] by providing extra events, conditions, and actions. A list follows:
+
'''Extensions''' are segments of code added to an application in modular nature to increase its capabilities. Extensions help expand the functionality of [[The Games Factory]] and [[Multimedia Fusion]] by providing extra events, conditions, and actions. Essentially, they are special DLL files that are designed to interface directly with Click programs; they can do anything from adding simple math functions to controlling aspects of the runtime engine. A list follows:
  
 
= Graphical =
 
= Graphical =
 
==== Lens ====
 
==== Lens ====
The Lens Object is a [[Multimedia Fusion]] extention that allows the user to distort an area of the frame as if it was behind glass, either zooming in like a magnifying glass, or refracting. The Lens Object features many customizable options, allowing effects such as reflecting another location of the screen or the illusion of ripples on the screen, however, it takes a proper understanding to get the right effect, and it can cause much slowdown if used at a decently large size, or in high count. A possible alternative for some of the effects one may want this for is the [[Perspective Object]], ironically by the same creator as the Lens Object. The Perspective object is usually much faster but at the cost of not allowing custom distortion maps.
+
The Lens Object is an extention that allows the user to distort an area of the frame as if it was behind glass, either zooming in like a magnifying glass, or refracting. The Lens Object features many customizable options, allowing effects such as reflecting another location of the screen or the illusion of ripples on the screen, however, it takes a proper understanding to get the right effect, and it can cause much slowdown if used at a decently large size, or in high count. A possible alternative for some of the effects one may want this for is the [[Perspective Object]], ironically by the same creator as the Lens Object. The Perspective object is usually much faster but at the cost of not allowing custom distortion maps.
 +
 
 +
Compatibility: [[Multimedia Fusion]], [[Multimedia Fusion 2]]
  
 
==== Mode 7 ====
 
==== Mode 7 ====
The Mode 7 Object provides a "[[Mode 7]]" type of effect. Many complain about its low framerates, but  its performance can be increased greatly by disabling interpolation and mip-mapping.  
+
{{main|Mode 7}}
 +
The Mode 7 Object is an extension that provides a "[[Mode 7]]" type of effect. Many complain about its low framerates, but  its performance can be increased greatly by disabling interpolation and mip-mapping.
 +
 
 +
Compatibility: [[Multimedia Fusion]], [[Multimedia Fusion 2]]
  
 
==== Perspective ====
 
==== Perspective ====
The Perspective Object is an extension that allows users to distort the perspective of a location on the frame, though it appears to not act properly if not fully on screen. Unlike the Lens Object, the Perspective Object uses much less power, but also has that much more limitations. The effects it can create include Perspective, which gives a Mode 7 esqe flattening effect, Panorama, which gives an impressive kind of "barrel" type effect, such as one segment in The Legend of Zelda: The Minish Cap, Sine Wave, an effect comparable to the effect used in water levels in games such as Yoshi's Island, and Custom, which lets the user control how each "line" of the object is distorted. While impressive, these effects are somewhat lacking in customization, for example, the Sine Wave can be used for a heat wave or underwater distortion, however, the center of the Sine Wave appears hardly distorted while the outer areas are highly distorted.
+
The Perspective Object is an extension that allows users to distort the perspective of a location on the frame, though it appears to not act properly if not fully on screen. Unlike the Lens Object, the Perspective Object uses much less power, but also has that much more limitations. The effects it can create include Perspective, which gives a Mode 7 esqe flattening effect, Panorama, which gives an impressive kind of "barrel" type effect, such as one segment in The Legend of Zelda: The Minish Cap, Sine Wave, an effect comparable to the effect used in water levels in games such as Yoshi's Island, and Custom, which lets the user control how each "line" of the object is distorted. While impressive, these effects are somewhat lacking in customization, for example, the Sine Wave can be used for a heat wave or underwater distortion, however, the center of the Sine Wave appears hardly distorted while the outer areas are highly distorted. Skillful use of this object can produce a striking 3D illusion.
 +
 
 +
Compatibility: [[Multimedia Fusion]], [[Multimedia Fusion 2]]
 +
 
 +
==== Layer Object ====
 +
In MMF1.5, the Layer Object vastly expanded the capability to change the [[Z-order]] of objects, and to allow various types of sorting. When MMF2 and TGF2 were released, the object was updated to interface with the new [[Layer (Click)|layer]] system, giving the user the ability to show, hide, and move layers during runtime.
 +
 
 +
Compatibility: [[Multimedia Fusion]], [[Multimedia Fusion 2]], [[The Games Factory 2]]
  
 
= Sound and Music =
 
= Sound and Music =
 
==== DMC ====
 
==== DMC ====
Direct Media Control object, allowing one to load Modules, Samples, or Streams and play a large number of them simultaneously and across frames, as well as modifying the system's volume settings.
+
The Direct Media Control object is an extension allowing one to load [[Modules]], Samples, or Streams and play a large number of them simultaneously and across frames, as well as modifying the system's volume settings. A second revision of this extension, DMC2 was also released.
 +
 
 +
Compatibility: [[The Games Factory]], [[Multimedia Fusion]]
  
 
==== ModFx ====
 
==== ModFx ====
Line 20: Line 34:
 
==== ModFusion ====
 
==== ModFusion ====
 
See above
 
See above
 +
 +
==== Onu Audio Series ====
 +
This is actually a group of related objects (engineers), bound together by the Audio Controller. Currently, it includes OGG and Module engineers (though these two formats are already supported by MMF), along with a few visualizer extensions. The extension author is planning to release an engineer SDK to allow others to create support for other formats.
 +
 +
Compatibility: [[Multimedia Fusion 2]]
 +
 +
Note: Multimedia Fusion 2 has built in playing of many of the audio types that the above extensions were commonly used for.
  
 
= Data Storage =
 
= Data Storage =
 
==== Array ====
 
==== Array ====
Arrays store data in a grid-like fashion. They come in three types: 1D arrays that can store a single "run" of data in a line, 2D arrays that store a "grid" of data, and 3D arrays that store a "cube" of data. Values or strings can be written to an X position in a 1D array, XY positions in a 2D array, and XYZ positions in a 3D array. Arrays are highly useful for storing information such as external level formats, where the grid-like nature of a 2D array can store tile information exactly where it would be located in-game, and a 3D array can additionally store Z-depth data. 1D arrays can be used to store player input, which can then be reloaded as replay data. Arrays, especially 3D arrays, can become quite large very quickly, so it is important to use them with care.
+
An Array is any organised collaboration of data, whether a list, table, or block. Values or strings can be written to an X position in a 1D array, XY positions in a 2D array, and XYZ positions in a 3D array. Arrays are highly useful for storing information such as external level formats, where the grid-like nature of a 2D array can store tile information exactly where it would be located in-game, and a 3D array can additionally store Z-depth data. 1D arrays can be used to store player input, which can then be reloaded as replay data. Arrays, especially 3D arrays, can become quite large very quickly, so it is important to use them with care.
 +
 
 +
Compatibility: [[The Games Factory]], [[Multimedia Fusion]], [[Multimedia Fusion 2]]
 +
 
 +
==== Data Store ====
 +
The Data Store (or Data Store 2) object reads and writes numeric values to any type of file.
 +
 
 +
Compatibility: [[The Games Factory]], [[Multimedia Fusion]]
 +
 
 +
==== Global Store X ====
 +
The Global Store X object functions like a more complex version of the several 1,000 Global Values/Strings type objects used to bypass MMF's limited global value count. It can store integers, Boolean switches, and strings -- however many the user chooses -- in both 0 and 1-based modes. It also has the ability to save some or all the values to either an INI or a raw binary file, letting it be used as both a global value object and a save game object.
 +
 
 +
Compatibility: [[Multimedia Fusion]], [[Multimedia Fusion 2]]
  
 
==== INI ====
 
==== INI ====
INI objects allow rudimentary saving of data. However, the data can easily be changed in a text editor unless encryption is used. The INI object does not include encryption, so it has to be done externally. Due to limitations in Windows, INI objects are limited to 64KB in size.
+
INI objects allow rudimentary saving of data. However, the data can easily be changed in a text editor unless encryption is used. The INI object does not include encryption or compression, so those have to be done externally. Windows INI objects are limited to 64KB.
 +
 
 +
Compatibility: [[The Games Factory]], [[Multimedia Fusion]], [[Multimedia Fusion 2]]
 +
 
 +
==== INI++ ====
 +
INI++ is a vastly improved version of the original INI object. The working INI is stored in memory as opposed to being modified on-disk, which makes most operations more efficient. This also makes encryption and compression (both built-in to the object) faster, since the file does not need to be decrypted/decompressed to read/write data and encrypted/compressed again afterwards. In addition, it supports convenient features like counting the number of groups and the number of items in a group, something missing from the original. It also supports item default values (what the INI should return if a given item does not exist), and a custom "subgroups" system, among other things. Finally, it supports INIs larger than 64KB.  
 +
 
 +
Compatibility: [[Multimedia Fusion 2]]
  
 
==== SaveGame ====
 
==== SaveGame ====
The Savegame object is similar to the INI Object, but is more complex to use. Unlike INI, it automatically saves the data in such a way that it can't be edited easily.
+
The SaveGame object is similar to the INI Object, but is more complex to use. It is also more secure than using INI files.
 +
 
 +
Compatibility: [[Multimedia Fusion]], [[Multimedia Fusion 2]]
  
 
= Functional =
 
= Functional =
 +
==== DLL Object ====
 +
The DLL object allows MMF to access DLL files. DLL files, like extensions, allow the user to do things they normally would not be able to do in MMF. DLLs intended for various purposes are widely available on the internet.
 +
 +
Compatibility: [[Multimedia Fusion]], [[Multimedia Fusion 2]]
 +
 
==== FastLoop ====
 
==== FastLoop ====
Fastloop helps speed up certain events by running them many times per MMF/TGF loop. Thus, they are useful for static engines, where they are normally used to push objects out of floors and walls without an overlap being seen. Fastloops are also useful when many objects need to be created or positioned at once. The Fastloop extension assigns an ID number for each loop that is run. MMF 1.5 includes built-in Fastloops, however these use assigned ID strings instead.
+
Fastloop helps speed up certain events by running them many times per MMF/TGF loop. Thus, they are useful for static engines, where they are normally used to push objects out of floors and walls without an overlap being seen. Fastloops are also useful when many objects need to be created or positioned at once. The Fastloop extension assigns an ID number for each loop that is run. MMF includes built-in Fastloops, however these use assigned ID strings instead.
 +
 
 +
Compatibility: [[The Games Factory]], [[Multimedia Fusion]], [[Multimedia Fusion 2]] (however, the latter two include this extension for backwards-compatibility)
  
 
==== Platform Object ====
 
==== Platform Object ====
 
Replaces the built-in platform movement, and provides a quick and easy alternative to static engines. The Platform object gives the user many features to adjust, such as acceleration, gravity, one-way platform emulation, and slope detection.
 
Replaces the built-in platform movement, and provides a quick and easy alternative to static engines. The Platform object gives the user many features to adjust, such as acceleration, gravity, one-way platform emulation, and slope detection.
 +
 +
Compatibility: [[Multimedia Fusion]], [[Multimedia Fusion 2]]
  
 
==== Pop-Up Window Object ====
 
==== Pop-Up Window Object ====
 
Allows games to display a pop-up window after a certain event is triggered. Available for both TGF and MMF, the pop-up window object isn't used often in games, mainly just for RPGs or the occasional [[sprite]] [[lib]].
 
Allows games to display a pop-up window after a certain event is triggered. Available for both TGF and MMF, the pop-up window object isn't used often in games, mainly just for RPGs or the occasional [[sprite]] [[lib]].
 +
 +
Compatibility: [[The Games Factory]], [[Multimedia Fusion]], [[Multimedia Fusion 2]]
 +
 +
==== Lua/Lua+/XLua ====
 +
The Lua objects "give" MMF2 a scripting language; [[Lua]] scripts can be loaded from external files, from another text object in the application, or from the object itself. An advantage of using Lua is that it makes many complicated sections of code easier to perform than by using MMF itself.
 +
 +
The Lua+ object includes some improvements over the original Lua object, however it is currently incomplete. It does, however, allow direct access to an app's objects, which would normally involve extra coding within MMF.
 +
 +
XLua was programmed by [[Retriever II]], originally as a clone of Lua+ (with a larger set of interface functions and much better stability); eventually, it was expanded to support interception of Windows messages and keyboard input, and other extensions can be compiled with its function library in order to interface directly with its MMF interface. 
 +
 +
Compatibility: [[Multimedia Fusion 2]]
  
 
==See Also==
 
==See Also==
 
*[[Multimedia Fusion]]
 
*[[Multimedia Fusion]]
 +
*[[Multimedia Fusion 2]]
 
*[[The Games Factory]]
 
*[[The Games Factory]]
 +
*[[The Games Factory 2]]
  
[[Category:Tool]]
+
[[Category:Fangame_Terms]]
 +
[[Category:Click]]

Latest revision as of 16:26, 16 April 2009

Extensions are segments of code added to an application in modular nature to increase its capabilities. Extensions help expand the functionality of The Games Factory and Multimedia Fusion by providing extra events, conditions, and actions. Essentially, they are special DLL files that are designed to interface directly with Click programs; they can do anything from adding simple math functions to controlling aspects of the runtime engine. A list follows:

Graphical

Lens

The Lens Object is an extention that allows the user to distort an area of the frame as if it was behind glass, either zooming in like a magnifying glass, or refracting. The Lens Object features many customizable options, allowing effects such as reflecting another location of the screen or the illusion of ripples on the screen, however, it takes a proper understanding to get the right effect, and it can cause much slowdown if used at a decently large size, or in high count. A possible alternative for some of the effects one may want this for is the Perspective Object, ironically by the same creator as the Lens Object. The Perspective object is usually much faster but at the cost of not allowing custom distortion maps.

Compatibility: Multimedia Fusion, Multimedia Fusion 2

Mode 7

Main article: Mode 7

The Mode 7 Object is an extension that provides a "Mode 7" type of effect. Many complain about its low framerates, but its performance can be increased greatly by disabling interpolation and mip-mapping.

Compatibility: Multimedia Fusion, Multimedia Fusion 2

Perspective

The Perspective Object is an extension that allows users to distort the perspective of a location on the frame, though it appears to not act properly if not fully on screen. Unlike the Lens Object, the Perspective Object uses much less power, but also has that much more limitations. The effects it can create include Perspective, which gives a Mode 7 esqe flattening effect, Panorama, which gives an impressive kind of "barrel" type effect, such as one segment in The Legend of Zelda: The Minish Cap, Sine Wave, an effect comparable to the effect used in water levels in games such as Yoshi's Island, and Custom, which lets the user control how each "line" of the object is distorted. While impressive, these effects are somewhat lacking in customization, for example, the Sine Wave can be used for a heat wave or underwater distortion, however, the center of the Sine Wave appears hardly distorted while the outer areas are highly distorted. Skillful use of this object can produce a striking 3D illusion.

Compatibility: Multimedia Fusion, Multimedia Fusion 2

Layer Object

In MMF1.5, the Layer Object vastly expanded the capability to change the Z-order of objects, and to allow various types of sorting. When MMF2 and TGF2 were released, the object was updated to interface with the new layer system, giving the user the ability to show, hide, and move layers during runtime.

Compatibility: Multimedia Fusion, Multimedia Fusion 2, The Games Factory 2

Sound and Music

DMC

The Direct Media Control object is an extension allowing one to load Modules, Samples, or Streams and play a large number of them simultaneously and across frames, as well as modifying the system's volume settings. A second revision of this extension, DMC2 was also released.

Compatibility: The Games Factory, Multimedia Fusion

ModFx

See above

ModFusion

See above

Onu Audio Series

This is actually a group of related objects (engineers), bound together by the Audio Controller. Currently, it includes OGG and Module engineers (though these two formats are already supported by MMF), along with a few visualizer extensions. The extension author is planning to release an engineer SDK to allow others to create support for other formats.

Compatibility: Multimedia Fusion 2

Note: Multimedia Fusion 2 has built in playing of many of the audio types that the above extensions were commonly used for.

Data Storage

Array

An Array is any organised collaboration of data, whether a list, table, or block. Values or strings can be written to an X position in a 1D array, XY positions in a 2D array, and XYZ positions in a 3D array. Arrays are highly useful for storing information such as external level formats, where the grid-like nature of a 2D array can store tile information exactly where it would be located in-game, and a 3D array can additionally store Z-depth data. 1D arrays can be used to store player input, which can then be reloaded as replay data. Arrays, especially 3D arrays, can become quite large very quickly, so it is important to use them with care.

Compatibility: The Games Factory, Multimedia Fusion, Multimedia Fusion 2

Data Store

The Data Store (or Data Store 2) object reads and writes numeric values to any type of file.

Compatibility: The Games Factory, Multimedia Fusion

Global Store X

The Global Store X object functions like a more complex version of the several 1,000 Global Values/Strings type objects used to bypass MMF's limited global value count. It can store integers, Boolean switches, and strings -- however many the user chooses -- in both 0 and 1-based modes. It also has the ability to save some or all the values to either an INI or a raw binary file, letting it be used as both a global value object and a save game object.

Compatibility: Multimedia Fusion, Multimedia Fusion 2

INI

INI objects allow rudimentary saving of data. However, the data can easily be changed in a text editor unless encryption is used. The INI object does not include encryption or compression, so those have to be done externally. Windows INI objects are limited to 64KB.

Compatibility: The Games Factory, Multimedia Fusion, Multimedia Fusion 2

INI++

INI++ is a vastly improved version of the original INI object. The working INI is stored in memory as opposed to being modified on-disk, which makes most operations more efficient. This also makes encryption and compression (both built-in to the object) faster, since the file does not need to be decrypted/decompressed to read/write data and encrypted/compressed again afterwards. In addition, it supports convenient features like counting the number of groups and the number of items in a group, something missing from the original. It also supports item default values (what the INI should return if a given item does not exist), and a custom "subgroups" system, among other things. Finally, it supports INIs larger than 64KB.

Compatibility: Multimedia Fusion 2

SaveGame

The SaveGame object is similar to the INI Object, but is more complex to use. It is also more secure than using INI files.

Compatibility: Multimedia Fusion, Multimedia Fusion 2

Functional

DLL Object

The DLL object allows MMF to access DLL files. DLL files, like extensions, allow the user to do things they normally would not be able to do in MMF. DLLs intended for various purposes are widely available on the internet.

Compatibility: Multimedia Fusion, Multimedia Fusion 2

FastLoop

Fastloop helps speed up certain events by running them many times per MMF/TGF loop. Thus, they are useful for static engines, where they are normally used to push objects out of floors and walls without an overlap being seen. Fastloops are also useful when many objects need to be created or positioned at once. The Fastloop extension assigns an ID number for each loop that is run. MMF includes built-in Fastloops, however these use assigned ID strings instead.

Compatibility: The Games Factory, Multimedia Fusion, Multimedia Fusion 2 (however, the latter two include this extension for backwards-compatibility)

Platform Object

Replaces the built-in platform movement, and provides a quick and easy alternative to static engines. The Platform object gives the user many features to adjust, such as acceleration, gravity, one-way platform emulation, and slope detection.

Compatibility: Multimedia Fusion, Multimedia Fusion 2

Pop-Up Window Object

Allows games to display a pop-up window after a certain event is triggered. Available for both TGF and MMF, the pop-up window object isn't used often in games, mainly just for RPGs or the occasional sprite lib.

Compatibility: The Games Factory, Multimedia Fusion, Multimedia Fusion 2

Lua/Lua+/XLua

The Lua objects "give" MMF2 a scripting language; Lua scripts can be loaded from external files, from another text object in the application, or from the object itself. An advantage of using Lua is that it makes many complicated sections of code easier to perform than by using MMF itself.

The Lua+ object includes some improvements over the original Lua object, however it is currently incomplete. It does, however, allow direct access to an app's objects, which would normally involve extra coding within MMF.

XLua was programmed by Retriever II, originally as a clone of Lua+ (with a larger set of interface functions and much better stability); eventually, it was expanded to support interception of Windows messages and keyboard input, and other extensions can be compiled with its function library in order to interface directly with its MMF interface.

Compatibility: Multimedia Fusion 2

See Also