To program a multimedia application the programmer can choose between using general-purpose programming environments like Microsoft’s Visual Studio or an authoring suite designed for the creation of rich-media applications. The integrated development environments offer an open architecture and good performance but an interface not intended for multimedia. On the other hand the authoring environments’ interfaces are suitable for multimedia but don’t offer any groundbreaking performance.
‘Interactive tools like those in Visual Basic and C++ significantly decrease the time and expertise necessary to build standard interfaces, i.e. those with widgets such as menus, buttons, and list boxes. However, these systems provide little interactive support for designing interfaces containing application-specific graphics (arbitrary drawings) and animation.’ ([WO1] p. 347)
Several companies are active in the authoring-environment market. Absolute market-leader is Macromedia with its products Director, Flash and Authorware. Other available software-packages are Asymetrix’s Toolbook and Tribeworks’ iShell.
This paper and its accompanying tools and examples concentrate mainly on Macromedia Director.
High-level programming languages are hardly used within the multimedia business.
Products developed using C/C++ or Java are mostly found in academia, arts and in products from the game industry.
Until version six, Director offered two different means of use. Director was either a tool to create complex, but non-interactive, two-dimensional animations or a development tool for highly interactive and complex applications.
Creating an animation was an easy task, which could have been done by just using the graphical user interface. Director offered a simple and working metaphor – the stage, the cast, the score and several widgets and gadgets to help the user.
The user interface offered no way to add interactivity – to achieve this, the user had to learn Lingo, Director’s integrated scripting-language. By using it and its various available extensions called Xtras, nearly every task can be accomplished.
David Wolber, researcher in the field of new and easy authoring-environments describes Macromedia Director: ‘The most popular interactive methods for defining animation are found in commercial key-frame animation systems such as Director. With these systems, designers manipulate a timeline (score) and an interface (stage) to specify the state of each graphic during each time frame. Interaction and context-triggered behavior can also be specified with these systems, but only by programming with a script language’ ([WO1] p. 348)
The upgrade to version six offered a new way of scripting – behaviors. These new type of scripts controls the behavior of visual objects and their properties can be changed during the authoring by using a graphical user interface. After this feature was introduced designers could get their hands on small objects they could combine and reuse.
Part of the version six package was a set of behaviors called library. This library has several advantages and disadvantages. It offers an easy way to add some basic interactivity and some of the behaviors are even quite useful to create complex interactivity.
The disadvantages are that the code of these behaviors is hard to understand due to its abstruse complexity and some of them are even buggy. Additionally, the behaviors cannot be combined in a transparent way and most of the behaviors are just about translations or rotations and cannot be used to control other properties. Macromedia never tried to attract more customers from a non-programming background by providing additional and more useful behaviors.
The latest upgrade to Director added a real-time 3-D engine but still many problems in the user interface and Lingo persist.
New versions did not offer any improvements for animation-orientated users and Macromedia does not promote Director anymore as an animation tool. Therefore, Director is a development tool for programmers – in fact, it is just a tool for one programmer due to the fact that collaborative work is nearly impossible.
PROGRAMMING BY EXAMPLES – PAVLOV
An attempt to allow the creation of interactive applications without any real coding is seen in programming by example.
Its main principles are described as ‘… represent the objects and action visually, replace typing with pointing and dragging, provide rapid, incremental and reversible actions, and offer immediate and continuous feedback to users’ ([SH], p. v).
A project especially suitable for multimedia projects is Pavlov by David Wolber from the University of San Francisco.
He defines the difference between industry-standard tools and Pavlov, as ‘There are two main differences between Pavlov and animation systems such as Director. The first is that interaction is specified by demonstration instead of coding with a scripting language. The second is that the timeline-based editor in Pavlov organizes the animated activity by the stimulus that triggers it, instead of requiring the designer to organize it manually within a single timeline.’ ([WO1] p. 385)
The use of Pavlov is easy and straightforward. The user presents a stimulus – he hits a key, moves the mouse or clicks on something and Pavlov asks for the response wanted. ‘Pavlov combines programming by demonstration (PBD) with animation mechanisms similar to those in Macromedia’s Director. Instead of writing scripting code to specify interaction, as is done in Director, the Pavlov designer demonstrates the events that trigger activity (and the activity itself): The resulting behaviors then appear in a stimulus-response score, …’ ([WO2] p.346)
Pavlov does not just react to the user’s stimuli, it also checks for other conditions, for instance the overlapping of graphics. The interface works very well and allows fast and efficient production – ‘The students estimated, on average, that completing a similar project would require 150 minutes with Visual C++ and 17.5 minutes with Pavlov (two expert Pavlov designers also implemented the Arcade game; both required less than 10 minutes).’
([WO1] p. 384)