Microgame Inventor

From Pin Eight
Jump to: navigation, search

Microgame Inventor may be a prosumer-oriented rapid video game development tool for Android OS, based on the model of WarioWare D.I.Y. for Nintendo DS.

System requirements

  • Android-powered device with touch screen
  • Rights to install .apk files from unknown sources. Like Apple's App Store, Google Play Store has a non-compete policy against applications that let the user download other applications. But the vast majority of devices expose this checkbox to the user, and those few that do not (mostly early AT&T phones) still allow installing applications through Android Debug Bridge.

User interface

Microgame Inventor will use a menu structure based on Game MakerMatic of WWDIY. The Game MakerMatic interface is described here as a starting point:


The background is 192x128 pixels.

Each object can be 16x16, 32x32, 48x48, or 64x64 pixels. Each 256 pixels cost one of 256 object points. Each object has 1 to 4 arts, each with 1 to 4 cels.

All graphics are 4bpp with a constant palette.

need to continue describing the paint tools


Each of 4 melodic channels has a 32-entry pattern with 25 pitches from G-4 to G-6 and 1 per row, balance -2 to +2, volume 0 to 4, and one of 48 instruments. Rhythm has a 32-entry pattern with 13 different sound effects and up to 4 per row, balance -2 to +2, volume 0 to 4, and one of 8 drum kits.


  • Name: 12 characters
  • Instruction: 12 characters
  • Description: 2 lines, each ? characters
  • Cart color and shape
  • Label color and design
  • Length: 32 or 64 rows
  • Name of each object: 9 characters
  • Name of each art: 9 characters


AI, or Action Instructions, consists of scripts that objects follow. They take the following form: when a condition is met, a set of actions activate.


Each object has an initial art set action and a jump to action.


Each object has an initial depth relative to other objects. This cannot change during gameplay. All objects are in front of the background.


Each object has 5 lists of conditions, each of which triggers a list of actions if all are true.

  • Tap
    • When screen is tapped
    • When self is tapped
  • Time
    • First frame of random row between X and Y
  • Collision
    • X begins to overlap rectangle
    • X overlaps rectangle
    • X begins to overlap Y
    • X overlaps Y
  • Switch
    • X becomes false
    • X is false
    • X becomes true
    • X is true
  • Art
    • Art of self is X
    • Last frame of art of self
  • Win/Loss
    • Game becomes won
    • Game is won
    • Game is not won
    • Game becomes lost
    • Game is lost
    • Game is not yet lost


  • Travel
    • Go straight
      1. Start from
        • Current location
        • Point (X, Y)
        • Offset (X, Y) from object Z's hot spot
      2. Direction
        • Specific direction 0, 45, ..., 315
        • Random direction
        • Toward (X, Y)
      3. Speed: 1-5
    • Stop
    • Jump to
      • Location within rectangle
      • Location within rectangle, with try not to overlap
      • Attach to offset (X, Y) from object Z's hot spot
    • Swap positions with object X
    • Roam
      1. Pattern
        • Wiggle
        • Insect
        • Reflect
        • Bounce, peaking at top of rect and reflecting off sides and bottom
      2. Area
        • Rectangle
        • Rectangle, with try not to overlap
      3. Speed: 1-5
    • Target object X, speed 1-5
  • Switch
    • Set self to true
    • Set self to false
  • Lose
  • Art
    • Set
      1. Frame set 1-4
      2. Speed: 0-5
      3. With or without loop
    • Pause
  • Sound
    • Play sound effect X (0-63)
  • Stage effect
    • Flash
    • Shake
    • Confetti
    • Freeze

Win conditions

Win conditions are based on whether an object's switch is true or false.

When all conditions on any of 6 lists are true, and the game is not yet lost, win.

Planned improvements over WWDIY

Droid does what iDon't and also what Nintendon't. Describe WWDIY's limitations here.


Allow an object's hitbox to be drawn smaller than the object's active area. This would allow for grazing hits, where not all of an object's art is within the collidable region.

Allow lossless compression of art, without which twice as many object points are needed.

Give each cel an anchor point that other objects can target. This anchor point moves through the animation, so that e.g. a weapon can follow the hand carrying it. Clickteam products call this the "action point".

  • PNG import/export, without which things must be redrawn
  • Copy pixels between cels
  • Shrink or expand the boundary size of the art of a given object



  • Directional pad support on devices with one, a keyboard, or multitouch. The A button taps "anywhere on stage".
  • Or operator, without which AIs must be repeated
  • Not operator
  • One shot operator (forces evaluation of this expr every frame)
  • Randomizer other than time at start of round


Without the ability to read the location of the last tap, the stylus in WWDIY acts more like a Zapper than like a Super Scope or even like the stylus from Touched!.

  • Travel
    • Jump to
      • Latest tap location
      • Latest slide location
    • Target object
      • Latest tap location
      • Latest slide location

Clickteam products group objects into classes. Interactions between object X and object Y represent any object in class X and any object in class Y. Without classes, several identical objects must have duplicated AI. It's also difficult for an object to appear to create, shoot, or spawn several other objects without classes.

Allow objects' horizontal and vertical flip state to be set and read. Without flipping, twice as many object points are needed.


  • numeric counters
  • 1D arrays of objects
  • 2D array backgrounds with scrolling
  • Object priority change
  • Longer durations, without which only hackers can make boss games
  • Expression evaluator
  • Trigger when animation finishes playing even if 1 frame long, without which delays take twice as many object points
  • Jump physics, possibly involving allowing bounce rects to relocate relative to the current position