Infernosoft Competitors
Secret Internal Document - Not For Distribution!

How to Make a Director Killer

Management

Competitive Analysis

Intellectual Property

Career Opportunities

Technical Support

Products

Introduction

This document will describe how to create a product that could take over Macromedia Director's dominant position in the multimedia development market.

Prerequisite reading: What's Right and Wrong with Director and Director Product Development Cycle.

Note: I wrote this essay late in 1999 after thinking about the work I did on the Director project. Things have unfolded differently than I predicted. It seems that Macromedia has created its own Director Killer … Flash.

Director Features

This section describes Director's major features in various lists. The first list is the views into the Director file data and controls:

  • Stage: The "screen" on which the animation is displayed while it's being created and played back.
  • Cast: A view into the database of assets, which are bitmaps, sounds, buttons, scripts, and so forth that make up the movie. The Macintosh Finder and the Windows Explorer are excellent models for the purpose of the Cast Window.
  • Score: A view into the data structure that controls the position and movement of cast members on the stage. (When the Score contains a link to a Cast object, it is called a "Sprite.")
  • Property Inspector: A view into the data structures that represent any object in the movie data heirarchy (movie, stage, cast, cast member, sprite).
  • Tool Palettes: Floating windoids that contain buttons which, when clicked, alter the effect of clicking and dragging objects on the stage. With these tools you manipulate sprites on the stage to get them to move, shrink and grow, rotate, change color, and so forth.

The Cast

The Cast contains all the objects that are seen or heard in a given Director title. A movie can have one or more casts, organized as the author sees fit. Movies can share external casts. Here is a list of the types of objects a cast can contain:

  • bitmaps (1, 2, 4, 8, 16, 32 bits deep)
  • sounds (many combinations of sample rate, resolution, number of channels)
  • scripts (text-based programs that control the actions of cast members)
  • transitions (visual transitions form one scene to the next: fade, wipe, etc. Stored as either pointers to built-in transitions or instances of transitions implemented as Xtras.)
  • text (editable or not, antialiased or not)
  • UI widgets (buttons, scroll bars, etc)
  • vector shapes
  • simple shapes (rectangles, ellipses, rounded rectangles, etc)
  • palettes (color lookup tables for images of 8 bits per pixel or fewer)
The cast interacts with the other user interface elements primarily through drag-and-drop behavior. You can drag raw asset files (bitmaps, sounds, etc) from the Finder or Explorer directly into a cast, and from a cast to the stage or score.

The Score

The Score is a time-based view of a Director movie. It is directly analogous to a musical score. Channels (instruments and voices in the musical score) are long horizontal things; vertical slices are called "frames" (measures in the musical score). You drag a cast member onto the score where it takes up one channel for an arbitrary number of frames.

Certain score channels are reserved for specific data types: sounds, transitions, scripts, tempo events, palettes. Sprites of all other data types are represented in an "unlimited" number of sprite channels. When two bitmaps overlap on the stage, the one with the higher channel number is drawn on top of the other one. Bitmap sprites have associated ink modes, which are essentially pixelwise logical operations on the background and the bitmap or its mask. Ink modes allow various optical effects such as matte, background transparent, or alpha-channel effects. Sprites in the score contain "key frames," points that represent specific locations on the stage. Sprite locaitons for frames between key frames are "tweened" or interpolated.

Director 6 introduced a very successful change to Director's original sprite model, the key frames concept. Any product that wants to displace Director must consider this feature, and either incorporate it or make a vast improvement.

Lingo, Behvaiors, and the Event Model

A Director-Killer should very carefully consider the nature of its programming language. A critical decision in the design process is the nature of the basic approach: is programming something that can be simplified so that dummies can do it, or is it something that is inherently complex and thus should use a common general-purpose language?

Director's assumption was the first alternative and the result is Lingo. Lingo is a structured interpreted general-purpose programming language with strong coupling to Director concepts. It is currently suffering a difficult and painful transition to object-orientedness and thus must support classic and modern Lingo constructs. The language contains a long list of reserved keywords. It has mnay built-in string- and list-manipulation functions, but their syntax is often cumbersome and just plain weird.

With the advent of canned Behaviors, novice Director users can avoid leanring Lingo. A Diretcor-killer should offer the same convenience. But the choice of programming language is a different matter. With novice users taken care of by behaviors, product designers are free to choose any appropriate language. Here I discuss four possibilities.

Visual Basic
This proprietary Microsoft solution has its benefits and costs. Benefits are a large community of programmers familiar with its syntax as well as a colleciton of VBX and ActiveX controls with which to create screen widgets. However, it is a Windows-only solution, and a product using VB as its language may be seen as competition for VB, not for Director.
C++
C++ is a cross-platform solution and there are many C++ programmers. But can it be compiled quickly enough to act like an interpreted language? Can C++ get sufficiently far from the underlying hardware?
Java
Java is another cross-platform solution which offers many advantages. Many programmers know it or would learn it given a good excuse. It is sufficiently platform-independent to be able to hide nasty implementation details from the programmer. It performs its own garbage-collection. This may be the best choice.
Custom Language
Yet another custom language would have all the disadvantages of Lingo and none of the advantages of any of the commonly used languages. A successful Director-Killer would build on an existing popular language.

Director has a powerful event model. It is not quite as nice as that of Visual Basic, however, and is one of the more difficult concepts for Lingo programmers to learn. Visual Basic, with its well-defined events, integrates event handlers into the behaviors of objects. A good solution would be a combination of Director's theoretically sound event model with VB's good UI implementation for creating them.

Consider an on-screen object as a data structure with a link to the base asset, a track of positions and other score properties, and links to scripts. This permits making adding behaviors to a sprite mean that the scripts associated with a behavior (or links to them) are copied into the sprite's script database. The precise nature of this linkage would depend on the nature of the programming language chosen.

Netlingo, together with the Multiuser Server, provides an easy way for lingo programmers to creat multiuser Shockwave and CD-ROM applications. The popularity of this feature is just beginning to take off, but any Director-Killer must plan for good interaction with the Internet.

The Paint Window

This is another feature in which a Director-Killer can make an enormous difference. The Director Paint Window offers a number of important features, but it suffers from arcane complexity, imcomplete features, stupid UI mistakes, and bugs. Its useful features are Photoshop-like effects, competent pixel tweaking, and onion-skinning (being able to faintly see related bitmaps behind the one your'e editing). Its stupid bugs include effects implemented only in certain bit depths and idiosyncratic bit depth selection.

Professional Director users create their artwork in Photoshop and import it into Director. They use the Paint window primarily to tweak images. However, the paint window's speed and convenience makes many of them wish it worked better. A Director-Killer paint window should be simple, competent, and convenient. It should offer nearly transparent bitmap and vector editing tools (think of a combination of Superpaint and Flash and Fireworks).

Shockwave

Shockwave has achieved ubiquity on the web. This is what continues to drive sales of Director. The Shockwave Player contains an animation engine and a Lingo interpreter. (Similar to Java, the Lingo interpreter is limited to "safe" operations for security reasons.) Macromedia faced some difficulty getting users to install its Shockwave plug-in, but has created an almost seamless installer on its web site and has convinced Microsoft and Netscape to bundle Shockwave with those browsers. Macromedia's web site shockwave.com is looking forward to profitable expansion by offering games and entertainment, all using Macromedia plug-ins for Flash and Shockwave.

Any plan for a Director-Killer must consider how it will displace Shockwave on the Web. Failure here will mean failure for the whole project. This is in small part a technical problem, but in large part a marketing problem.

Technical Bits

There are three ways that multimedia playback engines control the timing of events.

  1. Time-Based media are presented in lock-step with a fundamental time code. Video frames are dropped for time-coherent playback on slower computers. QuickTime is an example.
  2. User-Interaction-based media depend on user events to progress. Apple Hypercard and Macromedia Authorware are examples.
  3. Frame-Based media play every frame, possibly at the expense of fidelity to absolute time. Macromedia Director is an example.

Unless some simple an elegant way is invented to allow the author to switch between the various systems, some basic model must be chosen and hooks provided into the other methods. Why must a multimedia tool provide all three? Dropped frames look ugly, and since Director can attach scripted behaviors to frames, dropping a frame (without regard to its behaviors) could be a disaster. But time-based media must remain time-based: you can't arbitrarily slow down a video clip, and you may want to synchronize a frame-based application to a time-based one. Interactive-mode titles must wait for user input. This is an inherently complicated topic. It requires some theoretical understanding on the part of the author, and any help that the authoring tool can provide by simplifying the concepts and tools would be an advantage. Specifically, a Director-killer must provide a way to cause animation timing to be directed by a video or audio clip.

Required New Features

The Playback Engine

Director's playback engine contains lots of hacks to make older formats work. It is non-reentrant and has a limited rendering pipeline. A new playback engine should be re-entrant so that several independent rendering streams and their scores can operate simultaneously. A rendering pipeline should include hooks to filters and effects defined by API plugins. Their order of operations should be user-definable for each frame. All effort must be made to make the playback engine as lightweight and fast as possible.

Cross-Platform Authoring and Playback

Over the product lifespan of any Director Killer, there will be at least one majoe upheaval in the established order of operating systems. Director Killer's underpinnings must be written in such a way that porting the playback engine to other operating systems is a relatively simple manner. To think that Microsoft Windows is the only operating system worth worrying about is stupid.

Web Playback

A set of web-browser plugins that work on many browsers and operating systems and are relatively lightweight and easy for the end-user to install stand a greater chance of being adopted than clunky crap. Macromedia's model of Shocked Site of the Day for displaying the capabilities of the plugin is also highly successful.

Addendum: New Technologies

Director was able to add new technologies fairly quickly by exploiting its capable Xtras interface. A Director Killer must have a similar interface that allows full access to all its internal APIs so that whena new playback medium or technology becomes available, it can find a role in it.

For instance, Macromedia and Director basically ignored the DVD market. It was focused too closely on the Web. Meanwhile, as I predicted, Apple bought the rights to the DVD Xtra, killed it, and came out with its own DVD product. Any new Director-like product must make it easy to build DVD menus and combine them with video files to generate a DVD source file.


How to make a Director Killer
Michael Roeder, December, 1999

 

Google
  Copyright © 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 by Infernosoft. All Rights Reserved.