glitchy's

blog

Woahzone

2020-10-19 | internetprojectssocialthree.js


When i'm in a group call with friends, having something to stim/interact with helps me engage with the conversation better. sometimes, we've played games like garry's mod or minecraft, but not everyone wants to play those all the time.

instead of looking down at my phone, i decided to make a small world/environment to spend time in while calling people, which anyone can join or leave at any moment, with no programs required other than a web browser. a place to hang out virtually to keep my brain focused and my paws busy.

so i made "woahzone", a game-like where you can fly around and interact with other people connected to the server

an early version of woahzone, with a blocky level and placeholder textures i found on my computer

the earliest version took place in a placeholder level i quickly threw together to test scale, and used some random non-offensive pictures on my computer as textures. even the character is just a pill-shaped model with a smiley face drawn on, which my friends agree to keep since it has so much charm.

the engine was based off the one i used for my kahootz and noclip projects, combined with socket.io or something for the networking. i just wrote some code to transmit a player id with the position and rotation to sync up players in the world. exceedingly simple to do, and quite fun.

over time i improved the network code, optimising how many packets are sent, adding movement prediction and smoothing, and even just making the game perform better on slower computers. it can't quite run on mobile, but it's close.

a bunch of flying players lined up in a row in front of the castle, each of them as happy as the next

eventually i added text rendering for randomized usernames, which was a lot more complicated than i thought text rendering could be. i had to find and convert a font to json, and use it to generate polygonal meshes for each letter of the alphabet. i think we take font rendering for granted on our devices and in the browser, since it works so well there, but it isn't easy to render font without a library someone else wrote.

also, the castle/church level that renders in woahzone is based on a garry's mod map i made a while ago, ttt_wedding_quake, and I used some tool i found to convert it to a file i could open in blender and clean up for the browser.

this whole project has a lot of work and passion put into it, with heaps of tiny details and features that i think are pretty cool, even if it's missing a lot of actual gameplay or interactivity. i wanted to add some form of whitelisted communication like the prebuilt phrases you can say on other online games like club penguin, but never got around to adding that. you're also a ghost that floats around because i'm not good enough at maths to implement collisions i'm happy with.

oh, and the server i'm hosting it on is pretty shit, because i refuse to pay for hosting. it takes about 15-20 seconds to join if nobody else is online, and randomly turns itself off when you're playing. if something goes wrong, it's not my bad coding, it's the server.

a few players in front of the woahzone castle. the world is halloween themed

so yeah that's woahzone. it's permanently halloween themed now, and you can check it out at woahzone.glitch.gay, assuming it still works.