Homepage: https://www.sketchymaze.com
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:
Global Keybindings:
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:
Press 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.
Commands supported:
close
Exit to the game's title screen.
new
Show the "New Level" screen to start editing a new map.
save [filename]
Save the current map in Edit Mode. The filename is required
if the map has not been saved yet.
edit [filename]
Open a map or doodad in Edit Mode.
play [filename]
Open a map in Play Mode.
echo <text>
Flash a message to the console.
alert <text>
Test an alert box modal with a custom message.
clear
Clear the console output history.
exit
quit
Close the developer console.
boolProp <property> <true/false>
Toggle certain boolean settings in the game. Most of these
are debugging related. `boolProp list` shows the available
props.
eval <expression>
$ <expression>
Execute a line of JavaScript code in the console. Several
of the game's core data types are available here; `d` is
the master game struct; d.Scene is the pointer to the
current scene. d.Scene.UI.Canvas may point to the level edit
canvas in Editor Mode. Object.keys() can enumerate public
functions and variables.
repl
Enters an interactive JavaScript shell, where the console
stays open and pre-fills a $ prompt for subsequent commands.
The JavaScript console is a feature for advanced users and was used while developing the game. Cool things you can do with it may be documented elsewhere.
The following cheats can be entered into the developer console.
Play Mode:
import antigravity
ghost mode
give all keys
drop all items
Experimental:
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 close
command 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_W
and DOODLE_H
set the width and height of the application
window. Equivalent to the --window
command-line option.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 doodadsD_SHELL_BG
(color): set the background color of the developer consoleD_SHELL_FG
(color): text color for the developer consoleD_SHELL_PC
(color): color for the shell prompt textD_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.
0.0056s
.