12 ms·
Show HN: A collaborative pixel drawing game for when you're bored
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!
- deleted 5y ago[deleted]
- vkoskiv 5y agoI 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!
- was_a_dev 5y agoAwesome, I just spent 15 minutes drawing out the digits of pi. Mostly because I'm not that artistic
- vkoskiv 5y ago> 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.
- marto1 5y agocan't wait for someone to implement a rendering engine on top of this :-)
- vkoskiv 5y agoI'm expecting scripted art to appear before the day is over. A friend wrote a script that parses the debug log of the backend server and generates a timelapse: https://github.com/zouppen/pikselipeli-parser https://github.com/zouppen/pikselipeli-parser
- sodimel 5y agoFound a guy drawing a fishtank and helped him for a bit. Nice project!
- vkoskiv 5y agoAs promised, here is the initial timelapse of the canvas: https://youtu.be/-ocPPP0xWuM https://youtu.be/-ocPPP0xWuM
- kgwxd 5y agoHow 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.
- vkoskiv 5y agoWhole 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 https://github.com/EliasHaaralahti/No-Mans-Canvas-Client
- kgwxd 5y agoExactly the formula I ended up with :)
- wdfx 5y agoNice fun toy - had a good click around. Looks like we killed the websocket server though?
- vkoskiv 5y agoYeah the websocket server is having an absolute meltdown. It was written in a rush in 2017!
- TheRealNGenius 5y ago"the canvas is loading, please wait..."
- vkoskiv 5y agoYeah, sorry about that. The backend websocket server melted down.
- timestretch 5y agoTabula 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/ https://www.icondoodle.com/
- stunt 5y agoLooks cool. How big is your sockjs-node infra? How many concurrent users do you expect it to handle?
- vkoskiv 5y agoThe 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.