Show HN: A collaborative pixel drawing game for when you're bored (pixel.vkoskiv.com)

69 points by vkoskiv ↗ HN
Hello HN. This is a project me and some friends built at university in 2017. It was originally built in a rush, but we've added a few improvements over the years. It's a fun game to host at a demoparty and project on a big screen - We did that at Instanssi many times. The implementation is still rough, and suffers from the fast pace of the modern web - The frontend is likely very outdated, and the backend is built with Vapor 2 and Swift 3.1, both no longer supported. You can host this yourself, but it might be a bit of a pain to set up. The WebSocket protocol is fairly trivial to work out and write a bot for to ruin the whole canvas, but I trust that the HN crowd can come up with clever things to draw with a script, should they choose to do so. The server is recording draw events into a log, and I will be posting a timelapse here in the comments after some time. Have fun!

18 comments

[ 3.2 ms ] story [ 39.1 ms ] thread
(comment deleted)
I should add that basic rate limiting is in place. Your tile count increases faster as you level up, and increments even when you're logged out!
Awesome, I just spent 15 minutes drawing out the digits of pi. Mostly because I'm not that artistic
> Mostly because I'm not that artistic

Same! I actually suck at pixel art, so I absolutely love to just watch what other people come up with and help out filling things in where I can.

can't wait for someone to implement a rendering engine on top of this :-)
Found a guy drawing a fishtank and helped him for a bit. Nice project!
How long did it take you to figure out how to zoom around the mouse cursor. I spent way too many hours on that a few years ago.
Whole thing was built in the span of a few days (including all-nighters leading up to the deadline) I built the backend, my friends built the frontend. I seem to recall it took them a bit of researching to find a fast way to do it. The code is on github so you can draw inspiration: https://github.com/EliasHaaralahti/No-Mans-Canvas-Client
Exactly the formula I ended up with :)
Nice fun toy - had a good click around. Looks like we killed the websocket server though?
Yeah the websocket server is having an absolute meltdown. It was written in a rush in 2017!
"the canvas is loading, please wait..."
Yeah, sorry about that. The backend websocket server melted down.
Tabula Rasa is pretty cool, but it seems to want to scroll me when I try to draw. I like the collaborative aspect.

Here's another pixel art toy I made, where you can can draw small icons. It is focused on mobile devices. You can bookmark it and add it to your home screen.

It uses websockets to show what others are drawing at the same time.

https://www.icondoodle.com/

Looks cool.

How big is your sockjs-node infra? How many concurrent users do you expect it to handle?

The backend is written in Swift with the Vapor framework. The code is massively outdated, and it starts spewing errors when more than ~20 people are drawing at once. The canvas load is the first component to give, sadly, so most people are just stuck loading it forever.