G71A3292-480x294

Why work in Customer Software Engineering at Improbable?

29 June 2017

Chong-U Lim is a Customer Engineer at Improbable—responsible for the overall success of game developers who are using SpatialOS to achieve new realities with their games. Prior to joining Improbable, he received his PhD from MIT and worked for Playfish, EA and Kuju.

Why work in Customer Software Engineering at Improbable? The best way I can answer this is by sharing my experiences with you.

I’ve been blessed with the opportunities to have worked in the videogames industry in a variety of ways. I’ve worked with AAA games for PC and consoles, and indie game studios working on web and mobile games. The studios I’ve been at have all been very eventful – Playfish went from a small startup to being acquired by Electronic Arts!

Even my academic studies were heavily skewed toward games too. I worked on the AI for DEFCON (Introversion Software — the developers of Prison Architect). A bulk of my research in the past few years has been with Valve’s Team Fortress 2.

Outside of professional and academic game development, I also worked with games in my spare time. A game I made was shortlisted for a game festival showcase, I’ve submitted to Ludum Dare, I have lots of random stuff on my Itch.io page, I backed and watched all episodes of Double Fine Adventure’s journey to creating Broken Age, and so on.

I guess what I’m trying to say is; being able to work in games development has been quite an important factor to a lot of decisions that I’ve made regarding where I work. And a big factor in choosing Improbable was because I honestly could not think of a company that presented the opportunity to work with:

  • An amazing team of developers from a myriad of backgrounds, including game developers who’ve worked on things ranging from the Lego games to Fable to mobile games.
  • An opportunity to work on BOTH an amazing technological platform AND using that platform to develop games on.
  • An experience to grow as BOTH a software engineer AND a games developer.

The best of all possible worlds

What I’ve experienced in the past working in game development is that if you are unfortunate enough to have a game cancelled, well, that’s sad in many ways. If you are fortunate enough to work on a successful game, what tends to happen is that you end up spending many, many months (or even years) rolling out content rather than features for games. And if you are fortunate enough to not need a successful game to pay the bills, and still be able to be an independent developer — then that’s fantastic (but very rare!)

Here at Improbable, there are certain aspects of our day-to-day work that means that we work with games, but avoid the pitfalls of those development studios who focus solely on producing games. First, we are not gated by the success of developing a game, so it really gives us creative freedom to explore some exciting concepts with other developers instead. Second, we hope all our customers are successful, but, whatever their outcome, our technology continues to evolve – so as a software engineer you continue to grow. Finally, we’re always busy with endless fascinating development-related tasks – so you will definitely also level up in games development experience, too.

G71A3279-960x498
Chong-U at work.

But what would a customer engineer do on a day-to-day basis? Well, it can vary. We might help them solve the technical challenges related to massive, massive games. For example, two of our engineers are working with one of the most successful multiplayer game companies at this moment to prototype a massive multiplayer version of a popular genre.

We might help rapidly prototype features in games using our tech, which because of its novelty, has particular interesting approaches to solving even regular game development paradigms. For example, two of our engineers have just created small demos and prototypes to investigate how rooms and dungeon instancing could work in SpatialOS.

And you might help brainstorm features with game studios and work with them to design their games. For example, we’ve worked very closely with Bossa on Worlds Adrift and Spilt Milk on Lazarus.

These are just some examples of what the Customer Engineering team have been working on. Other teams in the Games Division have worked on: creating a demo using SpatialOS and Unreal Engine 4; creating a VR demo using SpatialOS and Unity; creating a fresh tutorial for using our tech via a Pirates game; and much more.

No rose without thorns

At the same time, there are aspects of what we do that seem less glamorous. Like everywhere in games, we often find ourselves debugging and troubleshooting our customers’ games – given that SpatialOS is still relatively new, developers are often trying out new things and creating new experiences. I’m not going to sugarcoat it all; it can often be frustrating, especially when dealing with esoteric bugs and edge cases – which inevitably arise when dealing with large-scale and distributed multiplayer games, and which require a unique way of thinking.

That’s why, in Customer Engineering we balance our work between technical support, technical design, on-site visits with customers (getting to see some really cool studios firsthand), and R&D prototyping work. We try to keep things fresh so that both our customers and our engineers are excited and motivated, whatever the challenges that they may face.

And, if you want to work on your own projects, we’re happy. We actually have a weekly “Make Your Videogame” club here at Improbable, where people hang around, order takeaways, and work on their own games (not necessarily SpatialOS games). One of us is working on integrating PhysX into one of their workers, another has been developing a battle tanks game, another is making a card game. I’ve been trying to integrate Phaser and libGDX with SpatialOS.

Screen-Shot-2017-06-29-at-14.54.34-960x628
Feud, a “Make Your Videogame” project by Joel Auterson.

Anyway, I think it’s safe to say that, even as a technology company, our engineers at Improbable do a LOT of game development – comparable to the kinds of things that games studios do themselves.

I hope that this has at least provided a broad overview of the many things we do here in Customer Engineering, in the Games Division, and at Improbable as a whole.

If you want to follow up on any specific aspect of this, you can find me on the Improbable forums or grab me on Twitter – I’ll be happy to provide answers!

Visit our careers pages to find out what Engineering roles are currently available.


Update – we have announced new Unreal and Unity game developer kits (GDKs) as improved versions of our SDKs. Find out more about the Unity GDK and Unreal GDK.