2019-06-26 01:58:48 +00:00
|
|
|
# Project: Doodle (Working Title)
|
2017-10-27 02:32:07 +00:00
|
|
|
|
2019-06-26 01:58:48 +00:00
|
|
|
Project: Doodle is a drawing-based maze game written in Go.
|
2018-06-17 21:15:59 +00:00
|
|
|
|
|
|
|
# Features
|
|
|
|
|
|
|
|
(Eventually), the high-level, user-facing features for the game are:
|
|
|
|
|
|
|
|
* **Draw your own levels** freehand and then play them like a 2D platformer
|
|
|
|
game.
|
|
|
|
* In **Adventure Mode** you can play through a series of official example
|
|
|
|
levels that ship with the game.
|
|
|
|
* In **Edit Mode** you can draw a map freehand-style and lay down physical
|
|
|
|
geometry, and mark which lines are solid or which ones behave like fire.
|
|
|
|
* Drag and drop **Doodads** like buttons, doors and keys into your level and
|
|
|
|
link them together so that buttons open doors and levers activate devices.
|
|
|
|
* In **Play Mode** you can play your level as a 2D platformer game where you
|
|
|
|
collect keys, watch out for enemies, and solve puzzles to get to the exit.
|
|
|
|
* Easily **Share** your custom maps with friends.
|
|
|
|
|
|
|
|
## Mod-friendly
|
|
|
|
|
2019-06-26 01:58:48 +00:00
|
|
|
(Eventually) all these features will support custom content in the
|
|
|
|
game:
|
|
|
|
|
2018-06-17 21:15:59 +00:00
|
|
|
* Users can create **Custom Doodads** to extend the game with a scripting
|
|
|
|
language like JavaScript. The sprites and animations are edited in-game
|
|
|
|
in Edit Mode, but the scripting is done in your text editor.
|
|
|
|
* In **Edit Mode** you can drag custom doodads into your maps.
|
|
|
|
* To **Share** your maps, you can choose to **bundle** the custom
|
|
|
|
doodads inside your map file itself, so that other players can play
|
|
|
|
the map without needing to install the doodads separately.
|
|
|
|
* If you receive a map with custom doodads, you can **install** the doodads
|
|
|
|
into your copy of the game and use them in your own maps.
|
|
|
|
|
2018-07-22 03:57:41 +00:00
|
|
|
# Keybindings
|
|
|
|
|
|
|
|
Global Keybindings:
|
|
|
|
|
|
|
|
```
|
|
|
|
Escape
|
|
|
|
Close the developer console if open, without running any commands.
|
|
|
|
Exit the program otherwise.
|
|
|
|
|
|
|
|
Enter
|
2019-04-19 23:21:04 +00:00
|
|
|
Open and close the developer console, and run commands while the
|
|
|
|
console is open.
|
|
|
|
|
|
|
|
F3
|
|
|
|
Toggle the Debug Overlay.
|
|
|
|
|
|
|
|
F4
|
|
|
|
Toggle debug collision hitboxes.
|
2018-07-22 03:57:41 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
In Play Mode:
|
|
|
|
|
|
|
|
```
|
|
|
|
Cursor Keys
|
|
|
|
Move the player around.
|
2019-06-26 01:58:48 +00:00
|
|
|
"E" Key
|
|
|
|
Edit the map you're currently playing if you came from Edit Mode.
|
|
|
|
```
|
|
|
|
|
|
|
|
In Edit Mode:
|
|
|
|
|
2018-07-22 03:57:41 +00:00
|
|
|
```
|
2019-06-26 01:58:48 +00:00
|
|
|
Cursor Keys
|
|
|
|
Scroll the view of the map around.
|
|
|
|
"P" Key
|
|
|
|
Playtest the current map you're working on.
|
2019-07-04 00:19:25 +00:00
|
|
|
"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
|
2019-06-26 01:58:48 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
# Built-In Doodads
|
|
|
|
|
|
|
|
A brief introduction to the built-in doodads available so far:
|
|
|
|
|
|
|
|
- **Characters**
|
|
|
|
- Blue Azulian: this is used as the play character for now. If
|
|
|
|
dragged into a level, it doesn't do anything but is affected
|
|
|
|
by gravity.
|
|
|
|
- Red Azulian: an example mobile mob for now. It walks back and
|
|
|
|
forth, changing directions only when it comes across an
|
|
|
|
obstacle and can't proceed any further.
|
|
|
|
- **Doors and Keys**
|
|
|
|
- Colored Doors: these act like solid barriers until the player or
|
|
|
|
another doodad collects the matching colored key.
|
|
|
|
- Colored Keys: these are collectable items that allow the player or
|
|
|
|
another doodad to open the door of matching color. Note that
|
|
|
|
inventories are doodad-specific, so other mobs besides the
|
|
|
|
player can steal a key before the player gets it! (For now)
|
|
|
|
- Electric Door: this mechanical door stays closed and only
|
|
|
|
opens when it receives a power signal from a linked button.
|
|
|
|
- Trapdoor: this door allows one-way access, but once it's closed
|
|
|
|
behind you, you can't pass through it from that side!
|
|
|
|
- **Buttons**
|
|
|
|
- Button: while pressed by a player or other doodad, the button
|
|
|
|
emits a power signal to any doodad it is linked to. Link a button
|
|
|
|
to an electric door, and the door will open while the button is
|
|
|
|
pressed and close when the button is released.
|
|
|
|
- Sticky Button: this button will stay pressed once activated and
|
|
|
|
will not release unless it receives a power signal from another
|
|
|
|
linked doodad. For example, one Button that links to a Sticky
|
|
|
|
Button will release the sticky button if pressed.
|
2018-07-22 03:57:41 +00:00
|
|
|
|
|
|
|
## Developer Console
|
|
|
|
|
|
|
|
Press `Enter` at any time to open the developer console.
|
|
|
|
|
|
|
|
Commands supported:
|
|
|
|
|
|
|
|
```
|
|
|
|
new
|
2019-06-26 01:58:48 +00:00
|
|
|
Show the "New Level" screen to start editing a new map.
|
2018-07-22 03:57:41 +00:00
|
|
|
|
2019-04-19 23:21:04 +00:00
|
|
|
save [filename]
|
2018-07-22 03:57:41 +00:00
|
|
|
Save the current map in Edit Mode. The filename is required if the map has
|
|
|
|
not been saved yet.
|
|
|
|
|
2019-04-19 23:21:04 +00:00
|
|
|
edit [filename]
|
|
|
|
Open a map or doodad in Edit Mode.
|
2018-07-22 03:57:41 +00:00
|
|
|
|
2019-04-19 23:21:04 +00:00
|
|
|
play [filename]
|
2018-07-22 03:57:41 +00:00
|
|
|
Open a map in Play Mode.
|
|
|
|
|
2018-07-25 16:03:49 +00:00
|
|
|
echo <text>
|
|
|
|
Flash a message to the console.
|
|
|
|
|
|
|
|
clear
|
|
|
|
Clear the console output history.
|
|
|
|
|
2018-07-22 03:57:41 +00:00
|
|
|
exit
|
|
|
|
quit
|
|
|
|
Close the developer console.
|
|
|
|
```
|
|
|
|
|
2018-06-17 02:59:23 +00:00
|
|
|
# Building
|
|
|
|
|
|
|
|
Fedora dependencies:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ sudo dnf install SDL2-devel SDL2_ttf-devel
|
|
|
|
```
|
Menu Toolbar for Editor + Shell Prompts + Theme
* Added a "menu toolbar" to the top of the Edit Mode with useful buttons
that work: New Level, New Doodad (same thing), Save, Save as, Open.
* Added ability for the dev console to prompt the user for a question,
which opens the console automatically. "Save", "Save as" and "Load"
ask for their filenames this way.
* Started groundwork for theming the app. The palette window is a light
brown with an orange title bar, the Menu Toolbar has a black
background, etc.
* Added support for multiple fonts instead of just monospace. DejaVu
Sans (normal and bold) are used now for most labels and window titles,
respectively. The dev console uses DejaVu Sans Mono as before.
* Update ui.Label to accept PadX and PadY separately instead of only
having the Padding option which did both.
* Improvements to Frame packing algorithm.
* Set the SDL draw mode to BLEND so we can use alpha colors properly,
so now the dev console is semi-translucent.
2018-08-12 00:30:00 +00:00
|
|
|
|
2019-06-26 01:58:48 +00:00
|
|
|
# Author
|
Menu Toolbar for Editor + Shell Prompts + Theme
* Added a "menu toolbar" to the top of the Edit Mode with useful buttons
that work: New Level, New Doodad (same thing), Save, Save as, Open.
* Added ability for the dev console to prompt the user for a question,
which opens the console automatically. "Save", "Save as" and "Load"
ask for their filenames this way.
* Started groundwork for theming the app. The palette window is a light
brown with an orange title bar, the Menu Toolbar has a black
background, etc.
* Added support for multiple fonts instead of just monospace. DejaVu
Sans (normal and bold) are used now for most labels and window titles,
respectively. The dev console uses DejaVu Sans Mono as before.
* Update ui.Label to accept PadX and PadY separately instead of only
having the Padding option which did both.
* Improvements to Frame packing algorithm.
* Set the SDL draw mode to BLEND so we can use alpha colors properly,
so now the dev console is semi-translucent.
2018-08-12 00:30:00 +00:00
|
|
|
|
2019-06-26 01:58:48 +00:00
|
|
|
Copyright (C) 2019 Noah Petherbridge. All rights reserved.
|