Beta 13 X2 Prelease - MAP ZOOM
Added 2023-12-20 04:26:42 +0000 UTCWell this was quite the detour! Sorry for the delay, and especially that we were really supposed to be getting new content sooner here, but this turned out to be a mega QoL release instead...
While I'm not sure how many of our existing frequent players will benefit from or take advantage of the new map zooming feature in particular, considering that many are used to what we've had for years, I imagine as we head in this direction we'll be seeing lots of new and returning players as Cogmind breaches this final realm of inaccessibility :)
Still more to do on that front, in fact a lot more, but I've made huge progress over the past month, revamping the engine in numerous ways that I have yet to even had a chance to write about since I've been so busy simply getting it done. With X2 out there, I'll be taking some time to do a lot of reporting on the process that went into what we have now, and what's still coming, because X2 is actually just focused on map zooming, while some weeks of the recent work were actually aimed at laying the groundwork for what I wrote about in "Interface Crossroads."
I had wanted to see how feasible it would be to get straight to the Phase 3 mentioned therein, and realized partway through the design prep that it's quite a lot of work, not feasible in the very near term, so my focus turned back to getting X2 released. And I was about to release it a couple weeks back without any related QoL for map zooming, mainly because I think said QoL will be somewhat less vital overall where the new UI is headed, but that'd be kinda weird since then no one would want to ever actually use it for real in X2--it really needs QoL to be playable :P
Cue another two weeks of work and we now have a very formidable array of supporting features that should make play with the map zoomed both possible and... interesting, to say the least. Some of the new features also translate back to the standard map size.
So let's get to it!
Changelog
Unexpectedly enough, this release actually cuts a lot of raw content from the original Beta 13 build I had going. The vast majority of new robots, items and tech I've added are not accessible, nor will they be in Beta 13 at all. They are reserved for Beta 14 and beyond to allow this release to focus mostly on the interface (I mean yeah there's Subcaves, too, and other events and stuff, but that's just a prelude to bigger things). I'll be adding more info about future plans in the "Year 10 of the Cogmind" summary I still need to write up for this year.
Here's the X2-specific changelog coming from X1 (as usual the full changelog for Beta 13 so far is included with the game):
- NEW: Zoom the map view, toggling via 'z' key, the <ZOOM> mouse button just above the map, or the scroll wheel while panning the map (Shift)
- NEW: <HOSTILES> button just above map view while hostiles in FOV, includes tally and clickability to shift view and highlight enemies
- NEW: If certain events occur while out of map view (Watcher/Operator/machine ping/etc), view shifts to include them (advanced.cfg: shiftViewForEvents)
- NEW: While map zoomed, many objects outside view area that would normally be visible are reflected via new types of offscreen markers
- NEW: While map zoomed, if new hostiles to label enter FOV but are currently out of view, view shifts to include them (advanced.cfg: shiftViewForEnemies)
- NEW: Hold RMB on map to set custom relative view centerpoint (centering map view focuses on that position instead, including while moving)
- NEW: While in examine mode, press 's' to set custom relative view centerpoint (overrides automated relative view shifting, set on self to reset)
- NEW: While map zoomed in keyboard mode, view centerpoint auto-adjusts to show more area in current direction of exploration (see manual for options)
- NEW: 1 new item
- NEW: 2 new robot tiles
- NEW: Repair Stations may release functionality level-appropriate backup parts on taking damage
- NEW: Plasma Cutters reimagined with new abilities
- NEW: Additional method of acquiring Dirty Bomb Traps
- NEW: Chute Traps capable of intermittently sucking down disabled bots positioned above them
- NEW: Select items with lengthier descriptions may include a More button in their info window that gives access to additional details
- NEW: Non-explosive direct damage traps can now be recorded as a specific game over reason (primarily due to Piercing Trap)
- NEW: Option to block all pathfinding through areas with cave-in potential (advanced.cfg: blockCaveinAreasForPathfinding)
- NEW: Long-range pathfinding avoids cave-in areas outside FOV based on location's last known state
- NEW: Rigged power sources now show their status as RIGGED and provide relevant context help to explain related mechanics
- NEW: Operators preparing to lock Terminal due to IFF handshake failure temporarily flash a marker at their location, or last known location on leaving FOV
- NEW: Adding item to a large inventory autosorts by type and scrolls to location in list, momentarily highlighting it
- NEW: Removing item from a large inventory, or other changes to inventory contents, retains scroll state as best possible
- NEW: Modifying specific inventory items highlights and centers on them, for example repairing broken parts, drones returning to inventory bays, etc.
- NEW: Certain non-melee weapons may cause Impale critical effect, in which case turn delay side effect does not apply to attacker
- NEW: Shielding utilities' effect data explicitly indicate they cannot protect against overflow damage, as implied in manual
- NEW: Component Analysis Suite explicitly indicates it cannot identify alien technology
- NEW: Bonus points for completing transforming item quests
- NEW: Tutorial message about map zooming feature, and flashing button reminder
- NEW: Context help for item "Rating" stat contains additional relevant info for special values
- NEW: Scoresheet entry recording hostile shots fired/missed
- NEW: Option to output combat log to text/html file on run end, or alongside a stat dump (advanced.cfg: combatLogOutput)
- NEW: advanced.cfg: messageLogLimit/combatLogLimit now accept a value of 0 for unlimited recording
- NEW: Option to cause hit chance popups to report average hit% for all weapons in range of target instead of base% (advanced.cfg: hitChanceVolleyAverage)
- NEW: Option to force message and audio feedback on startup and upon entering -1 if scoresheet uploading is inactive (advanced.cfg: uploadScoresReminder)
- NEW: 8 more font sets (12/Tamsyn, 14/CherryShadow, 16/Tamsyn, 16/TamsynBold, 24/Tamsyn, 28/CherryShadow, 32/Tamsyn, 32/TamsynBold)
- NEW: 1 more font set disabled by default (14/Cherry)
- NEW: Additional font sets can be created automatically by scaling an existing one (relevant if modding in new fonts/tilesets)
- NEW: Updated manual section on "Accessibility" to reflect new layout options and map zooming features
- NEW: Manual explicitly states that Faulty prototypes cannot be used or repaired, but may be scanalyzed
- NEW: Custom Cursor section in manual recommends anyone switching away from the default hardware cursor raise the FPS cap if cursor feels slightly sluggish
- NEW: Added introductory header to each .cfg file
- MOD: Some friendly NPCs that go hostile on being attacked are more lenient to allow for an accidental hit
- MOD: Repair Stations no longer list damaged items occupying temporary slots
- MOD: Layout(Zone) Terminal hack no longer reveals areas planned to be excavated
- MOD: Guided projectiles using waypoints compare cumulative range against maximum weapon range, rather than absolute range
- MOD: Inventory sorting moves rigged power sources to end of the list alongside non-part items due to their special nature
- MOD: Negative side effects of attaching faulty prototypes reworded where applicable to no longer reference as "malfunction"
- MOD: Part damage from faulty prototype meltdown, overloaded power sources, propulsion burnout etc non-combat sources no longer appear in combat log
- MOD: All melee sever crit chances increased by approximately 25% of original value
- MOD: Mak. Armor Plating renamed to Mak. Light Armor Plating
- MOD: LRC Boosters renamed LRC Inertial Stabilizer
- MOD: Allied Researchers unable to identify more types of non-0b10 tech
- MOD: Redacted exoskeleton integration uses unique UI behavior rather than standard ramming interaction warnings
- MOD: Attached item instances saved over multiple sessions of same run to avoid double counting for gallery if removed and reattached after loading a save
- MOD: Mic. Neutrino Core detonation converted to electromagnetic damage
- MOD: Subdweller parts don't normally appear outside Subcaves (was possible, for example, among Exiles Zionites)
- MOD: Centrium Greatsword coverage reduced from 200 to 160
- MOD: Particle Cleaver coverage reduced from 100 to 80
- MOD: Non-0b10 Mechanics/Surgeons or those with explicit AID order use shorter ranges when searching for repair targets
- MOD: Using mouse input with active Microwarp Drive indicates direction by highlighting directly adjacent space, warping immediately from current point
- MOD: Toggling Microwarp Drive while pathfinding or running instantly halts movement
- MOD: Expanded Specialist achievement descriptions to be more specific
- MOD: Disabled Researchers do not trigger warnings for witnessing an attack
- MOD: Door autohacking utilities use green for their timer popups instead of red
- MOD: Removed inventory integrity and mass sorting
- MOD: Map intel mode toggle key changed from 'z' to 'm'
- MOD: Option menu "Allow Auto-cursor" option moved to advanced.cfg
- MOD: Some font files renamed to reflect specific adjustments to style
- MOD: Upscaled versions of fonts are generated automatically, rather than loaded from separate files
- MOD: Options menu font set selection menu ordered from largest applicable set to smallest
- MOD: Options menu font list allows selection of oversized fonts if unlimitedFontSize=1 in windowed mode, rather than requiring cycling or config file
- MOD: Options menu "Show Map Intro" moved to advanced.cfg, renamed animateMapIntro
- MOD: Combat log base hit calculation reflects special value assigned to sneak attacks
- MOD: Navigation Efficiency Matrix effects count towards scoresheet "Teleports" tally
- MOD: "Power Sources Rigged" scoresheet entry renamed to more generic "Objects Rigged" to encompass new mechanics
- MOD: "Subspace Traveler" achievement awarded via discovery of any teleportation method
- MOD: Opening map name restored to Scrapyard
- MOD: Leaderboards display different locations based on win type rather than "Ascended"
- MOD: Interface feedback messages use different text typing sound than regular message logs (advanced.cfg: muteTextSfx setting applies to this as well)
- MOD: Increased accuracy and smoothness of map panning via Shift+mouse
- MOD: Optimized audio asset loading reduces game startup time by up to 40% on some systems [Luigi]
- MOD: Optimized rendering increase maximum FPS by 50% or more, especially in tiles mode during heavy movement or animations [Luigi]
- MOD: [Player 2 mode] Player 2 will also help attack neutral robots you decide to attack via melee
- MOD: Increased Cogmind's memory needs in official system requirements from 500MB to 1GB
- MOD: Increased Cogmind's hard drive space needs official system requirements from 60MB to 80MB
- FIX: Potential crash with an ECA force multiplier of 1.00 during certain events [aoemica]
- FIX: Theoretically possible to complete SGEMP quest in Access twice under rare conditions [aoemica]
- FIX: Failing to escape stasis while attempting to move into a cave-in prone location increased chance of cave-in for each attempt [MTF, aoemica]
- FIX: Coupler squads could spawn under during some conditions under Quarantine lockdown [nogimagogi, MTF, aoemica]
- FIX: Some part status changes not immediately reflected in active Coverage or relative Vulnerability visualizations [MTF, aoemica]
- FIX: Unlocked Garrison exits now excluded from system override reporting [Cracklepappy, aoemica]
- FIX: Behemoth Slayer could appear among Melee resupply contents [Plexion, aoemica]
- FIX: Attempting to direct drop an attached destroy-on-removal part when surroundings already full displayed unnecessary warning [Cracklepappy]
- FIX: Sound effect for part fusing animation excessively loud when applied to multislot parts [MTF, Runia]
- FIX: Superfluous log messages referencing "EVENT_MARKER" might occur during a large-scale explosive Research event [MTF]
- FIX: Scan window hit chance cap for melee attacks limited to 95% instead of 100% [MTF]
- FIX: Core reset still allowed immediate identification of previously known hidden doors on sight [MTF]
- FIX: Splice Drone Bay used Decoy Drone Bay art instead of its own [MTF]
- FIX: Potential crash on destroying an ARC affected by formatsys_deep [Fernman]
- FIX: jsonScoresheet/jsonStatDump advanced.cfg options were still referenced by older names in manual [CatPlusPlus]
- FIX: Mechanics could fit baackup parts to inappropriate special targets in S7 [Plexion]
- FIX: Under certain conditions a fabricated Programmer brought inside a Garrison may tweak a Garrison Relay [DuckBoy]
- FIX: Triggering a single Alarm Trap in one of the Proximity Caves bases did not deactivate others in same array [Terminus]
- FIX: Asb. Combat Suite did not specify its evasion effect only applied to ranged attacks [lyra]
- FIX: When multiple ambient audio sources simultaneously become audible, as upon entering a map, audio log required multiple turns to fully list all [lyra]
- FIX: [Abominations mode] Crash under certain circumstances in -1/Access after destroying all Garrison Access [Infomantis]
- FIX: Potential crash in Subdweller spawning event, depending on surroundings
- FIX: Temporary slot parts used by NPCs were not salvageable
- FIX: Combat log unable to report core damage from traps
- FIX: Retreat notification during a particular Research event may not always be provided under certain circumstances
- FIX: Surgeons unable to repair derelict parts
- FIX: Turret deployment preparation used warning color for interface message instead of green confirmation
- FIX: Automated weapons carried to new map via extradimensional space and later recovered would no longer be able to fire
- FIX: Some dynamic build type labels including Gladiator, Executioner, Skirmisher were used less often than applicable
- FIX: Scoresheet entry "Parts Stripped" always reported 0
- FIX: Beta 12 architecture change could sometimes randomly exclude some types of Last Messages entries from scoresheet
- FIX: Asb. Metafiber Network speed increase effect did not quite match indicated modifier
- FIX: Reloading the interface caused top-center multiconsole buttons to lose ability to highlight on hover detection
- FIX: Program closing animation not visible if exit during game over animations or menus
- FIX: Potential screen edge artifacts caused by optional software cursor may be cleared up more quickly
- FIX: [Pay2Buy mode] New discount or special offer announcements made very quickly in real time blocked the lower popup from changing its text
- FIX: Extended combat log showed behind special mode consoles
- FIX: Multitool could not be used to bump a machine by via mouse when starting immediately adjacent to it
- FIX: Simulated environmental debris generated for robot and machine destruction further out of view only worked in ASCII mode, not tiles
We also have a Discord-specific feature update that's not part of the normal public changelog, so I'll list it separately here:
- NEW: Discord #cogmind-activity channel includes random emoji identifiers to help visually differentiate multiple interspersed runs
This will likely be especially helpful going forward with a public release after which even more players on Discord will be using that system. But anyway we'll see how it looks.
And it's not included in the changelog but I did add a little something special from a future Beta to this release. It's not yet present in its normal capacity and will be removed again before Beta 13 goes public, but in the meantime I thought it'd be neat to have some spicy new tech to play with in X2, if you can find it ;)
Change Overload!
Okay so it's a fairly lengthy changelog including a lot of QoL and interface stuff, but beyond that X2 actually also includes a ton of work not reflected above, far more than usual.
The reason for this is huge changes to the engine and Cogmind's own architecture to support A) zooming and B) the new UI layout-to-be.
In general terms I rewrote a lot of font-handling code, and a lot of Cogmind's window architecture in various places (it's going to take an article to explain that one, but it's a huge deal). All of this should technically, and hopefully, be seamless and transparent from a player perspective, so if no one mentions anything that's a good thing. Or more importantly no one reports weird crashes :P
The scope of these changes is so large that I imagine there are issues in there that I didn't foresee, or just things that went awry somehow and have so far remained unnoticed. On a technical level everything seems okay so far, but given the scope I wouldn't assume it's perfect yet.
Anyway, if there are any serious problems I'll of course be on it right away to serve up fixes.
One area that I don't expect to see issues (fingers crossed...) is the snappy new DLL tech Luigi has contributed. That guy's a genius, and if you missed it above, the changes can bring something like 40% faster startup times, and up to a 50% FPS boost during play. Crazy. Many thanks to Luigi for applying his genius to this area that not only Mac lovers can greatly appreciate, but even the majority of PC players can take advantage of, too <3
Gallery
Let's see some of the new QoL in action!
General inventory behavior might take some getting used to given how central it is to gameplay and for how many years it's remained unchanged, but this update introduces some long-requested adjustments...
Removing an item from a large inventory, or other changes to inventory contents, retains its scroll state as best possible:

Adding an item to a large inventory autosorts by type and scrolls to the new item's location in list, momentarily highlighting it:

Typewise sorting (forward and backward) is now the only way to sort the inventory, and the button changed appearance:

Okay that last one wasn't requested, but as I described on the blog it wasn't essential to retain the mass and integrity options there, and we really need those keys freed up for keyboard users.
Say hello to a new type of flashing '!' marker that temporarily marks where an Operator was last seen when they were heading to report you, mainly added as a complement to map zooming QoL, but also just good for those situations where you're spotted at the edge of your FOV and they take off without you realizing it:

Tiles mode players may find somewhat better environments at prior battle sites where you weren't a participant. While working on something unrelated I discovered that tiles mode was not able to drop simulated debris (I forgot to check the ASCII/tiles mode switch in that line...). Below is a before/after comparison, the left showing what you've been seeing all these years, the right showing what it should've looked like, after two groups of a few Grunts went at it in this room while you weren't around:

ASCII mode never had this issue, and debris actually worked in most cases for tiles as well, just only messed up if you weren't nearby for the battle, or some machine destruction, and later happened to come by that spot.
We've got a new Plasma Cutter. AGAIN. This time it's totally different though ;)

There are some new font options, though none at the most popular size (18), just 12/14/16/24. Tamsyn is available at multiple sizes, and is a pretty readable option like Terminus. Here's a 1440p screenshot example using 24/Tamsyn:

Zoom That Map
I've covered a lot about the map zooming feature in general here before, and later added much of that content and more to the blog in this series. So I won't cover the general stuff again, instead sharing some spiffy related QoL features I've only just been finishing up recently.
The fundamentals are probably best summarized by simply quoting the manual's new section on this topic under Accessibility.
One of the main challenges of having a smaller zoomed view area is the inability to immediately see new terrain and objects coming into view in your direction of exploration. To focus more on a particular direction, hold RMB with the cursor over a map position to designate that as a new relative centerpoint, and all subsequent movement will maintain focus at that same relative direction and distance. Modify this point as often as you like given your needs, or hold RMB on Cogmind to restore the normal centered behavior.

Non-mouse players cannot as easily select distant cells, so by default whenever zoomed in keyboard mode, regular movement will automatically attempt to adjust the map view so that a more useful or pertinent area is visible at all times. Aside from the default behavior, there are also several other types of automation to choose from. Read about the keyboardMoveViewCenterpointBehavior advanced.cfg option for how to switch to another, or deactivate this feature entirely. None of these methods will be perfect for all situations, but they might save time. They can also feel quite strange at first, but with some experience they might be something you can get used to, or perhaps figure out alternative approaches that work for you using manual assignment.

As with the mouse, keyboard users can also manually designate a relative centerpoint. This is done with the 's' key in examine mode with the cursor over your desired target cell. Assigning a manual centerpoint deactivates the automation feature until designating Cogmind's own position to reset it, at which point the automated system will again take over. This feature is also useful for quickly recentering the map to reset the automated system, by simply pressing 'x' to enter examine mode followed by an immediate 's'.

Since you can only see so much at one time while zoomed, only a quarter of the normal map area, there is a good chance that relevant nearby objects will be somewhat beyond the the edges, including even objects otherwise within Cogmind's own FOV. While manually panning the map or designating a centerpoint to keep an eye on a particular direction is useful, and temporarily zooming out to get a general idea of the surroundings is another option, to save time there are a variety of new markers that can appear at the edges of the map view to denote objects in that direction. You'll see markers for offscreen hostiles, non-hostiles (both neutral and friendly), new items, and sensor data. Each marker category uses its own unique background color, and in the case of sensor data is also darker and blinks in and out to reflect the fact that it is not a directly visible object like the others. Items are only marked until automatically labeled for the first time after entering view.

To aid in quickly drawing attention to new incoming threats, if they are visible to Cogmind but not in view at the time the map will automatically shift to show them and pause input for a moment. This behavior can be disabled via the shiftViewForEnemies advanced.cfg option. The map will also shift for certain other events you likely want to be aware of, including Watchers sending out distress signals, Operators preparing to report you, and special proximity pings of nearby machines (all controlled by a separate option: shiftViewForEvents).

Although available even while not zoomed, the <HOSTILES> button that appears above the map while there are hostiles within Cogmind's FOV was added primarily to facilitate play while zoomed in, offering another way to know and confirm that there are hostiles in line of sight, even if not currently in view. The button reports the total enemy count, and can be pressed to focus on and highlight the largest concentration of enemies. Pressing it again restores the centerpoint to its original area, or in some cases if there are other enemies not visible in the first highlight area it may be able to determine that and focus there instead.

Since first introducing it I also added mouse wheel control for zooming, so mouse users can also easily zoom in and out while holding Shift to pan around:

I'll be writing much more about these QoL features for the blog later on, and sharing more examples.
Get Beta 13 X2
On Steam, Beta 13 X2 is located on the new beta branch "beta_13_x2" accessible with the code "ZoomitZoomit", or if you don't have Steam and bought through FastSpring and would like to try the DRM-free version, send me an email at gridsagegames@gmail.com to be added to the Beta 13 cycle notification list. Anyone already on that list will receive an email.
Saves are not compatible with Beta 13 X1.
Moar!
So like I said, next up is more writing to share details on where all this is going, and the architecture built to support it.
I'd also like to finally release a new official version of REXPaint, including some previous patches and most importantly adding some new functionality enabled by these engine updates!
Then I'll be getting back to actually building Beta 13, which will be aiming for a new UI. The results should be pretty cool for many reasons, not least of which because it'll mean the majority of Cogmind players will be able to use a 2x-scaled size 12 tileset by default, which is what the tiles were designed for in the first place! I let Kacper know about that recently and he was happy to hear it :D

These tiles aren't in the game, nor will they be, but were part of the design process...
Update 231220b
As expected given the scope, yeah there were some bugs to squash on Day 1, especially one really serious crash bug caused by code I added to support features that aren't even available yet xD. So that's been removed, along with some other fixes here, a little changelog of just changes from X2:
- NEW: Added more categories of emoji to the Discord #cogmind-activity list
- MOD: Dropped volume of interface message typing SFX
- FIX: One of the new bot tiles was not assigned properly
- FIX: Dormant bots ignored being attacked
- FIX: File mixup caused several Garrison encounters to spawn nothing
- FIX: Several dev/optional fonts were left accessible by default
- FIX: Discord #cogmind-activity channel emoji did not appear correctly
- FIX: Crash on setting combat log limit to less than 150
- FIX: Crash on ending a run under some combinations of map view size and resolution
- FIX: Crash on Alt-Enter during game over
Saves are compatible with the first release.
Update 231226a
Another quick update to address some mostly newer issues or a few things from the short list:
- MOD: Intel markers in map view that overlap known sensor data blink instead of showing persistently
- MOD: Part auto-replacement system only swaps inventory-expanding storage units if of identical type
- MOD: Reduced scope of several mechanics-related tutorial message context triggers to better target them
- MOD: Offscreen object markers and intel also avoid known sensor data at map view edges
- FIX: Typo incrrectly increased Exp. Utility Shielding integrity
- FIX: Font sizes based on 3x or greater scaled versions of smaller fonts might show pixel corruption
- FIX: On-map combat log and some other windows might still be partially visible when opening certain other windows like ESC menu and machine hacking
Saves are still compatible with all previous X2 releases.
Comments
Luigi: The only person to ever get MOD points in Cogmind's 10-year history :) I'm sure the move-while-zoomed feature is at its most controversial for keyboard players! Its usefulness will increase further in "better" UI layouts when the map view inevitably loses a portion of its width.
Kyzrati
2023-12-21 01:51:35 +0000 UTCMod points: get; Real excited to see zooming, been playing around with it and still undecided on what the best settings are.
Nice Luigi
2023-12-20 22:25:30 +0000 UTCZoomit zoomit!
Kyzrati
2023-12-20 11:09:53 +0000 UTCAnd zooming we go!
Charson
2023-12-20 10:17:15 +0000 UTC