This blog post used to be in a special page where I would occasionally put my recent activities. I always removed the old content of that page when I updated it, and as such no older blogposts are available.

Thoughts Rants about things I've recently worked on 2023-09-05

I've worked on server/imageboard project a lot, and by "working on" I mean "trying to figure out how to do things", not "making progress". I may be getting closer to being able to make a website, but as I get more familiar with networking, my temptation to make an MMO of some kind keeps rising. In many ways I think an MMO would actually be easier to make.

If I was working on an MMO, most of the problems I've struggled with would not exist. It would be so much easier to do memory management if I didn't have to support large data uploads from users, manage a HTML cache for dynamic pages, or deal with HTTP or multipart form uploads. I really, really hate HTTP, it requires me to parse long incomplete text-based messages just to find out how to the message is supposed to be read, and search for text strings from inside file data just to find out where the file ends with no idea how big the file is going to end up being. Any field that contains any information about the message may be cut in half because it hasn't uploaded yet and there's no information about how long the field is. In an MMO all the messages could have a message ID at the beginning which tells you how to read the message, and then immediately followed by a number which tells you how long the message is. All the information would be in a data format (not text format) so it wouldn't even need to be parsed, you just take the variable directly from it. Plus all the messages would be so short that you could stack numerous of them into a small data buffer and process them at your leisure, you wouldn't need to do weird workarounds like streaming messages into the hard drive and then parsing them afterwards, or queuing clients to use some shared memory buffer.

Of course, an MMO would require me to make the rest of the game too, and there's things about that kind of networking that are more complicated than a website, so it would be more work when you look at the whole. But the networking part should be much easier overall because the memory management is much more knowable.

I really hate the word "MMO", I need a better word for describing an open world multiplayer game. The word "website" is pretty bad too. This neocities page is a website, but there's a huge difference between a website like this that's just a static HTML file, and a website that allows people to post threads and comments and upload files and stuff.

I'm trying to figure out how to efficiently and effectively do various kinds of rendering again. OpenGL is just so clumsy and makes me feel like GPUs can't do anything that you actually want to do no matter how simple it is. And the solution (assuming there even is a solution), is to use a massively overcomplicated and unnecessarily overdesigned API like Vulkan. I can't imagine why it needs to be so complicated when what I want to do is so simple. Why do I need to set up 87 different things with convoluted loops and callbacks and queries just to send some data and messages into the GPU? Why can't I just send them? Why can't I just load a bunch of assets into the GPU and fill some buffers with instructions about how they're linked and how to render them, and instead have to do weird manual CPU state changing crap that causes massive performance bottlenecks? Something as simple as giving values a stride is impossible, you can't tell the GPU to use the same value 3 or 4 or 6 times (for all the vertices of a triangle/quad) and then use the next value, it has to be either one value per vertex or one value per object, why can't I just give the GPU buffers with custom strides? It makes me so mad that I want to quit programming.

I haven't done much in the past month or so due to some indescribable combination of burnout and playing videogames and being tired from work. I have an ever growing to-do list that only gets longer at work because I'm never given the time to finish things before someone gets more brilliant ideas about things that they want to see. There's one thing in particular that I had to take out due to refactoring months ago and was supposed to put back right after, but then I was immediately given new things to do. It's not even a minor thing, it's a front-and-center highlight feature that was a big deal when I added it, and it's just been gone for over a month. Literally every time I finish the current thing I'm working on (often even before I'm finished), someone comes up with a new one.

At the moment I feel the desire to work on some videogame stuff. Not sure what exactly, I kinda just want to do something small and simple. I'm not good at not expecting a lot from myself, but I want a project where I have no expectations and can just do dumb random things. Problem is that as soon as I get an idea that sounds fun to work on, I start wanting to make it good.