Hey everyone! Thanks for participating in Canvas. I wanted to make a thread to collect together suggestions people have that can be worked on before the next Canvas.
Feel free to also throw in suggestions for future Events we can build and run for the fediverse.
Ill be collecting suggestions together and making issues for them in the repository for myself or some other contributors to work on (the projects open source so anyones free to contribute! https://git.sc07.company/sc07/canvas Feel free to reach out to me and I can help get you set up with the codebase)
Escalating timers are an antipattern. It punishes anyone who looks away for more than thirty seconds - and thirty seconds per click is not exactly a brisk pace for maintaining attention.
Other than that, good shit, well done. Undo was a welcome surprise. Ditto the repetition prevention.
No wait, one other thing. (Complaint sandwich!) Scaling should be in integer powers. Everything but fully-zoomed-out and extremely-blown-up looked lumpy and distracting. Especially with all the pixel art going on.
It was sort of, but it was a bug. If you just left them, you’d get one every 33ish seconds until you had 6. But if you had 2 then used one, you’d have to wait 66 seconds until you got another, unless you used your last one then it was back to 33.
It was fixed partway through to be as originally intended.
I like the escalating time, but the pacing issue is a fair point.
So perhaps the escalation could be delayed? Give it a tiny larger timer (let’s say, 40s?), and make the second pixel take as much time as the first. Like this:
- current times - 30s, 60s, 90s, 120s, 150s, 180s; total 630s
- my proposal - 40s, 40s, 80s, 120s, 160s, 200s; total 640s
This way you’d be only getting less pixels per minute after 80s of inactivity, not 30s.
Longer waits would be worse.
It should be one every thirty seconds until you hit some limit. Do not incentivize continuously staring at a timer. Do not incentivize obsessively checking a timer. Just rate-limit people in the simplest way that could possibly work.
I get why you’re saying this, and I agree with base reason. However, I feel like fixing the problem by removing the feature is not the way to go, as I think that active playing should be rewarded.
Regarding the base time (30s vs. 40s): I proposed 40s because the total waiting time would be roughly the same. It could be also 20s, if necessary/desired, up to the devs.
Additionally it would be great if there was an audible “ping” once you get a new pixel. Then regardless of the timer or how it progresses people would feel freer to do other stuff while checking the canvas.
One effect of this is that someone steadily editing got more pixels than someone editing in batches, which felt like a feature when defending against trolls.
Encouraging anyone to stare at a screen for two actions per minute is brutal. Especially when those actions, to be optimal, have to happen the moment the timer rolls over.
This is an addiction mechanic.
This is some free-to-play mobile-game nonsense.
No matter how good the motivations are, no matter what narratives we can build around casual versus attentive use, this is a bad decision for software. It is deliberate manipulation of the user’s incentives and habits for destructive patterns of behavior.
I didn’t love it tbh. I had the canvas up in half of the screen and was doing something else but would look over too early then just be waiting for x seconds for my next pixel.
Thank you, very clear! I suggest to add one pixel every 30 seconds, plain and simple. If a modifier to this timer is required for reasons, that could be based on the number of pixels placed during the past x minutes or so.
I think I agree on the cooldowns. Often times I wanted to step away and let the pixels accumulate, but it’s hard to resist when you realize you’d be missing out on double or triple the amount of pixels you could be placing. If the goal was to reward the player for actively placing pixels, all I can say is it didn’t feel very rewarding.
I kinda disagree about the integer scaling. 1x to 2x zoom is a very big shift without any in-between. It would also feel strange on pinch-to-zoom on mobile without in-between. I think instead it could snap to an integer scaling, or have a zoom slider that works to integer scaling. Overall though I agree, having a way to snap into integer scaling makes the pixel art look better
thank you (and everyone else in this thread) for the constructive feedback!
i’ve added the timers as an issue in the tracker to help with keeping track of everything
i think i got the main points given in this thread, but if theres something you think is missing feel free to reply to this so i can add it 👍
i’ve also added the weird zooming issue also
I’d be keen to run/test a local version, what do I need in the .env.local as a minimum to get up and running?
To get it actually running you need to do more than set up just the env but ive got what I needed to do here
https://share.ategon.dev/u/IzcMWM.md
If you want to allow logging in so you can test the features that get unlocked from that heres some code changes to get it working so you can bypass setting up openid
http://share.ategon.dev/u/W7IODE.md
Client will be up at localhost:5173
there’s an issue to write instructions on how to setup the environment
the server requires the authentication server to be fediverse-auth with the current implementation, but there’s an issue to add support for other providers
(once the documentation is written i’ll be putting it in #canvas-meta:aftermath.gg to keep people in the loop)
The event was fun for the first 48 hours - before the expansion. After that it was mostly policing and defending existing art. I would prefer a 48 hour canvas without expansion.
That said, it was fun anyways. Thanks for all your work and thanks to grant for setting everything up and fixing issues on the fly.
I often got the “you’ve already placed a pixel of that color there” error, even though I never touched this area. I also couldn’t fix my own pixelart easily because of this.
You could get around that bug by choosing a different color and then pressing undo. After that it reverted to the correct color.
i’ve created an issue to track this :)
this error was being sent by the server, so somewhere along the chain your computer got desynced from the pixels the server was aware about
On mobile I kept opening the whois pixel by accident when dragging. I often tap and hold to initiate a drag because I’m still looking at the art, but when i drag away and let go, it opens the whois thing. I think if you drag a certain screen-space distance away it should cancel the whois pixel lookup.
The heatmap I found too hard to tell where recent pixels were placed. I think at 100% opacity the “cold” pixels should be dark blue instead of their actual color.
A couple times I placed a dot, realized I actually didn’t want it there and ran out of time to undo, which felt bad having to wait 30s. I wish it was a bit longer.
When you try to place a pixel a few milliseconds too early I feel like it should queue it and wait the few milliseconds for you.
I’m not super sure on the canvas having transparency. Most people treated the canvas as white, not transparent. If you wanted a white-on-white drawing, people will just make an outline.
Maybe a concept worth testing: if you place a pixel next to your own pixels, you get a (slightly) reduced cooldown, that way you get an extra boost when completing your art. (At the same time, I think there is beauty in the canvas being as simple as possible:)
I’ve created issues in the issue tracker to keep track of these for next year :)
- Mobile Pixel Whois triggers too easily
- Heatmap colors
- Increase undo cooldown
- Grace period for pixel cooldowns
- No white background
- Idea: adjacent self pixels should receive a slight reduced cooldown
thank you for the suggestions!
Happy to participate!
The one thing I wasn’t super sure on was the undo timer… was it really 30 seconds 😅? I thought it was 5-15s, but i didnt really time it. And I’ll be honest, I missed it maybe 3 times, so not much.
Besides just increasing the delay, there’s 2 other thoughts:
- A bigger target takes less time to hit (tho making it bigger might bother some, as it obstructs the canvas)
- Two times I missed were bc I failed to notice my mistake. Maybe some extra visual feedback when you place a pixel could help. For example: when the void made it to my art, I accidentally made a dark gray become black, so it was harder to notice the color change. i was too busy focusing where to place the next pixel
Overall if you feel that the undo time was fine as it was I could easily respect that decision :)