# Multimedia Fusion

Multimedia Fusion (MMF), développé par l'entreprise Clickteam (en), est un logiciel de type CASE permettant de développer rapidement des applications multimédia telles que des utilitaires, des jeux, des applications Web ou des animations. Son fonctionnement est similaire au Java. Il génère des applications « pseudo-compilées » qui sont ensuite exécutées par une machine virtuelle qui est ici intégrée à l’exe final et qui ne nécessite donc aucune installation préalable de l’utilisateur. Son principal défaut est le fait que les applications développées avec Multimedia Fusion 1.5 ne sont utilisables que sous Windows. L'un des obstacles a la portabilité des applications Multimedia Fusion est le fait qu'il faudrait également refaire une version runtime par plate-forme et par système d'exploitation des différentes extensions disponibles et non créées par la Clickteam.
Multimedia Fusion a été remplacé, depuis 2006, par Multimedia Fusion 2 et en 2013 par Clickteam Fusion 2.5.

## Histoire et versions

Ainsi, depuis 1994 Clickteam a mis sur le marché successivement plusieurs logiciels similaires: Klik & Play (es), The Games Factory, Multimedia Fusion puis Multimedia Fusion 2.
* The Games Factory 2 est le plus limité, notamment car il ne permet pas l'ajout d'extensions. Seuls les objets fournis avec le programme peuvent être utilisés. Les programmes créés avec affichent un logo à la fin de leur exécution ;
* Multimedia Fusion 2 est la version standard, et la plus utilisée. Elle permet l'ajout de nombreuses extensions. Les développeurs utilisant ce programme pour faire du commerce de leurs jeux doivent mettre un logo représentant le programme dans leur création ;
* Multimedia Fusion 2 Developer ajoute quelques extensions réservées à cette version, utiles surtout pour un programme plus « professionnel ». De plus, cette version permet d'exporter au format Java Mobile, pour faire des jeux sur téléphone portable. Les utilisateurs de Multimedia Fusion 2 peuvent vendre leurs créations, sans restrictions autres que celles mentionnées plus haut.

### Multimedia Fusion 2 Developer

En plus des fonctions de Multimedia Fusion 2, la version Developer inclut les extensions et fonctionnalités suivantes.
* Grille de donnée
* Boîte de dialogue
* Calculatrice Double Précision
* Explorer
* Affichage liste
* OS
* Période d'essai
* Modification des informations de propriété du .exe
* Applications MDI
* Sub-applications

## Fonctionnement
### Les éditeurs

La création d'un jeu ou d'un programme avec Multimedia Fusion 2 passe par différents éditeurs.

#### L'éditeur de storyboard

Les projets dans MMF2 sont constitués d'une ou plusieurs scènes (ou « frames » en anglais), qui correspondent aux différents « écrans ». Ainsi, pour un jeu, la première scène pourrait être employée pour le menu principal, la deuxième pour le premier niveau, la troisième pour le tableau des records, etc. Il est possible de créer autant de scènes que l'on veut. L'éditeur de storyboard permet d'ajouter ou de supprimer les différentes scènes d'un jeu ou application, et d'en modifier les propriétés.

#### L'éditeur de scènes

Chaque scène, dans MMF2, est constituée d'objets qui ont chacun leur fonctionnalités. Par exemple, le héros d'un jeu et les ennemis seront représentés par des d'objets « Actifs », les décors seront représentés à l'aide d'objets « Décors », tandis que les objets « Texte » permettront d'afficher les dialogues. L'éditeur de scènes permet d'ajouter ces objets et d'en modifier les propriétés.
MMF2 est fourni avec une grande quantité d'objets (notamment des animations de personnages et des décors) qui peuvent être utilisés dans l'éditeur de scènes.

#### L'éditeur d'évènements

L'éditeur d'évènements, enfin, permet de « programmer » les différents objets de la scène. Il se présente sous la forme d'un tableau. Chaque ligne contient une ou plusieurs conditions, représentées à gauche du tableau, et chaque colonne représente un objet de la scène. Pour programmer, il suffit de créer une nouvelle ligne, d'y ajouter les conditions que l'on veut, puis dans le tableau, d'ajouter les diverses actions que les objets devront effectuer.
Ainsi, pour obtenir un personnage se déplaçant vers la droite, il faut ajouter une ligne et y mettre la condition lors de l'appui sur la touche fléchée droite, puis dans le tableau, dans la colonne du personnage, on ajoute une action permettant d'incrémenter la position horizontale.
Tout se fait de cette façon, ce qui permet une approche plus visuelle de la programmation. Il est d'ailleurs possible d'organiser les évènements en les plaçant dans des « groupes », que l'on peut cacher, activer ou désactiver. Il existe aussi des options pour afficher/masquer les évènements en rapport avec certains objets. Ainsi, le code reste clair.

### Les objets

Le fonctionnement de MMF2 repose sur les différents objets à insérer dans les scènes. Chaque objet peut afficher des images ou animations dans la scène. De plus, l'insertion d'un objet permet d'avoir accès aux conditions, actions ou expressions qui y sont liées. MMF2 est fourni avec de nombreux objets de base, mais il est possible d'en télécharger d'autres gratuitement pour disposer de plus de fonctionnalités.
Voici une liste des objets les plus couramment utilisés, avec leurs fonctionnalités de base.
* Actif : permet d'afficher une ou plusieurs animations 2D, et de stocker plusieurs variables et chaînes. C'est l'objet essentiel pour créer un jeu, car on l'emploie souvent en guise de personnage, d'ennemi, de bonus, etc.
* Décor : une image statique. C'est le seul objet qui ne donne accès à aucune condition, action ou expression, mais il est possible de tester s'il y a collision entre les objets Décor et les autres objets. Par exemple, des plates-formes statiques dans un jeu de plate-forme seront représentées par des Décors.
* Compteur : permet de stocker une variable et de l'afficher de diverses manières (nombre, barres...)
* Texte : permet d'afficher du texte et de stocker plusieurs chaînes de caractères.
* INI : permet de stocker diverses informations dans un fichier INI.
* Tableau : permet de stocker un tableau de nombres ou de chaînes à 3 dimensions, et de le sauvegarder sur le disque dur. Cet objet est souvent employé pour les sauvegardes dans les jeux.

### Test

À tout moment, il est possible de tester tout le projet ou seulement une scène particulière. Pour aider à la correction des bugs, une fenêtre s'affiche permettant de voir et de modifier les différentes variables et chaînes de caractères. Il est aussi possible de mettre le programme en pause ou de le faire fonctionner image par image.

## Exportations
### Windows

MMF2 peut exporter les créations au format .exe.
Par défaut, MMF2 exporte les applications Windows en utilisant son propre moteur de rendu software (ne nécessitant pas de carte graphique évoluée pour fonctionner). Ce moteur de rendu fonctionne sur à peu près toutes les machines, même âgées, mais est assez lent. Depuis les build 248 et 249, MMF2 permet d'accélérer le rendu des applications Windows exportées en utilisant Direct3D 8 ou 9 (selon le choix du développeur).

### Vitalize! (plugin web)

MMF2 permet aussi d'exporter au format .ccn. Ce format permet entre autres de mettre ses créations directement sur des pages Web, à la manière de Flash. Pour que cela fonctionne, l'utilisateur doit télécharger le plugin Vitalize!. (N'est plus pris en charge sur Clickteam Fusion 2.5)

### Java

Depuis le build 248 et 249, il est possible d'exporter les applications réalisées sous MMF2 via le runtime Java, sous diverses formes :
* Java Web ;
* Java Applet ;
* Java Autonome MacOS (Seulement sur Multimedia Fusion 2 Developer) ;
* Java Mobile (pour tous les terminaux compatibles Java J2ME dont les BlackBerry), constituée d'un .jad et un .jar (seulement sur Multimedia Fusion 2 Developer).
Ainsi, l'exportation Java permet aux jeux et applications MMF2 de fonctionner sur un grand nombre de plateformes.
(Présent mais plus pris en charge sur Clickteam Fusion 2.5)

### Flash

La possibilité d'un export en Flash est disponible pour MMF2. Pour bénéficier de l'exportation Flash, l'achat du plugin d'exportation est nécessaire. Les jeux exportés ainsi nécessiteront la version 9 ou plus du plugin Adobe Flash Player.

### Anaconda

La possibilité d'un export en Python est disponible pour MMF2. Cela permet d'exporter les applications sur Windows/Mac os/Linux.

### XNA

La possibilité d'un export en C# est disponible pour MMF2. Cela permet d'exporter les applications sur PC Xbox360 et Windows Phone.

### iOS

La possibilité d'un export en Objective-C est disponible pour MMF2. Cela permet d'exporter les applications sur iPhone, iPod Touch et iPad.

### Android

La possibilité d'un exporter un fichier apk. Cela permet d'exporter les applications sur les plateformes Android, et la console Ouya.