Kirsle.net logo Kirsle.net

Doodad Ideas

Doodle is in need of a handful more basic doodads to make interesting levels. Here's a set of ideas for possible new ones to add.

See also: the existing doodads in the game so far.

Screenshot of some doodads

Mobs

Bird

Some kinda flying bird mob may be easy to design and with relatively few sprites needed.

Its AI behavior should be programmed to:

  • Fly left and right while maintaining its altitude (Y-coord) of where it was placed on the level.
    • When it comes near a wall, it should turn around, like the Red Azulian; but it should not TOUCH the wall. It should scan ahead and turn around before colliding.
  • It should dive bomb the player when it comes within range.
    • Scan a 45-degree angle downward from the bird's current position and in the direction it is currently facing. If the player is spotted (and no solid wall is in the way) begin the diving animation (probably a single sprite).
    • Upon hitting the player or touching the floor, it should leave the dive animation and slowly fly back up until it reaches its original Y-coordinate.
    • If it encounters a wall while flying back up it should change direction and continue flying up in the opposite direction.

Azulians (Easter Egg)

The current Red Azulian mob is a placeholder that simply walks left and right along the ground, changing direction after bumping into a wall, and does not harm the player (due to lack of HP system added to the game).

The Azulian should have a more aggressive AI that pathfinds towards the player character and jumps at them, causing damage.

Note: this AI may be given to a more official mob of some variety and only copied as the AI for the secret Azulian enemies.

General: A.I. Patterns

Just some quick ideas of basic AI patterns. Mobs should be designed around some of these patterns but exact details of what the mob looks like are to be determined.

  • Simple walking back-and-forth (like the Red Azulian currently)
  • Walking back-and-forth, but move quicker when facing the player character.
  • Flying back-and-forth without touching the ground (like the Bird described above)

Doodads

Treasure Chest

The Chest should be able to hold an item or other doodad and release it upon interaction with the player.

A Chest will be dragged into a level, and then with the Link Tool you connect it to the item doodad that it will contain. The item can be placed anywhere in the level, probably close by to the chest, its level position doesn't really matter.

When the Chest initializes in the level on Play Mode, it should emit a hide signal to its linked item, which should turn the item invisible. (This may be handled at the game engine level rather than each doodad needing to be programmed to respond to this; tho they can still listen for the signal if they need custom code?)

When the treasure chest is opened by the player:

  • Teleport the linked doodad onto the chest, and make it visible.
  • Animate the item moving from "inside" the chest to hovering a number of pixels above the top of the chest sprite. During this animation, the item should NOT interact with the player, for example, a Key should NOT be picked up if the player is already 'touching' its sprite (as they likely will be).
  • After the item lingers above the chest for a moment, it will become active to be interacted with (a key may disappear into the user's inventory at this time).
  • In case the item doesn't disappear, after a moment it should "fall" back down to match the Y-coordinate of the Treasure Chest, and then the Chest itself should disappear out of existence.

The latter covers an edge case: what if the user linked a Chest with (say) a Button or some other doodad that isn't an item? The Button would not disappear into the user's inventory the way a Key would, so it should fall back to the ground taking the place of the treasure chest and remain there the rest of the level. This could also allow monsters to be kept in chests too (during the "rise above the chest" animation, a monster would not damage the player as interaction is disabled).

If a Treasure Chest is not linked to any doodad, the chest should immediately display an "opened" sprite and be purely decorative and non-interactable to the player.

Checkpoints

The Checkpoint doodad will remember the player's progress when they arrive at the checkpoint on a level. In case they run out of HP they will respawn at the last checkpoint touched.

  • Each Checkpoint can only be activated one time.
  • The most-recently activated Checkpoint becomes the player's respawn point on the level.

However, if you use the Link Tool and connect two Checkpoints to each other:

  • Activating one Checkpoint will deactivate any linked checkpoint.

So for larger puzzle levels you could have a pair of mutually-exclusive checkpoints that can be activated in alternating order, and behave more like Mario Maker and less like Sonic the Hedgehog.

Warp Doors

Warp Doors can be entered by the player which will take them to another door somewhere else on the same level.

To set up the warp you would drag in 2 doors and then use the Link Tool to connect them together. When the player "activates" a Warp Door it should play an opening animation, hide the player sprite, close the door and then the camera should scroll until the linked door is on screen and the player will appear there with the animations in reverse on that door.

In case a Warp Door is linked to 2 or more doors, the door the player is taken to should be "random" (fixed RNG seed at level initialization for predictable behavior).

If a Warp Door is not linked to another door, it should play a "locked" animation if the player tries to activate it.

State Doors

These would be a variant on the Warp Door that combines it with the ON/OFF State Block doodads. The doors would come in an Orange and a Blue variety similar to the state blocks.

When the state is "BLUE", the Blue Door should be solid and usable and the Orange Door should render as a hollow dotted rectangle. When the state becomes "ORANGE" the two doors shall switch roles.

Iron Locked Doors

The current Locked Door doodads come in 4 colors and have corresponding keys; once the player holds the key they can unlock unlimited doors of the matching color.

An Iron Locked Door however would be different, and act like "small key doors" in Zelda-like games.

Small Keys would be collectable items with a quantity and each key can unlock an Iron Door one time, which consumes the key.