Post-jam updates are finished! In the Texas Game Jam 2025 I have completed a persistent 2D platformer where players past, present, and future work together to traverse the world.
Most of the work I am excited about was done with Zig, using linux’s epoll system to create a performant non-blocking server without using threads. Initially epoll was all I wanted to learn, but I found out the hard way I would need WebSockets to play in-browser, then I found out the hard way again I’d need to learn OpenSSL to have WebSockets working on secure HTTPS sites.
Of course in Godot I had a blast. Haven’t done 2D in a while, finally got to try using the TileMapLayers. Terrain sets brought joy painting levels instead of my usual fumbling with tilesets. Enemies and player code was very standard, though I wished I had a copysign function; to flip the player I used the AnimatedSprite2D’s flip_h, but for hitboxes and other child objects I changed their position.x, since they were centered I only had to flip the sign (i.e. from 10 to -10) but using signf(direction) * absf(position.x) seems clunky for even one object. Would love to add it myself if I find the time.
Try out “Part of the Continuum”! Leave a grave behind!
Dang, thanks for posting the log. I see a connection about an hour ago but it played fine, I think you’d get a different error message if it simply didn’t connect, but I’m not seeing anything on my end.
If you absolutely cannot connect there is a secret non-server mode if you press “Continue” 12 times while waiting for the server, a new debug option will appear.
On my pixel 9, and it loads in the browser, just can’t play cause it doesn’t capture my touch inputs properly. Wouldn’t take much to support Android in browser…
Congrats on shipping a Jam Game!
Cheers
Your right! TouchScreenButtons make it fairly easy to add mobile support, wish they were Control nodes to better work with containers and anchors; currently I am wrapping each of them in a Control node with a large minimum size assigned. The higher DPI on my pixel 6 opposed to desktop was another twist, I added some automatic scaling based on DisplayServer.screen_get_dpi(). Again I wish this was a little easier, I’d prefer to set a font size by points or inches.
In-Editor my controls look like this, mixing Control and Node2D isn’t fun and the high DPI on mobile blows up the icon sizes, so it looks very cramped here but it’s actually a little small on phones.
Wow, did you do the touch controls since my previous post?
That was quick!
I wouldn’t be against a virtual joystick, especially before I noticed the pillars weren’t ladders
I died, and it doesn’t reset the game.
Love the gfx scale option, wish more devs would do it in PC to Android ports when it makes sense (don’t need it for Dredge Android (Unity game), free with DLC with PlayPass, as are Brotato and other indie successes)
lol yeah! Seemed like a fun challenge and I’m not very busy today!
I tried a plugin for a virtual joystick, I’ve seen them around, but it didn’t work well and required a lot more re-programming than the clunky left/right/down touch buttons. If you have a favorite, or a doc on how best to implement please share!
Thanks! Tied it directly to the camera’s zoom, figured it would come in handy for larger screens, but again it’s that DPI that really matters hah
Tried it with an XBox controller on Windows. Game worked great, but it was REALLY hard to learn the controls cause I was scrolling up and down on the webpage as I learned them. Then I started exploring, got some good stuff, and then I ran out of time. Apparently you can only play once per 30 min?
Interesting. The hearts blended into the color scheme a bit too much. Also, the skeletons wouldn’t die with the sword, easy with the arrow.