Sketchy Maze is a drawing-based maze game.
The game is themed around hand-drawn, side-scrolling platformer type mazes. You can draw your own levels using freehand and basic drawing tools, color in some fire or water, and drag in pre-made "Doodads" like buttons, keys and doors to add some interaction to your level.
This is a very early pre-release version of the game. Expect bugs and slowness but get a general gist of what the game is about.
This alpha release of the game comes with some example levels built-in for playing or editing and a handful of built-in Doodads.
See the Guidebook included with this game for good user-facing documentation or online at https://www.sketchymaze.com/guidebook
(Eventually), the high-level, user-facing features for the game are:
(Eventually) all these features will support custom content in the game:
Escape Close the developer console if open, without running any commands. Exit the program otherwise. Enter Open and close the developer console, and run commands while the console is open. F3 Toggle the Debug Overlay. F4 Toggle debug collision hitboxes.
In Play Mode:
Cursor Keys Move the player around. "E" Key Edit the map you're currently playing if you came from Edit Mode.
In Edit Mode:
Cursor Keys Scroll the view of the map around. "P" Key Playtest the current map you're working on. "F" Key Switch to the Pencil (Freehand) Tool "L" Key Switch to the Line Tool "R" Key Switch to the Rectangle Tool Ctrl-Z Undo Ctrl-Y Redo
A brief introduction to the built-in doodads available so far:
Enter at any time to open the developer console. The console
provides commands and advanced functionality, and is also where cheat
codes can be entered.
The following cheats can be entered into the developer console.
give all keys
drop all items
unleash the beast
don't edit and drive
scroll scroll scroll your boat
Unsupported shell commands (here be dragons):
reload: reloads the current 'scene' within the game engine, using the existing scene's data. If playing a level this will start the level over. If editing a level this will reload the editor, but your recent unsaved changes should be left intact.
guitest: loads the GUI Test scene within the game. This was where I was testing UI widgets early on; not well maintained; the
closecommand can get you out of it.
To enable certain debug features or customize some aspects of the game, run it with environment variables like the following:
# Draw a semi-transparent yellow background over all level chunks $ DEBUG_CHUNK_COLOR=FFFF0066 ./doodle # Set a window size for the application # (equivalent to: doodle --window 1024x768) $ DOODLE_W=1024 DOODLE_H=768 ./doodle # Turn on lots of fun debug features. $ DEBUG_CANVAS_LABEL=1 DEBUG_CHUNK_COLOR=FFFF00AA \ DEBUG_CANVAS_BORDER=FF0 ./doodle
Supported variables include:
DOODLE_Hset the width and height of the application window. Equivalent to the
D_SCROLL_SPEED(int): tune the canvas scrolling speed. Default might be around 8 or so.
D_DOODAD_SIZE(int): default size for newly created doodads
D_SHELL_BG(color): set the background color of the developer console
D_SHELL_FG(color): text color for the developer console
D_SHELL_PC(color): color for the shell prompt text
D_SHELL_LN(int): set the number of lines of output history the console will show. This dictates how 'tall' it rises from the bottom of the screen. Large values will cover the entire screen with console whenever the shell is open.
D_SHELL_FS(int): set the font size for the developer shell. Default is about 16. This also affects the size of "flashed" text that appears at the bottom of the screen.
DEBUG_CHUNK_COLOR(color): set a background color over each chunk of drawing (level or doodad). A solid color will completely block out the wallpaper; semitransparent is best.
DEBUG_CANVAS_BORDER(color): the game will draw an insert colored border around every "Canvas" widget (drawing) on the screen. The level itself is a Canvas and every individual Doodad or actor in the level is its own Canvas.
DEBUG_CANVAS_LABEL(bool): draws a text label over every Canvas widget on the screen, showing its name or Actor ID and some properties, such as Level Position (LP) and World Position (WP) of actors within a level. LP is their placement in the level file and WP is their actual position now (in case it moves).
Copyright (C) 2021 Noah Petherbridge. All rights reserved.