Power Game Factory Version History

Version 1.1
February 20, 2009

Power Game Factory now compiles Universal Binary game applications that run at native speed on both Intel and PowerPC based Macs. This provides a multifold performance increase over the previous version on Intel based machines.

The new Image Editing Window implements the core functionality of a professional graphics application within Power Game Factory. It may be used to create and modify sprite graphics for characters, scenery, background tiles, and virtually all other game objects. The Image Editing Window features ten painting tools, including a Pencil, Paint Bucket, Zoom Tool, and Marquee Tool. Also included is a customizable color palette and a range of image adjustment options for scaling, rotating, and flipping sprites. Users may switch between the standard Image editing mode and a Mask editing mode, which is used for defining semitransparent areas. A Preview pane provides a fully composited view of each sprite, complete with animation.

Zombie Holiday Prologue, by Michael Dawes, has been added to Power Game Factory as a bundled game project. Users may open and modify both Zombie Holiday Prologue and the exsting Greenland Invasion game project.

The new Content Library Manager window offers a collection of ready-made game objects such as characters, animated scenery, and background tile sets. Now whenever a new object is created, the user is offered the option of importing it from the Content Library. Objects may also be moved from a game project to the Content Library. Additionally, individual objects can be exported and imported to and from the Finder as stand-alone documents, so that they may be shared with other users.

The Game Engine source code has been included in Power Game Factory under the terms of the BSD License. This license allows uses to create commercial applications based on code derived from the game engine without having to pay royalties to Sawblade Software.

The compiler now identifies and merges sets of duplicate image and sound files. This reduces disk space and memory requirements in most game projects, as well as loading times.

A new compiler option allows game graphics to be compressed using the PNG file format. Games using optimized images occupy less disk space, but may take longer to load.

Property names are no longer included within compiled games. This reduces file sizes and makes it more difficult for players to cheat by altering the contents of game resources.

Frame rates during gameplay have been significantly improved, particularly in levels containing large numbers of characters and other objects. This is the result of a rewritten depth sorting algorithm.

Background tiles now contain built-in solid material masks. When a tile is placed in a level, its solidity is altered accordingly. These masks are edited using a simplified painting interface that appears when the Levels Window is set to Tiles mode. This feature streamlines the process of designing tiled backgrounds by significantly reducing the amount of time that must be spent in Mask Mode.

Background tiles may now be set to either 32 by 32 pixels or 64 by 64 pixels.

Parallax background layers may now be animated. This is achieved by assigning an animated scenery object in place of a background layer's main image. To maintain consistency between parallax and non-parallax backgrounds, it is now possible to designate a normal animated scenery object as hidden while in parallax mode.

Parallax background layers may now be quickly repositioned by dragging the mouse while holding down the Command key.

Large non-tiled level background images may now be stored in the JPEG and Targa image file formats.

Resizable objects such as force fields, hot zones, and lighting effects are now easier to select and manipulate when overlapped by other objects.

The location of the cursor is now displayed in the upper right corner of the Levels Window.

Performance has been improved when switching from the Levels Window to other editing windows.

Several cosmetic improvements have been made throughout Power Game Factory. The About Box and Preferences Window have been completely overhauled.

Respawn locations now resemble ghosted versions of the player sprite image in the Levels Window.

When the player loses a life, the camera may now either scroll or jump to the nearest Respawn Location. If a level does not have any Respawn Locations, it reloads and starts from the beginning when the player loses a life.

The controls used to configure level scrolling options have been simplified, and the scrolling algorithm itself has been improved. The new system allows for smoother scrolling while ensuring that the player always remains on screen, even when falling significant distances.

The handling of Screen Settings has been completely overhauled. In addition to offering support for nonstandard screen aspect ratios, the system now makes screen settings easier to configure and more convenient for the end user. Now instead of always filling the screen, the game display scales to the user's preferred size. By default, the screen scales to the largest possible even multiplier of its native size without exceeding the size of the display. This behavior may be overridden, however, if the designer wishes to enforce a more limited set of display options.

Games may now be configured to use an alternative weapon selection scheme, in which pressing the Next Weapon key fires weapon 2, while the normal Attack key fires the player's most powerful weapon. This is similar to the weapon selection scheme used in Metal slug, in which the grenade serves as the Alternate Attack.

Several weapon properties have been added. Now it is possible for a weapon to disappear from the player's inventory when it runs out of ammo. A weapon may also have built-in ammo, so that it can be used even if the player has not collected any accompanying ammo packs. Additionally, a weapon may be disabled when the player is jumping, and its ability to fire at diagonal angles may be controlled.

If the player is using a weapon that does not allow running while attacking, the player is forced to remain stationary until after the point in the attack sequence at which the projectile is released.

If the player is riding in a vehicle that enters within the blast radius of a projectile launched from the vehicle, it is no longer susceptible to damage.

Certain weapon configurations no longer cause incorrect animation frames to appear when the player lands from a jump-attack and starts running.

It is now possible to specify whether a projectile that is placed in a level or created by a routine will detonate upon hitting the player, an enemy character, both, or neither. Previously it was only possible to specify whether such a projectile would detonate upon hitting the player or an enemy character.

When a projectile with a sufficient Area of Effect detonates, it will now destroy any nearby projectiles with differing Collision Class values, causing them to detonate as well.

It is now possible to specify whether a projectile moves more quickly if the attacker is running while firing.

The new projectile property "Collides With Solid Material" determines whether a projectile impacts solid material or passes through it.

Projectile sprites no longer appear upside down when facing towards the left.

When a bouncing projectile comes to a rest on the ground, it no longer vibrates.

The new "radius" property determines the physical thickness of a projectile when it is airborne. If the projectile comes within this distance of a character or other object with which it may collide, it will detonate.

A new projectile property, Never Rotates, makes it possible for a projectile sprite's orientation to remain constant regardless of the direction in which the projectile is facing.

A character that is hit by a projectile while jumping is no longer launched upwards at an excessive speed.

The Attack Range property has been made functional.

The mechanics of Touch Damage have been significantly improved. The new "Injures Player By Touching Him" property determines whether a character is able to damage the player independently of other characters. This makes it possible for a character to damage the player without necessarily hurting other enemy characters with differing collision class values. A new Character Type property, "Touch Damage Rises When Character Is Moving", makes it possible to specify whether a character inflicts greater damage by running into a victim instead of merely touching the victim. If this option is enabled, the amount of damage inflicted and the speed at which the victim is thrown horizontally and vertically will be multiplied by the character's speed. Otherwise, the damage and horizontal and vertical tumbling speed remain fixed.

The Touch Damage Resistance property has been split into "Touch Damage Resistance Horizontal" and "Touch Damage Resistance Vertical" properties, making it possible to create a character whose vulnerability to touch damage attacks differs depending upon the angle from which he is hit. This change makes it easy to set up breakable blocks that can be hit from below but not from other directions.

A new player type property, Stomp Launch Speed, determines the speed at which characters are launched upward after the player stomps on them. This value operates independently of the Touch Damage Launch Factor property, which is used for horizontal collisions.

Enemy characters are now capable of inflicting touch damage whenever the player makes contact with them; it is no longer necessary for the enemy to actively approach the player for touch damage to occur. This change does not apply to characters that have a Horizontal Acceleration Rate of 0 (such characters are assumed to be non-living objects; a rock for example, can only injure the player if it is being propelled toward him at the moment of contact.)

Characters that inflict touch damage no longer injure the player if stomped on. This change allows the player to perform clean stomp attacks upon enemies that may not be contacted in other ways.

If a Character's Behavioral Preset is set to "Maintain Patrol Route", or the character is otherwise patrolling an area, and if his "Avoids Touching Other Characters" property is enabled, he will reverse direction after coming in contact with another character. (In order for this to work, the two characters must have differing Collision Class values, or each Collision Class value must be set to 256.) This makes it possible to reproduce the behavior of Super Mario type enemies.

A dying character may now leave the plane on which the gameplay occurs and tumble downward in front of the level background. This is implemented through the new "Collides With Solid Material When Dead" property.

Character Sets now support a "Mirror Left Frames" option, which reduces the number of animation sequences needed. This improves load times and decreases disk space requirements.

Items with gravitational acceleration rates that are not whole numbers no longer vibrate when resting on the ground, nor do they continually emit "landing" sounds.

It is now possible to specify the maximum distance from which a switch or a door may be manually activated.

Lighting effects are now available in twelve basic shapes, representing spot lights and flood lights of varying sharpness. Additionally, lighting effects may now be configured to illuminate only foreground objects, leaving background layers unaffected.

Routines are now unable to change the properties of a dead player unless triggered by the event of the player's death.

It is now possible to configure a routine that sets a custom respawn location.

It is now possible to configure a routine that sets, increases, multiplies, or divides a variable by another variable. Previously it was only possible to change a variable with respect to a fixed number.

When configuring a routine's performance conditions, it is now possible to establish a test to determine how a variable compares to another variable. Previously it was only possible to compare a variable to a fixed number.

Random sounds no longer continue to play after a level ends. Additionally, it is now possible to specify a given random sound even if the preceding one has been set to "No Random Sound".

New checkboxes in the Status Bar Window make it possible to specify whether large or small digits are used to create the Status Bar's various numerical displays.

It is now possible to individually specify the visibility of the player's health bar, the lives remaining display, and the timer, in addition to the player's score display.

Version 1.0.5
August 27, 2005

The Levels Window now displays backgrounds, scenery, characters, and other objects with proper masking, for an authentic preview of how semitransparent sprites will look in the actual game.

The compiler now optimizes game file sizes by removing unneeded level data. If a level uses background tiles, any data not related to tiles is deleted, and vice versa. The compiler is also removes parallax and non-parallax background data as needed, for a significant reduction in file size.

In saved games, the current level and total time elapsed are now maintained accurately.

The Continue Saved Game Window's interface has been cleaned up. Full level names are now visible, while health bars have been removed (they disappeared on some system configurations.)

Power Game Factory no longer crashes if the user clicks on the desktop while one of the floating Properties window's contextual menus is open.

If a particular control is set to be invisible in a game's Preferences window, its value is automatically set to its default when the game launches. This prevents the program from attempting to access data that had been removed during compilation.

Version 1.0.4
July 24, 2005

The correct transitional frames are now displayed when a player with mirrored frames jumps and turns to the right in mid-air.

The effects of the Falling Damage property have changed; damage is no longer sustained when the character is falling at less than half of his maximum downward speed.

If the player can fly and has a Gravitational Acceleration Rate of 0, he now re-spawns properly instead of hovering in the air indefinitely after dying.

Stomping an enemy can now trigger a Being Hit character routine. Previously, only projectile impacts could trigger Being Hit routines.

If the No Attack Sequence When Running While Firing checkbox is not checked in the Player Sets Window or Character Sets Window, the character's leg turnover animation will no longer be reset when the Attacking while Running frame is displayed.

Contextual menus have been enabled for editing weapon icon masks in the Weapons Window.

When a character releases a child character, the parent is no longer assigned the child's dying related properties.

When a character tilts his weapon up or down, his animation sequence is no longer reset to the first frame. This allows for more fluid running animation sequences.

Version 1.0.3
June 29, 2005

The player's projectile and shell casing origin Y-coordinates are now properly mirrored when a game is being tested. (This was previously corrected in version 1.0.2, but only in compiled games.)

When a level is resized, the user has the option to anchor the level at any one of its four corners, making it possible to expand the level in the desired direction.

The documentation of the Pixel Scale property has been clarified.

Objects are now allowed to move at greater speeds before action is taken to address perceived collision resolution errors.

Rapidly pressing Command-N no longer delays the Begin Game process.

Holding Command-Q for a long time no longer interrupts the Quit process.

Version 1.0.2
June 22, 2005

The display is automatically switched to Millions of colors as a game starts up, eliminating a problem in which the wrong level background tiles appeared when the display was set to Thousands of colors.

The Greenland Invasion game project has been fine-tuned; snowfall is no longer as demanding upon the CPU.

The player's projectile and shell casing origin Y-coordinates are now properly mirrored when updated. This allows new player sprites of different sizes to be used successfully when the "Mirror Left Frames" checkbox is checked.

The Error Log file now stores up to 1000 entries; it is located at ~/Library/Application Support/Power Game Factory/Power Game Factory Error Log.txt.

Version 1.0.1
June 12, 2005

Portions of non-tiled level backgrounds no longer disappear on large displays when scrolling to the left.

Power Game Factory windows are no longer restricted to 2048 pixels in width on large displays.

When a game is tested, the Game Test application launches from the user's Library folder, rather than from within the Power Game Factory application package. This makes it possible to assign a controller configuration to Game Test using keyboard mapping software such as USBOverdrive.

The appearance of the toolbar in the Levels Window has been modernized.

When object types are renamed, the first letter of each word in the name is now capitalized to avoid alphabetization errors.

The size of the audio files in the default game project have been significantly reduced.

Changing the name of a character type and then immediately changing it back no longer results in an error message.

Power Game Factory no longer hangs when trying to overwrite "open" files within game projects that are being deleted or saved over; any problematic files are moved to the Trash.

Version 1.0
May 31, 2005

Initial Release