EGI 4.0a

Skip to main content (skip navigation menu)

EGI 4.0a


EGI is a tool to create and play back frame based animation sequences (pre-compiled movies). These sequences can be embedded into a (multimedia) application that runs under Microsoft Windows (version 3.1x, Windows 95/98/ME or Windows 2000/XP and later).

See what's new in version 4.0.

EGI consists of an animation compiler, a decompiler and players (for 16-bit Microsoft Windows and for Win32). The compiler generates a superset of the standard FLIC format (FLI/FLC). The players have a DLL and an MCI interface and can be used with any program/environment that can call a DLL or issue MCI commands. Examples (with source) are included.

Why animations?

If a picture can be worth a thousand words, and animation can be worth a thousand pictures. Whereas a picture shows a static situation, seeing a device or a situation in motion usually helps "getting the picture". Animations have advantages over video as well: apart from being able to put things in animation that do not (yet) exists, an animation emphasizes the basic shapes and removes noise, thus making the image flow clearer than a video.

Animations are ubiquitous in entertainment, computer presentations and computer games. They are also useful in standard computer applications. Motion attracts the attention and it is less intrusive than sound (beeps). As such, animations serve to notify the user of an event in a gentle manner. A friendly user interface in your application can attract users and make their experience more enjoyable.

Any time a program has to perform a long operation, it has been customary to present the user with an hourglass cursor and a progress bar. When you use animations in your application to indicate the progress and the status of a process, any progress dialog can become more eye catching and more informative. The EGI library allows animations to be used anywhere, such as program wizards, splash screens or even out of the application window and over the desktop.

How it works

The compiler takes a series of pictures as input (in the BMP, PCX, TGA, Pro Motion "SPR" formats, and others) plus a script file that relates the pictures to each other. The output consists of a single file with the animation sequences (there can be multiple sequences per generated output file). The format of the output file is a superset of the FLIC format that is used by Autodesk Animator and related products. If desired, the EGI compiler can create FLIC files that are fully compatible with Autodesk Animator.

The EGI players are dynamically loaded libraries (DLLs) that take a compiled animation file as input and display the frames at the screen location and the speed as specified by an application. Both files created by Autodesk Animator (or related products) and files created by EGI are accepted. There are separate players for 16-bit and 32-bit Microsoft Windows environments. The players offer a rich API by means of which they are easily integrated with C/C++, Delphi, Visual Basic or other programming languages.

For avatars and self-contained animations, a packager binds the animation (FLIC file) and a player utility into a single executable program. All required files are contained in that single program (i.e., no auxiliary DLLs or ActiveX controls are needed). As the animation can be scripted with the the "pawn" language, such self-contained animations mey be highly dynamic and even interactive.

The decompiler is provided to aid converting existing FLIC files to the enhanced format that is used by EGI. Through this enhanced format, features like segmentation and transparency are achieved.

Users of Pro Motion (by Cosmigo) can also use a plug-in to directly create an extended FLIC file from this animation paint program.

EGI compiler/player screen shot
EGI compiler and player screen shot

In addition to the features of a standard FLIC player, EGI provides:

This product is made in the EU



Technical information (notably the FLIC file format and animation techniques) is available online as well. See, for example:

The Smallest FLIC animation player
Getting started with programming the EGI player (using the EGI API). This application note implements the smallest functional animation player that uses EGI in C, C++, Delphi and Visual Basic.

An EGI Player in C++
Building a simple animation player with EGI in C++ (no MFC). It is not the tiniest animation player (for that see "The Smallest FLIC animation player"), but the EGIplay utility developed here is not a toy example either.

Easy Transparent Animations with the EGI Player
Playing animations with transparent areas is one of the key features of EGI. This paper extends the simple animation player in C++ to play animations with transparent areas.

Embedding animations in Windows Help using EGI
One feature of the Microsoft Windows Help system (WinHelp) is that it can be extended with "plug-in" DLLs. This paper describes how to embed standard or extended FLIC animations in a WinHelp .HLP file and how to invoke these animations.

Using EGI with DirectDraw
EGI can decode frames from a FLIC animation directly into a DirectDraw surface. This application note describes how to use this feature.

Transparent animations on the desktop
EGI can play animations transparently over the desktop, like an "agent" or an avatar. This application note describes how to prepare animations for this feature and how to set up the player. The usage and the internals are also explained, as well as the peculiarities of the "region" functions of Microsoft Windows, and their consequences.

The FLIC file format
A detailed description of the animation file format for FLI/FLC files. The FLIC file format was developed for Autodesk Animator, and it is now supported by a wide range of animation software and utilities.
    The document also discusses many enhancements and extensions to the file format from EGI, DTA and Cosmigo, plus that it covers the FLH/FLT/FLX files in addition to the 256-colour FLIC files.

EGI compression schemes
Details on the (lossless) compression schemes that are used by the animation compiler/player EGI: run length encoding (RLE), zero order Huffman and Burrows-Wheeler transform.




Sisters (version 3): EGI + AniSprite + MIDI

The sisters Fanni and Tila are charming creatures that live in the world of fantasies. In their world of checkerboards and marble balls, they pass the time with seducing spectators to leave the world of reality and to enter theirs.

Rivalry between sisters is not uncommon.

But then again, this is only fantasy...

Or is it?


More seriously, the Sisters demo (1,056 kBytes) shows the synchronization and transparency features of EGI, by playing four FLIC files (two of which have with multiple segments) over a fixed background. Wave files are played at appropriate events, the FLIC files are synchronized to a MIDI song and the two FLIC animations move over the background image and synchronize with each other under control of a C program. AniSprite takes care of flicker-free overlapping animations and for semi-transparent shadows.

All in all, it is worth looking at if you are considering more advanced animation (and possibly interactive animation) with EGI.

What happened to Zónya and N'thila? For the curious amongst us... follow this link.

If you wish to rebuild the animations, you need the evaluation version of EGI and the source pictures. If you wish to modify the demo and recompile it, you will need the evaluation versions of EGI and AniSprite (in addition to a C compiler that generates Microsoft Windows' applications).



Components not included with the source code


New in version 4.0