What inspired you to found Fen Research?
It was because I had an idea that I really wanted to do, and I was really keen to do something new. So it sort of made sense to start up a new company to pursue that project. I had an idea for trying to solve a problem that I faced.
It was quite academic actually; I wanted to create a new programming language that’s specifically designed from the ground up for creating games. That’s as opposed to other types of languages, like ones that make web applications and ones for making drivers and operating systems.
There didn’t seem to be a great deal specifically designed to solve the problems that games have. Games have a very unique set of challenges, particularly when doing online and network titles and that sort of thing. We found ourselves writing the same sort of thing over and over again. So we’ve come up with something quite different to existing programming languages.
Existing programming languages tend to fall into the camp of either the procedural or the object orientated, or they’re functional. Ours is quite radical.
So would you say there are problems with the current programming languages?
I wouldn’t say there’s a problem. They’re actually very good as they’ve had a lot of years to mature. Some of them are extremely well refined. But I think that so much stuff is still written in C++ even though it is decades old.
I don’t think that’s by coincidence, and I don’t think it’s just because of the fact that people are sticking to what they know. For the games industry certainly, C++ remains the staple because for games, performance is so important, cross platform is important, and there’s real-time concerns; you can’t have your game stall for several seconds otherwise it goes off to the garbage collection.
I think a lot of these newer languages are very good for what they are designed for; but they are not particularly good for games. It seems to me like an up-to-date language which is suitable for games has been created for some time.
So how are you making your language more suitable for games?
For starters, we’re trying to make sure it will port well to the platforms of games that it is specifically targeting. We will make sure it will have real-time performance characteristics so that you won’t get those little stalls; the ones that normally wouldn’t matter to an application, but in a game jars the experience.
We’re trying to make sure that it is also very good for writing network code, as games these days are increasingly online. Almost every game today caters to online play of some kind. We’re really trying to design it so that it will solve a lot of problems in that area that are not easy to express in other languages.
Specifically, if you’re writing a server for your game in C++ you can give yourself a massive headache in terms of ensuring if it is secure or not, or if someone is going to hack your server.
Is this going to be for all platforms?
We are aiming to target, if not all platforms, then certainly the key ones. But initially we are targeting Windows, Mac and iOS, and we would hope to expand from that. We’re designing it in such a way that it wouldn’t require any specific hardware or any specific capabilities, so it should be possible make it run on anything.
And you’re making a games engine at the same time. Is that the same thing as the programming language?
What we’re making is sort of halfway between a programming language and a game engine. I wouldn’t say it was a game engine in the way that Unreal or Unity is, and I wouldn’t also say it is just totally a programming language. It’s some way
in-between the two.
I think to be successful there are four things you’ve got to have. One of them is the language itself, which must be something new and must actually be worth using. You’ve also got to have a really good tool chain; a good development environment, with decent syntax highlighting and refracting and all those sort of things.
You’ve also got to have good documentation, and then you’ve got to have good examples of it actually being used. No one’s going to want to use a language that hasn’t been proven. Most studios or indie developers don’t think ‘I’m going to put all this massive budget on to this program that no one has ever used and might not actually work’.
It has to have a proof of concept, and the easiest way to do that is make some games ourselves to prove that it really can work. Making games with it ourselves is also very helpful in terms of ironing out any wrinkles with the language. A few of the things we found out when making a game, and we realised ‘Oh, actually that bit didn’t work quite as well as we thought.’
The language has evolved rapidly over the last few months. It’s a good thing we are the only ones using it. Really. If there was anyone else using it whilst it’s in this stage of evolution they’d go mad at us for changing so much so often.
In terms of the games we’re making, we’re looking to make little test games that we can start with to prove it works. One is a turn-based strategy game, but very casual. Turn-based strategy can be a scary term, but what we’re doing is very lightweight and casual.
It’s just a simple game that’s stat based; a quick game you can play on your lunch break, and is designed not to take a lot of time to play and you can have a bit of fun with the tactics you can use. It’s got sort of quite casual balance between skill versus luck. On one hand, if you play it you will get better, but on the other hand if you go in, you won’t get annihilated if you go against someone who’s been playing it for the last six months.
And then we’ve got another game which we’ve not really got very far with yet, a sort of designer with lots of user generated content, with people being able to create their own environments.
Is that the bigger game Fen Research has mentioned before?
Yes, that’s a bigger game.
At the end of the day I like making games, and I’m not just making this programming language purely as an academic thing. I’m making it because I want to be able to make games more myself.
Obviously the intention is more about sharing the language and letting other people use our tools and middleware.
I – and other people – want to make games and not get bogged down by the things I’ve got bogged down by over the last ten years.
Is that why you felt the need to leave Jagex and start this up. Could you not have started it there?
I could have done, but it would have almost have been a distraction. It was very different from what Jagex was doing, which was focusing on MMOs. The danger of me doing it there would have been that it would have been on the sidelines and an annoying little distraction; ‘Andrew’s pet project’ so to speak, as opposed to being a serious thing in its own right.
And this technology, will you be selling it, or keeping it as a proprietary tech?
I intend on letting other developers use this. I think we’ll probably have a number of licensing models. I’d offer this to smaller coders; hobbyist and indie coders. But also I want to offer this to studios and the sort of licensing models you’d need are worlds apart.
So it’s not just Indies you’ll be looking at?
We’ll start off looking at indies because it’s immediate. Big studios tend to have large support requirements. But ultimately once it has proved itself it can be used to develop just about anything.
How’s Fen Research being funded, with you owning 90 per cent and Jagex owning ten per cent?
For the moment I’m funding it myself. I’m deliberately keeping it small and I’m working on a cautious basis, so it may take me quite some time to get this thing finished. I want to be able to keep funding it, and I don’t want to run out of money, which is why I’ve kept it small.
What has it been like starting a new company? How would you compare it to founding Jagex?
I’ve really enjoyed it to be honest with you and I’m really happy that I did it. It’s so exciting to be doing something new and innovative. OK, it might not work, but hopefully it will. Certainly it’s really fun to try.
It’s not been too challenging because obviously I know roughly what sort of things I’m going to face this time around. In that way it is much easier than when I started Jagex, which was a colossal challenge.
What advice would you give to new start-ups looking to break into games or middleware?
I would certainly say try and keep your costs down. I see a lot of iPhone games where they would have made a profit if only they hadn’t spent so much making them.
Try and get people who are enthusiastic about what it is you are doing. You don’t want to just get someone who’s sees this as a nine-to-five job; those people who come in and they work but they have no enthusiasm. They’ve got to have passion in what they’re making. Everyone’s got to have a good time whilst they’re doing it too. Within the games industry that does affect the final product.
Do you feel the UK is supportive of start-ups?
I haven’t had a great deal of specific support. We get a slightly lower corporation tax, but that’s irrelevant because we’ve not making any money as a start-up. I wouldn’t say we’ve had a great deal of support.
That sounds like something you expected.
I don’t really expect support I have to say. I’m not really sure that anyone really gets hand outs these days. It’s up to me to make it work to be honest.
So, why did you leave Jagex?
I just wanted to continue this idea. We left on friendly terms and I really wanted to pursue it and focus my energy and see if I could make it work or not. It’s been sitting in the back of my mind, half there for the last ten years, and I kept trying to come back to it, chipping away at it, and I couldn’t quite solve it.
Eventually I sort of had a breakthrough and finally managed to sort out what I was trying to do, and did just that.
So it was about getting the right freedom?
Yes, and without the distraction of a massive project like RuneScape that demanded a lot of attention.
It was almost impossible to not get sucked into it working on that alone every waking hour because it’s such a big project.
Obviously Jagex is behind RuneScape, and some say they’re finding it hard to do anything else but RuneScape. Is that fair?
I can’t really comment on that to be honest.
When do you expect to be releasing the engine and your first games?
I hope to be getting our first game out this year. It might be slip into next year as I’m a perfectionist about it. The engine itself will be further down the line, but I don’t want to release that until it’s ready. We don’t want to have people start making games with it and then we realise we need to change everything, or it will start annoying people.
Also, people are going to judge this technology harshly. I know the initial reaction will be ‘why on Earth do you need another engine, why are you reinventing the wheel?’.
So it’s got to be just right; it needs to be self-apparent why it exists. It’s ready when it’s ready.