743 lines
35 KiB
Markdown
743 lines
35 KiB
Markdown
# Changes
|
|
|
|
## v0.11.0 (Feb 21 2022)
|
|
|
|
New features:
|
|
|
|
* **Game Controller** support has been added! The game can now be played
|
|
with an Xbox style controller, including Nintendo Pro Controllers. The
|
|
game supports an "X Style" and "N Style" button layout, the latter of
|
|
which swaps the A/B and the X/Y buttons so gameplay controls match the
|
|
button labels in your controller.
|
|
* The **JavaScript Engine** for doodad scripts has been switched from
|
|
github.com/robertkrimen/otto to github.com/dop251/goja which helps
|
|
"modernize" the experience of writing doodads. Goja supports many
|
|
common ES6 features already, such as:
|
|
* Arrow functions
|
|
* `let` and `const` keywords
|
|
* Promises
|
|
* for-of loops
|
|
* The **JavaScript API** has been expanded with new functions and
|
|
many of the built-in Creatures have gotten an A.I. update.
|
|
* For full versions of the game, the **Publish Level** function is now
|
|
more streamlined to just a checkbox for automatically bundling your
|
|
doodads next time you save the level.
|
|
|
|
New levels:
|
|
|
|
* **The Zoo:** part of the Tutorial levelpack, it shows off all of the
|
|
game's built-in doodads and features a character selection room to
|
|
play as different creatures.
|
|
* **Shapeshifter:** a new level on the First Quest where you switch
|
|
controls between the Boy, Azulian and the Bird in order to clear the
|
|
level.
|
|
|
|
Some of the built-in doodads have updates to their A.I. and creatures
|
|
are becoming more dangerous:
|
|
|
|
* The **Bird** now searches for the player diagonally in front of
|
|
it for about 240px or so. If spotted it will dive toward you and
|
|
it is dangerous when diving! When _playing_ as the bird, the dive sprite
|
|
is used when flying diagonally downwards. The player-controlled bird
|
|
can kill mobile doodads by diving into them.
|
|
* The **Azulians** will start to follow the player when you get
|
|
close and they are dangerous when they touch you -- but not if
|
|
you're the **Thief.** The red Azulian has a wider search radius,
|
|
higher jump and faster speed than the blue Azulian.
|
|
* A new **White Azulian** has been added to the game. It is even faster
|
|
than the Red Azulian! And it can jump higher, too!
|
|
* The **Checkpoint Flag** can now re-assign the player character when
|
|
activated! Just link a doodad to the Checkpoint Flag like you do the
|
|
Start Flag. When the player reaches the checkpoint, their character
|
|
sprite is replaced with the linked doodad!
|
|
* The **Anvil** is invulnerable -- if the player character is the Anvil
|
|
it can not die by fire or hostile enemies, and Anvils can not destroy
|
|
other Anvils.
|
|
* The **Box** is also made invulnerable so it can't be destroyed by a
|
|
player-controlled Anvil or Bird.
|
|
|
|
New functions are available on the JavaScript API for doodads:
|
|
|
|
* `Actors.At(Point) []*Actor`: returns actors intersecting a point
|
|
* `Actors.FindPlayer() *Actor`: returns the nearest player character
|
|
* `Actors.New(filename string)`: create a new actor (NOT TESTED YET!)
|
|
* `Self.Grounded() bool`: query the grounded status of current actor
|
|
* `Actors.SetPlayerCharacter(filename string)`: replace the nearest
|
|
player character with the named doodad, e.g. "boy.doodad"
|
|
* `Self.Invulnerable() bool` and `Self.SetInvulnerable(bool)`: set a
|
|
doodad is invulnerable, especially for the player character, e.g.
|
|
if playing as the Anvil you can't be defeated by mobs or fire.
|
|
|
|
New cheat codes:
|
|
|
|
* `god mode`: toggle invincibility. When on, fire pixels and hostile
|
|
mobs can't make you fail the level.
|
|
* `megaton weight`: play as the Anvil by default on levels that don't
|
|
specify a player character otherwise.
|
|
|
|
Other changes:
|
|
|
|
* When respawning from a checkpoint, the player is granted 3 seconds of
|
|
invulnerability; so if hostile mobs are spawn camping the player, you
|
|
don't get soft-locked!
|
|
* The draw order of actors on a level is now deterministic: the most
|
|
recently added actor will always draw on top when overlapping another,
|
|
and the player actor is always on top.
|
|
* JavaScript exceptions raised in doodad scripts will be logged to the
|
|
console instead of crashing the game. In the future these will be
|
|
caught and presented nicely in an in-game popup window.
|
|
* When playing as the Bird, the flying animation now loops while the
|
|
player is staying still rather than pausing.
|
|
* The "Level" menu in Play Mode has options to restart the level or
|
|
retry from last checkpoint, in case a player got softlocked.
|
|
* When the game checks if there's an update available via
|
|
<https://download.sketchymaze.com/version.json> it will send a user
|
|
agent header like: "Sketchy Maze v0.10.2 on linux/amd64" sending only
|
|
static data about the version and OS.
|
|
|
|
## v0.10.1 (Jan 9 2022)
|
|
|
|
New features:
|
|
|
|
* **High scores and level progression:** when playing levels out of
|
|
a Level Pack, the game will save your progress and high scores on
|
|
each level you play. See details on how scoring works so far, below.
|
|
* **Auto-save** for the Editor. Automatically saves your drawing every
|
|
5 minutes. Look for e.g. the _autosave.level to recover your drawing
|
|
if the game crashed or exited wrongly!
|
|
* **Color picker UI:** when asked to choose a color (e.g. for your level
|
|
palette) a UI window makes picking a color easy! You can still manually
|
|
enter a hexadecimal color value but this is no longer required!
|
|
|
|
Scoring system:
|
|
|
|
* The high score on a level is based on how quickly you complete it.
|
|
A timer is shown in-game and there are two possible high scores
|
|
for each level in a pack:
|
|
* Perfect Time (gold): if you complete the level without dying and
|
|
restarting at a checkpoint.
|
|
* Best Time (silver): if you had used a checkpoint.
|
|
* The gold/silver icon is displayed next to the timer in-game; it
|
|
starts gold and drops to silver if you die and restart from checkpoint.
|
|
It gives you a preview of which high score you'll be competing with.
|
|
* If cheat codes are used, the user is not eligible for a high score
|
|
but may still mark the level "completed."
|
|
* Level Packs may have some of their later levels locked by default,
|
|
with only one or a few available immediately. Completing a level will
|
|
unlock the next level until they have all been unlocked.
|
|
|
|
New and changed doodads:
|
|
|
|
* **Invisible Warp Door:** a technical doodad to create an invisible
|
|
Warp Door (press Space/'Use' key to activate).
|
|
* All **Warp Doors** now require the player to be grounded before they
|
|
can be opened, or else under the effects of antigravity. You shouldn't
|
|
be able to open Warp Doors while falling or jumping off the ground
|
|
at them.
|
|
|
|
Revised levels:
|
|
|
|
* Desert-2of2.level uses a new work-around for the unfortunate glitch
|
|
of sometimes getting stuck on two boxes, instead of a cheat code
|
|
being necessary to resolve.
|
|
* Revised difficulty on Tutorial 2 and Tutorial 3.
|
|
|
|
Miscellaneous changes:
|
|
|
|
* Title Screen: picks a random level from a few options, in the future
|
|
it will pick random user levels too.
|
|
* Play Mode gets a menu bar like the Editor for easier navigation to
|
|
other game features.
|
|
* New dev shell command: `titlescreen <level name>` to load the Title
|
|
Screen with the named level as its background, can be used to load
|
|
user levels _now_.
|
|
* For the doodads JavaScript API: `time.Since()` is now available (from
|
|
the Go standard library)
|
|
* Fix a cosmetic bug where doodads scrolling off the top or left edges
|
|
of the level were being drawn incorrectly.
|
|
* Fix the Editor's status bar where it shows your cursor position
|
|
relative to the level and absolute to the app window to show the
|
|
correct values of each (they were reversed before).
|
|
* The developer shell now has a chatbot in it powered by RiveScript.
|
|
|
|
## v0.10.0 (Dec 30 2021)
|
|
|
|
New features and changes:
|
|
|
|
* **Level Packs:** you can group a set of levels into a sequential
|
|
adventure. The game's built-in levels have been migrated into Level
|
|
Packs and users can create their own, too!
|
|
* **Crosshair Option:** in the level editor you can have a crosshair
|
|
drawn at your cursor position, which may help align things while
|
|
making a level. Find the option in the game's Settings window.
|
|
* **Smaller Palette Colors:** the color buttons in the Level Editor are
|
|
smaller and fit two to a row. This allows for more colors but may be
|
|
difficult for touch controls.
|
|
* Doodad AI updates: the **Bird** records its original altitude and will
|
|
attempt to fly back there when it can, so in case it slid up or down a
|
|
ramp it will correct its height when it comes back the other way.
|
|
* The "New Level" and "New Doodad" functions on the main menu are
|
|
consolidated into a window together that can create either, bringing
|
|
a proper UI to creating a doodad.
|
|
* Added a setting to **hide touch control hints** from Play Mode.
|
|
* The title screen is more adaptive to mobile. If the window height isn't
|
|
tall enough to show the menu, it switches to a 'landscape mode' layout.
|
|
* Adds a custom icon to the application window.
|
|
|
|
A few notes about level packs:
|
|
|
|
* A levelpack is basically a zip file containing levels and custom
|
|
doodads. **Note:** the game does not yet handle the doodads folder
|
|
of a levelpack at all.
|
|
* The `doodad` command-line tool can create .levelpack files. See
|
|
`doodad levelpack create --help`. This is the easiest way to
|
|
generate the `index.json` file.
|
|
* In the future, a .levelpack will be able to hold custom doodads on
|
|
behalf of the levels it contains, de-duplicating files and saving
|
|
on space. Currently, the levels inside your levelpack should embed
|
|
their own custom doodads each.
|
|
* Free (shareware) editions of the game can create and play custom
|
|
level packs that use only the game's built-in doodads. Free versions
|
|
of the game can't play levels with embedded custom doodads. You can
|
|
always copy custom .doodad files into your profile directory though!
|
|
|
|
Bugs fixed:
|
|
|
|
* Undo/Redo now works again for the Doodad Editor.
|
|
* Fix crash when opening the Doodad Editor (v0.9.0 regression).
|
|
* The Play Level/Edit Drawing window is more responsive to small screens
|
|
and will draw fewer columns of filenames.
|
|
* Alert and Confirm popup modals always re-center themselves, especially
|
|
to adapt to the user switching from Portrait to Landscape orientation
|
|
on mobile.
|
|
|
|
## v0.9.0 (Oct 9, 2021)
|
|
|
|
New features:
|
|
|
|
* **Touch controls:** the game is now fully playable on small
|
|
touchscreen devices! For gameplay, touch the middle of the screen
|
|
to "use" objects and touch anywhere _around_ that to move the
|
|
player character in that direction. In the level editor, swipe
|
|
with two fingers to pan and scroll the viewport.
|
|
* **Proper platforming physics:** the player character "jumps" by
|
|
setting a velocity and letting gravity take care of the rest,
|
|
rather than the old timer-based flat jump speed approach. Most
|
|
levels play about the same but the jump reach _is_ slightly
|
|
different than before!
|
|
* **Giant Screenshot:** in the Level Editor you can take a "Giant
|
|
Screenshot" of your _entire_ level as it appears in the editor
|
|
as a large PNG image in your game's screenshots folder. This is
|
|
found in the "Level" menu in the editor.
|
|
* **Picture-in-Picture Viewport:** in the Level Editor you can open
|
|
another viewport window into your level. This window can be resized,
|
|
moved around, and can look at a different part of your level from
|
|
your main editor window. Mouse over the viewport and your arrow keys
|
|
scroll it instead of the main window.
|
|
* **"Playtest from here":** if you click and drag from the "Play (P)"
|
|
button of the level editor, you can drop your player character
|
|
anywhere you want on your level, and play from there instead of
|
|
the Start Flag.
|
|
* **Middle-click to pan the level:** holding the middle click button
|
|
and dragging your mouse cursor will scroll the level in the editor
|
|
and on the title screen. This can be faster than the arrow keys to
|
|
scroll quickly!
|
|
* **Zoom in/out** support has come out of "experimental" status. It's
|
|
still a _little_ finicky but workable!
|
|
* **Bounded level limits** are now configurable in the Level Properties
|
|
window, to set the scroll constraints for Bounded level types.
|
|
|
|
Some new "technical" doodads are added to the game. These doodads are
|
|
generally invisible during gameplay and have various effects which can
|
|
be useful to set up your level the right way:
|
|
|
|
* **Goal Region:** a 128x128 region that acts as an Exit Flag and will
|
|
win the level if touched by the player.
|
|
* **Checkpoint Region:** a 128x128 invisible checkpoint flag that sets
|
|
the player's spawn point.
|
|
* **Fire Region:** a 128x128 region that triggers the level fail
|
|
condition, behaving like fire pixels.
|
|
* **Power Source:** a 64x64 invisible source of power. Link it to doodads
|
|
like the Electric Door and it will emit a power(true) signal on level
|
|
start, causing the door to "begin" in an opened state.
|
|
* **Stall Player (250ms):** when the player touches this doodad, control
|
|
freezes for 250ms, one time. If this doodad receives power from a linked
|
|
button or switch, it will reset the trap, and stall the player once more
|
|
should they contact it again.
|
|
|
|
The Doodad Dropper window has a dedicated category for these
|
|
technical doodads.
|
|
|
|
New methods available to the Doodad JavaScript API:
|
|
|
|
* `Self.Hide()` and `Self.Show()` to turn invisible and back.
|
|
* `Self.GetVelocity()` that returns a Vector of the actor's current speed.
|
|
* New broadcast message type: `broadcast:ready` (no arguments). Subscribe
|
|
to this to know the gameplay is ready and you can safely publish messages
|
|
to your linked doodads or whatever, which could've ended up in deadlocks
|
|
if done too early!
|
|
* New constants are exposed for Go time.Duration values: `time.Hour`,
|
|
`time.Minute`, `time.Second`, `time.Millisecond` and `time.Microsecond`
|
|
can be multiplied with a number to get a duration.
|
|
|
|
Some slight UI polish:
|
|
|
|
* The **Doodad Dropper** window of the level editor now shows a slotted
|
|
background where there are any empty doodad slots on the current page.
|
|
* Your **scroll position** is remembered when you playtest the level; so
|
|
coming back to the editor, your viewport into the level as where you
|
|
left it!
|
|
* New **keybinds** are added to the Level & Doodad Editor:
|
|
* `Backspace` to close the current popup UI modal
|
|
* `Shift+Backspace` to close _all_ popup UI modals
|
|
* `v` to open a new Viewport window
|
|
* Some **flashed messages** are orange instead of blue to denote an 'error'
|
|
status. The colors of the fonts are softened a bit.
|
|
* New **cheat code**: `show all actors` to make all invisible actors shown
|
|
during Play Mode. You would be able to see all the technical doodads
|
|
this way!
|
|
* New command for the doodad CLI tool: `doodad edit-level --remove-actor`
|
|
to remove actors by name or UUID from a level file.
|
|
|
|
## v0.8.1 (September 12, 2021)
|
|
|
|
New features:
|
|
|
|
* **Enable Experimental Features UI:** in the game's Settings window
|
|
there is a tab to enable experimental features. It is equivalent to
|
|
running the game with the `--experimental` option but the setting
|
|
in-game is persistent across runs of the game.
|
|
* **Zoom In/Out:** the Zoom feature _mostly_ works but has a couple
|
|
small bugs. The `+` and `-` keys on your number bar (-=) will zoom in
|
|
or out in the Editor. Press `1` to reset zoom to 100% and press `0`
|
|
to scroll the level back to origin. These controls are also
|
|
available in the "View" menu of the editor.
|
|
* **Replace Palette:** with experimental features on it is possible to
|
|
select a different palette for your already-created level. This will
|
|
replace colors on your palette until the template palette has been
|
|
filled in, and pixels already drawn on your level will update too.
|
|
|
|
Other changes:
|
|
|
|
* The title screen buttons are more colorful.
|
|
* This release begins to target 32-bit Windows and Linux among its builds.
|
|
|
|
## v0.8.0 (September 4, 2021)
|
|
|
|
This release brings some new features, new doodads, and new levels.
|
|
|
|
New features:
|
|
|
|
* **Checkpoints** for gameplay will ease the pain of dying to fire
|
|
pixels or Anvils by teleporting you back to the checkpoint instead
|
|
of resetting the whole level.
|
|
* The **Doodad Properties** window while editing a doodad grants access
|
|
to many features which were previously only available via the
|
|
`doodad` tool, such as:
|
|
* Edit metadata like the Title and Author of your doodad
|
|
* Set the default hitbox of your doodad.
|
|
* Attach, open, and delete the JavaScript for your doodad
|
|
* Manage tags (key/value store) on your doodads: how you can
|
|
communicate settings to the JavaScript which can receive the
|
|
tags via `Self.GetTag("name")`
|
|
* Some **Generic Doodad Scripts** are built in. Using only the in-game
|
|
tools, it is possible to create custom doodads which have some basic
|
|
in-game logic and you don't need to write any code. The generic
|
|
scripts include:
|
|
* Generic Solid: the hitbox is solid
|
|
* Generic Fire: its hitbox harms the player
|
|
* Generic Anvil: harmless, deadly when falling
|
|
* Generic Collectible Item: it goes in your inventory
|
|
* **All Characters are Playable!** Use the Link Tool to connect your
|
|
Start Flag with another doodad on your level, and you will play
|
|
**as** that doodad when the level starts. The Creature doodads are
|
|
all intended to be fully functional; playing as buttons and doors
|
|
leads to strange results.
|
|
|
|
New doodads have been added:
|
|
|
|
* The **Anvil** is a heavy metal object which is affected by gravity.
|
|
It is harmless to collision, but if the anvil is in freefall, it
|
|
will destroy every mobile doodad that it touches, and is deadly
|
|
to the player character.
|
|
* The **Electric Trapdoor** is a trapdoor that opens and closes when
|
|
powered by a button or switch. It is a horizontal version of the
|
|
Electric Door.
|
|
* The **Thief** is a new character which will steal items from the
|
|
player or other mobile doodads. The Thief is able to pick up items
|
|
and unlock doors and he walks back and forth like the Azulians.
|
|
* The **Blue Azulian** is now selectable from the Doodads menu. It
|
|
behaves like the Red Azulian but moves at half the speed. The
|
|
Azulians can pick up items and open doors.
|
|
* The **Checkpoint Flag** will remember the player's spot in the level.
|
|
Dying to fire pixels or Anvils no longer forces a restart of the
|
|
level - you can resume from your last checkpoint, or the Start Flag
|
|
by default.
|
|
|
|
New levels have been added:
|
|
|
|
* **Castle.level:** introduces the new Thief character. Castle-themed
|
|
level showing off various new doodads.
|
|
* **Thief 1.level:** a level where you play as the Thief! You need to
|
|
steal Small Keys from dozens of Azulians and even steal items back
|
|
from another Thief who has already stolen some of the keys.
|
|
|
|
Some doodads have changed behavior:
|
|
|
|
* The **Bird** can no longer pick up items, unless controlled by
|
|
the player character.
|
|
* The **Anvil** and **Box** will reset to their original locations
|
|
if they receive a power signal from a linked button or switch.
|
|
|
|
The user interface has been improved:
|
|
|
|
* **Tabbed windows!** The Doodad Dropper window of the level editor
|
|
and the Settings window use new, tabbed interfaces.
|
|
* **Doodad Categories:** the Doodad Dropper's tabs are divided into
|
|
a few major categories.
|
|
1. Objects: Anvil, Box, Crumbly Floor, and Flags
|
|
2. Doors: Doors, Trapdoors, and Keys
|
|
3. Gizmos: Buttons, Switches, Electric Doors, etc.
|
|
4. Creatures: Bird, Azulians, Thief
|
|
5. All: a classic view paging over all doodads (and doodads
|
|
not fitting any of the above categories).
|
|
|
|
New functions are available in the JavaScript API for custom doodads:
|
|
|
|
* FailLevel(message string): global function that kills the player
|
|
with a custom death message.
|
|
* SetCheckpoint(Point): set the player respawn location
|
|
* Self.MoveTo(Point(x, y int))
|
|
* Self.IsPlayer() bool
|
|
* Self.SetInventory(bool): turn on or off inventory. Keys and other
|
|
items will now only give themselves to mobile doodads which have
|
|
inventory.
|
|
* Self.HasInventory() bool
|
|
* Self.AddItem(filename string, quantity int) - zero quantity for
|
|
permanent items like the colored keys.
|
|
* Self.RemoveItem(filename string, quantity int)
|
|
* Self.HasItem(filename string)
|
|
* Self.Inventory() map[string]int
|
|
* Self.Hitbox() - also see Self.Hitbox.IsEmpty()
|
|
|
|
The Events.OnLeave() callback now receives a CollideEvent argument,
|
|
like OnCollide, instead of the useless actor ID string. Notable
|
|
properties on the CollideEvent will be the .Actor which is leaving
|
|
and Settled=true.
|
|
|
|
Other miscellaneous changes:
|
|
|
|
* The **Link Tool** can now un-link two doodads by clicking on
|
|
them again.
|
|
* Actor UUIDs in your levels will now be Type 1 UUIDs (time-based)
|
|
instead of random. This will ensure each newly added doodad gets
|
|
a larger ID than the previous one, so in cases of draw order
|
|
conflicts or that sort of thing, the winner can be picked
|
|
deterministically (most recently added renders on top).
|
|
* A **death barrier** will prevent Boy from falling forever on unbounded
|
|
maps should he somehow fall off the level. The death barrier is a
|
|
Y value 1,000 pixels below the lowest pixel on your map.
|
|
* Mobile doodads no longer "moonwalk" when they change directions.
|
|
* A new color is added to all default palettes: "hint" (pink) for
|
|
writing hint notes.
|
|
* A maximum scroll speed on the "follow the player character" logic
|
|
makes for cooler animations when the character teleports around.
|
|
* Levels and Doodads are now sorted on the Open menu.
|
|
|
|
## v0.7.2 (July 19 2021)
|
|
|
|
This release brings some new features and some new content.
|
|
|
|
New features:
|
|
|
|
* **Loading screens** have been added. In previous versions, 'chunks'
|
|
of a level were rendered on-demand as they first scrolled onto the
|
|
screen, but busy new chunks would cause gameplay to stutter. The
|
|
loading screen is able to _pre-render_ the entire level up front
|
|
to ensure gameplay is smooth(er).
|
|
* **Compression for Levels and Doodads:** levels and doodads are now compressed
|
|
with Gzip for an average 88% smaller file size on disk. The example level,
|
|
"Tutorial 2.level" shrank from 2.2 MB to 414 KB with compression. The game
|
|
can still read old (uncompressed) files, but will compress them on save.
|
|
|
|
Some new content:
|
|
|
|
* **New Levels:** two desert-themed levels were added. One has you
|
|
platforming and climbing the outside of a pyramid; the next is
|
|
inside the pyramid and has puzzles involving movable boxes.
|
|
* **New Doodad:** Box is a pushable crate that is affected by
|
|
gravity. It is taller than Boy and can be used to gain some extra
|
|
height and reach higher platforms.
|
|
* **New Palette:** To the "Colored Pencil" palette was added a new
|
|
default color: Sandstone (solid).
|
|
* **New Pattern:** Perlin Noise was added as one of the available
|
|
brush patterns. Sandstone uses this pattern by default.
|
|
|
|
Some miscellaneous changes:
|
|
|
|
* **Slowly scroll in editor:** holding down the Shift key while scrolling the
|
|
level editor will scroll your drawing _very_ slowly.
|
|
* **'Doodads' Hotkey:** in the Level Editor, the `Q` key will open
|
|
the Doodads window instead of the `D` key, as the `D` key is now
|
|
part of WASD for scrolling the drawing.
|
|
|
|
## v0.7.1 (July 11 2021)
|
|
|
|
Fixes a bug on the Windows version:
|
|
|
|
* Built-in wallpapers other than the default Notebook were failing to
|
|
load in the Windows release of v0.7.0
|
|
|
|
## v0.7.0 (June 20 2021)
|
|
|
|
This is the first release of the game where the "free version" drifts meaningfully
|
|
away from the "full version". Free versions of the game will show the label
|
|
"(shareware)" next to the game version numbers and will not support embedding
|
|
doodads inside of level files -- for creating them or playing them.
|
|
Check the website for how you can register the full version of the game.
|
|
|
|
This release brings several improvements to the game:
|
|
|
|
* **Brush Patterns** for your level palette. Instead of your colors drawing on as
|
|
plain, solid pixels, a color swatch can _sample_ with a Pattern to create a
|
|
textured appearance when plotted on your level. Several patterns are built in
|
|
including Noise, Marker, Ink, and others. The idea is that your brush strokes can
|
|
look as though they were drawn in pencil graphite or similar.
|
|
* **Title Screen:** the demo level shown on the title screen will leisurely scroll
|
|
around the page. The arrow keys may still manually scroll the level any direction.
|
|
* **Attach Doodads to Level Files:** this is the first release that supports _truly_
|
|
portable custom levels! By attaching your custom doodads _with_ your custom level
|
|
file, it will "just play" on someone else's computer, and they don't need to copy
|
|
all your custom doodads for it to work! But, free versions of the game will not
|
|
get to enjoy this feature.
|
|
* **Settings UI**: a "Settings" button on the home screen (or the Edit->Settings
|
|
menu in the editor) will open a settings window. Check it out!
|
|
* **Horizontal Toolbars option:** if enabled in the Settings window, the toolbar
|
|
and palette in the Editor will be horizontal instead of vertical, along the top
|
|
and bottom of the screen. This may be better optimized for smartphone-sized
|
|
screens like the Pinephone. If the program is started with `-w mobile` the first
|
|
time, it will use horizontal toolbars by default.
|
|
|
|
Some small bits of polish in the game's user interface:
|
|
|
|
* Some buttons are more colorful! The "Ok" button in alert boxes is blue and pressing
|
|
Enter will select the blue button.
|
|
* When opening a drawing to play or edit, a blue **Browse...** button is
|
|
added so you can more easily find downloaded custom levels and play them.
|
|
* In the Level Editor, the "Level -> **Attached Files**" menu will let you see
|
|
and manage files attached to your level, such as its custom wallpaper image or
|
|
any custom doodads that were published with the level.
|
|
* The keyboard shortcut to open the developer console is now the tilde/grave key
|
|
(`) instead of Enter.
|
|
|
|
Bugs fixed:
|
|
|
|
* The WASD keys to move the player character (as an alternative to the arrow keys)
|
|
now works more reliably. Previously, they were affected by key-repeat so Boy would
|
|
do a quick hop followed by a longer one when pressing W to jump. Also, his
|
|
animation would not update correctly when moving via the WASD keys. Both bugs
|
|
are fixed in this release.
|
|
* Shortcut keys advertised in the menu, such as Ctrl-N and Ctrl-S, now actually work.
|
|
|
|
## v0.6.0-alpha (June 6 2021)
|
|
|
|
This release brings less jank and some new features.
|
|
|
|
The new features:
|
|
|
|
* **Choice of Default Palette for New Levels:** when creating a new level, a
|
|
"Palette:" option appears which allows you to set the default colors to start
|
|
your level with. The options include:
|
|
* Default: the classic default 4 colors (black, grey, red, blue).
|
|
* Colored Pencil: a set with more earthy tones for outdoorsy levels
|
|
(grass, dirt, stone, fire, water)
|
|
* Blueprint: the classic Blueprint wallpaper theme, a bright version of Default
|
|
for dark level backgrounds.
|
|
* **Custom Wallpapers:** unhappy with the default, paper-themed level background
|
|
images? You can now use your own! They attach to your level data for easy
|
|
transport when sharing your level with others.
|
|
* **More Wallpapers:** a couple of new default wallpapers are added: Graph paper
|
|
and Dotted paper. They are both on light white paper and offer a light
|
|
alternative to Blueprint.
|
|
|
|
Some bugs fixed:
|
|
|
|
* **Collision fixes:** you should be able to walk up gentle slopes to the left
|
|
without jumping, as easily as you could to the right.
|
|
* **Debugging:** the F4 key to show collision hitboxes around all doodads in
|
|
Play Mode now functions again, and draws boxes around _all_ doodads, not just the
|
|
player character.
|
|
* **Hitboxes are tighter:** a doodad's declared hitbox size (from their JavaScript)
|
|
is used when a doodad collides against level geometry or other doodads. Meaning:
|
|
Boy, who has a narrow body but a square sprite size, now collides closer with
|
|
objects on his right side.
|
|
* **Physics are tweaked:** Boy now moves and accelerates slightly faster.
|
|
|
|
## v0.5.0-alpha (Mar 31 2021)
|
|
|
|
Project: Doodle is renamed to Sketchy Maze in this release.
|
|
|
|
New Features:
|
|
|
|
* **New Tutorial Levels:** the bundled levels demonstrate the built-in doodads
|
|
and how they interact and shows off several game features.
|
|
* **Level Editor:** you can now set the Title and Author of the level you're
|
|
editing by using the Level->Page Settings window.
|
|
* The **Inventory HUD** in Play Mode now shows a small number indicator for items
|
|
which have quantity, such as the Small Key. Colored Keys do not have quantity
|
|
and don't show a number: those are permanent collectibles.
|
|
* **Fire Pixels:** when the player character dies by touching a "Fire" pixel
|
|
during gameplay, the death message uses the **name** of the color instead
|
|
of calling it "fire." For example, if you name a color "spikes" and give
|
|
it the Fire attribute, it will say "Watch out for spikes!" if the player
|
|
dies by touching it.
|
|
* New cheat code: `give all keys` gives all four colored keys and 99x Small Keys
|
|
to the player character. The `drop all items` cheat clears your inventory.
|
|
|
|
New Doodads:
|
|
|
|
* **Warp Doors** allow the player character to fast travel to another location
|
|
on the map. Drag two Warp Doors into your level and use the Link Tool to
|
|
connect them together. Doors without an exit link will be "locked" and don't
|
|
open.
|
|
* **Small Key Doors** are locked doors which consume the Small Keys when unlocked,
|
|
unlike the colored doors where the key is multi-use. The player character can
|
|
hold many small keys at once and only unlock as many doors as he has keys.
|
|
|
|
Updated Doodads:
|
|
|
|
* **Several doodads** were increased in size to better match the player character:
|
|
Colored Locked Doors, Trapdoors, the Crumbly Floor and Electric Door, and the
|
|
blue and orange Boolean State Blocks.
|
|
* **Colored Doors** now have a visual locked vs. unlocked state: while locked, a
|
|
golden padlock hangs from the door, which goes away after it's been unlocked.
|
|
* **Switches** now interact differently with Electric Doors: the door will _always_
|
|
toggle its current state regardless of the 'power' setting of the Switch.
|
|
* **Buttons** which are linked to a **Sticky Button** will press and stay down
|
|
if the linked Sticky Button is pressed. Or in other words, the Sticky Button
|
|
makes all linked Buttons act sticky too and stay pressed while the Sticky
|
|
Button is pressed. If the Sticky Button is released later (e.g. by receiving
|
|
power from a Switch) it releases its linked Buttons as well.
|
|
|
|
## v0.4.0-alpha (Nov 21 2020)
|
|
|
|
This update brings improvements to the editor; you can now fully draw all the
|
|
graphics for a custom doodad using the in-app tools!
|
|
|
|
A key difference between a Level and a Doodad is that doodads have **Layers**
|
|
where they keep multiple frames of animation or state. The editor tool now
|
|
supports working with these extra layers.
|
|
|
|
Other new features:
|
|
|
|
* The **Guidebook** has been updated with tons of good info and screenshots of
|
|
the game's features. Press `F1` in-game to open the guidebook, or check it
|
|
online at https://www.sketchymaze.com/guidebook/
|
|
* **Layer Selection Window for Doodads:** when you're editing a Doodad drawing,
|
|
a "Lyr." button is added to the toolbar to access the Layers window.
|
|
* **Global UI popup modals:** when you're about to close a level with unsaved
|
|
changes, you get an Ok/Cancel prompt confirming if you want to do that.
|
|
Hitting the Escape key will ask you before just exiting the program. Alert
|
|
boxes are supported too, and an `alert` command added to the developer console.
|
|
|
|
## v0.3.0-alpha (Sept 19 2020)
|
|
|
|
This update introduces the player character to the game. He doesn't have a name;
|
|
the game just refers to him as Boy.
|
|
|
|
His sprite size is bigger (33x54) than the 32x32 size of the placeholder player
|
|
character from before. So, the three example levels shipped with previous versions
|
|
of Project: Doodle no longer work. This release comes with two replacement levels
|
|
which are better decorated, anyway.
|
|
|
|
Other new features:
|
|
|
|
* **Palette Editor:** you can add and modify the colors on your level
|
|
palette! Pick any colors you want, give a name to each swatch, and mark
|
|
whether they behave as Solid, Water or Fire. Without any of these
|
|
properties, colors are decorational-only by default.
|
|
* **Doodad Window:** when selecting the Actor or Link Tools in the editor,
|
|
the Doodads window pops up. Doodads can be dragged from this window onto your
|
|
level, instead of the Palette toolbar turning into a Doodad palette.
|
|
* The Palette toolbar on the Editor is now thinner and only shows colors.
|
|
Mouse-over tooltips show the name and properties of each swatch.
|
|
* Added a --window option to the Doodle program to set the default window size.
|
|
Options can be a resolution (e.g. 1024x768) or a special keyword
|
|
"desktop", "mobile", "landscape" or "maximized"
|
|
- Default size is desktop: 1024x768
|
|
- Mobile and landscape mimic a smartphone at 375x812 resolution.
|
|
|
|
## v0.2.0-alpha (June 7 2020)
|
|
|
|
This release brings Sound Effects and Menus to the game.
|
|
|
|
New features:
|
|
|
|
* Added some User Documentation to ship with the game which teaches you how to
|
|
create your own custom Doodads and program them with JavaScript. More
|
|
documentation to come with time.
|
|
* Sound effects! Several doodads have a first pass at sound effects using some
|
|
free sounds I found online. More doodads still need sounds and the existing
|
|
sounds are by no means final. Buttons, switches, doors and keys have sound
|
|
effects so far.
|
|
* The game now has a Menu Bar with pull-down menus in the Editor Mode instead
|
|
of just a top panel with New/Save/Open buttons.
|
|
|
|
## v0.1.0-alpha (Apr 13 2020)
|
|
|
|
New doodads:
|
|
|
|
* Start Flag: drag this into your level to set where the player character will
|
|
spawn. There should only be one per level.
|
|
* Crumbly Floor: a rocky floor that breaks and falls away after a couple
|
|
seconds when the player (or other mobile doodad) walks onto it.
|
|
* State Blocks: blue and orange blocks that toggle between solid and passable
|
|
when the corresponding ON/OFF button is touched.
|
|
|
|
New features:
|
|
|
|
* An inventory overlay now appears in Play Mode when the player character picks
|
|
up one of the colored keys.
|
|
* While editing a level, you can click the new "Options" button in the top menu
|
|
to open the level settings window (like the one you see when creating a new
|
|
level): to change the wallpaper image or the page type.
|
|
|
|
Other changes:
|
|
|
|
* Added better platforming physics to the player character: acceleration and
|
|
friction when walking.
|
|
* The colored Locked Door doodads have been re-designed to be shown in a
|
|
side-view perspective and have an open and closed state in either direction.
|
|
* Tooltips added to various buttons in the Editor to show names of doodads and
|
|
functions of various buttons.
|
|
|
|
## v0.0.10-alpha (July 18 2019)
|
|
|
|
New features:
|
|
|
|
* Added the **Eraser Tool** and support for **brush sizes**. Now you can clean
|
|
up your mistakes and draw shapes with thicker lines!
|
|
* Added the **Ellipse Tool** for drawing elliptical shapes.
|
|
* Added a third example to the game's built-in levels.
|
|
|
|
Bug fixes:
|
|
|
|
* The Undo command now restores the original color of a pixel instead of just
|
|
deleting it. Only works for thin lines so far.
|
|
* Improved collision detection algorithm to prevent players from clipping
|
|
through a solid doodad, regardless of speed. This change is invisible this
|
|
build, but opens the door to improvements in the 2D platforming physics and
|
|
making the player character move and fall faster.
|
|
* Fix mobile non-player doodads from sometimes being able to clip through a
|
|
solid doodad. For example, a Red Azulian could sometimes walk through a locked
|
|
door without interacting with it.
|
|
* Sometimes hitting Undo would leave a broken "chunk" in your level, if the
|
|
Undo operation deleted all pixels in that chunk. The broken chunk would show
|
|
as a solid black square (non-solid) in the level. This has been fixed: empty
|
|
chunks are now culled when the last pixel is deleted and existing level files
|
|
will be repaired on next save.
|
|
|
|
## v0.0.9-alpha (July 9 2019)
|
|
|
|
First alpha release.
|