Engine02 is a script-driven, multiplatform 2D game engine with builds for DOS, Windows, Linux, Intel/PPC MacOS, PSP, and Wii.
Overview, Documentation, and Downloads
E02 is a versatile, multiplatform 2D game development system. Its editors and powerful script interface allow users to create the characters and environment that make up the game, while the program handles I/O, low-level player/object management, etc. Many 2D Genre are possible with this system, such as Platform, Adventure, SHMUP, Fighter, RPG, Paddleball/Pinball, and others
Full documentation for all file formats, script commands, management systems, and editors is included with PC and Mac download packages and on this site. The sections below provide links to relevant texts, and the "Getting Started" document is provided as an overview and entrypoint
E02 uses an online update and download system- Official Games Using E02 are downloaded from within the program itself, and upon entering the Game Menu, it will test for updates to the program and any installed games that have proper update settings
Each platform has a separate download package:
DOS/Windows,
Linux,
MacOS,
PSP,
Wii
System Requirements
Processor and memory requirements for reliable performance will change depending on the content of the game, but the absolute minumum requirements are:
* PC- 386Sx processor, 8MB of free RAM, and DOS, Windows 95+ w/DirectX7+, or Linux with SDL
* Mac- PowerPC or Intel MacOSX system of comparable spec to PC
* PSP- Any PSP with any custom firmware installed
* Wii- Any Wii with "The Homebrew Channel" installed
Bear in mind that the Wii uses a 729MHz processor, while the PSP uses a 333MHz processor, and both have only 24MB of RAM available for use by E02. Games built for use on these systems must target these numbers
Features
The following features make E02 a powerful solution for game development:
Multiplatform:
Games developed for E02 can readily be run on any of the platforms listed above, regardless of the platform used for testing and development, without any additional steps (this assumes that the processor and RAM limitations of the Wii and PSP have been accounted for during development, and that their button config files have also been created)
Sound System:
E02 uses a custom sound system supporting music and sound effect volume controls, looping and non-looping .wav format sound effects, .wav format music with lead-in intro before the loop, and .XM music with up to 16 channels, most standard effects, and "song events" that allow the music to control the game, or the game to control the music
Level Scroll Management:
E02's level management system allows for an adjustable number of tile layers for scrolling, each of which can be enabled/disabled at any time during gameplay. Each layer may be set to one of six scroll modes: full layer fixed or relative scroll, and tiled or lined scroll on either the X or Y axis. Scrolling properties for each unit on each axis can be set up within the level editor, or each scroll unit can be controlled manually through script to apply finer control or special scroll effects. There are also settings to allow for level section looping for simulated extended height/width or repeating segments
Tile Properties:
The tiles that make up a level may contain more than one "frame" that can either be changed automatically at intervals set by the user within the level editor, or can be set by script. Aside from the display frames, the tile also contains a solidity map that defines where collision with the level will occur in the form of "top-only" or "all-sides", as well as an "angle" setting, used by the path tracer, and a "Floor Type" setting, all of which can be read by script
Palette Properties:
E02 uses a 256-color palette with adjustable "level palette" settings. A level may contain several interchangeable palettes that may be swapped at any time. Each palette may be set to one of three modes, the first being 64 level colors and 64 reserved global colors, with the remaining 128 being copies with an adjustable "alpha" applied for water/lighting effect, and the remaining 2 modes using no alpha, allowing either 128 level and 128 global, or 192 level and 64 global. Palette entries may be animated by "frame" in the same way as tiles, and may also be cycled with neighboring entries. Each entry within the active palette may also be changed directly by script
Object Management:
Objects are run and displayed in order of "Priority". They may be set to move freely throughout the level or to conform to level collision settings based on script-controlled movement properties, or their position may be adjusted entirely by script. They may also be set as "Projectile Objects", which can process collisions with other objects, whether those objects are "Projectiles" or not. Any object may reference any number of swappable sprite listings, and any number of interchangeable and even combineable scripted object animation functions
Player Management:
Player characters use a more complex setup than normal game objects to make them more versatile. Multiple "Movement Modes" may be assigned to each player character that define how the player reacts to input, his state, and his environment. Movement is processed by a more-heavily-featured "Path Tracer", which is capable of vectored movement based on floor angle settings, can be made to follow a path around a complete circle, gathers more information about the player's movement and collision state, and uses unit-by-unit movement for high accuracy in collision, even when moving at a diagonal line through freespace. Adjustable automatic viewport control may be enabled for players, and defineable "Key Events" call script functions that control the player's reaction to input. Any number of player characters may be defined for any game. Two active player objects are available which correspond with the two active player displays (single or split-screen), and may be set or reset to any defined player character at any time
Setup Scripts:
Setup Scripts exist for all aspects of a game for assigning properties to aspects such as sprites, player characters, objects, and general level control, and for loading data lists such as music, sound effects, and fonts
"Status Script":
The "Status Script" is a special type of script that can be used to create displays such as HUDs, intros, titlescreens, menus, in-game dialogue, and debugging displays. These scripts allow the use of fixed or numerical counter text, animated or unanimated sprites, and windows for text/sprite/window grouping and clipping areas, as well as "selections" for defining and reacting to menu-style input
Script Functions:
Aside from basic setup, E02's script system also consists of a number-based pseudo-programming language that is used for controlling the behavior of all game elements. Setup scripts make reference to Script Functions using this language to assign them to events such as player input, player/object collisions, player movement, "Status Script" control, level events, etc. Any one of these functions called at any time may access and manipulate any other game element for any reason
Editors:
E02 comes with several built-in editor systems that are described in more detail in their own section
Level Ripper:
The built-in level ripper may be used to "rip" tiles from PCX or TGA images. The tiles imported into the named tile file are also arranged to create a level layout layer in the same design as the image itself. Tiles and layout sections may be imported to existing levels. Tiles using an image that has already been copied are not duplicated. The created level may be further manipulated within the Level Editor
Command-Line Utilities:
A few other Command-Line Utilities are also built into E02 to assist in creation of game data, such as an option to export a portion of a PCX or TGA image's palette to a "Set_Palette_Range" script command, and an option to shift a palette area in one image to another location. Other debugging options include warping directly to a certain level, and entering the level editor directly within a gameplay level, or with other specified files
Editors
Below is a list of editors included with E02:
Level Editor
The built-in level editor allows for level modification outside or inside of the game. Start it directly, or enter from gameplay to make adjustments and test them immediately. Easily switch editing planes, display more than one at a time, overlay with tile solidity, copy/paste sections, grab tiles, draw to the level, and change tile collision properties
Tile Editor
The built-in Tile Editor works in conjunction with the Level Editor to allow manipulation of level graphics and layout. This includes touching-up or drawing new tile art, setting tile solidity and collision properties, creating tile animation, modifying the palette, and creating palette animation
Object Layout and State Editor
The built-in Object Editor allows modification of location and state of objects that have been placed in a level. Enter this editor from gameplay, and adjust object properties, (optionally) save, and return to gameplay. Use this feature to test or monitor object behavior, or set up object initial states when objects of the same type may start with different behaviors
Sprite Editor
The built-in Sprite Editor allows visual manipulation of sprite properties. Enter this editor from gameplay, and modify drawing offsets, collision boundaries, and hotspot locations for player or object sprites
PROJECT HOMEPAGE:
stealth.hapisan.com