Sketchy Maze

"a drawing-based maze game."

Features

The following are the game’s current features and its planned features before the game leaves “alpha” status. There is a list of crucial “1.0” features and some ideas for where I may take this game further down the road. I plan on making this game my “forever project” and keep adding to it and releasing updates for as long as I find it interesting.

Screenshot of the level editor

“1.0” Features

The expected feature list for the “1.0” version of the game, and how far along I am. The general idea of what “1.0” will look like is that it will have these features:

  • Single Player Campaigns (Story Mode):
    • The game would come with at least one single-player campaign of built-in levels which are completed in sequence.
    • The player’s progress and high scores on a level pack are saved. Some levelpacks can have their later levels “locked” until the player completes earlier levels.
    • Players can create their own Level Packs too and share them with others.
  • Level Editor & Custom Levels:
    • A fully featured level and doodad editor is included, with all the tools needed to create custom content.
    • Custom doodad files can be copied and shared to other computers (and placed in the right game folder) and be used in custom levels.
    • Custom level packs that use only the built-in doodads are perfectly supported; if they require custom doodads, players need to install the doodad files manually.
  • Full Version Extras:
    • The full version adds extra qualify-of-life improvements in support of custom user content, to make it easier to share custom levels which use custom doodads.
    • The ability to create a .level file which embeds all of its custom doodads inside the level’s data for easy transport to another computer. The level brings everything it needs, so no need to juggle custom doodad files by hand!
    • The ability to play a .level file which embedded its custom doodads.
    • By extension, the ability to play a Level Pack whose levels use custom doodads and everything will just work by simply downloading the one .levelpack file and loading it in your game!

Some details of features and current progress towards the 1.0 release:

  • Single Player:
    • Campaigns system to define one or more series of levels (Level Packs).
    • At least chapter of built-in levels.
    • Scoring, savegame and progression system.
    • At least 12 levels in one level pack together
      • As of v0.10.0: I have 5 levels in First Quest and 3 in Tutorial (8 total)
      • Minimum for “1.0”, more levels can be added in free updates.
  • Level Features:
    • Set of built-in wallpaper images of paper-themed level backgrounds.
    • User can pick a custom wallpaper image which attaches to the level file.
    • Page Types:
      • Bounded: a limited size sheet of paper with a top and left margin.
      • No Negative Space: a sheet of paper with infinite room to grow.
      • Unbounded: an “infinite” sheet of paper with room to grow in all directions.
      • Bordered: a bounded sheet of paper with decorations wrapping around all four edges.
      • Player can configure the limits of bounded levels.
    • Patterns for your level colors to give them textures like pencil graphite or marker when drawn onto your level.
      • Support for custom user-created patterns
  • Level Editor:
    • Easily switch between Play Mode and Edit Mode to test your level.
    • Draw your own pixels anywhere you want.
    • Basic Drawing Tools: Pencil, Line, Rectangle, Ellipse, Eraser
    • Undo/Redo
    • Zoom In/Out
    • Editable Palette to add and modify colors and their properties.
      • Color properties: decoration (default), solid, fire, water
      • Maybe: destructable, slippery, wire, semisolid.
    • Place doodads and link them together
  • Wallpaper Themes:
    • Notebook: standard blue ruled notebook paper.
    • Blueprint: dark blueprint paper.
    • Legal pad: yellow legal pad with blue and red lines.
    • Blank sheet: a texture of a blank white sheet of paper.
    • Grid paper: a white page with grid pattern.
    • Dotted paper: dots of various colors spaced and aligned like the grid paper.
    • Pure white: just a solid white background with no texture.
    • Placemat: a wavy pattern meant to decorate all four sides of a Bordered map.
    • Custom Wallpaper: users can bundle a custom wallpaper texture inside their level file (supported for the free version too!)
  • Doodad Editor:
    • Fully create all artwork (multiple frames) using in-game tools
    • Attach and manage a JavaScript source file on your doodad in-game
    • The game includes some “generic scripts” built-in that can generally apply to any doodad, allowing players to create simple obstacles without needing to even touch any JavaScript:
      • Generic Solid: the hitbox of your doodad acts solid.
      • Generic Fire: the hitbox of your doodad acts like fire.
      • Generic Anvil: your doodad behaves just like the Anvil.
      • Generic Collectible: your doodad can be picked up and sit in the player’s inventory, quantity configurable in its tags.
      • Generic Warp Door: that will work with the game’s built-in doors.
      • Generic Creature: a method to create a working character completely in-game that can be played as by linking it to the Start Flag.
  • Custom Content:
    • A Guidebook that ships with the game and is available online provides thorough documentation about the game’s features and how to create custom content.
    • Custom doodads can be programmed in JavaScript and the game’s built-in doodads are using the same API as everybody else. The API will expand as the engine gains new features.
    • Custom wallpapers to use as your level background (full color photos, pixel art, whatever!)
    • The game ships with the doodad tool which provides advanced features for manipulating levels and doodads:
      • Convert a PNG image into a .level file (full-color pixel art levels perfectly ok!)
      • Convert a .level file back into a PNG image
      • Create a .doodad file using PNG images to define their layers.
      • Read and modify properties on levels and doodads
      • Manage the attached JavaScript source for a doodad
  • Full Version Extras:
    • Level editor: User can “publish” their level which produces a .level file which attaches any custom doodads the level needs into the one file.
    • Ability to play levels which embed their custom doodads.
    • Ability to play level packs whose levels embed their custom doodads.

Future

Some ideas I have for where the game can go after “1.0”:

  • Online services in-game for sharing levels and doodads with others.
    • For full versions of the game.
    • Players would be able to log on, browse levels and doodads uploaded by other players, and easily download and play them.
  • Multiplayer features:
    • Two-player level gameplay mode. (Possibly more than two players).
    • Multiplayer collaboration for the Level Editor?
    • Ability to play and edit a level both in real time?
  • Mobile ports of the game (Android, Pinephone)
    • There is an example Go SDL2 Android app so getting an Android build may not be too difficult.
    • The game already “kinda works” on the Pine64 Pinephone running GNU/Linux. That device will be used to develop/test more touch-friendly user interfaces for the game ahead of any effort being put into Android.
    • Don’t hold your breath for iOS support.
Copyright © 2022 Noah Petherbridge.