2023-7-26 5 min read
C# - Journey's beginning
Learning the wrong way isn't so bad after all

The First Lines

I have a relatively long history with C#, around 16 years at time of writing. I remember using my grandma’s laptop, grabbing a copy of Visual C# 2008 Express Edition, setting the theme to Blue, and making a simple web browser in WinForms using a tutorial I found online. This very short span of time, only about an hour or so, set the course for the rest of my life — I was a programmer now.

My next foray into C# wouldn’t come until a few years later. I had been playing a game called Hammerwatch, a simple top-down hack-n-slash game my friends had recommended to me. In a particularly intense moment of hubris I thought that I could make a game like that! A few minutes of research led me to find the XNA Framework, which Hammerwatch was developed with. Bear in mind that I had still not had any formal education in programming at this time. I was flying blind and making do with whatever tutorials were around a decade ago. My attempt didn’t get further than a character moving around, a trap, some damage numbers, and a frankly embarrassing set of StackOverflow questions which I’ll politely ask you to never go looking for (please), but I had fun learning XNA and learned a lot about programming! This would be the foundation that I built everything from.

The Game

We fast-forward to today to find XNA dead, replaced by the excellent MonoGame. The two are very similar, but with some notable improvements in both usability and performance. The lack of a need for a separate content project is something I’m very pleased to see, as I always considered it rather redundant in my time with XNA.

I’ve still not made any commercial games (much to my younger self’s chagrin), but I still dip my toes into game development. I took part in a game jam a while back where I used the aforementioned MonoGame to make a game about riding a unicycle (source). It’s not particularly interesting as I only had a few days to make it, but it’s the only game I’ve actually “finished” so I’m still somewhat proud of it. I do intend to make something better at some point, I just need the time.

I was also learning Unity at the time (thanks to the rising popularity of VRChat circa 2019) and while I could have used that, the familiarity with MonoGame is what drew me to using it despite how much time I could have saved by using a “proper” engine.

The Present and Future

Like everyone else, I have bills to pay. So I’m currently working as a full-stack developer for a large group writing C# on the backend and Vue on the frontend. Some parts are a bit icky, like having to work on legacy code that’s over 15 years (!) old, but that’s just part of the job. At the end of the day, I do what I can to make it better, and that keeps me productive day-to-day.

I’ve worked professionally with C# for over 6 years now (and many more non-professionally) so I’m basically an expert, which feels pretty good to say. I want to be able to say that for other areas too, to learn more things to the same degree. I suppose you could say it’s a long-term goal of mine. I think being an expert in a field you enjoy is something everyone is capable of, and if I can use my expertise to help others acheive that then I’d like to help them do that.

‹ Go Back