Punk József - Works - Intuitive Media Studio



Intuitive Media Studio is a compact development environment for creating games and other multimedia applications for Intuitive Media Player. It has built-in text editor, image editor, sprite editor, sound converter, and 3D model viewer. It may be extended with more tools in the future. The user interface is icon based and desiged to be as simple as possible.

The following picture is a screenshot of the prototype of this development environment:

At the top you can see the toolbar with the following icon buttons: New, Open, Show / Hide project, Show / Hide Log, Help, About and Quit. The project window is on the left. It has buttons to Save, Build, Run, Add and Remove files. Document windows are open tabbed on the right.

Pressing New button on the toolbar you can create new projects or different kinds of new document files. The Open button will open existing projects or documents. You can hide project window by pressing Show / Hide project button if your document windows need larger area on screen. You may also show or hide Log window where project building messages and compiler results are output.

The user interface automatically adapts to the display resolution.



Intuitive Media Studio is designed to support different programming languages. Currently only Intuitive C can be used, but Intuitive BASIC is also planned to be implemented.

Intuitive C is similar to the original C language. It has keywords like if, else, for, do, while and return. It has only two built-in types int (integer number) and float (floating point number). You can also define structures and arrays to store complex data. It has a built-in library to draw graphics, play sound etc.

When you build your project the source code is compiled to virtual machine code. This virtual machine code is run by the virtual machine emulator that uses the native built-in engine.

Consider the following example: You would like to draw an image on the screen.

First of all you create a new project then create an image file named "Image.png" and add it to the project. Then create a source document and add it to the project too. In the source document you type in the following code:

void main () { ImageDraw (0, 0, Image); }

When you build your project the image file will be converted and the source will be compiled to a few bytes of binary code. All of the results will be packed into an Intuitive Media format file. This file is processed by the emulator that reads the byte code and calls the native engine functions as necessary to draw the image.

The system block diagram is shown here:


Image Editor

Image Editor can be used to edit bitmapped images. It is not planned to be a replacement for Photoshop rather implement the functionality of the old Amiga version of DeluxePaint in a modern fashion. Different paint brushes, fill modes, image filters and shape tools will be available to the atrist. Current implementation is very limited, treat it as a placeholder for the final product.

This is the screenshot of the current implementation:

Image Editor now supports the PNG file format. In the future it may be extended to read JPG or TGA but the output format should always be PNG to keep the system as simple as possible.

As you may have also noticed while reading the Programing section, in the source code images are referred to by their file names without the file name extension. To draw the image called "Image.png", just type the following line:

ImageDraw (x, y, Image);

Where "x" and "y" are the pixel coordinates of the top left corner of the image.

During the build process indentifiers are defined for each image file. These identifiers are then passed to the compiler.


Sprite Editor

Sprite Editor is used to define sprites. A sprite is a rectangular part of an image. It is defined by the file name of the image, the pixel coordinate of the top-left corner and the pixel size of the rectangular area.

Sprite Editor stores sprite data in sprite list files. These files have the file name extension ".spr". To open the editor a sprite list file must be created first.

To define a new sprite first give it a name. Select an image file. Using the mouse define a rectangular area and then press the Add button. The name of the new sprite will appear in the sprite list.

In the source code you can refer to the sprites by their name:

SpriteDraw (x, y, Sprite);

On the following picture you can see the sprite list of the example project Breakout:

Possible future extensions are animated sprites and sprite arrays to define multiple sprites with the same size at a time.


3D Model Viewer

3D Model Viewer is a placeholder now. You can view the project's 3D models here. It is planned to implement some basic model editor functionality. For example texture settings manipulation, simple mesh editing, mesh splitting and merging, format conversion, strip generation and so on.

Current version supports the 3ds file format only.

This is the screenshot of the current viewer:

In the source code you can refer to the 3D models by their name:

ModelDraw (car, local);

Where "car" is the name of the model and "local" is the matrix that stores the local position and orientation of the object.

The camera position can be set by the following function:

CameraSet (tx, ty, tz, dir, elev, dist, fov);

Where "tx", "ty" and "tz" are the x, y, z positions of the target, "dir" is the camera direction on the XZ plane, "elev" is the camera elevation relative to the target, "dist" is the distance from target and "fov" is the camera field of view value.


Sound Converter

Sound Converter is not yet implemented. Intuitive Media Studio supports 16 bit mono PCM WAV files only. To play a sound effect add the wav format file to the project and insert the following line of code into the source:

SoundPlay (Sound, 1.0, 0.0);

Where "Sound" is the name of the wav file, the second parameter is the volume and the last parameter is the pan value.

There are plans to implement 3d sound and streaming music support.


Help System

Intuitive Media Studio has an HTML based help system. It covers every topic you need to use this development environment from the user interface to the programming language reference.

A screenshot of this help system is shown here:



Here you will find a working prototype compiled for Windows XP with DirectX 9.0c or later installed. The program requires no installation, just extract the content of the archive to your hard disk and run IMS.exe.

This prototype is missing a lot of features and is not free from bugs!



Two working sample projects are included. The first sample is a 2D breakout game.

Screenshot of Breakout sample:

The second sample is just a simple program to show how to draw 3D models. By pressing the Esc key both samples quit to the development environment.


Possible Applications

Intuitive Media Studio allows you to develop many different kinds of games. Current prototype is rather limited but there is great potential in this technology. It is an easy to use still powerful development environment. Here are some possible applications: