Browse Source

v0.4.0 Release Version Candidate

master
Noah Petherbridge 4 years ago
parent
commit
26bbe79b2e
  1. 40
      docs/about.md
  2. 34
      docs/custom-doodads/edit-in-game.md
  3. 7
      docs/custom-doodads/scripts.md
  4. 214
      docs/custom-levels/index.md
  5. 129
      docs/doodads.md
  6. 15
      docs/experimental.md
  7. 172
      docs/hacking.md
  8. 54
      docs/hotkeys.md
  9. BIN
      docs/images/about.png
  10. BIN
      docs/images/doodad-editor.png
  11. BIN
      docs/images/doodads.png
  12. BIN
      docs/images/jsrepl.png
  13. BIN
      docs/images/link-tool.png
  14. BIN
      docs/images/main-menu.png
  15. BIN
      docs/images/newlevel-1.png
  16. BIN
      docs/images/newlevel-2.png
  17. BIN
      docs/images/palette-rgba.png
  18. BIN
      docs/images/palette.png
  19. BIN
      docs/images/shell.png
  20. BIN
      docs/images/sprites/actor-tool.png
  21. BIN
      docs/images/sprites/ellipse-tool.png
  22. BIN
      docs/images/sprites/eraser-tool.png
  23. BIN
      docs/images/sprites/line-tool.png
  24. BIN
      docs/images/sprites/link-tool.png
  25. BIN
      docs/images/sprites/new-button.png
  26. BIN
      docs/images/sprites/pencil-tool.png
  27. BIN
      docs/images/sprites/rect-tool.png
  28. 10
      docs/profile-directory.md
  29. 10
      mkdocs.yml

40
docs/about.md

@ -1,3 +1,41 @@
# About Project: Doodle
Lorem ipsum.
Project: Doodle is a "drawing-based maze game" themed around hand-drawn mazes
on paper.
![Screenshot of the level editor](../images/about.png)
You can draw your own custom maps, freehand or with some basic drawing tools,
and then drag and drop pre-made "[doodads](doodads.md)" into your level for
interactive things like keys, doors and buttons.
This is an **early alpha build** of the game. Longer term it will include a couple
built-in "single player campaigns" of multiple themed levels, but for now it
just includes a couple example levels and the editor itself.
## Inspiration
When I was a kid in the era of Sega Genesys and Super Nintendo, I liked to
draw my own levels with pen and paper and "play" them with my imagination. My
"mouse mazes" had all sorts of features borrowed from videogames I liked.
There were buttons that the player had to push that would open a door far
across the level (and I'd draw a little dotted line showing the connection
between the button and the door). Trapdoors would have the player fall through
and then close behind them so they can't go back. Keys in different shapes
could unlock doors in similar shapes (you'd just have to remember which keys
you've got!)
When you're drawing with a pen and paper, the level can be anything you want.
You can draw a castle or a cave, place little gizmos and traps throughout the
level (doors, keys, buttons and things) to create puzzles. Do you want the red
pixels to mean "fire" and burn the player? Or do you want to decorate the tops
of "bloody" spikes with red? Either way, the 'fire' attribute on that color will
do the job and you can draw whatever shape you want for your level hazards.
![Palette editor](../images/palette.png)
## Mod Friendly
While the game ships with a [handful of built-in doodads](doodads.md) to
spice up your level, you can also create your own and program them to do
whatever you want, with JavaScript!

34
docs/custom-doodads/edit-in-game.md

@ -1,27 +1,35 @@
# Drawing a Doodad In-Game
Project: Doodle has some **limited** support to draw your doodad sprites
in-game. Currently you can only draw one frame (image) for the doodad
and save it to disk.
Project: Doodle has support for drawing your custom doodad sprites in-game,
although for now you may find it more comfortable to use an
[external image editor](edit-external.md) instead.
To start a new doodad, open the game and enter the level editor.
To start a new doodad, open the game and enter the level editor. Select the
"File -> New Doodad" menu at the top of the screen. You will be prompted for
the square dimensions of your doodad (i.e. `100` for a 100x100 sprite) and
you can begin editing.
Select the "New Doodad" button at the top of the screen to start drawing a
new doodad. Choose the size (square) of its sprite when prompted.
![Screenshot of the Doodad editor](../images/doodad-editor.png)
Doodads saved in-game go in your user config directory for the game. On Linux,
this is at ~/.config/doodle.
## Layers
If you want to create a doodad with multiple frames (to animate it or have
varying states that change the doodad's appearance in the level), the
`doodad` tool is recommended. See
[drawing images in an external program](edit-external.md).
A key difference between Levels and Doodads are that Doodad drawings can have
multiple **layers**. For doodads these are used to store multiple frames of
animation or different states, such as an opened vs. closed door.
Clicking the **Lyr.** button on the left toolbar or the "Tools -> Layers"
menu will open the Layers window where you can switch your editor between
layers, add and rename them. Layers can be toggled by the doodad's
[JavaScript code](scripts.md) by index number or by name, so giving each layer
a descriptive name is useful.
Doodads saved in-game go in your [user config directory](../profile-directory.md)
on your system.
## Future Planned Features
Creating doodads in-game is intended to be a fully supported feature. The
following features are planned to be supported:
* Support editing multiple frames instead of only the first frame.
* Implement some features only available on the `doodad` tool using in-game
UI, such as attaching JavaScripts to the doodad.

7
docs/custom-doodads/scripts.md

@ -5,7 +5,12 @@ and ability to interact with the player and other doodads.
Doodad scripts are run during "Play Mode" when a level _containing_ the doodad
is being played. You can install a JavaScript (.js) file into a doodad using
the command-line `doodad` program.
the `doodad` [command line program](../doodad-tool.md) that
shipped with your game:
```bash
> doodad install-script index.js filename.doodad
```
An example Doodad script looks like the following:

214
docs/custom-levels/index.md

@ -1,6 +1,6 @@
# Creating Custom Levels
One of the core gameplay features is its Level Editor which lets you draw your
One of the core gameplay features is the Level Editor which lets you draw your
own custom maps to play and share with others.
From the game's Main Menu, click on the "Create a Level" button to open the
@ -12,6 +12,8 @@ button instead.
When creating a new level, you first choose some settings for it. These are
described below:
![Screenshot of New Level dialog](../images/newlevel-1.png)
### Page Type
This setting controls the size and boundaries of your level, and control the
@ -27,6 +29,8 @@ appearance of the notebook paper background of your level.
grow your level. The wallpaper on this level type only uses the "tiling"
pattern, so notebook-themed levels won't show the top/left decorations.
You can change these settings later if you change your mind.
### Wallpaper
The wallpaper affects the "theme" of your level. Project: Doodle is themed around
@ -54,46 +58,194 @@ lines pattern. The page types and their effect on the wallpapers are:
* **Unbounded** levels only use the repeating tiled pattern across the entire
level, because there is no top-left boundary to anchor those decorations to.
## Editor Mode Interface
## Editor Interface
![Level Editor View](../images/newlevel-2.png)
![Level Editor View](../images/editor-1.png)
This is the level editor. You can click and drag on the blank page and begin
drawing a level. The toolbar down the left has various drawing tools: Pencil
(freehand), Line, Rectangle, Ellipse. The toolbar down the right is your level
palette. You can mouse-over most buttons and see an immediate tooltip appear
that describes what it is.
Quick 5-minute tour of what you're looking at:
Quick 5-second overview of the editor interface:
* The top of the window has your **Menu Bar**:
* **New Level** opens the "Create a New Level" menu.
* **New Doodad** opens the Doodad Editor for drawing a new custom doodad.
You're prompted for the size of the doodad, which will be its width and
height boundary. For example, a size of "100" means a 100x100 pixel graphic
for your custom doodad.
* **Save** and **Save as...** let you save the current Level or Doodad you're
drawing to disk. "Save" will only ask for the filename once whereas "Save as"
asks every time.
* **Load** opens the "Edit a Level" menu to choose a Level or Doodad to edit.
* **Options** options the Level Options dialog so you can modify the page type
and wallpaper setting.
* The top of the window has your [**Menu Bar**](#menu-bar), a common sight on desktop applications.
* The panel on the left side of the window is your **Tool Box**. Clicking these
buttons activates a specific drawing tool or mode:
* **Pencil Tool** lets you click, drag, and draw pixels of your selected
Palette color onto your level freehand.
* **Line Tool** lets you easily draw a straight line between two points. Click
* <img src="../images/sprites/pencil-tool.png" width="16" height="16">
**Pencil Tool** lets you click, drag, and draw pixels of your selected
Palette color onto your level freehand. Shortcut key: `f`
* <img src="../images/sprites/line-tool.png" width="16" height="16">
**Line Tool** lets you easily draw a straight line between two points. Click
in your level where you want the first point to be, and drag your mouse to
the second point. Release the mouse to commit the line to your drawing.
* **Rectangle Tool** lets you easily draw rectangles on your level.
* **Ellipse Tool** lets you draw circles or elliptical shapes.
* **Doodad Tool** lets you drag doodads such as buttons and doors onto your
level. See the [Doodad Tool](#doodad-tool) below.
* **Link Tool** lets you link doodads together so that they can interact off
Shortcut key: `l`
* <img src="../images/sprites/rect-tool.png" width="16" height="16">
**Rectangle Tool** lets you easily draw rectangles on your level. Shortcut: `r`
* <img src="../images/sprites/ellipse-tool.png" width="16" height="16">
**Ellipse Tool** lets you draw circles or elliptical shapes. Shortcut: `c`
* <img src="../images/sprites/actor-tool.png" width="16" height="16">
**Doodad Tool** lets you drag doodads such as buttons and doors onto your
level. See the [Doodad Tool](#doodad-tool) below. Shortcut: `d`
* <img src="../images/sprites/link-tool.png" width="16" height="16">
**Link Tool** lets you link doodads together so that they can interact off
each other. For example, a Button connected to an Electric Door will cause
the door to open and close when the button is pressed. See [Link Tool](#link-tool)
below.
* **Eraser Tool** cleans up your mistakes. Click and drag over pixels you've
drawn to delete the pixels from your level.
* **Brush Size:** the "Size:" label shows the brush size of your current drawing
tool. This translates to the line thickness, or how big your pixels are when
drawn into the level. Click the + and - buttons to increase or decrease the
brush size, and draw thicker or thinner lines.
* <img src="../images/sprites/eraser-tool.png" width="16" height="16">
**Eraser Tool** cleans up your mistakes. Click and drag over pixels you've
drawn to delete the pixels from your level. Shortcut: `x`
* The **Size:** label on the left controls the brush size of your current drawing
tool. This translates to the line thickness, or how big your pixels are when
drawn into the level. Click the + and - buttons to increase or decrease the
brush size, and draw thicker or thinner lines.
* The panel on the right side of the window is your **Palette** of colors to
draw with.
draw with. Mouse over a color to see its name and properties -- different
colors may mean different things!
* The **Edit** button will open the Palette Editor where you can change a
color, rename it, and set its properties. See [Color Attributes](#color-attributes)
---
## Palette Editor
![Screenshot of the Level Palette editor](../images/palette.png)
Clicking the "Tools" menu and "Edit Palette", or the Edit button on the
palette toolbar on the right side of the screen, will open the palette editor.
Levels are designed to have a limited color palette, and this is your selection
of colors for the level or doodad you're drawing. You can click on "Add Color"
to create more rows as needed.
### Color Attributes
The **Attributes** column toggles behaviors on or off for this color. In the default
color palette, black pixels make up your **solid** level geometry, red pixels are
**fire**, and blue pixels are **water**.
By default the color will be purely decorative, not physically colliding with the
player or affecting them in any way.
The attributes and their meanings are:
* **Solid**: the player character and other mobile doodads will collide against
pixels drawn in this color. Useful for your level geometry.
* **Fire**: if the player touches pixels of this color, they die!
* **Water**: will act like water, currently it just draws the player blue.
### Changing Colors
Clicking on the colored square will prompt you to enter a new color in
hexadecimal notation, like `#FF00FF` for <span style="color: #FF00FF">magenta</span>
or `#0099FF` for <span style="color: #0099FF">light blue</span>. Colors can
be entered in the following formats (the # prefix is actually optional):
* 3-digit hexadecimal: `#F0F` or `#09F`
* 6-digital hexadecimal: `#0099FF` or `#FC390E`
* 8-digit RGBA: `#0000FF99`
You can also set the color to be **semi-transparent** by providing an
additional two hex characters for its alpha channel:
![Enter an RGBA color value for see-thru colors](../images/palette-rgba.png)
> Pictured: I have set the "solid" color to #000000**33** giving it an alpha
> value -- making it semi transparent against the level wallpaper.
## Doodad Tool
When clicking on the <img src="../images/sprites/actor-tool.png" width="16" height="16"> **Doodad Tool** or
pressing the `d` key, the Doodads window will appear in the level editor:
![Doodads window](../images/doodads.png)
Doodads are objects you drag and drop into your level to add interactive elements
such as enemies and buttons. Mousing over a doodad will tell you its name, and
the pager buttons at the bottom can show more options.
Click and drag a doodad from the Doodads window onto your level to place it.
When the **Doodad Tool** is active on the left toolbar, when you mouse over an
existing doodad on your level, and orange box will appear around it. You may
click and drag to move this doodad somewhere else. Right-click it to remove it
from your level.
* Left click: move a doodad somewhere else on your level.
* Right click: remove the doodad from your level.
Doodads provide various useful features to your level:
* **Keys and Locked Doors** let you place collectible keys around the level which,
when obtained, allow the player to permanently unlock doors of the same color
and open new paths on the level. There are four pairs of keys and doors.
* **Buttons and Switches** let you open and close **Electric Doors** and trigger
other devices to which they are linked.
* **Trapdoors** provide one-way gates; once the door has swung shut, it can not
be entered from the wrong side!
To connect buttons to control doors, use the
<img src="../images/sprites/link-tool.png" width="16" height="16"> **Link Tool.**
## Link Tool
The <img src="../images/sprites/link-tool.png" width="16" height="16"> **Link Tool**
allows you to pair two doodads on your level together. This allows the doodads
to communicate events with each other, for example, so a button can open an
electric door when pressed.
![Link Tool](../images/link-tool.png)
This screenshot shows several buttons and switches that are linked to several
electric doors. With the Link Tool selected, mouse over a doodad on your level
and a magenta box appears around it. Click on it, and then click on the other
doodad to pair it to. A glowing magenta line will connect the two doodads
together from then on, showing their connection.
> **Note:** there seems to be no way to un-link two doodads once linked,
> deleting one from your level and placing a new one will break the links.
Linked doodads are able to send small messages to their linked partners when
events happen to _them_. For example, when the player character steps on a button
it sends a "power on" signal to the door it's connected to, and the door opens.
When the button is released, it sends a "power off" signal and the door closes.
See the [Doodads](../doodads.md) page for a description of the game's built-in
doodads and how they interact with each other.
## Menu Bar
While editing a level or doodad, a Menu Bar appears at the top of the screen.
Its options include:
* **File**
* New level (Ctrl-N)
* New doodad
* Save (Ctrl-S)
* Save as...
* Open... (Ctrl-O)
* Close level
* Quit (Escape)
* **Edit**
* Undo (Ctrl-Z)
* Redo (Ctrl-Y)
* **Level**
* Page settings (to change the level type or wallpaper)
* Playtest (P)
* **Tools**
* Debug overlay (F3)
* Command shell (Enter)
* Edit Palette
* Doodads (d)
* Pencil Tool (f)
* Line Tool (L)
* Rectangle Tool (r)
* Ellipse Tool (c)
* Eraser Tool (x)
* Link Tool
* **Help**
* User Manual (F1)
* About
![Doodad Toolbar View](../images/editor-2.png)

129
docs/doodads.md

@ -0,0 +1,129 @@
# Doodads
Project:Doodle comes with several built-in doodads that you can use in your
levels. You may also [create your own](custom-doodads/index.md) custom doodads
and program them to do whatever you want!
---
## Flags
The **Start Flag** sets the player spawn point in your level. There should be
only one start flag.
The **Exit Flag** sets a goal point for the level. The player must touch this
flag to win the level.
---
## Trapdoors
Trapdoors come in four varieties: **Left**, **Right**, **Up**, or down (**Trapdoor**).
A trapdoor is a one-way passage. If the player or other mobile doodad touches
the door from the "correct" side, the door will swing open. After the mobile
doodad has passed, the door will swing shut again.
When the door is shut, you can not open it from the "wrong" side and it behaves
as a solid wall. If the door is open you may run in from the wrong side.
---
## Locked Doors & Keys
There are four pairs of **Colored Locked Doors and Keys** you can use on your level.
Colored doors are locked and behave as a solid wall until the player or another
mobile doodad "picks up" the Key of the same color. The doors may then be
permanently unlocked if the player walks into them while holding the key.
Should the player lose the keys later, previously opened doors will remain
unlocked but the player will need to find another key to open more doors.
Each key/door pair also has a distinct shape:
* **Red Key** (triangle)
* **Green Key** (cross)
* **Yellow Key** (star)
* **Blue Key** (diamond)
---
## Electric Door
The sci-fi electric door can only be opened when it receives a "power" signal
from a linked button or switch. See [Linked Doodads](#linked-doodads) below.
When the door receives a "power: on" signal it will open and allow passage to
the player or other mobile doodads. When it receives a "power: off" signal it
will close.
---
## Buttons
**Buttons** will emit a "power: on" signal to all doodads that they are
[Linked](#linking-doodads) to when the button is pressed by the player or
another mobile doodad.
When the button stops being pressed, it will emit a "power: off" signal to
all connected doodads, which will generally close electric doors.
Buttons come in three varieties:
* **Button:** a button with a grey arrow that pops back up when pressed.
* **Button Type B:** a variation without the grey arrow but behaves the same.
* **Sticky Button:** a button with a red arrow that stays pressed in once pressed.
When a sticky button is pressed, it emits a "power: on" signal once and stays
pressed in forever. If the Sticky Button itself _receives_ "power: on" from another
button, it will pop back up.
---
## Switches
**Switches** will emit a `power: on` signal to [linked](#linked-doodads) doodads
when touched by the player or other mobile doodad, and then a `power: off`
signal when touched again.
They come in various aesthetic flavors:
* Wall switch (left, right)
* Floor switch
* On/Off "background" wall switch facing the screen
---
## Crumbly Floor
The **Crumbly Floor** behaves as a solid ceiling when hit from below, and a
solid floor when walked on from above, but watch out! The floor will shake
and collapse after a moment beneath your feet.
The floor will respawn after a while and forbids passage from the underside
of the doodad.
---
## State Blocks
**State Blocks** are blue and orange squares that keep opposite state from one
another. In one state the block is solid, in another it is passable.
The ON/OFF block will toggle all state blocks on the level to their opposite
setting whenever it's touched by the player or other mobile doodad.
---
## Red Azulian (Test Mob)
The red Azulian is a test mobile character. Not really an enemy, as he doesn't
care about the player.
The Azulian's A.I. just has it run left and right until it meets resistance.
It can pick up keys, activate buttons and switches that it passes by, and can
unlock doors.
This mob will probably go away in future releases of the game and will remain
in the code as a hidden easter egg.

15
docs/experimental.md

@ -0,0 +1,15 @@
# Experimental Features
Some upcoming gameplay features that aren't _quite_ working well yet will
be 'hidden' behind some feature flags and not turned on by default.
To start up the game with ALL experimental features enabled, pass the
--experimental option to the program's command line:
```bash
# Unix-like environments
$ ./doodle --experimental
# Windows.
> doodle.exe --experimental
```

172
docs/hacking.md

@ -0,0 +1,172 @@
# Hacking
This page discusses some advanced features of the game.
I've always loved it when developers kept debugging features in their released
games, and playing around with those and figuring out what makes the game tick.
I purposely left some debug features in the game that you can play around with.
## Developer Console
Pressing the `Enter` key at any time will open the developer console at the
bottom of the screen (all gameplay logic is paused while the console is open).
In the console you can type anything from simple commands, to hidden cheat
codes, to JavaScript commands to operate on some of the game's internal code!
![Screenshot of the developer console](../images/shell.png)
Pressing `Enter` again without typing a command will close the console.
## Commands
At the white **&gt;** prompt you can type a command. Typing `help` will show
a listing of available commands; typing `help` and then a command name will
show further usage of that command. For example, `help echo`.
The answer to your command is "flashed" in blue text at the bottom of the
screen and the developer console is closed. Pressing `Enter` will re-open the
console and show the recent history, including the answer to your last command.
```
>help echo
Usage: echo <message>
Flash a message back to the console
```
The following commands are supported:
* `help`, `help <command>`
Shows the list of commands, or further help on a specific command.
* `echo <message>`
Flashes your custom message on the bottom of the screen.
* `alert <message>`
Pop up an alert box modal with a custom message.
* `new`
Go to the "New Drawing" screen.
* `save [filename]`
Save the current drawing. If the drawing has not been saved
before, a filename is required, including the `.level` or
`.doodad` suffix.
* `edit <filename>`
Open a file for editing. The filename is a path on disk relative
to the game's working directory.
* `play <filename>`
Open a file for playing. The filename is a path on disk relative
to the game's working directory. A wrong filename will play a
new, blank level where Boy just falls to the bottom of the map.
* `close`
Close the current level being edited and return to the title screen.
* `quit`, `exit`
Close the developer console (an empty command would also work).
## Cheat Codes
Typing these messages in the console will toggle various mundane cheat
codes within the game:
* `unleash the beast`
Do not cap the frames per second target of 60, allowing the game
to run as fast as it's capable of. May or may not actually work.
* `don't edit and drive`
While playing a level, this makes the level canvas editable and
you can draw new pixels by clicking. Note that drawn pixels do not
"commit" to the level until you release the cursor.
* `scroll scroll scroll your boat`
While playing a level, this allows scrolling the level with arrow
keys as if you're editing it. The camera still keeps the player
character in view.
* `import antigravity`
While playing a level, this turns off gravity for the player
character. In this state the arrow keys can freely move the
character in any direction. [Relevant xkcd](https://xkcd.com/353/)
* `ghost mode`
Disable collision detection for the player character. This
will also enable antigravity, otherwise you would fall to the
bottom of the level.
* `give all keys`
Gives all four colored keys to the player.
* `drop all items`
Removes all keys and items from the player's inventory.
## JavaScript Shell
The developer console also features a JavaScript shell, which exposes
many of the game's internal data types and functions that can be
useful when debugging the game, or just fun to see what you can
break within the game!
In the developer console, the `eval` or `$` command will run a single
line of JavaScript code.
```
>$ 2 + 2
4
>$ d.Flash("This is %s", d.Title())
This is Project: Doodle v0.4.0-alpha
```
The following native objects are exposed to the JavaScript shell:
* `d` is the master game object.
* `function RGBA(red, green, blue, alpha uint8)` creates a native
Color type, each value is range 0 to 255
* `function Point(x, y int)` creates a native Point type.
* `function Rect(x, y, w, h int)` creates a native Rect type.
* `function Tree(ui.Widget)` prints a tree of UI widgets drawn on the
screen -- if you can find the widgets somewhere under `d`
```
>$ RGBA(255, 153, 0, 230).String()
Color<#ff9900+e6>
>$ Object.keys(d)
Debug,Engine,Scene,ConfirmExit,DrawCollisionBox,DrawDebugOverlay,...
>$ typeof(d.Debug)
boolean
>$ typeof(d.Flash)
function
>$ d.Flash("Flash a custom message, like the `echo` command")
undefined
>$ d.EditDrawing("filename.level")
```
It helps if you run Project: Doodle itself from a command line terminal,
so you can see its developer console output also on your terminal
window. Using `Object.keys(d)` will show all the exported functions and
variables from the internal game state.
Understanding that my game's [rendering engine](https://git.kirsle.net/go/render) and
[user interface toolkit](https://git.kirsle.net/go/ui) are open source projects
you can have fun reconfiguring widgets to change colors or whatever.
![Screenshot of the JavaScript REPL](../images/jsrepl.png)

54
docs/hotkeys.md

@ -0,0 +1,54 @@
# Shortcut Keys
Here are all the hotkeys/shortcuts used within Project: Doodle.
* [Global Shortcuts](#global-shortcuts)
* [Level Editor](#editor-only)
* [Gameplay](#gameplay-only)
## Global Shortcuts
| Key | Action |
|----------|------------------------------------------------------------|
| `Escape` | Exit the application (after confirmation modal). |
| `F1` | Open the Guidebook (this site). |
| `Enter` | Open the [developer console](hacking.md#developer-console) |
---
## Editor Only
Only while editing a level or doodad:
| Key | Action |
|----------|------------------------------------------------------|
| Arrows | Scroll the view of the level you're editing. |
| `p` | Playtest the current level (press `e` to edit again) |
| `d` | Open the Doodads window to drop them in your level |
| `f` | Pencil Tool (**f**reehand) |
| `l` | **L**ine Tool |
| `r` | **R**ectangle Tool |
| `c` | Ellipse Tool (**c**ircles) |
| `x` | Eraser Tool |
| `+=` | Zoom in (with [--experimental](experimental.md)) |
| `-_` | Zoom out ([--experimental](experimental.md)) |
| `1` | Reset zoom ([--experimental](experimental.md)) |
| `0` | Scroll level back to origin (0,0) |
| `Ctrl-N` | Create a new level |
| `Ctrl-S` | Save the current drawing |
| `Ctrl-O` | Open a drawing |
| `Ctrl-Z` | Undo |
| `Ctrl-Y` | Redo |
---
## Gameplay Only
| Key | Action |
|---------|----------------------------------------------------------|
| `Left` | Move the player character towards the left. |
| `Right` | Move the player character towards the right. |
| `Up` | Jump |
| `e` | Return to the level editor (only if you game from there) |
&nbsp;

BIN
docs/images/about.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
docs/images/doodad-editor.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
docs/images/doodads.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
docs/images/jsrepl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

BIN
docs/images/link-tool.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
docs/images/main-menu.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 86 KiB

BIN
docs/images/newlevel-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
docs/images/newlevel-2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

BIN
docs/images/palette-rgba.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
docs/images/palette.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
docs/images/shell.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

BIN
docs/images/sprites/actor-tool.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 687 B

BIN
docs/images/sprites/ellipse-tool.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 B

BIN
docs/images/sprites/eraser-tool.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 B

BIN
docs/images/sprites/line-tool.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 B

BIN
docs/images/sprites/link-tool.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 679 B

BIN
docs/images/sprites/new-button.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 B

BIN
docs/images/sprites/pencil-tool.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 B

BIN
docs/images/sprites/rect-tool.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

10
docs/profile-directory.md

@ -0,0 +1,10 @@
# Profile Directory
Project: Doodle stores your user-created levels and custom doodads in your
operating system's profile directory for your account.
This will typically be found at the following locations based on your platform:
* **Linux:** `$XDG_CONFIG_HOME` or `$HOME/.config/doodle`
* **Windows:** `%APPDATA%` or `C:\Users\%USER%\AppData\Roaming\doodle`
* **Mac OS:** `$HOME/Library/Application Support/doodle`

10
mkdocs.yml

@ -3,7 +3,15 @@ use_directory_urls: false
nav:
- Home: index.md
- About: about.md
- "Custom Doodads": custom-doodads/index.md
- "Creating Levels": custom-levels/index.md
- "Built-in Doodads": doodads.md
- "Creating Doodads": custom-doodads/index.md
- "Drawing Doodads": custom-doodads/edit-in-game.md
- "Doodad Scripts": custom-doodads/scripts.md
- "Shortcut Keys": hotkeys.md
- "`doodad` Tool": doodad-tool.md
- "Hacking": hacking.md
theme: readthedocs
markdown_extensions:
- toc:
permalink: "#"

Loading…
Cancel
Save