Kandria
Sunday!
Sunday. Oh god it's Sunday already isn't it. That week went by rather fast for me, and I think with the European Lisp Symposium happening on Monday and Tuesday next week is going to go by even quicker!
Anyway, today I wanted to talk a bit about my personal background in game development and how I got to making Kandria in the first place. I thought that might be interesting to read about, in case you wanted to see what I've done before and where my aspirations come from.
I was very fortunate in my upbringing in that my father worked at a university that had ready access to computers. In particular, he had brought home a tiny Compaq laptop with Windows 95 on it that me and my brother could use occasionally. While I wrote my first 'computer program', if you can call it that, when I was around six or seven, I didn't try to make any until a few years later. I did however play a lot of really garbage shovelware and freeware on that laptop, and I was always most interested in those that had a level editor of sorts that I could play around with.
Later when I had my own machine to use, which happened to be another old leftover from university, I found out about Mark Overmars' Game Maker and tried to make my own games with that. I also joined my first internet community around that time, a German forum for Game Maker users. My posts from back then, along with the profile where I lied about my age out of embarrassment, are probably still up there somewhere.
I had almost no idea how programming or anything worked and only a very basic understanding of English, but I did make some things one could call games, even back then in primary school. These games were, of course, all completely terrible. In any case, over time I would learn some of GML, though I never did have a good grasp of anything theoretical, or how one would properly build a game, or anything of the sort, really.
It was only much later, when I entered high school at the age of 12, that I decided to 'learn programming for real' and picked up a really fat tome on Java 6. I went through that entire thing during summer break and went on to make... really terrible GUIs in Java. Mostly though I used it to make programs that I could pretend were to learn better for school — like vocabulary trainers and stuff — without actually spending any time on school work.
In any case, for a while there I didn't really focus on making games, at least not until the last year of high school. In Switzerland completing high school requires a thesis of sorts called the 'Matura work' (Matura Arbeit). This is supposed to be a topic each student picks for themselves, has to finds a teacher to supervise it for, and then writes a document and a presentation on. Naturally I wanted to do something with programming for mine, and I was lucky enough to find a teacher that was willing to take me on, despite not knowing programming much at all. The thesis I did was on making a game engine from scratch in Java.
I never did complete the engine, but I did manage to impress the supervisors enough to get a good grade out of it, so in my mind it's mission accomplished. While all my Game Maker games are lost to time, the code for my Matura is apparently still on my Github.
Naturally if you do decide to look at it you're on your own.
After high school I took a break for a year to go work for a bit, and that's when I learned Lisp and I started down this long and twisted road of a million and one yaks to shave. It would take some years before I started to work on games again, though, as I became preoccupied with web applications during high school and that continued on for a long while when I started out with Lisp. The result of that effort, by the way, is Radiance along with a bunch of web applications I still use today. The mailing list service I talked about before, Courier is written using Radiance, as well.
In any case, at one point I felt the game making itch again and that's when I partook in my first Ludum Dare, LD33. For those that don't know, Ludum Dare is an international event where people have a weekend of time to make a game, typically from scratch.
Back then I didn't have an engine or anything, but I did have my Qt library, which I ended up bending into a game. Mostly thanks to being very minimalist on purpose, it turned out surprisingly well.
Invigorated by this surprisingly successful weekend I started working on a 'real' engine. This is what turned into Trial. Trial did go through several rather big revisions since its first incarnation, and I'm sure there'll be a few more, but there are parts of it that have stood almost the same ever since then. In any case, it didn't take long for me to want to try again at Ludum Dare, at so I did for LD35.
This time around I worked together with my good friend, Janne. However, we were a bit too ambitious and did not manage to complete anything in time. We wanted to make a simple game where you plant and harvest crops, but ran into too many issues, and ultimately ran out of time. We ended up trying again for LD36, which did end up successful, though not in any way that would knock anyone's socks off.
We ended up trying again for LD38, which didn't fare so well, and again for LD39, which did fare very well! That time however, the team had grown to three participants, Joram, Janne, and I. I think the game we made back then, a simple platformer, is still pretty playable. The level design was rushed, but overall it was pretty solid for a game made in a weekend!
After that it took quite a while before I had the opportunity to partake in another Ludum Dare, mostly due to the time slots overlapping quite badly with university crunch time. In any case, Joram and I did try again last year for LD45, and did finish a sort of stealth game. All things considered it went alright, though I wish Janne could have joined us then. I'm sure it would have turned out a lot better still.
I hope the three (or more?) of us can do another Ludum Dare sometime!
Aside from the Ludum Dare games, and very short prototypes I made to work on Trial, the only game I made is called Factory Reset. This was about a year ago, when I took the 'Game Programming Lab' course at ETH, that put rather random students into groups and gave them a few months to make a game from scratch using MonoGame. The game my team ended up making is a stealth action platformer, where you have to sneak through a few different buildings. The inspiration for that was mostly Mirror's Edge and Metal Gear, twisted for a simplified platformer experience.
While Factory Reset is definitely the most polished game I've released so far, my memories of it aren't very happy ones. The time building it was extremely stressful, mostly because of my own ambitions, and because I had some trouble getting along with the team and managing them. I think for the time we had and the result we got we did a really good job. Especially considering that our game was the only one that had narrative and self-made music and SFX.
If you look at Factory Reset and the other games, I'm sure you can see some of my own style in there. Most obviously of course in the art, since I did that for all of the games I've made so far, but I think I also have some particular ways in which I design the mechanics and movement in the game.
While I don't think I'm a great game designer by any means, I do think I have at least some experience making games by now, especially platformers. I really hope Kandria can surpass what I've done before, even as I try out new things I've never done before like combat.
If you try out any of my past games, let me know what you thought!
Next week I'll probably talk about something a bit more technical. I hope you're up for that!