Update 3.00.00 - Puzzle exporting and more


Note: the headlining feature of version 3.00.00 of Nonozle is Steam Workshop support for sharing and playing of puzzles and puzzle packs. Because this feature is exclusive to Steam, and I don't want players on Itch.io to miss out, I'm now bundling Steam keys with the Itch.io version.

Below are the patch notes for version 3.00.00. Anything to do with Workshop is exclusive to the Steam version of the game, but most non-Workshop changes apply to the version distributed here, and there are many, including but not limited to the addition of optional hint aggregation, the overhauling of the puzzle editor, and the retconning of all built-in puzzles to be line solvable.

With such a big update, there's bound to be a few bugs that I missed, so please report any that you find, or any crashes you experience, on the game's forum so that I can fix them as quickly as I can. Thanks!

An extensive explanation of changes that have been made follows.


User puzzles

Puzzle titles

You can now set and change the title of user puzzles. Previously, a user puzzle was simply titled with a time stamp and could not be changed.

Exporting puzzles

Puzzles can now be exported to a .PZL file that can be shared with other users. Puzzles are exported to Documents/Nonozle User Puzzles/Exported. Other players should copy your exported puzzle to Documents/Nonozle User Puzzles.

When you export a puzzle, you sign it with a username of your choosing (ASCII characters only due to in-game font limitations). The exported puzzle's file name will contain your signature, and other players who you give the puzzle to will see the signature on the puzzle select button and after solving the puzzle. The signature is saved for later use so that you don't have to retype it each time, but it can be changed later if desired.

You can choose to either show the puzzle title from the start—it will be visible in the file name and in puzzle select—or hide it. If you hide it, a hexadecimal number (your puzzle's hash code) will be used to identify the puzzle in its stead until it is solved.

Separation of puzzles by you from puzzles by others

Previously, all user puzzles were stored in the same location and puzzle select screen, with no distinction between puzzles you created and puzzles others created. This has been rectified, so that now puzzles others have created and shared with you (whether via exporting them, via clipboard, or via Workshop) are kept separate from puzzles you created. Unfortunately, there's no way for this to apply retroactively, so if you previously used the clipboard puzzle sharing system before this update, those puzzles will still show as puzzles you created.

Because of this separation, the prompt about a puzzle not being solved yet that used to show up when you tried to edit it no longer appears, as "spoilers" are not a concern for your own puzzles.


Puzzle packs

You can now create puzzle packs, which consist of a sorted list of your puzzles of your choosing.

Pack editor


This is the pack editing screen, where you create a puzzle pack using your list of puzzles. Puzzles in the pack can be reordered via drag-and-drop or via the "Move up" and "Move down" buttons, and they can be automatically sorted by solver pass count.

When you click the button to sort by pass count, any puzzles that are in the pack that haven't yet had their pass count determined need to be processed by the solver first (pass counts are saved once they are computed, so that they do not need to be computed again unless the puzzle is changed). If you have a lot of puzzles that have no determined pass count yet, this could take some time. Puzzles with the lowest pass count go to the top, with the pass count increasing as you go down. Puzzles that are not line solvable (the solver cannot solve them) go to the bottom of the list. In the event of puzzles having the same pass count, smaller puzzles will go first.

You can choose whether or not you want to group puzzles by size. It might make sense to turn this option off if your pack has a small number of puzzles that nevertheless vary in size, so that you can avoid having your pack have a bunch of pages with only one or two puzzles per page.

Packs need two or more puzzles in order to be saved. Before you can save a pack you have created, you'll need to title it.

Exporting puzzle packs

Once you've created a puzzle pack, you can export it just like an individual puzzle. Exported packs go to the same location as exported puzzles and are also .PZL files. Your signature will appear in the pack select screen, the puzzle select screen of the pack, and the solved puzzle screen when other players play your exported puzzle pack.

Internal puzzle packs versus exported puzzle packs

There are two different types of puzzle packs: internal puzzle packs and exported puzzle packs. Basically, internal puzzle packs are used to create exported puzzle packs.

Internal puzzle packs are packs you created using the pack editor. They only store references to the user puzzles they contain, not the puzzles themselves. They can be edited, they can be exported, and they can be uploaded to Workshop. When you delete an internal puzzle pack, none of the puzzles it contains are deleted, because they are stored as individual user puzzles. When you delete one of your user puzzles, it is automatically removed from any internal puzzle packs that contained it.

Exported puzzle packs are packs that have been exported or uploaded to Workshop. They store the actual puzzle data within them, not just references to puzzles. They can't be edited, but they can be played just like the built-in puzzle packs.


Puzzle editor


Transparency support

You can now create puzzles with transparency to them (just like the built-in puzzles) using the puzzle editor. Individual squares are either blank, transparent, or filled. Transparency only affects how the puzzle appears after it is solved. In the puzzle editor, transparent squares are represented by a moving grey checkerboard pattern. The movement of the pattern can be disabled in the settings.

Solver validation

You can now run the puzzle solver to check whether your puzzle is line solvable, how many passes the solver needs to solve it if so, and what percentile range it falls into (except 30x30 puzzles, which are too large for me to have generated percentile groups). The validator/solver automatically runs whenever you save the puzzle you're working on, and the pass count is saved along with it. The validation screen plays an animation showing the solver working one pass at a time, though the animation can be skipped if desired.


Bucket fill tool

You can now toggle between the paint tool (regular filling in of squares one at a time) and the bucket fill tool, which fills a contiguous space (with blank, transparent, or filled squares) in the same way that such a tool works in image editors. This is particularly handy for turning backgrounds of images transparent quickly.

Mini puzzle preview

A small preview of the puzzle was added above the main editor grid, to help you correctly visualize the image you're creating at a smaller scale.

Removed animations

Individual square animations have been removed from the editor, as a way of distinguishing it from the puzzle solving experience and to avoid distracting from the puzzle creation process.

Reworking of controls

Because of the additions made to the editor, it was necessary to define a separate group of controls for it. You can set your desired inputs for the following actions:

Gamepad:
  • Fill - default: A
  • Blank - default: B
  • Make transparent - default: X
  • Change current tool (paint or bucket fill) - default: Y
  • Undo - default: left shoulder
  • Redo - default: right shoulder
Keyboard:
  • Fill - default: W
  • Blank - default: S
  • Make transparent - default: A
  • Change current tool (paint or bucket fill) - default: tab
  • Undo - default: Z
  • Redo - default: X
  • Set primary click to fill - default: M
  • Set primary click to blank - default: N
  • Set primary click to make transparent - default: B
Mouse:
  • Primary click - default: left click
  • Fill - default: undefined
  • Blank - default: right click
  • Make transparent - default: middle click

When using the mouse, the current primary click type can be changed by clicking one of the primary click boxes, scrolling the mouse, or using one of the keyboard inputs, just like how you can change the primary click type when solving puzzles.


Workshop (Steam version only)

Nonozle now features Steam Workshop integration. Puzzles and puzzle packs can be uploaded to Workshop in-game. When you go to upload an item to Workshop, it'll work much like exporting a puzzle or pack, with you being prompted to show or hide the title for puzzles and asked for a username/signature for both puzzles and packs. You'll also be prompted to agree to the Steam Workshop/Subscriber Agreement, complete with a link to the relevant Steam URL. Items uploaded to Workshop aren't shown to other users until you've agreed to it on Steam. After a successful upload, the game will open up Steam's built-in browser to the webpage for the Workshop item.

Workshop items are automatically tagged according to their attributes. Here is the current list of tags:

  • puzzle (for individual puzzles)
  • pack (for puzzle packs)
  • line solvable (puzzles that are line solvable or packs where all puzzles are line solvable)
  • not line solvable (puzzles that aren't line solvable or packs where all puzzles are not line solvable)
  • 5x5, 10x10, etc. (individual puzzle sizes)

To play puzzles or packs uploaded to Workshop, you'll need to subscribe to them using Steam's Workshop webpage. In-game browsing of the Workshop is not currently planned. But you can subscribe to items on the web while the game is running, and the items will automatically download and be playable without having to restart the game first. A notification will pop up from the right side of the game window indicating that a Workshop item has been installed and is ready to use.

Playtime of Workshop items is tracked so that you can see what Workshop items you've played when browsing them on Steam and sort items by playtime.

In-game, Workshop puzzles and packs are grouped together with exported puzzles and packs that you've manually placed into the Documents/Nonozle User Puzzles directory, if any. When you delete a Workshop item in-game, you'll be automatically unsubscribed from it.

I've uploaded a pack of 21 puzzles as well as a single individual puzzle for you to try out Workshop with.


Random puzzles

Separation of random puzzles from user puzzles

Randomly generated puzzles are no longer grouped with user puzzles and are instead stored separately and have their own puzzle select screen. Unfortunately, this could not be applied retroactively and any random puzzles you generated before this update will still be considered user puzzles you created.

Auto-pausing of current random puzzle

When you generate a random puzzle, you can now leave it and come back to it later without having to save it to your collection of random puzzles first. This change does mean that if you want to permanently save a randomly generated puzzle to your collection, you have to beat it first. If you generate a new puzzle while a paused one is incomplete, the paused one will be discarded.

Pass count bar graph

While generating a random puzzle, a bar graph showing the distribution of puzzles generated so far by solver pass count is shown. This replaces the text readout that served a similar functionality. A highlight below the bar graph indicates the pass count range you selected. Of course, since the graph stops as soon as a matching random puzzle has been generated, it won't be very interesting to look at unless you select one of the outlying ranges (very low or very high pass count).


The bar graph can be disabled in the game's settings if desired.

Go straight to a new random puzzle

You can now generate a new random puzzle from the puzzle solved screen after solving a random puzzle.

Export and copy to clipboard

Random puzzles can be exported and copied to the clipboard for sharing. When this is done, [Random Generator] will show as the creator of the puzzle. Random puzzles cannot be uploaded to Workshop directly.


Puzzle solved animation

The transition from the puzzle screen to the puzzle solved screen has been made fancier. The puzzle grid lines now slide out of view, and Xs, placeholders, and UI elements now fade out or in instead of suddenly disappearing or appearing. The puzzle solved color ripple has also been changed. And a new satisfying sound effect has been added when the puzzle is completed.

Previous puzzle solved animation:


New puzzle solved animation:


Also, two new animations have been added.

Center then slam:


Flying squares (the new default):


You can also choose to alternate between the three types of solved animations by choosing the "Shuffle" option in settings. And the solved animation can also be disabled if you prefer.


Hint aggregation

A new optional feature I've termed "hint aggregation" has been added. With this enabled, repeated identical hint numbers are instead shown as one hint number with a superscript indicating how many identical copies there are.

This:


Becomes this:


In settings, you can choose how many identical hints there are before aggregation occurs, and you can also choose to only aggregate groups of 1s (as those are pretty common). This can make hint counting less frustrating.

When a hint is aggregated, it won't be faded out until all of the hints in the aggregation are accounted for.

Hint aggregation is off by default.


Line solvable retcon

All built in puzzles have been retconned into being line solvable. This means that any puzzles that were previously not line solvable have seen minor changes to make them so. This inevitably entails a large decrease in difficulty for some of the puzzles that have been modified, but I believe it's a positive change for all built-in puzzles to be consistent in this regard.

A list of the puzzles that have been affected follows.

Original puzzle pack
  • A-8
  • B-31
  • B-33
  • C-24
  • C-36
  • C-41
  • C-64
  • C-70
  • C-71
  • C-74
  • C-76
  • C-78
  • C-79
  • D-27
  • D-31
  • E-3
Abstract puzzle pack
  • C-13
  • C-22
  • C-28
  • C-30
  • D-20

If you've already solved any of the affected puzzles, they will remain solved and you won't need to go back and solve them again.

The A-8 step-by-step tutorial has been modified to reflect the change.


Clipboard puzzle sharing

Sharing puzzles via clipboard has been updated to reflect the addition of user puzzle titling and user signatures. When you copy a puzzle to the clipboard, it'll now contain the puzzle's title, and you'll be prompted to sign it just like when exporting puzzles. This results in a somewhat larger text string than before. Clipboard puzzles that were formatted in the old way can still be pasted into the game, but, of course, they won't have a proper title or user signature.

When you save a puzzle that's been copied to the clipboard, it is automatically exported to Documents/Nonozle User Puzzles.

Also, if you try to play a new clipboard puzzle that's identical to one you've already saved, the game will let you know that you already saved that puzzle.


Virtual keyboard

In order to add user puzzle titling and signatures, I had to create a virtual keyboard to support text input using all three input methods supported by the game.


You can use the virtual keyboard using a gamepad or a mouse, or you can simply use your physical keyboard normally.

A new group of controls had to be added for gamepad to support this. You can define the following inputs for gamepad for use in the virtual keyboard scenario:

  • Select (to press keys) - default: A
  • Backspace - default: X
  • Space - default: Y
  • Shift - default: left trigger
  • Escape (to cancel text editing) - default: B


Other changes

Reworked controls editor

How the controls editor works has been changed. Previously, the game would attempt to auto-swap conflicting inputs as needed. As it turns out, the way the auto-swapping was implemented was flawed and sometimes didn't work correctly, and I decided that trying to fix it wasn't worth it.

Instead of swapping inputs between control groups, the editor now highlights any conflicting inputs so that you can easily see them, and won't let you save your changes until the conflicts are resolved. Also, the changes now are not applied until you leave the editor screen, and you have the option of discarding the changes you made instead. Inputs within an individual control group are still auto-swapped.

The explanation text for each control editor screen has been rewritten, in part to reflect this change.

Rearranged main menu

The main menu has been rearranged (again).


The big three buttons are now User puzzles, Puzzle select (for built in puzzles), and Random puzzles. With UI animations enabled, user puzzles move in from the left, built in puzzles move in from the top (as before), random puzzles move in from the right, and tutorials move in from the bottom (as before).

The margins of the big text buttons have been adjusted, and a blank background was added behind the main menu buttons for better separation from the title screen puzzle animation.

Rearranged puzzle select screen

Page dots and page size labels have been moved to the bottom of the screen, and a title label has been added.


Rearranged and improved tutorial page sizing and placement

Like the puzzle select screen, page dots have been moved to the bottom. For pages that have it, the page title text has been moved to the top.


Info pop-up changes

The text pop-up that explains menu items at the bottom of the screen now has an animation where it slides into and out of view. This animation can be disabled, and the info pop-up itself can now also be disabled.

Scrollable options menus

Options menus have been made scrollable when they don't fit vertically onto the screen, adapting the scrolling code I had to create for pack select screens and the pack editor. Now I no longer have to create yet more sub-menus when the number of settings spirals out of control. Hooray!

Task dialog

Added a new type of dialog that shows up when a task is running that takes a while. It has a nice little spinny square in the corner. This dialog appears when deleting all progress, when sorting puzzles by pass count that haven't had their pass counts determined yet, and when creating and uploading Workshop items.


New actionable lines look

Changed how actionable lines are pointed out when that option is enabled.

Before:


After:


The new look is more professional and saves space, allowing the puzzle grid more screen space to work with.

Credits

The URLs in the credits scenario can now be clicked (even with the keyboard or gamepad), opening a browser window to the URL. A link to MonoGame's About page has also been added, as well as (Steam version only) a mention of Steamworks .NET, which Nonozle has always used for its Steamworks integration, and a link to the Steamworks .NET homepage.

Other minor changes

  • Changed the title screen puzzle animation to not restart when the UI is reconstructed but the resolution hasn't been changed (like when toggling certain options, for instance)
  • Rearranged "Other appearance settings"
  • Decreased button inflation rate so that the animation doesn't appear as frantic
  • Code refactoring that doesn't present outwardly, such as only using a single info pop-up instance instead of creating one for each button that has info text, and a total reworking of how lines of text are stored and read
  • Changed how puzzles are saved to binary (they save their solver pass count now)
  • Changed the sound effect that plays when moving the slider in the expanded color picker. The same sound effect also plays when scrolling in other contexts, and when the puzzle grid lines are sliding out of view during the puzzle solved animation.
  • Improved the transition from the pause menu to the puzzle when clearing a puzzle and starting over
  • Changed the "Play" button on user puzzles to not automatically restart the puzzle if it is solved, instead going to the puzzle solved screen
  • Changed delayed repeated input changing the state of a tutorial puzzle to stop when it gets to the beginning or the end of the list of states
  • Made solved puzzle title text twice as large
  • Added more of a buffer between text and buttons in dialogs
  • Adjusted CheckmarkTextButton margins
  • In the sound effect editor screen, changed sound effect buttons to play their sound on hover even when the sound is disabled
  • Changed the puzzle select dot group to account for a very high number of user puzzles
  • Changed exit buttons during clipboard puzzle to say "Exit"
  • Changed puzzle music to begin on starting a solved puzzle when the option to stop music on puzzle solve is disabled
  • Added a blank background to "no puzzles" text in puzzle select screens so that it's more easily visible against the background puzzle animation
  • Changed solved puzzle screen buttons to fade in the background of dialogs
  • Changed the playlist and sound effect editor screens to fade in the background of dialogs
  • Reworked how built-in puzzles are saved and read to allow for easy adding of more built-in puzzle packs
  • Puzzle select buttons now use marquee-style scrolling when the puzzle title doesn't fit instead of decreasing the font size for the title
  • Renamed "Show checkmarks for solved puzzles" to "Show checkmarks on solved puzzles"
  • Probably some other changes I should have kept better track of


Bug fixes

  • Fixed the puzzle incorrect warning delay sometimes not working
  • Fixed mouse interpolation not working outside of the puzzle screen space
  • Fixed "You're all done!" sometimes showing when it shouldn't
  • Fixed completed hints darkening even when hint highlights are disabled
  • Fixed inconsistent sizing of multiple option selectors
  • Fixed issues with puzzle auto assists not triggering when they should
  • Fixed puzzle select buttons sometimes missing the primary color
  • Fixed a bug where a click sound effect would play when clicking between the two text buttons in the hand-picked color screen
  • Fixed an issue with puzzle sizing and placement
  • Fixed an issue with puzzle editor sizing and placement
  • Fixed a bug with repaginating user puzzle select after a new puzzle has been added (not sure if this one is present in the previous release)
  • In the playlist editor, fixed the title/menu track showing the wrong value after clicking "Reset to defaults"
  • In the playlist editor, fixed "Reset to defaults" not actually resetting the title/menu track at all
  • Fixed a crash that could occur in the playlist and sound effect editors after a resolution change
  • (Steam only) Fixed display settings being synced with Steam Cloud by mistake
  • (Steam only) Fixed a crash when a file storing the menu types you've visited is missing
  • Probably some other bug fixes I should have kept better track of


New settings

All of these settings have already been mentioned above, but I've also gathered them here for convenience.

  • Hint aggregation starting amount (Settings > Puzzle > Puzzle appearance)
  • Only aggregate ones (Settings > Puzzle > Puzzle appearance)
  • Show info pop-ups (Settings > Appearance > Other appearance settings)
  • Show random generation bar graph (Settings > Appearance > Other appearance settings)
  • Show transparency animation in editor (Settings > Animations)
  • Show info pop-up animation (Settings > Animations)
  • Puzzle solved animation (Settings > Animations)


What's next for Nonozle?

The next update I'm planning is an overhaul of custom visual themes. I'll rework the custom theme editor so that you can see a preview of the theme, I'll change how custom themes are stored and remove the five theme limit, and I'll add exporting of custom themes and sharing them to Workshop.

After that, I'll be working on DLC puzzle packs! The current plan is to price potential future DLC puzzle packs at $1 for 100 puzzles. Look forward to it, and in the meantime, enjoy creating, sharing, and playing puzzles using Workshop!

Files

Nonozle (Windows version) 173 MB
Version 3.00.00 Nov 21, 2023
Nonozle (Linux version) 80 MB
Version 3.00.00 Nov 21, 2023

Get Nonozle

Buy Now$4.00 USD or more

Leave a comment

Log in with itch.io to leave a comment.