<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: tom32i</title><link>https://news.ycombinator.com/user?id=tom32i</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 07 Jul 2026 04:27:58 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=tom32i" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by tom32i in "Show HN: Curvytron 2, I rewrote my browser party game, 10 years later"]]></title><description><![CDATA[
<p>Thanks!<p>Reconnection relies on two mechanisms:<p>Server side — Secured client identification:
When you connect to the game, the server forges and sends you a unique secure token. If you lose connection, your client and player data on the server aren't removed but just "parked" into an offline list of clients. Your player is left without a pilot for a moment. As soon as you reconnect with a valid token, the server is able to restore your client and plug you back into your player's controls. You're back in the game!<p>Client side — Ubiquitous game data:
For reconnection to work on the player's end, I also need every client arriving in the middle of a game to get the exact same state as a client that connected from the start. This means sending every connecting client all the meaningful data about the current game: state, player positions, speed, size, ongoing bonus positions and timings, etc. I designed the game with this requirement from the very start: each new feature must follow this pattern, and the client must support building the game's world on the fly from this data.</p>
]]></description><pubDate>Thu, 02 Jul 2026 05:53:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=48757057</link><dc:creator>tom32i</dc:creator><comments>https://news.ycombinator.com/item?id=48757057</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48757057</guid></item><item><title><![CDATA[New comment by tom32i in "Show HN: Curvytron 2, I rewrote my browser party game, 10 years later"]]></title><description><![CDATA[
<p>It was clearly dynamic "trail" geometry:<p>in curvytron your trail grows behind you as you go, so on each frame most of active players trail "capsule" 3D geometries have changed.<p>I started by blindly recalculate every geometry on every frame, work well enough for a time but I think you can see the optimisation problem coming...<p>On each frame the trail gets only 1 new point and the rest of its points (dozens) has not changed, yet you recalculate every segment vertices (and normals, etc) for every point, just to add one new segment at the end and finally add the half-sphere cap.
And this is done by Three.js: so by the CPU, not in GPU yet.<p>What I did was write a dynamic capsule geometry, with pre-allocated geometry buffer and the capacity to add 1 point at each frame by just filling the missing vertices, normals, etc fo the point. Resulting in a massing performance improvement.<p>Side note: when the player stop "drawing" and leave a hole behind, the detached trail become inactive and just stop being re-computed at each frame.</p>
]]></description><pubDate>Wed, 01 Jul 2026 11:09:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=48744930</link><dc:creator>tom32i</dc:creator><comments>https://news.ycombinator.com/item?id=48744930</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48744930</guid></item><item><title><![CDATA[Show HN: Curvytron 2, I rewrote my browser party game, 10 years later]]></title><description><![CDATA[
<p>Hi everyone, french web dev here,<p>About 10 years ago I did a little party game in the browser inspired by Achtung die Kurve genre, it reached HN (<a href="https://news.ycombinator.com/item?id=9494619">https://news.ycombinator.com/item?id=9494619</a>) and everything went crazy, it's still largely played in open-spaces all over the world today.<p>This past year, I've been working on a sequel: <a href="https://curvytron2.com" rel="nofollow">https://curvytron2.com</a> is live.<p>Same goal as the first one: challenge myself, perfect my skills, have fun and give back to the internet community the best way I know; by just putting a free little fun game out there. No ads, no tracking, no business plan.<p>A decade of professional web development and hours of GMTK have raised my expectations and this time I aimed for:<p>- a good looking top-down 3D view with improved gameplay and real game juice: I learn Three.JS and WebGL for this project, worked on the camera movements, screen shake, sound design, gameplay feedback and I'm proud of the portal-like effect of the bonus that allows you to peak and  cross over to the other side of the map.
- a solid 100fps server simulation (in Go) serving clients with a really bandwidth efficient netcode (it's binary websocket instead of plain JSON and I open-sourced it: <a href="https://github.com/Tom32i/netcode" rel="nofollow">https://github.com/Tom32i/netcode</a>).
- Instant reconnection, at any time: I had this requirement from day one, in the first curvytron losing connexion meant dropping out of the game permanently. Not anymore. You can just refresh the page mid-game and keep playing, try it yourself.<p>The game runs in any desktop and mobile browser and supports gamepads
I've put up servers in US and Europe to offer a good ping to as much players as I can afford at the moment.<p>I still maintain and host the first game to keep the original experience live.<p>I'd love to get feedback from HN, and don't hesitate to stress-test the game of course!<p>I'll be around to answer questions and discuss if you're interested.
Cheers!</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48733433">https://news.ycombinator.com/item?id=48733433</a></p>
<p>Points: 15</p>
<p># Comments: 5</p>
]]></description><pubDate>Tue, 30 Jun 2026 14:45:19 +0000</pubDate><link>https://curvytron2.com/</link><dc:creator>tom32i</dc:creator><comments>https://news.ycombinator.com/item?id=48733433</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48733433</guid></item><item><title><![CDATA[New comment by tom32i in "A multiplayer Tron-like game with curves"]]></title><description><![CDATA[
<p>Did you run these 3 commands?
- npm install
- bower install
- gulp<p>Can you check if the file web/js/dependencies.js exists in the game folder?</p>
]]></description><pubDate>Wed, 06 May 2015 12:52:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=9498208</link><dc:creator>tom32i</dc:creator><comments>https://news.ycombinator.com/item?id=9498208</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9498208</guid></item><item><title><![CDATA[New comment by tom32i in "A multiplayer Tron-like game with curves"]]></title><description><![CDATA[
<p>Yes! <a href="http://www.curvytron.com/#/about" rel="nofollow">http://www.curvytron.com/#/about</a></p>
]]></description><pubDate>Wed, 06 May 2015 12:23:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=9498070</link><dc:creator>tom32i</dc:creator><comments>https://news.ycombinator.com/item?id=9498070</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9498070</guid></item><item><title><![CDATA[New comment by tom32i in "A multiplayer Tron-like game with curves"]]></title><description><![CDATA[
<p>If you need any help don't hesitate to contact the team :)</p>
]]></description><pubDate>Wed, 06 May 2015 11:42:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=9497879</link><dc:creator>tom32i</dc:creator><comments>https://news.ycombinator.com/item?id=9497879</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9497879</guid></item><item><title><![CDATA[New comment by tom32i in "A multiplayer Tron-like game with curves"]]></title><description><![CDATA[
<p>NodeJs + Websockets: <a href="http://www.curvytron.com/#/about" rel="nofollow">http://www.curvytron.com/#/about</a></p>
]]></description><pubDate>Wed, 06 May 2015 10:57:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=9497714</link><dc:creator>tom32i</dc:creator><comments>https://news.ycombinator.com/item?id=9497714</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9497714</guid></item><item><title><![CDATA[New comment by tom32i in "A multiplayer Tron-like game with curves"]]></title><description><![CDATA[
<p>Working on it! Thanks for the feedback guys.</p>
]]></description><pubDate>Wed, 06 May 2015 10:55:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=9497709</link><dc:creator>tom32i</dc:creator><comments>https://news.ycombinator.com/item?id=9497709</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9497709</guid></item><item><title><![CDATA[New comment by tom32i in "A multiplayer Tron-like game with curves"]]></title><description><![CDATA[
<p>Hi guys, the server is fixed ... for now ;)
Thanks for all the feedbacks, you guys are awesome.
We'll be working hard on the majors problems you observed:
- Where am I?
- Background colored player
- Crashes!<p>Thank you all again.</p>
]]></description><pubDate>Tue, 05 May 2015 22:31:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=9495419</link><dc:creator>tom32i</dc:creator><comments>https://news.ycombinator.com/item?id=9495419</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9495419</guid></item></channel></rss>