[Poetic] Getting To Know CCP Merovingian: An Interview
Getting To Know CCP Merovingian: An Interview
My name is Stephen Northcott, and I cut my teeth programming computers in my bedroom when I was still at school. Back in those days you learned what a home computer did more or less by trial and error. I have vague recollections of writing machine code assemblers in BASIC, and finding out what stuff the computer did by constructing for next loops that worked their way through memory peeking and poking at memory locations. If the screen colour changed, or there was a beep from the speakers then you focused on that area of memory to see what else it could do ... and then wrote it down in a note book. This lack of information was probably partly to do with me living in Devon in the South West of the UK (not exactly Silicon Valley), and also that the internet was not really something you had at home in those days.
At around 17 I left school to work in a small software company called Incentive Software in Berkshire where we developed what was probably the first 3D engine and true 3D game on home computers. Certainly on 8 bit computers, anyway. That was the Freescape Engine running the Driller video game. (Here is a fan made port of Driller for PC, just in case you don't have a Spectrum or Commodore 64 laying around.)
A few years later I found myself working at a company called W. Industries, which later became Virtuality Group PLC and pioneered VR arcade machines and simulations. This lead to various jobs working in the arcade game industry in Japan ? most exciting for me was working with Sega, based in Haneda, just outside Tokyo, where we made the first Japanese VR arcade game ? initially called TecWar, but later renamed to NetMerc when William Shatner threatened to sue us as the original name clashed with his science fiction series, TekWar. It was bitter sweet feeling being sued by one of my childhood heroes ? Captain Kirk no less!
In the years between then and joining CCP I did some motor racing, skydiving, scuba diving and some consulting for petrochemical companies for data collection and 3D visualization of massive data sets. It was a good life to have, but not my dream. I kept my hand in the gaming industry by working on procedural planet rendering on Linux and Mac computers, and later iOS, and slowly started working on my own space sim ? an homage to Elite/EVE Online, if you like.
Probably my favourite "retro" game of my era of bedroom gaming and coding will always be Elite, and my dream has always been to make internet space ships in a large persistent universe. Nowadays that is not really a one man job, so the only place for me was CCP.
I actually pitched myself to CCP when there were no openings for engineers in Iceland, and at the time asked what their plans were for mobile and if I could work on EVE. CCP were kind enough to offer me a position on DUST 514 in Shanghai ? where they needed more man power at the time, with the promise that I could probably move to "The Mothership" at some point in the future. Working with the team in Shanghai was a fantastic experience and one that I thoroughly enjoyed ? but when the chance to get closer to EVE Online and live on Planet Iceland came up I jumped at the chance.
This Elite/EVE homage you're developing on your own time for iOS, how far away were you from completion? What development environment were you using? Something semi cross-platform like Mono, or Apple's own tools for iOS? Any thought to an Android version? Any preliminary screenshots you can offer up for the very curious?
Here is a promo video that I did a while ago: http://www.youtube.com/watch?v=CfdYeJiOPbI
It is only iOS based at present. But the engine was developed to be cross platform capable on any OpenGL ES device. There is a slightly funny anecdote about this though. It was originally an OS X game I was working on, and when the iPhone came out I was challenged (a drunken bet kind of challenge) to make the procedural planets work on an original iPhone. Challenge accepted, I ported it in about a day. I am not sure who was more surprised! But I won more beer! And so iPhone Arc Nebula was born!
The team involved in making the game consisted of a good friend of mine from Canada who did most of the modelling work. A small group of indie musicians who I did some previous iPhone stuff with. And of course me coding. We worked collaboratively across time zones and home offices.
The video above was when we were on the cusp of changing the engine from OpenGL ES 1 to 2. i.e. going shader based.
It's a little out of date, and very much a teaser. But it is all running on devices from then so a real representation of where the engine was with rendering in 2009. My focus was very much on planets at that time ? in case you couldn't tell.
I was also toying with the idea at that time of pushing out a limited combat simulator in a single planet system as a free app on the App Store to garner feedback. Shortly after working towards that I joined CCP.
In really simple terms the initial product is 100% a first person solo space exploration game. Drawing heavy influences from Elite and the X series of games, and even Rescue on Fractalus for planet fall sections.
We had some interesting twists like a phonetic language system so that aliens could actually send you voice radio messages in pseudo languages and gradually you could decode more of those messages with more complex computer modules which would morph more and more of the spoken language into English. (Poetic's note: That sounds incredibly cool.)
You can also space walk and hack abandoned (or later populated) ships with a holographic virtual keyboard which you could activate on panels on the outside of most ships and stations. Switching between ships was always by space walking. And you could dock in stations manually at first ? later with a docking computer.
There is also first person combat (a totally ripped off Elite radar system), and we fully utilized the touch screen so that you could tap on a distant stars, planets or nearby ships; to get info, target, plan routes, warp to locations etc. There are various flight modes. Some similar to Wing Commander, and others which were more like flight sims. But the idea was always that you tilted the device when in first person flight to control direction, roll, pitch, yaw etc. and you could use the touch screen to equip your current ship, trade in stations, target and so forth. I am still playing with the balance between "playable" and Newtonian physics for some parts of the game, and the balance between touch screen and accelerometer controls.
The initial start of the game I have always planned for you to be in a small lander module on a distant moon, and basically have enough fuel to get into orbit, where hopefully you discovered a local space station, docked, started getting some missions and could head out in a small craft that had interplanetary travel capabilities.
Later you could upgrade and jump between systems.
Everything is procedural, from the planets to trade and the spawning of other denizens of the Universe.
And each game has a set of random seeds so no two games would ever be the same.
A database keeps track of what you had done and what events had taken place, and that would mean your unique Universe would be persistent. Time based events would be updated between game sessions based on how long you were not playing.
So you could in effect leave a ship in transit and launch the app again later when you'd be closer to your destination.
I really like the idea of you sitting in a ship on your iPhone or iPad and having to wait to get places. But also being able to do that travel "offline" so to speak. I am still thinking how I might handle events that take place when the game was paused but you were travelling. And that was something I was still considering about the time that Apple was still making decisions about background tasks on mobile devices.
I also drew a bunch of influences from Dwarf Fortress and Elder Scrolls in terms of pace of development, depth and complexity of planned features and so on.
Arc Nebula is a slow labour of love that I will one day bring to people in one form or another. It's already existed in other forms, and indeed still does to some extent on OS X as well as iOS.
Later I have plans for a small amount of online functionality where (a la Demon Souls/Dark Souls) you could enter cooperative or combative sequences with other players who were also online at that same time.
Ultimately (in terms of a stretch goals) I planned to build on this platform and bring more and more online and persistent features to an online universe.
A very out of date web site is here also: http://games.ginetix.com/engine/
Why the name Merovingian? A fan of The Matrix series? Or a fan of the Salian Franks circa 5th-8th centuries C.E.?
Fan of both. Very aware of the history of the Merovingian dynasty and mythos.
I also have long hair! The Merovingian ruling family were sometimes referred to as the "long-haired kings."
When did you first start at CCP? What is your history with the company (your various roles and titles)?
I joined CCP's Shanghai office at the beginning of 2011, on April 1 funnily enough. Imagine my relief when the job turned out to be real.
My role then was as a Senior Engineer working on DUST 514. I tended to jump on whatever I was given to do. But my focus was on rendering and weapons for most of that time.
What is your current job at CCP? What projects are you currently involved with (if you can say, I realize that some of Odyssey is still under wraps)? What have been some of your past projects with CCP?
Currently I am Lead Engineer on the DUST 514 Neocom companion app.
So my current job is primarily focusing on getting the DUST 514 Neocom out of the door and into players hands. But I am also laying some of the ground work for future mobile projects, working very closely with our web teams and the teams responsible for CREST, the Virtual Goods Store and our other online services.
What has been your proudest moment at CCP? A particular project, perhaps?
To be part of the team that has produced CCP's first mobile app is quite a good feeling for me. Especially as it was part of my pitch for joining the company. I am extremely proud of everything that has been done to date on DUST 514, and the ambition of CCP to make this interconnected game universe. Being part of the family that is CCP, and that makes EVE Online and DUST 514 puts a smile on my face every day. So I'd have to say I am pretty proud most days ? and I love the people I work with.
Also attending my first Fanfest this year and meeting our community of players, talking with them, drinking and laughing with them, and getting involved in round tables was a particular highlight for me. Our community ? both sides of the family ? rock!
Which person (people) do you report to directly? Does anybody report to you?
Currently I report directly to CCP Jian ? Brandon Laurino. The Executive Producer of DUST 514.
I still have some support work I do for the PS3 DUST 514 client, and work with various teams in Shanghai for that.
Right now I am based in the True Grit team in Reykjavik because of my current focus on DUST, but am obviously also talking with CCP Unifex (and others at CCP) about mobile on a regular basis.
What does a normal working day look like for CCP Merovingian?
Up at around 7AM. Check emails as that is the end of the day in Shanghai, and is a good time to catch any handover work or messages from that office before they head home.
Coffee, more coffee, and check some industry news. Luckily I live a stone's throw from the office, so I wander in for between 8:00 and 8:30 ? again partly in case I need to do any meetings with Shanghai ? but also as I get older I need less sleep, apparently!
I typically work till around 7PM (sometimes quite a bit later) in the office and then head home. But I often work from the sofa through the evening doing research and tapping away at niggling problems I didn't quite have time to resolve during the day.
The DUST Neocom mobile app you mention, this is the Playstation Vita app that was shown at Fanfest? When did development begin? Were there any specific problems/challenges in the development? Or has it been a straightforward process, with few bumps in the road?
Yes, it is the app shown at Fanfest. We started R&D on this last year, and had some meetings with Sony early in the year at their developer conference for Vita held in London.
There were quite a few interesting points during development. The main challenges that we have had to deal with on this project were that our own CREST API was still in active development for DUST 514 on PS3, and the focus client side up until then had not really considered having more than one client connected to the same account. So we had to do some careful planning and course correction, as well as communicate between a bunch of teams on a regular basis in order that things didn't go bang when someone connected using both the PS3 and the PS Vita.
Other than that the Vita has been a joy to develop for and Sony have been very supportive of our efforts.
Being an "old timer" it was a refreshing change from iOS (which has its own advantages being based on a quite mature *nix foundation) as it felt like a mix of modern hardware and software, but with the freedoms of yesteryears console development. Lots of fun stuff like managing memory yourself, and having to be aware of which memory is being used for what and so on.
For anybody that might be interested in developing for the Playstation Vita, what tools and languages were used in designing the DUST 514 Neocom application?
We used Visual Studio 2010 (although 2012 is an option now) and Sony's PS Vita SDK. The primary language used for development was C++, as this kept the core engine as cross platform at possible, allowing us to draw on an existing code base, while also offering opportunities moving forwards.
The user interface is Scaleform for similar reasons, and also to maintain parity with the main client UI. I think I mentioned already that the engine itself is based on the core of my own cross platform engine which has been maturing for a few years.
In the past, CCP has relied on the community to supply apps with similar functionality to the DUST 514 Neocom to the community. Aura for Android is one such app. Why was the decision made for CCP to deliver this level of service? Did it have anything to do with the Playstation Vita development in particular? I'm not familiar with the system, but my initial guess might be that it is not as readily accessible to development to independent/solo developers, as Android and iOS are.
Great question! As I mentioned before I was very keen to kick off something mobile at CCP. So was CCP Jian for DUST 514. It seemed an obvious choice given that scenario to start by doing something with the Vita because of the connectivity and synergy it has with the PS3. I was always excited in the past by the concept of using the Sony PSP as a rear view mirror in racing games, for example.
I am also personally a big fan of the Vita, and Sony have been super helpful to both us (as a fairly large developer) and independents The tools they provide are pretty awesome and have a lot of depth in the areas that game developers care about; particularly graphics development. But they do require a little more resources and experience than perhaps those that are required initially for something like iOS development. Having said that, Sony mature these tools with each SDK update. Consequently they get more and more powerful and flexible with each iteration.
I do miss the Simulator that you have when developing for iOS though. If I had one thing on a wish list for Sony to do, it would be that. I think it would help attract more indie developers too.
Why the move to Reykjavik? The majority of DUST development is done in China (as far as I know.) Is Reykjavik where the majority (or all) of DUST 514 Neocom development is taking place? Why was the decision made to develop the DUST 514 Neocom in Iceland versus Shanghai?
Yep, the majority of DUST development is done in Shanghai. And for quite a number of months the DUST 514 Neocom was developed there too. However, our Empire segment is based in Reykjavik under the stewardship of CCP Lekjart who also heads up True Grit. Some of my existing responsibilities towards the main DUST 514 client fit very well within that team, and work within True Grit also has a bearing on where mobile development may go for DUST 514 in the future.
We also have our CREST, Operations, SSO (Single Sign On), VGS (Virtual Goods Store) and Web teams in Iceland. Throughout the development of the Neocom it was really very necessary for me to be able to talk with these guys face to face on a daily basis, and being in the same time zone facilitates that rather well.
I have to be honest though, I really really wanted to live in Iceland, and get closer to EVE ? so that might have had something to do with it also!
How extensively did the DUST 514 Neocom application use CREST? How will one activate their account via the application? Simply their login/password? Or will they have to create API keys, similar to what EVE players must do to allow 3rd party apps to access their character information?
Yes the DUST 514 Neocom is 100% CREST based.
The PS Vita DUST 514 Neocom is able to use your DUST 514 PSN account, and uses Sony's PSN log in on that device to authenticate. So it offers seamless integration with your existing DUST 514 account that you already have on your PS3. You are also able to make an account, as well as create and fit characters and vehicles using the DUST 514 Neocom on the PS Vita independently, and then continue using that account and those fittings on the PS3 once you download the main client there. The rationale behind the PS Vita client is offering another way for people to discover and get into DUST 514 as well as for existing users to continue to do stuff while away from the main client.
CREST uses OAuth 2 SSO (Single Sign On) for all clients, although the methods we use to connect from the PS3 and PS Vita are a little different from traditional OAuth 2 SSO on the web, as we have a dependency on Sony?s PSN authentication ? and are tightly tied to the PSN Store. But for all intents and purposes it's basically traditional SSO where we have Sony?s servers involved in the process.
I haven't been following CREST for DUST 514 that closely. I'm assuming it still isn't open to 3rd party use just yet. Will CREST be opened to the public at the same time that the DUST 514 Neocom application is released? I ask, because it probably wouldn't be that difficult to analyze network traffic to locate the activity that results in CREST calls and to determine the addresses and format of those calls. Thus those calls will be visible to 3rd party developers, and perhaps usable.
CREST is not open to 3rd parties yet. But it is coming, as we explained at Fanfest. I am not the right person to ask about when that is though.
It?s a very interesting question that you pose. The DUST 514 Neocom on PS Vita is effectively an internal 3rd party app. And part of my role in the CREST effort we have jokingly referred to internally as that of "crash test dummy." By that I mean that hopefully I've experienced a bunch of problems that we will have now ironed out for 3rd party devs in the future.
With regards to the prospect of people analyzing network traffic. Yes, we have those kinds of discussions internally all the time. Botting and sniffing and all kinds of wonderful things are going to happen, as well as even perhaps app ID spoofing. And yes, if people were that way inclined, looking at the network traffic from the DUST 514 Neocom may give you some insight into the CREST API. Having said that you could also do the same thing to the PS3 as it also uses CREST and is out there in the wild now! I can?t imagine EVE or DUST 514 people being that sneaky though!
So, once the DUST 514 Neocom application is released, will you be involved with its ongoing maintenance, or will you be moving onto other projects? If the latter, will you be staying with mobile development with CCP?
Hopefully a lot of the work we have done on the DUST 514 Neocom will form a base, or at least some form of guide, for future mobile work. Both as an example of things we could do better, and also hopefully some examples of things done right! The process of getting this app to where it is now has involved discussions across many different disciplines within CCP. Covering discussions about what we should be doing in clients, and what we should be doing on the back end, and how we should best deliver content and data to our products.
We specifically designed the core code base of the DUST 514 Neocom to be as cross platform as possible, and are discussing releasing some parts of the CREST libraries as Open Source to help third party devs. I fully expect that we will continue to support the DUST 514 Neocom, but I also hope that ongoing maintenance will be shared with other people also. Not just so that I can play with new toys, but also so that we can get fresh input and ideas into the project from other perspectives and teams.
I have made no secret of the fact I would love to be involved with things that we do to compliment EVE.
Are there any plans to port the DUST 514 Neocom application to other platforms (e.g., Android, iOS) once the Playstation Vita version is released? Or, if the DUST 514 side of CREST is to be opened up soon after the release of the Vita application, will CCP rely on the community to create apps for Android, iOS and other mobile device platforms?
We are of course looking very seriously at other platforms.
We?re obviously very excited to see what third parties come up with once they get their hands on the CREST API. However, that does not mean we won?t be producing products ourselves. And as we explained at Fanfest there will be parts of the API (at least initially) that we won?t be able to open up to third parties right away ? for a multitude of reasons.
There are definitely also certain products that CCP are uniquely positioned to produce. For example things which interact with the marketplace and any app that depends on evolving services and indeed the still evolving parts of the CREST API itself.
And there are also potential apps out there that only the community will come up with, and we may have no idea that people wanted until the community invents them.
In many ways I think the third party dev space could evolve in very interesting ways, much in the same way that gameplay within EVE and DUST 514 is player and community driven.
Who is on Team True Grit? Can you explain how teams function? I've heard that their given some autonomy on how they tackle their projects, in terms of sprint cycles and the order in which they pull from the backlog.
True Grit focuses on the connection between EVE Online and DUST 514, so for that reason it makes sense for them also to be based in Reykjavik.
Most recently True Grit produced the new star map and planetary conquest sections of DUST 514, and I think we have a certain amount of autonomy on how we work as long as we hit targets and continue to deliver. That being said we still have sprint cycles, are accountable to people who direct and produce the development of DUST, and in some ways are accountable to even more people as we work facing both EVE teams and DUST teams.
As Lead Engineer on the DUST 514 Neocom application, what are your responsibilities on the project?
I make absolutely all of the coffee for the team and produce a very large number of the bugs!
But seriously, this project has been built on the shoulders of giants ? as many things at CCP are. For myself I have been responsible for the overall engineering strategy for the project itself ? and a lot of the engine coding on the client. We based a lot of this on my own mobile engine, which is itself based on many years of development on various platforms.
I've also had fantastic support from our CREST, VGS (Virtual Goods Store), SSO (Single Sign On) and web teams ? as well as the DUST and EVE teams where appropriate, and also obviously True Grit. The UI design was handled by the same team that did our PS3 client UI, and they have been super awesome too.
To be clear, without our existing infrastructure, our CREST API and all the work that has gone into connecting DUST to the EVE Universe this app could not have happened. So it's a culmination of a ton of people's commitment over an extended period of time, and long hours over workdays, evenings and weekends.
Were you an EVE player before joining CCP? If you can say (and are comfortable doing so), who were you? What organizations did you belong to? Any memorable play moments pre-CCP employment?
I was an EVE player on and off before I joined CCP.
I was loosely known here and thereabouts, but would rather keep that to myself ... for now.
Do you currently play EVE Online? If so, how often? What areas of space and style of game play are currently appealing to you? (No specifics on character location, of course.)
I love EVE Online. Love love love taking part in Dev Caravans.
Personally I have a number of characters. I tend to do a lot of lurking with "stealthier" ships. (Poetic's note: Obviously an AFK cloaker!) And have always kind of wanted to be the solo pirate, which doesn't always go so well. But is fun.
Since joining CCP I have less time to play EVE than I'd like. Go figure! But I have got my wife and a bunch of family members playing recently. One day perhaps we'll make a family corp!
Do you play DUST 514? If so, how often? (I know next to nothing about DUST, so not sure if there are areas of space and play styles available.)
Yup. Again. Play it when I can. As I worked on it extensively for two years I would tend to not play so regularly for myself but rather when required for specific playtests and so on. For myself, and my own recreation time playing at home, I enjoyed picking it up every few weeks so I could more easily appreciate the changes the other teams were making. It's easy to not notice changes in the game if you play it every day ? and I like "feeling" noticeable changes when I spend quality time with the game using it as intended.
Obviously in the areas I worked I would be in the game every day.
Again, I tend to play as a loner, who would jump into a battle and help out where I thought help was needed, which is fun as I end up in a different narrative each time. I also had some great times playing in corps. internally during playtests. I think knowing the people you are playing with and having a common goal definitely pulls you more into collaborative game play.
...
A huge thank you to CCP Merovingian for his time and patience. I hope everybody who reads enjoys the interview. I can't guarantee anything, but if you have any questions, pop them in the comments, maybe he'll see them and answer.
Source: Getting To Know CCP Merovingian: An Interview

