Controls & Steam Deck Support

Hey everyone! A new update is now live, which focused on better Steam Deck support, but also includes some other front-facing changes that will be of interest to everyone. There's some new control paradigms, a bunch of performance changes, and a slew of other changes to get the game to feel natural on Steam Deck! [h1]Controls[/h1] As I've added new QoL options, I've had to add new hotkeys and UI buttons for the new features. Players have also been asking for certain options to be hotkeyed for faster access to them. I've felt it's getting a little unwieldly, and there are many more things coming down the pipe, so I've felt there needs to be a new paradigm for quick access to these. As such, I've added a new radial menu you can access by right-clicking on a plot: [img]{STEAM_CLAN_IMAGE}/44994915/0089dba1556edacaa8ae22b477715095b2146c04.png[/img] This radial includes a lot of the common options, like deletion, pausing, and preventing sale. These can each be clicked on, or you can tap the keyboard hotkeys for each position. Once you've memorized these, this makes things like pausing a plot just a quick [b]RMB -> Z[/b]. There are also a couple new options in here... For one, you can now copy the logistics settings of a plot with either [b]RMB -> D[/b] or [b]Ctrl + Shift + LMB[/b], which you can then paste as usual. You can also now choose whether to "pipette" a building with [b]Q[/b] or to also include its selected recipe + logistics settings with [b]Shift + Q[/b] or [b]RMB -> A[/b]. Down the road, there are going to be more controls, and likely other versions of this radial menu, so let me know how it feels and if you have any suggestions! A remapping screen is definitely on my todo list, but some of these underlying changes needed to happen first. [img]{STEAM_CLAN_IMAGE}/44994915/e4b26ced8979f440f2a19068f9478f82e99cb44d.png[/img] Also, I've gotten some feedback that placing roads is a bit tedious. I've now added a "2D drag" implementation so you can just click/drag from a start point to an end point, and it will make L shapes to fit both directions. These can also be "rotated" to flip the corner the other way. And lastly, some of the changes that needed to be made for Steam Deck made a couple optimizations easier to build. For example, selecting groups of plots is now done by just dragging LMB instead of having to hold Shift while doing it... Which is more natural/logical but was a bit tough to add before these systemic changes. You can also use the arrow keys to "nudge" your selections/placement when building roads/plots. You can arrow/return/space through the main menu and pause menu. And you can press "Home" to reset the camera back to its starting position or double tap it for a straight top-down view. [h1]Performance Changes[/h1] I'm sure these aren't the most interesting changes, so I'll be brief: There have been some changes recently around highly-upgraded plots that produce multiple times per tick. Those were put in a little quickly to get to something that works, but there are changes in this update to make that logic a bit more sound, stable, and run quite a bit faster. There are also some other changes to improve the performance for huge "blocks" of connected plots. IE, some people have been filling nearly the entire playable area with one huge chain of interconnected plots/storages through just neighboring connections, and the performance on these was a bit heavier than they should have been. I made [i]some[/i] changes which should significantly improve the performance of these massive blocks, but more will likely be coming down the road. [h1]Vulkan[/h1] In order to get better performance on Steam Deck, the game now includes Vulkan support. By default, the game runs on DX11, which is definitely more stable and well tested. If you [i]want[/i] to run Vulkan for whatever reason, you can do so by adding [i]-force-vulkan[/i] to the Steam Launch Options, though it's definitely experimental so your mileage may vary. [h1]Steam Deck[/h1] I've received a lot of feedback that the game plays well on Steam Deck... I've always wanted to support Deck, as I think the game fits very well: A chill idler/factory hybrid is a really great candidate for playing on the go or in small increments.... I recently bought a Deck, and wasn't totally satisfied with how the game ran, so I've spent a chunk of time building it much better native support in a few different ways. [b]If you've played on the Deck already[/b], I would really appreciate any time you could take to check out these changes and let me know what you think. It should be a lot more natural, but I'm pretty new to Deck myself so I may be missing some things! [h2]Controls / Steam Input[/h2] The biggest thing to me was how "clunky" the controls felt. While Steam does a really [i]really[/i] good job of making any generic keyboard + mouse scheme [i]work[/i], it doesn't feel [i]great[/i]. The first step I went through was adding full native Steam Input support. [img]{STEAM_CLAN_IMAGE}/44994915/2efa7dbc1ab9af2c62cd8e5ac8c09714e8e948f1.jpg[/img] A lot of games just include controller support, which I don't find to be a clean solution - the layout editor then just displays "LB" type mappings instead of actual game actions which makes it hard to recall controls when you forget something. The deck also has much more interesting inputs, like Trackpads, which can be really taken advantage of in unique ways, which I feel often gets overlooked. With this full support, I've mapped a bunch of game actions to Steam Input actions that you can read by name. I've made a default configuration which gives you pretty good access to things, but I suspect people will want to do things like build their own radials for the build menus etc, so I've left a few extras in there as well. [img]{STEAM_CLAN_IMAGE}/44994915/2e7547e1ce066c66ca2d74549c8309fd9b4b788a.jpg[/img] The other thing is that the game now has native "Action Layers", so that Steam Input can understand what "context" the game is in and can adapt the controls accordingly. For example, L2 will open the new Plot Radial when pressed in the game world, but when interacting with UI it can act as a "Buy Max Levels" hotkey instead, and when you're placing a field/building it acts as the "continuous build" hotkey. I'll likely be adding more actions later as the game evolves, but I think this should be a good start. I also don't think my layout is necessarily perfect so I'd like to see what layouts the community comes up with and may adopt any ideas I think fit nicely. [h2]General Deck UX[/h2] [img]{STEAM_CLAN_IMAGE}/44994915/52522468ba77cd3c52c68854e5e41a70f6314543.jpg[/img] While I'm not sure there's ever a way to design this game in a way where it's not mouse reliant, there are some things that a trackpad mouse just can't do quite as well. I've made some obvious changes like making most of the menus navigable by dpad, but also some other changes like adding a "nudging" system when placing fields/buildings and allowing the trackpad to act as a "dpad" through the different crops/buildings so you can change selections faster. There are also quite a few unique aspects to the Deck UI, such as the right trackpad switching to a "joystick" for the radial menus, which can also be "clicked" for really quick access. Some of these I think may be a little less "intuitive" at first glance, since games don't really have standard "Deck UX paradigms" yet, but they end up feeling really nice once you get used to them. [h2]Vulkan/Performance[/h2] The next big thing was that while the game ran [i]reasonably[/i] well, it wasn't performing as well as I would have liked. I did go through and make some performance tweaks, but the biggest difference here was adding Vulkan support. The game was using DirectX 11 by default, but the Steam Deck's built-in DirectX support goes through a translation/emulation layer which has some significant overhead. Since it has native Vulkan support, I've added it to the game, and toggled it on by default for Steam Deck. This resulted in a whopping ~30% performance gain and only took a [i]little bit[/i] of bug fixing. This Vulkan support definitely has less mileage on it, so let me know if you see any graphical issues or weirdness in these builds. [h2]Deck Feedback[/h2] Again, I'm not the most experienced Deck-user, so definitely looking for feedback on all of this. I'd really appreciate any input on this, even if it's just "Hey, I played it, it ran great and was easy to use!" I'd really like to make sure I get this right ;) [h1]Wrap Up[/h1] That's everything I want to call out explicitly... but full change notes are below. As always, please send me any feedback you have via the in-game pause menu, and if you want to chat about any further, you can find us on [url=https://discord.com/invite/AutVxXjPn4]Discord[/url]! [h3]Full Patch Notes[/h3] [list] [*] Show "Cycles / tick" on Plot Progress bar [*] Refund vehicle costs when deleting plots [*] Fix Rank Up / build UI selection states + bugs with scrolling away [*] Add directional road building + flip logic [*] Add distinction between pipette + pipette with recipe/logistics settings [*] Add "Copy Logistics" option + hotkeys [*] Add Plot Context radial + hotkeys [*] Home key -> Reset Camera / Top Down view [*] Add "nudging" logic for building [*] Tons of Steam Deck / Input changes [*] Vulkan support [*] Optimizations for "multiple cycles per tick" logic [*] Optimizations for connected plot logic [*] Lots of guide/quest text changes to call out new controls and schemes [/list]