5 ms·
See also: A bug so cool that the development team was reluctant to fix it (https://devblogs.microsoft.com/oldnewthing/20190603-00/?p=102534 https://devblogs.mic
by striking 7y ago
See also: A bug so cool that the development team was reluctant to fix it (https://devblogs.microsoft.com/oldnewthing/20190603-00/?p=102534 https://devblogs.microsoft.com/oldnewthing/20190603-00/?p=10...)
- rxhernandez 7y agoI wonder why they didn't just decide to have a more finite "history" so that they could keep the "parlor trick."
- munificent 7y agoThe parlor trick isn't a useful feature in practice. If a user drags a Note around a bunch, drops it, and then selects undo, what they really want is to undo all the way back to its location at the beginning of the drag. They don't want to rewind the entire drag procedure one pixel at a time. I've dealt with this issue in various tools and level editors a few times. It can be annoying. The fundamental problem is that if your tool has undo (which it should), the cleanest way to architect it is such that every state change goes through undoable operations. But that means that even in the "middle" of an operation like dragging something, or painting a long meandering line, you need to be creating and processing individual undoable steps so that the user can see the operation as it proceeds. But once the operation completes, if they undo, they (usually) want to undo the whole batch of them, not each tiny step. A closer-to-home example of this for most programmers is their text editor. Type a sentence quickly and then hit undo. You don't want that to just undo literally the last character. There are two ways I know to handle this: 1. If memory is less of a concern, I keep the series of individual undoable steps and then wrap them up in a single "multi-step" undoable operation. Then, in the main undo queue, replace them with that wrapper so that they are all processed as a single operation. When you undo the wrapper, it just undoes all of its child steps in reverse order. 2. If memory is more of a concern, I add support for collapsing a series of undoable operations into a new larger one that can represent the entire aggregate change more efficiently. This is more work because you need to write separate code for each kind of operation that can be batched this way.
- reificator 7y ago> Type a sentence quickly and then hit undo. You don't want that to just undo literally the last character. I am continually irritated by this behavior. Yes, I do want to undo one operation. If I need to go fast and have little regard for correctness I can hold the button down. Don't make me play the game where I hit undo, it undoes the whole sentence (or several), so I hit redo to bring it all back, and then I have to click backspace 5 times to get to where I wanted. Worse when I'm using multiple cursors and doing operations of different lengths to each line.
- weaksauce 7y agoUndo is an transactional operation... backspace five times is precisely what backspace is for and would make undo less powerful if it undid every single keystroke.
- reificator 7y agoMy problem is that my mental model for what is an undoable transaction is almost always smaller than the editor's, to the point where I try to undo, get surprised by how much was lost, and then redo and control+backspace until I've deleted what I need.
- parliament32 7y agoSounds like you need Vim in your life. To keep things short: Whenever you want to insert some text you need to switch to Insert mode. When you're done you Esc out back to Normal mode. Undo will undo everything you did inside the last Insert.
- reificator 7y ago> Sounds like you need Vim in your life. > To keep things short: Whenever you want to insert some text you need to switch to Insert mode. When you're done you Esc out back to Normal mode. Undo will undo everything you did inside the last Insert. That's a more extreme version of the behavior I'm objecting to. Why would I prefer that?
- Unknoob 7y agoReminds me of the old Dota2 Fountain hook glitch. A Valve employee commented that they deemed it "Too hilarious to fix"[1] They eventually patched it after a pro player abused it to turn a game around at the International 3[2] It's a shame because 6 years later it's still one of the best moments I ever witnessed in the game. [1]: https://dev.dota2.com/showthread.php?t=2989&p=11512&viewfull=1#post11512 https://dev.dota2.com/showthread.php?t=2989&p=11512&viewfull... [2]https://www.youtube.com/watch?v=oB0tUrfDz6A https://www.youtube.com/watch?v=oB0tUrfDz6A
- beams_of_light 7y agoI honestly thought fountain hooks were a legitimate part of the game, until they were removed. They're hard to pull off. You could also sabotage your team by teleporting members with Wisp/Io to the enemy fountain. Ahh, the worst of times.
- hokumguru 7y agoI was really quite disappointed about fountain hooks being removed - they were an extremely high skill, high risk high reward maneuver. It was also ridiculously fun to watch NaVi pull it off game after game in TI3 - part of what made that my favorite year for the spectator aspect of the tournament.
- ignoramous 7y agoObligatory xkcd? https://xkcd.com/1172/ https://xkcd.com/1172/
- roddux 7y agoSee also: 'FadeAway' grabs in League Of Legends. Very similar concept, amusing to ponder the ways in which the programmers made the same oversight: https://www.youtube.com/watch?v=WQp63SA-NZY https://www.youtube.com/watch?v=WQp63SA-NZY (12s in) Essentially, moving the target of the 'pull' while the pull is ongoing. Pudge->Fountain for DoTA, Blitz->Thresh for LoL.
- nesadi 7y agoI feel like they should've just turned it into a feature. Remove the crashing bit, allow people to do the undo zooming. Not every bug needs to be completely fixed, and it's something game developers do too much. Unintended behaviour that has cool gameplay effects or are just plain fun are removed because the developer didn't intend it ... even though players like the "bug". It's one of the reasons why I really don't like Blizzard anymore, and one of the things the Warframe devs did really, really right.
- deleted 7y ago[deleted]
- DrPhish 7y agoThat idea is the basis for the entire game of Goat Simulator: only fix crashing. Every other bug is hilarious. The game is basically a conglomeration of bugs. Its also one of my kids' favourite games of all time
- overcast 7y agoThe first sentence has its own bug. "there was a big filed against Outlook"