Open source, mphx, and other stuff

Open source is clearly a huge part of programming, in fact, the largest. I mean, as soon as you touch programming, in any form, you pretty much touch open source. This isn't always true, and you might not realise it at the time, but it's often the case. My first big programming thing was with visual basic (obviously not open source), but I try to suppress those memories. I soon moved onto open software.

However, up until recently (a year?), I suppose you could call me a consumer of open source. I was making use of open source library's, even opting to use open source programs (inkscape, blender), and I clearly valued open source. It had helped me, so I opted for it. I'd never really considered that I wasn't 'giving back'. And, to be honest, this didn't seem wrong, and, I suppose, it still isn't. There isn't anything wrong with doing nothing for open source. But there is something right with doing something for it.

I mean, I raised issues, participated in chat rooms, but that wasn't working for open source. Calling what I was doing anything like 'work' is like saying that by suggesting recipe ideas to a restaurant, you're helping them. Technically, I suppose it could be true. But you're not 'helping' them. You're suggesting they do work.

A little while a go, I wrote some code because I was agitated that there was little networking code for my favorite language, haxe. Haxe is a hell of a lot cooler than javascript for a wealth of reasons, but let me tell you, npm has more than a few extra packages than haxelib. Like, thousands of networking libraries more. The same wealth of libraries can't be said for haxe. There is probably less than ten networking libraries for haxe.

So I got to work, making mphx, a name I literally thought of in about 5 seconds while creating a folder on my desktop. Multiplayer haxe. How original, am I right? Originally, the code was just copied from a library called hxnet. I'm not joking, it's pretty sad to say that I just copy and pasted files. (Don't worry, my lib, and his, are MIT). I set about changing things, patching up stuff, creating abstraction around abstraction, and soon, it was pretty easy to make a multiplayer game with haxe, and very different to hxnet.

I made an example or two, showing movement between players, a simple networked pong game. You get the idea.

Beyond that - not much. I never made a game with mphx. A game that I wanted to make, potentially release, play, whatever. For real. All games I've made with mphx were examples for the library.

Then I moved on, some other project came up. mphx was a neat library in my github repo list, forgotten. But then someone raised an issue on mphx.

Holy moly, wtf. Someone raised an issue, with my code? To be honest, that moment was a little crazy in my brain. It was the first time my code had been noticed by someone else, and it didn't matter who it was, or what the issue was, I was damn sure that issue would be resolved.

Slowly, more people checked it out. I'd mentioned the library on stack overflow and made some quick tutorials, I suppose they were finding it through them. mphx still isn't big in comparison to other library's; It's actually tiny. But things were starting to change, I was falling behind issues, and issues were being raised by different people.

I guess you could say that's where I am today with mphx, slightly behind the issue log, working out what it means to maintain an open source library. I've learned a lot from the experience, an experience I was accidentally thrown into. There are a few users who pop up frequently in the issue log, the users of mphx, and I still try to help them as much as I can.

It hasn't all been a merry little learning experience though, sometimes the library can be really annoying. Like, when you're about to do a speech and, 🌟bop🌟 new issue email, or when you have a grand idea for a weekend project, but end up doing git bisect's all day. Managing my first open source project has definitly been tough at times. I don't feel ashamed to say this, but I do sense that sometimes, programmer/open source/geek cultures stipulates that all work has to be done with passion. You can't complain about your work, because programming and open source is the right thing to do. It's probably what fuels many open source projects.

This has probably been the thing that, so far, I have learned most from mphx. Work in open source needs to be done in a way that doesn't cause you to stress your life apart. An issue can wait. (Sorry mphx issues. yeah. i'm writing a post while issues exist. deal with it.)

I'm looking forward to my next open source library. Who knows. It might work out differently. And mphx isn't going anywhere soon.