Reminder:

Make sure your build is at or higher than the latest build posted below. If it's lower, verify the game contents to force an update. It's also important to remember that the sandbox depot is not updated regularly. This depot is only used for confined testing. If you were working with me on one of these confined tests, please remember to opt out of the sandbox depot so you're always receiving the most up-to-date build of the game.

Saturday, June 24, 2017

Upcoming Update

More Campaign Levels
The upcoming build is going to introduce quite a few more campaign levels aimed at helping teach a lot of mechanics and the various ways they can be utilized so as to help smooth the difficulty curve a bit. Most of these new levels are going to be slipped into what is currently Section 2, pushing those levels toward Section 3. From there, many levels are being rearranged in accordance to their difficulty.

Hopefully this will help ease the mechanics of various components so that they can be utilized for more complex puzzles in the future without concern of whether there's a solid fundamental understanding of how they work.

Finalized Campaign Leaderboards
The next update is also going to rework how campaign leaderboards are saved. Currently leaderboards are assigned to levels based on their level designation. This means that if levels are swapped around, the leaderboards aren't. For example, if level 3 and level 4 were switched, level 3 would still be displaying the leaderboard for what is now level 4 and vice versa.

The update will make it so that leaderboards properly follow their assigned level. If level 3 and level 4 are swapped, the proper leaderboards will still load for their respective level.

This also means that this update will clear the current campaign leaderboards. Hopefully this is the last time I'll have to do this prior to release.

Friday, June 23, 2017

Build: 1911542

Leaderboard Focus
This small update adds the leaderboards to the pause menu. Now when pausing, you'll be able to see the leaderboards for the level along with your current score below.

Wednesday, June 21, 2017

Build: 1905119

It's been a good while since I've posted but it's not been without good reason. I've been hard at work roughing in a lot of features which I've put on the back burner for the majority of development. A lot, but not all of the changes made will be listed below.

Quick Restart

This feature has been put off for a while now, mainly because it hasn't been necessary. However after watching people play through the game, it very quickly became evident to me that if I had any hope of retaining their sanity, the quick restart feature needed to come sooner rather than later.

An added note here too though is that while the "You Died..." menu says you can press backspace to restart, you can do so at any point during the level. You don't necessarily need to die for this to work. If it's going to be a quick restart, you might as well be able to do it whenever you want, right?

Overall Polish

Folks who have been watching this games development have seen many iterations of polish come and go as the game fluctuated between being near complete and being completely reworked. As a result, this latest attempt at a home run stretch has seen the least amount of polish added, purely for the sake of trying to save time working on actually getting key features and functionality in the game.

Now that the vast majority of this is finished and the overall style of the game is set in stone, it's time to start reapplying that layer of polish.

In the above instance, some of the most notable additions included the frosted glass effect being brought to the pause screen, the static hex pattern on the lower right being replaced with actual objects that float in 3D space, and while not visible in the picture, a lot of cleaned up animations and visual glitches that are finally addressed.

NOTE: The level select option has been temporarily removed as it's being remade and up until now was the basis for an exploit which allowed you to complete levels without actually playing them.

More Levels
Up until now, most of the work being done on the game has been focused on making sure objects functioned as expected and were built to be as flexible to use as possible for people who are no doubt going to use them in wide variety of unique and crazy ways while building their own levels.

The campaign has at no point ever been swept under the rug, but rather took a back seat to making sure everything was functioning as intended. As such, now that most of the components are now working (within reason for a beta), an enormous amount of work has been spent on creating more levels. A lot more levels. Currently the game goes up to Section 6 with each section containing five levels.

As mentioned earlier, the game will only show you the section you currently have unlocked, and the next locked section. So if you haven't played through Section 1, you'll only see two sections.

NOTE: All these levels are subject to change and will almost certainly be adjusted, both in design and especially order. Currently the difficulty skyrockets from Section 3 on-wards. This isn't intentional but rather a result of the process I'm taking in terms of building levels, having them play tested, and adjusting the order according to their overall perceived difficulty.

Which means if you've got access to the beta, you're a key component in helping me get the difficulty as smooth and as satisfying as it can possibly be. As I've mentioned before and I mean it no less now, I take feedback very seriously and absolutely want to hear what you have to say.

Campaign Progress

With there being more levels to play, the overall campaign interface has been getting fleshed out. The preview above shows the panel that appears after completing the final level of the section. If you've met the requirements to unlock the next section, you'll be able to start playing it immediately by pressing Enter or clicking the button. Otherwise, pressing enter will automatically take you to the first incomplete level so you can work toward unlocking the next section.

In either case, clicking any of the level previews will take you straight to that level, allowing you to either pick which level you want to beat or replay a level in an effort to try and get a better score.

There are plans to hopefully expand on this panel with more leaderboard information but whether or not that will make it to release is still up in the air.

Not Eligible for Leaderboards
On the topic of leaderboards, a new indicator has been added to make it clear when a level you're playing isn't going to result in a leaderboard submission. Currently the only time this happens is if you're playing a level that hasn't been submitted to the workshop or is being played directly from the level editor, but because there's no clear indication of this in-game, this marker will show up in the upper left corner when playing a level that won't submit to the leaderboards when completed.

This also means that all campaign levels now have leaderboard support, even though their titlescreen level detail doesn't show it yet. However because of the way leaderboard submissions work in campaign, these scores should be taken with a grain of salt as shifting level order will result in leaderboards no longer being tied to the correct level. This is going to be fixed in the future and all leaderboards will be cleared prior to the games release, but until now, just expect leaderboards to function, not necessarily to be accurate.

All workshop leaderboards will still be properly tied to their respective levels, but because of balance changes to the game up to release, these too will most likely be reset prior to release.

Final Notes
I know I said I'd be posted more often but unfortunately as things have started to get really busy, I found myself working more on the game than keeping up with the blog. I hope to post more regularly, but as this has been the first in a while after saying I'd do just that, I'm not prepared to make that promise again. Not yet, at least.

That being said, I have begun accepting more testers into the game and I'm still looking for anyone else who might be interested. So if you're still reading this far, please feel free to submit a request for access.

Sunday, May 21, 2017

Clockwork Revamp

Legacy Code
One of the major issues with the game as of late, which has been a major roadblock in creating new levels, is the fact that currently many of the components in the game are using legacy code that is very fickle. Over the coming weeks, these components are going to get a script revamp to completely rework how they work under the hood. This is going to take time but it's ultimately going to make these mechanics function similar to each other and simplify the overall code base significantly.

Reworking Clockwork Bombs
Easily one of the more complex mechanics in the game currently is the clockwork bomb. They seem simple on the surface, but they've got a number of ticks that need to be met in order to function correctly. As such, they've been one of the most unwieldy of the mechanics second probably only to the homing bombs.

Because of this, I've decided they would be a great first component to revamp because the fundamental ideas I have in place for how to simplify them will transition well to more simple components like tornado gems, falling bricks, etc.

(Old Sensors - Ew!)

Before now, clockwork bombs (aka, ticker bombs, aka clinging bombs) have operated off the grid. They kept themselves stuck to blocks with carefully placed sensors, forced snapping, and a bit of luck. This has made them incredibly unreliable, especially with fluctuation framerates.

(New Sensors - Yay!)

The new system is strictly grid based, though you wouldn't know it to see them as visually nothing will appear to change. Ultimately though, this means that there are going to be far less wild card variables that can throw them off or make them operate unpredictably.

Additionally, thanks to the new grid system, the bombs themselves will follow their path significantly more reliably. Their spacing from the wall will never fluctuate, allowing them to crawl through tight spaces with ease.

As mentioned above, this is the first revamp. The update isn't quite ready for prime time just yet, but I'll be sure to post once it is.

Thursday, May 18, 2017

Build: 1829569

Titlescreen Flickering
This build hopes to address an issue which caused the edges of most titlescreen UI elements to flicker, especially at lower resolutions.

Monday, May 15, 2017

Build: 1821794

Hotpatch
No major changes in this update, just a couple of fixes:
  • Level editor will no longer continuously save a backup when interval is set to 0, restoring the intended behavior of shutting off the automatic backup feature instead.
  • Graphical glitch fixed when selecting individual levels from the campaign menu which resulted in elements disappearing behind an invisible background when fading in and out.

Sunday, May 14, 2017

Build: 1820652

About Time Update
So it's been a while since the last update but a lot has happened. Most of the work has been under the hood, specifically to prepare the game for the full campaign. Naturally I'll give more detail below though, starting with...

New Campaign Menu

The campaign menu has received a face lift. The new menu is one of many new refreshes that are coming. Nothing major for the majority of the game since most of that is finalized, however this refresh aims to make sure that the menu system reflects the design language the game is going for. Specifically, minimizing text where it's not needed and making sure where text is used, it's necessary and pronounced.

The new campaign menu replaces the campaign level list with screenshot panels which should make it much easier to identify levels. The screen also outlines the requirements for unlocking the next section, which as it stands are having beaten all five levels in the section or collecting all the cubes in at least four of the levels.

Menu Navigation

When clicking the section text, you'll be shown all the sections you currently have unlocked plus the next section. This means that you won't be able to see all the sections available in the game, but rather the next locked section. This is by design.


Individual Level

Clicking on a level will bring up the level details panel. This panel will be used to display your best score on the level and the current leaderboard for the level once this functionality is added. Of course this functionality won't be available until closer to release when the new campaign levels have been released.

Locked Sections

Along with the face lift, the menu is now properly able to lock you out of sections you haven't properly unlocked yet, while also displaying the requirements for unlocking it. Once you've met the requirements, the screen will appear with an unlock button that will permanently unlock the section to your save file and reveal the next locked section.

Frosted Glass

The next update is strictly cosmetic. The entire interface is being updated with a new frosted glass interface which was ultimately the goal from the very beginning. This means that all transparent panels will blur out the background, giving them the appropriate appearance of glass.

Currently this only extends to the title screen and level editor but will be across all UI elements in the release version of the game.

Note: There are still some graphical issues with this, specifically any menus that fade in and out with 3D animation. The only known example of this is when selecting individual levels from the campaign menu though so if you notice any other issues, please let me know so I can fix them in the next update.


Diamond Level Editor v2.3

The level editor has received quite a few updates. Most of the changes were behind the scenes optimizations and fixes to improve stability and cleanliness of the code for easier expandability in the future. However there was one major bug fix related to color switches and the screenshot capturing mechanic. The issue resulted in a significant drop in performance when building even moderately sized levels, especially ones with more than one or two color switches. This fix almost doubles the expected performance from the editor and should be a huge reprieve for anyone trying to build levels on a laptop.

Level Name/File Name Merge

Up until this update, you've been able to name your level and it's file name separately. Unfortunately this was directly linked to an issue which would cause levels to not overwrite properly and was ultimately done purely for the sake of being allowed to use characters in the level name that would otherwise be invalid for filenames. Unfortunately this added flexibility lead to more issues than it was trying to solve, especially when you were expected to name your level and your file name.

Ultimately I decided to just merge the level name and file name into a single "Level Name" field which should make it a little less inconvenient to save your levels, at the cost of no longer being allowed to use invalid characters in the name of your level.

Backup/Restore

In a perfect world, this wouldn't be necessary. However stuff happens and the last thing you want to do is be working on an intricate level and lose all your progress because the game either crashed, your laptop died, or the power went out. For situations like this, a new backup/restore feature has been added into the level editor.

At a set interval, your level will be saved into a separate backup file. When you properly exit from the editor, a marker is set that will let the editor know the next time that it there was a clean exit and that everything is good. However should you return to the editor without this marker, the editor will know something must have happened between now and the last time you used the editor.

If this marker isn't found, the editor will offer you the chance to restore your level. Currently this offer is a one off deal to restore your level, however there is a plan to make the restore option available in the load level dialog.

It should also be noted that the editor will automatically save regardless of your set interval when you play your level.

Automatic backups DO NOT overwrite your level file and are strictly for restoring progress on your level and are not intended to be a replacement for routinely saving your level or not saving when exiting the level, loading a new level, or exiting the editor properly.

New Editor Settings

A few new settings have been added to the editor settings panel which are related to this update.

The ability to set a backup frequency in the number of minutes between each automatic backup, and the ability to disable the frosted glass UI across the whole editor. Note however that this setting is exclusive to the editor and will not disable the effect across the whole game. This setting isn't available yet and will come once the in-game graphical settings are made available via the titlescreen.

WARNING:
While the editor does say you can set the backup frequency to 0 minutes to disable the feature, there is a bug that causes the editor to interpret  this as saving constantly. Please do not set this to 0, especially if you're using a solid state drive. The writes are tiny but in the excess that the editor would rapidly save, could negatively affect your hardware over an extended period of time. This will be addressed in the next update.

Quick-Select
A new hotkey has been added to the editor which replaces the Solid Brick hotkey.
Pressing E while hovering over any object will automatically select that object to be the next object you place. Holding Shift + E will instead select the color of the object you're hovering over.

This functionality replaces the individual hotkeys used to select objects, however Q to toggle object modifiers like orientation, rotation, and power is still available and numbers will still select color (or size when shift is held.)

Bug Fixes/Changes
  • The level editor will now properly communicate to the level player that it originated from the editor, allowing you to quickly return back to the editor via the pause menu.
  • Homing Fuse Bombs will no longer interact with each other, regardless of their activation state.
  • Tab will now automatically open FreeView in-game.
  • Adjustments to the camera in-game have been made to place more emphasis on the level rather than strictly the player and the immediate surrounding area.
  • You can now pause the game before starting the level.
  • Orientation icons will now be displayed on objects when paused or in FreeView mode.
  • The editor now properly overwrites your level when you accept the overwrite prompt.
That about wraps up the bulk of this update. Of course a lot of other little changes have been made but none of them are significant enough to warrant their own section in the blog. As always, please feel free to message me about any suggestions, feedback, or criticisms you have with the game so far.

Sunday, May 7, 2017

Long Overdue Update

No new build just yet, but I did want to make a quick update just to post a quick update reassure everyone following that progress is absolutely still going full steam ahead. I just haven't been quick to push new updates as work has been across the board with a lot of new bits across the game, a lot of new little tweaks, improvements, and overall quality of life changes. None of these changes alone warrant a whole build update just yet, however I realized that in doing all of this without pushing a new build, I've inadvertently neglected to update the blog with news about what was coming.

While I'm still not entirely ready to reveal all the new updates, I would like to post a quick teaser to give you all a small taste of what's currently in the works.


I won't go into detail, but this image alone hides a lot of small details that hint to what can be expected when the next update is ready. This includes changes to the titlescreen, main game, and the level editor, so quite literally across the board.

I'm looking forward to finally getting to go into detail, but until then, keep an eye out. It shouldn't be much longer now.

Friday, March 10, 2017

Build: 1684434

Freeze Bricks
A new type of brick was added into the game that will freeze the players movements when impacted. This will completely lock them out of any sort of movement whatsoever, including the ability to throttle their speed. Their momentum into the bounce is carried over and they will continue bouncing until they impact a non-frozen surface.

Orientation Change

Up until now, the players initial direction has always been downwards and the tornado's would always start off moving to the left when they landed on any surface. This seemed like an unfair restriction considering the starting orientation of just about every other component can be controlled in the editor when placing the object. Clockwork bombs can be told to spin clockwise or counter clockwise, homing fuses can be told to start moving up, down, left, or right, etc.

This build introduces the ability to control which direction the player spawn and tornado diamonds will start off in when the level begins.

Right now there's no indication of this in-game, for any objects. So when you start a level, you won't know whether the player is going to move up or down. However this is planned to be introduced in the form of a FreeView overlay, which will be visible from the start of the level as well.

Minor Fixes
  • Tornado's will no longer be destroyed upon loading the level.
    • This was a result of a new condition which destroys tornado's when they leave level bounds. Because they were placed before level bounds were destroyed before the level began.
  • The modifier panel in the editor no longer obscures the mouses input from placing components into your level when it's not open.
  • The default state for multi-group selection in the object toolbar is disabled to better replicate the group selection from the original object bar. This can still be manually enabled via the multi-group checkbox on the object bar however.
  • Level bounds should no longer show up in the level preview image saved with your level.
Known Issues
  • Objects will still show up as "out of bounds" if placed outside of level bounds on a separate layer.
    • Because level bounds don't respect objects outside of the "Playground" layer, this means solid bricks placed outside of the established level bounds on foreground or background layers will be flagged as "out of bounds" objects.
  • Level Editor won't properly overwrite saved levels.
    • This one's a bit trickier and might take a while to solve. The issue seems to be directly related to the permissions granted to levels saved via the editor. Nothing about the code surrounding the level saving has been changed so this could be a result of an update to Windows which is placing heavier restrictions on editing files from the games directory.
    • If this is the case, the default location for level files might be moved to the Documents folder.

Build: 1682052

Editor Update
This build introduces a couple of long overdue additions to the level editor. The first of which are level bounds to the level editor so you can see the automatic bounds being created for your level based on it's structure. The second being descriptions for objects.

Level Bounds
When creating a level, the game automatically placed level bounds around the level when playing it. This was fine but it left you sort of flying blind about what the bounds would look like when creating the level itself.

The editor can now display these bounds in real-time as you build your level so you can get a clear idea of where the edge of your level is. These bounds are important because it not only controls the camera but leaving the level will kill you.

Also nice is that these bounds will render on top of any objects regardless of layer, making it easy to see where the bounds are when you start building out your levels to have more intricate frames. However just like the grid and layers, these bounds can be disabled via the toolbar.

Bound Extender
With this update also adds the level bound object, which has been re-labeled as the "Bound Extender". The look and name has changed but it functions identically. It's an invisible point you can place on your level which will extend the bounds of the level. This allows for more open ended levels without the need to place solid bricks which could interfere with how you intend for the level to be completed.

Descriptions
You can now click on the name of an object above the object bar and get a description of the object you have selected. This was always planned to be added eventually but figuring out the cosmetic design wasn't entirely clear until after the new object bar was added and the visual styling matched better with the original vision for how it would look and function.

Missing Objects
With the addition of the new object bar, a couple of objects were accidentally forgotten. As mentioned above, one of these objects was the level bound or "Bound Extender" object. The other object that was missing was the Clockwork Brick. It's been re-added.

Sunday, March 5, 2017

Build: 1671831

Progress Update
It's been a little slow the past week. I recently replaced my main hard drive with an SSD and had to reinstall Windows along with all my other software. Things should be back to a normal pace now.

Tornado Spawn
A new prototype object has just been added into the game. The tornado spawn will spawn a single new tornado diamond into the level. When that tornado diamond has been destroyed, the spawn will create a new one. You can still place individual tornado diamonds, but this spawn will allow for renewable tornado diamonds in cases where they may, for instance, fall off of the level. This can be especially useful for levels where you may want them to repeatedly reappear in a certain position and create a condition where they'll repeatedly be destroyed to restore them back to their original spot.

Saturday, February 25, 2017

Build: 1656765

Editor Update

  • The new object bar will now properly flag objects such as bricks and force fields as being resizable.
  • Object names have been added to the new object bar along with some adjusted names. While not finalized, these are the names I'll be using from now on. One notable change was that the spinning bombs, aka clinging bombs, are now simply "Clockwork Bombs".
In-Game Changes
  • Updated visuals for fire and lightning elemental gems. Their shaders should now work properly along with their respective destroy effect. In other words, fire gems actually explode again.
  • Vertical player movement has been slowed down by about 16%. This will be tweaked in future updates as the final movement is further refined.

Tuesday, February 21, 2017

Build: 1647488

Group Icons
Small update to the new object toolbar replaces the old style group checkboxes with icons which are easier to identify on the fly. The update also adds a multiple checkbox which when disabled will allowyou to select individual groups rather than more than one group at once.

Monday, February 20, 2017

Build: 1645059

Object Panel Refresh

One of the issues I faced when building levels for the campaign was despite having built and categorized the objects into various groups, I still found myself digging for objects trying to find what I was looking for.

A while back an object preview was added to let you see what you had selected before you placed it and this worked well for eliminating the post-click limbo between selecting a part and placing it, but it did nothing to solve the root issue. Finding what you're looking for in the first place.

This update aims to fix that by providing simple but defined icons for each object, making it much easier to see specifically what you're looking for. The grouping system has also been replaced with a filter system. This is because many objects share similar qualities to other objects and don't always fit cleanly into a single category. The filter will allow you to narrow down what you're looking for without having to find a specific group it belongs to.

Naturally as usual, everything here is still subject to change. Any and all feedback is welcome.

Sunday, February 19, 2017

Editor Icons

Editor Refresh
One of the major issues with the level editor right now is how cumbersome it can be to try and dig around for the specific components you're looking for. Figuring if this is an issue for me, having made it, it's most certainly going to be an issue for newer players not familiar with the components. This is especially true since the campaign won't be introducing components by name but by their shape.

As such, a refresh to the editor is going to replace the current labels with new icons. Here's a preview of that update right now:

Wednesday, February 15, 2017

Build: 1629376

So over the past week, I've been occasionally releasing small build updates. None of these builds contained a massive amount of new content worth mentioning just yet, mainly because a lot of this content is still very much in construction and none of it has even begun to resemble what I intend the final product to look like.

That being said, anyone on the latest build will notice that the campaign menu is currently in place, along with a basic progression tracking mechanics. None of the levels included in campaign have any sort of leaderboard support yet, nor does completing them actually have any meaningful impact. In fact, while a basic save file is established, it's all still very basic and likely to change.

Major Changes
The core mechanics of the game are already set in stone, however in trying to design levels for campaign mode, I've been starting to notice a lot of glaring issues that need to be addressed. A few of these issues are already in place with the current build, such as the ability to access FreeView mode and the pause menu before the level actually begins. However a few other issues such as camera control and just overall level visibility are going to be opened back up and examined to see if I can come up with a better way of handling them.

Part of these changes is going to include an overall reworking on how a lot of mechanics currently work so as to provide more realistic usage of the individual components in respect to whole level designs rather than each component being in the sort of proof of concept bubble they're in now.

These could be subtle changes to simple mechanics like the speed of tornado diamonds, all the way up to significant changes like what can and can't be destroyed with homing bombs.

Editor Changes
While building levels, a lot of glaring issues have started to show their face with the editor. One major issue is just how overwhelming it can be to start making a level from scratch. A solution to help combat this is the inclusion of starting templates. Currently these include a small level outline, medium level outline, large level outline, and of course the original blank level grid.

Visuals and Performance
A lot of visuals still need to be fixed and updated since the Unity 5 upgrade and a lot of the current fixes are still very unoptimized. As time goes on, you'll continue to see improvements on both ends of the spectrum, but these are going to come gradually with each update rather than a single update addressing them all at once.

Fun
Ultimately the end goal here is to try and ensure that the final game is above anything else, fun. And right now I'm not entirely sure the game in it's current state is going to deliver a campaign mode that is exactly that.

As usual though, feedback is more than welcome. There's never been a good idea I haven't at least considered.

Tuesday, February 7, 2017

Campaign Update

Just wanted to post a quick update between builds since it's longer than I anticipated, but currently I'm knee deep in setting up the underlying mechanics for the campaign. The system is being setup to be as expandable as possible so that new levels can easily be added post-release.

The system as it stands is going to have five levels broken up into multiple sections. You'll only have to beat four out of five levels to unlock the next section. Each level will contain power cubes which contribute to the time to beat the level, but will also be used towards "completing" a level.

These cubes will be entirely optional in terms of progression through the game, however if you're the kind of person who strives for perfection, you'll need to collect all the cubes in each level. Completing all the levels in a given section, including collecting all the cubes will also unlock achievements.

There's no set level count in mind. There's no intent to have any sort of tutorial prompts. Level progression will be the tool of choice when training players about how various components work. As such, it's safe to assume that most of the mechanics won't show up right away but will be slowly introduced throughout the course of the campaign.

Thursday, February 2, 2017

Build: 1607369

More Visuals Fixed
The bulk of this small update involves fixing more of the visual issues that the Unity 5 update brought. This includes proper reflections on things like death bricks, homing bombs, tornados, etc, as well as refining some of the particle effects.

Mechanical Fixes
Homing Bomb tracking is a bit more reliable, replacing the previous single point raycast with a spherecast that covers a slightly larger area and makes the likelihood of 'seeing' the player a bit easier. The 'near wall' restriction has also been lifted since the spherecast ideally prevents the bomb from getting a complete line of sight if it's chase path isn't completely clear from the point it locked on.

  • Currently there's an issue where the bomb will 'snap' into walls as a result of this restriction being lifted. I'm looking into a clean way to resolve this issue.

Death Blocks now function correctly again.

The particle effect and sound from dying are fixed.

Tuesday, January 31, 2017

Build: 1602294

Editor Updates

A majority of the issues with the level editor are addressed in this build. Specifically a lot of the unusual graphical glitches that were introduced with Unity 5. A lot of visual quarks are still there but these issues will be addressed over time as they're fixed in the main game too. These include objects like glass doors, roaming spikes, and just in general a lot of the more obscure objects.

Please note, this update does nothing for controller support in the editor. That's still going to be a massive overhauling to even begin work on. Currently the editor can't be accessed via controllers at, it simply won't launch from controller input. Once support is there, it will.

Monday, January 30, 2017

Build: 1599973

Legacy Controller Support
This update adds a layer of abstraction to most Steam Controller inputs that allow for non-Steam configured controller configurations to work in the game. This means the DualShock 3 will properly work without support for the Steam Controller API. It also allows for people to play using an Xbox One or Xbox 360 controller without the need to set up a configuration via Steam.

There are three  catches though.

  • First and foremost, level editor support will only work with controllers configured with the Steam Controller API. This is because the editor is planned to take full advantage of the actions provided by the Steam Controller API, specifically the ability to assign actions to buttons.
  • Second is a lack of button mapping. As of the time of writing this, there is no plans to add button mapping to generic controller input. Unity doesn't make this easy and I don't intend to go out of my way to recreate the same functionality that Steam already has built into their controller API.
    • Steam Controller API support is not only free, it's expandable and far more powerful than anything I'd be able and willing to recreate. If you want to remap your buttons, there's no reason not to utilize the Steam Controller API.
  • Finally, the game won't pause when a controller is disconnected. Unity does not appear to reliably detect when controllers have been disconnected. This is especially true for wireless controllers since Unity often treats the wireless adapter itself as being whatever controllers are interacting with it. Since a disconnected wireless controller doesn't remove the adapter as being available, Unity doesn't recognize the disconnect.
    • This isn't an issue with the Steam Controller API which explicitly informs the game when a disconnect occurs.
Recommended Configurations

There are now a set of recommended configurations that Steam will offer you when choosing a base configuration for your controller. Each of these configurations were specifically designed to be as universal as possible while maintaining a layout that makes sense for the respective controller. For example, the Steam Controller replaces right touchpad with mouse input and the left touchpad with the ability to scroll.

Additional Fix
Entering FreeView mode from the pause menu is now working properly. Previously entering FreeView mode from the pause menu via controller would appear to resume the game and any attempts to pause the game would automatically activate FreeView mode.

This is a result of a bug in Steam which causes actions to get stuck when transitioning between action sets. Since selecting FreeView would instantly transition into FreeView mode, the "Select" action would get frozen in a "true" state, resulting in any attempts to access the pause menu automatically "selecting" FreeView.

While the issue is confirmed by Valve to be an issue on their end and is fixed in the Steam beta client, the game will now wait until the button is released before switching action sets, preventing its state from freezing as true.

Sunday, January 29, 2017

Build: 1597827

Leaderboards

The leaderboards can now be properly navigated with a controller.

They've also been updated to automatically round to the nearest hundredth decimal point to avoid excessively long scores ending in .06001 which seemed to be an unusually common occurrence.

FreeView

This update also makes a long overdue update to FreeView mode which brings it up to date with the current look of the game as well as slimming down the UI elements to make it less visually intrusive to the entire goal of FreeView which is to look at the level.

Along with the visual update, the mode is now fully supported by the controller and can be accessed via keyboard with the tab button on keyboard to make it's accessibility comparable to the instant access provided on controller via the select key (default).

Moving On
This update for the most part sums up controller support for the base game. Aside from small tweaks, adjustments, and bug fixes, the focus is going to move forward toward fixing the level editor to work with the Unity 5 build of the game. This includes the potential of having controller support included here as well, though I'm not prepared to make any formal promises just yet.

Tuesday, January 24, 2017

Build: 1589080

Small Refinements
Another small update here just to make sure I'm keeping pace. This small update fixes the Pause Screen so that the cursor overrides the controller when it begins hovering over menu items.

It also allows the Press Start prompt to change depending on whether or not a controller is found. Displaying "Press Shift to start." instead of an empty spot where the input prompt would otherwise be.

Still left to be done for in-game controller support includes:
  • FreeView mode.
  • Controller inputs for the level complete screen.
  • Controller support for the Level Select screen.
Level Editor
I'm well aware of some massive drops in performance that the editor has endured since the update to Unity 5. This is a result of not addressing any of the flood of issues that Unity 5 created in that respect. The editor is a very complex bit of the game and will need some special attention to get back in a working state. Nothing that's beyond fixing, make no mistake. But controller support has been the primary focus right now.

That being said, the level editor still works perfectly fine in the depreciated legacy branch and levels created with that branch will not be incompatible with any future builds of the game between now and when the editor is eventually back in an acceptable state. So please feel free to use that branch if you want to continue creating levels and uploading them to the workshop. Just be aware that as I've said before, this branch is the last build of the Unity 4.6 version of the game and will no longer be updated. It will also be removed once all the issues between the Unity 4.6 and Unity 5 builds have been addressed.

Monday, January 23, 2017

Build: 1586857

Pause Menu
This small update adds the ability to navigate the pause menu with the controller. FreeView and Level Select are next on the list.

Bug Fixes

  • Pressing the guide button on the Steam Controller is no longer seen as an unknown controller.
  • In-Game will no longer spam the action set to the Steam Controller API.
  • Game should no longer become irreversibly paused when opening the Steam Overlay on the level complete screen.

Build: 1584926

Steam Controller API
The first major update for the Steam Controller API support has just gone live. While there's still a lot of work that still needs done, this update is far from small.


Title Screen Navigation
Currently this means accessing packages and individual levels from the Player Crafted panel, though filter control isn't available just yet. Resolution and audio panel control might still get reworked before release so these panels are also currently inaccessible via controller and probably won't be until their design is finalized.



Gameplay Control
Gameplay also now properly responds to controller input, including analog input from the analog sticks and triggers, allowing for more fine movement than digital input from the keyboard could otherwise offer. This isn't to say that keyboard controls aren't still the primary way to play. The game itself was designed with digital inputs in mind. However this added level of control comes across as a bonus for people who prefer controllers to not feel as though their inputs were merely forwarded key presses.


Naturally the game will automatically pause when it detects the number of controllers available has been reduced below where it was originally. While this phrasing might seem like a strange way to describe a controller being disconnected, it's entirely possible to have more than one controller plugged in at a time. Diamond is a singleplayer game but because it's capable of receiving inputs from whatever controller is currently "Active", this distinction means that regardless of what controller you're using, if any controller is disconnected, the game will pause.

Xbox, DualShock, and Steam Controller

It can't be stated enough that despite the name of the Steam Controller API, support for this API also includes support for all three major controller layouts and any future controllers Valve adds to Steam in the future.

The icons above are used to represent the controller detected when connected. With no formal way to detect a controller type via the API however, the game detects the controller type based on the button mapped to the "Select" action under the Menu Control action set in controller configuration.

For instance, if the game detects that "Select" is bound to the X button on a DualShock controller, it can safely assume that the DualShock icon is appropriate to display when letting you know a controller was detected.

That being said, it's important to remember that the Xbox and DualShock controllers do not currently have "Official" bindings yet, so you'll need to make sure to check and make the appropriate bindings when attempting to play with either of these controllers. This won't be the case upon release.

Unknown Controllers

Because of the way controllers are detected, if the game isn't able to automatically detect your controller, it has no way of knowing if it's either because the controller isn't properly configured or because you're using a new type of controller that the game wasn't designed to detect.

In this case, you'll be given a dialog describing the circumstances and what the likely cause is. If you're using a supported controller, it'll recommend checking your configurations. However because of the nature of the Steam Controller API, it's also entirely possible that the controller was simply added later down the line and the game simply isn't aware of what kind of input prompts should be displayed. In this case, the game should work perfectly fine as long as it's configured properly.

Work In Progress
One major area that you'll notice in this update however is that the pause menu is still inaccessible via the controller. This isn't an issue with the Steam Controller since you can still navigate it with the right touch pad as a mouse, however keep this in mind when trying to play with a controller.

Friday, January 13, 2017

Updated Input Glyphs


Just a brief update showing off the various input glyphs for the three major controller styles Diamond is going to support through the Steam Controller API.

Generic input will be available via the input settings in-game which will allow you to manually switch between Xbox and DualShock prompts, however the main way to handle input will be via the Steam Controller settings available in Big Picture Mode.

It should be noted that once this update goes live, unless you're using a Steam Controller, you'll need to manually enable Xbox One or DualShock 4 support via the Settings in Big Picture Mode. From there, you can change and adjust the button mapping however you want and the game will automatically use the new inputs and display the proper input glyphs for whatever you have mapped.

Wednesday, January 11, 2017

Full Steam Controller Support

With the majority of the issues from upgrading to Unity 5 addressed (though not available yet), work is currently being shifted toward getting full support with the Steam Controller API.

No Steam Controller? No problem.

What the Steam Controller API allows the game to do is interface with the powerful controller customization that's available in Steam. This functionality is still very new on Steam, such that it's currently only available in their beta client. This means Diamond will be among the first games to fully utilize its functionality.

So what does this mean for people not using Steam Controllers?


In short: It means if you're using an Xbox One, DualShock 4, or Steam Controller, you'll be able to fully configure the controller however you want.

Instead of relying strictly on generic button presses which can't be easily remapped, Diamond will be utilizing Actions and Action States supplied by Steam to provide information about what's going on with the controller. In addition to being able to remap these actions to whatever type of input you want, the game itself will be able to display accurate button prompts that reflect the changes you've made in the controller configuration.


This means any controller input can be mapped to any in-game action, including the gyroscope functionality in both the Steam Controller and Dual Shock 4.

Above is the current progress on creating the various in-game glyphs for each controller input that's available for each controller. There's still a lot of work to go but I'll be sure to keep the blog up to date with the latest news.

Saturday, January 7, 2017

Build: 1556094

Incremental Update

  • Solid bricks have had their cubemap reflectivity fixed to match what was originally in the Unity 4.6 build of the game.
  • Light caps for color switches and field switches have been updated to be more vibrant.
  • Player model has a completely new material which features real-time reflections of the play field surrounding the player.
  • Diamonds have been reworked to have real-time reflections and a more bold vibrance to them, making the colors easier to distinguish without sacrificing visual quality.
Naturally all of these updates are going to be subject to optimization prior to release and due to their overhead, will absolutely be adjustable under graphical settings. As of this build, a screen full of diamonds at 1920x1080 will get you about 90fps on average with a GTX 970.

Sunday, January 1, 2017

Build: 346391

Unity 5 Update
The latest build addresses a tagging issue which broke both the editor and player in very unexpected ways.

  • Levels will no longer get frozen in a black void when beginning.
  • You can now place and delete objects in the editor again.
  • Developer mode is activated to allow for more transparency behind the scenes. This should make it a little easier to report issues.
There is still a lot of work left in the Unity 5 update but progress is now back on track.

If you wish to continue playing the old version of the game, remember you can still access it via the depreciated build tree, but again I'd like to remind you that this build will no longer be receiving updates and will only be around until the newest build is back in a stable state.