Over the years I dabbled a bit but I didn't get to do much with it until I went to Uni. Here I had lots of opportunities, most notably in the third year for my project. I chose to develop an online RPG creator called Morde. This was quite a hefty project, there was a client and server, both developed in C++ (my first foray into network programming) and a 'builder tool' which I wrote in C#.
At first I had a lot of plans for Morde and I wanted to continue with it after Uni but towards the end of the project I ran into many problems and in the end, I just decided to do what I needed to do for the sake of the Uni project and then dump it.
However, it had given me a taste of non-trivial games programming using C++. After Uni I got a job at Aston Broadcast and for the first 6 or 7 months I used C++ to develop client / server applications which was pretty cool. In those first few months I got myself reacquainted with the industry and started learning about all the new developments to the C++ language that had been going on in recent years.
There were a few things that struck out at me. Firstly, the Boost libraries which are open-source libraries of handy utilities written by many well known industry professionals, had really grown over the years. C++ is renowned for being so painful to program in. The standard library alleviated a bit of that pain but it was lacking in many areas. Boost makes up for that lack in a multitude of areas. In particular, there was a groovy library called Asio (Asynchronous I/O) which could be used for robust client / server code and I used this at work.
Another thing I noticed was that many of the familiar faces in the industry were still around. Herb Sutter, one of my favourite authors, had become some kind of C++ God and had released lots more cool looking books such as C++ Coding Standards
Lastly, the community seemed to be just as strong as before. The ACCU conference was now in its 9th or 10th year and I was fortunate enough to get hold of 5 years worth of conference slides and looking through those showed me just how C++ had grown over the years.
So at this point I felt like I was beginning my C++ journey all over again except that now I had some new tools to play with such as unit testing, agile techniques, new Boost libraries and so on. I was really enjoying my projects at work but I felt like I needed a really substantial 'pet project' at home to try out all the new techniques that I was learning about. Generally speaking, testing out cutting edge stuff in the workplace doesn't usually go down too well with the boss!
This is when the idea for Mod Wars was born. It was going to be another online game, but without the features that caused me such a headache in Morde - namely, complicated graphics issues. I'm not an artist, neither am I a graphics programmer so this game would be a simple 2D affair with simplistic, mostly static, graphics only.
I also started to get ideas for some web development that I wanted to do and my spare time at home was becoming limited so I put Mod Wars on hold and decided to work on web development exclusively for a while. However, a few months ago at work I was moved off of my C++ work and onto the C# team. This means that I am no longer doing C++ development at all and I'm now missing it badly!
I know it's an old language. I know there are a squillion new technologies now that are probably a lot easier to use but I feel like I need my 'closure' over C++. I'm having some fun with C# at work but I know that I can't rest until I've developed a substantial C++ software project.
Mod Wars was always going to be that project but then I had an idea which threw a major spanner into the works. In the small amount of development I did for it, I had some compatibility issues. My output was displaying fine under Windows but it was all screwed up on a Linux machine. I never did find a solution to that, and that bug is still outstanding. With all this study around Web development I got the idea that I could make Mod Wars a web-based game!
This would allow anyone to play the game, regardless of whether they had a PC, Linux box, Mac, whatever. There would be no download / installation / patching issues to worry about. I'd only need to develop one code base. In short it would make the game far more accessible for the players and would remove many of the technical headaches for me.
But that leaves one tiny problem... How does C++ fit into the plan for a browser based game? This has been a source of major conflict for me ever since I thought of it. On the one hand, making Mod Wars browser based would be an excellent idea, but on the other hand, I still need my C++ fix!
I think I may have a solution to this conflict now, but I need to do some more investigation before I can reach a conclusion about that.