Interview with Kees Rijnen, Owner of Lumonix and Co-Founder of Slick Entertainment

Kees Rijnen is the owner of Lumonix (www.lumonix.net) and co-founder of Slick Entertainment (www.slickentertainment.com). He is especially well known for his work on PuppetShop, Shader FX, and N+. He recently announced that he is working on a game called Scrap Metal.


Adrian Walker: Could you tell us a bit about yourself?

Kees Rijnen: I started professionally in the industry about 11 years ago at a game company called Digital Infinity in the Netherlands, which later merged with Lost Boys to form Guerrilla Games (Sony - Killzone). I started as a 3d artist doing modeling and texturing and later moved into an animation position. After a few years I moved to Edmonton Canada and worked at Bioware for about 5 years on projects like Star Wars KOTOR, Jade Empire, and Mass Effect.

At the time Bioware had a lot of talented artists and animators, but not many technical animators. I started picking up more technical jobs and found the work quite rewarding, so I continued on that path for the next few years, learning MAXScript and C++ down the road.

After a few years of doing technical work at Bioware, I decided to setup Lumonix and write a couple commercial tools such as Puppetshop, SkinFX and ShaderFX (together with Ben Cloward). I mainly did this to be able to share my tools with a larger public than always having to keep them locked-up in-house and it turned out to be quite a rewarding experience.

Even though it is really hard to make enough money with 3ds Max plug-ins to pay the bills, I’ve really enjoyed the learning experience that comes with setting up your own corporation as well as everything that is required to make commercial tools. Developing commercially available tools is a bit different then developing in-house tools, so I learned a lot from this process.

During the same time I was contacted by Frantic Films in Vancouver who were doing some complex creature work for the film ‘Journey to the Center of the Earth 3D’ and asked if I was interested in doing creature TD work and further develop the in-house animation pipeline, which involved the Max SDK and MAXScripting.

I’ve always had a lot of respect for Frantic Films, so it was an honor to be asked to work on the Journey creature pipeline. Plus, the project involved dinosaurs, which ever since seeing Jurassic Park I’ve always wanted to work on.

When work on the film ramped down, I decided to go back into games and join a long time industry friend, Nick Waanders, in establishing a small Indie game studio called Slick Entertainment. I currently divide my time between Lumonix and Slick Entertainment, where we develop Arcade games.

AW: You started your game career at Digital Infinity as an Animator. What pushed you to choose to move into a technical artist position at Guerilla Games?

KR: I think I have always been fascinated by ‘behind the scenes’ footage on films and I think this may have sparked my interest. I never really thought I would have the necessary skills, because let’s face it; I barely kept awake during high school math class. I wish they had shown me some MAXScript or even basic game development during those years… I think I only wrote 1 or 2 scripts while at Guerilla games. I was mainly doing art.

At Bioware, though, I really began doing a lot of technical work mainly because there was nobody else in my group of co-workers that was focusing on technical animation. Some animation tasks just seemed so tedious (and myself being lazy) I started writing a few small scripts to speed up repetitive tasks. Those scripts grew horribly out of control, so I was forced to learn more about how to organize code and write bigger libraries of code that can be shared and re-used, etc.

From that point on there was really no stopping it since the animation director started seeing the benefit of developing the in-house animation tools/pipeline. So I got scheduled more and more technical tasks at Bioware. It was great to have the opportunity to build my technical skills while we were developing games.

AW: Could you tell us a bit about the technologies and tools that you work with on a daily basis that makes your work easier?

KR: Currently, I work exclusively with 3ds Max 8 and our in-house game engine at Slick Entertainment. Our standalone tools (game editor) are mainly written in C#, which speeds things up a lot.

I use MAXScript and the Max SDK to expand the capabilities of 3ds Max when we need it and sometimes rely on 3rd party plug-ins when they are available. We currently use the Layer Manager in 3ds Max to organize things in the Max scene so that the exporter knows exactly what to do with all the objects it finds.

This turned out to be a really nice and clean work flow, since the entire exporter is now a single button, with no additional settings artists have to remember. We just organize all objects in a layer with the correct name and the exporter knows how to deal with it. Simple but very effective since all you really have to do is remember a list of layer names.

For our current project I also use ShaderFX a lot since it is a very shader heavy game. I’ve written a few small functions for ShaderFX to export the entire ShaderFX shader library to disk, so we can easily re-export all of our shaders in one click.

Oh and Photoshop of course. I tried using the free GIMP for a while, and it is not bad at all, but still Photoshop turned out to be far less frustrating to use. I make use of CGTextures.com quite a bit while working in Photoshop.

AW: What are some of the emerging technologies that you are looking forward to working with?

KR: I like real-time shaders a lot and plan to do a lot more with them. Ben and I have been expanding ShaderFX a lot for the next version to be able to do a lot more with shaders.

I’ve always liked node-based work flows a lot (hence I released the Helium schematic for Max) and so XSI’s ICE seems like it would be a lot of fun to use. However, right now I don’t plan to depart from 3ds Max because I’d rather focus on other things than learning a new app.

We use C# (C-Sharp) a lot at Slick Entertainment, and I’ve messed around with it a bit so far myself. That was far less frustrating then using C++. So after our next game ships I’ll probably dig pretty deep into it.

There have been some nice developments on getting better animation in-game that have been interesting, such as Natural Motion technologies and improvements in facial animation such as done by Image Metrics.

Image Metrics have been doing their thing for a few years now, but I read somewhere they are FINALLY planning on actually releasing a tool so artists can use their technology in-house, which I always felt was a big problem with their tech. You had to ship it all to them and they would generate the animation data. As a technical artist, I’m way to stubborn to want to give that sort of control out of my hands :slight_smile:

Other than that, I’m enjoying seeing the games industry move more and more towards digital distribution, such XBLA, PSN, WiiWare, Steam, etc. It really opens up the ability for smaller teams to release games they’ve always wanted to create.

AW: It must have been a bit scary leaving a steady paycheck to start your own company. Do you have any advice for those who might be looking to try something similar?

KR: It is pretty scary, especially after a year of not getting paid and seeing your savings start to bottom out.

I think I was a little naive jumping into this head first thinking it wouldn’t be all that hard since my business partner and I have lots of experience making games. But to setup a financially successful game company takes a lot more than just knowing how to make games. There are a lot of business elements that come into play that can be quite challenging.

I think the biggest reality check comes when you have a project you think is awesome, but no publisher or game portal will bite. At that point you can feel pretty powerless as a small company and how to move forward from that point on can be a tough call. There are no clear guidelines to follow and the games industry is pretty dynamic so some of it is guess work. And anytime you are dealing with consumers (who in the end decide if they will buy your game or not) it can be really hard to try and figure out what direction to take.

We’ve been pretty lucky so far with our first project doing well. But it remains a big challenge to continue going forward. Things such as presenting your game ideas to publishers or game portals are a far bigger challenge then you usually think. Doing marketing for your game is another huge challenge, both from a financial point of view (marketing is expensive) but also doing successful marketing isn’t easy. We are/were new to all these things and yet they have just as much influence on the success of your games as do your ability to design and develop the game itself.

It is not all bad though. We are learning step by step and have been lucky that our first project (N+ on XBLA) has been doing well. I’m having the most fun I’ve had in years making games and the additional challenges, no matter how frustrating at times, do give you the sense that at least you are moving forward in experience instead of always doing the same job day in and day out. And with the new digital distribution options out there (Xbox Live Arcade, Playstation Network, WiiWare, Steam, etc) at least you have some sort of a shot to make it work without needing a budget of millions of dollars.

AW: You chose to return to game development after working on ‘Journey to the Center of the Earth’ - Do you find working on games to be more rewarding than films or do you have any other motivations behind it?

KR: Working at Frantic Films on Journey 3D was a great experience and it allowed me to fulfill one of my career goals, to work as Creature TD on a big Hollywood movie.

If it wasn’t for the fact that my business partner, Nick, decided to setup a game studio, I’d probably still be at Frantic Films. So I certainly didn’t leave because I didn’t enjoy the work or the people.

That said, I find that with most games you do feel like you have a bit more creative influence over the final project. Usually games are brought to life and developed in the same game studio so you can go talk to the producer and give some of your ideas, if you feel like doing so. With big Hollywood style movies it all tends to be a bit more anonymous.

AW: What are some of the resources you recommend to those who want to dive into working with / learning more about shaders?

KR: I basically learned shaders by looking at examples and little bits and pieces of information on the internet.

I also have to give Ben Cloward a lot of credit, since he helped me a lot while we were writing ShaderFX to understand how shaders are built up and what the limitations are in real-time shaders. I think it was pretty much a perfect match when me and Ben decided to work together on ShaderFX. I knew a lot about programming, scripting and setting up node-based workflows, but knew little about the ins and outs of HLSL shaders. Ben knew a huge amount about shaders, but didn’t know the Max SDK. So together we managed to fill all gaps we needed to write ShaderFX.

So from personal experience I can really recommend Ben’s DVDs. Somehow his information made it click in my 3ds Max artist/scripting brain how that shader stuff actually works. I find most other resources are heavily focused on programmers who want to learn how to write shaders, not technical artists who want to learn about shaders.

AW: The September 2008 issue of Game Developer Magazine had an article in it about the development of N+. Can you talk about some of the technical hurdles you encountered and how you were able to tackle them?

KR: The main challenges for N+ were things like coding the multi-player system, dealing with a lot of the different modes the game has and just general Microsoft requirements you are required to implement when you want to release on XBLA. For some answers on those topics you can either read the Game Developer magazine, the Gamasutra website or read our company blog. What might be interesting for the readers of your site is to explain a little about the tools we wrote and how we used them to solve the technical art challenges on the project.

N+ is a pretty simple game when it comes to the art, but under the hood, whether art is simple or complex doesn’t make a huge difference. You still need a lot of tools and coding to make it all work.

For example, we still had a lot of 2d physics in the game, such as line-collisions, rag doll and dangly bones. Add online multiplayer to the mix and you have a pretty big challenge. Next to physics, we also had to be able to animate the character running and jumping. So we had to come up with a system to mix physics and animation.

My business partner, Nick, took on this challenge by first prototyping the core of the game in C# on the PC, and then later converting everything to C++ to make it run on the Xbox 360. The benefit of using C# is that it is much faster to get something up and running quickly, and it allows you to change code more easily because you don’t have to deal with pointers and cleanup etc. Once the technical challenges were solved, it was a matter of porting it back to c++. This process worked really well.

I compare it to prototyping something in MAXScript and once it works, converting it to the 3dsMax SDK for performance. I do this all the time with my own tools and in the end it saves a lot of time. It is not just time that is important though, it is also important that you are not annoyed by programming issues while prototyping. You should be able to just focus on solving the technical (math) challenges, instead of worrying about memory management, etc. I think these are some of the real strengths of C# and MAXScript.

We also wrote almost all tools for the project in C#, and there was no need to convert them to C++ since they were fast enough on the PC and didn’t ship with the game (except the level editor, which runs on the 360 as well). For example, Nick wrote a Character Animation tool so we could quickly animate a 2d skeleton, and tag bones as physics etc. This was fairly quick to do in C# and the benefit of C# is that it is pretty easy to understand, so myself as technical artist, could go in and make small tweaks to the program, for example modify the UI, while I was animating. That way I would not have to bother Nick all the time for small changes.

For our next project, we’ve taken a lot of the processes that worked well for N+ and are using them again, such as creating the tools in C#. We are also testing to see if we can have our game run fast enough in C# (XNA) so we don’t have to port it back to C++, but we are not sure yet if this will be the case. This time our game is in 3D, so we have also added 3ds Max (8) to the pipeline to export 3d assets and shaders (ShaderFX). This complicates things a little, because now you have to exchange data between your own in house tools and a 3rd party tool.

But luckily we’ve managed to keep our export process flexible by exporting all geometry data to .X files and all other data the game wants to know about in a simple .XML file. We’ve tied our exporter to the 3ds Max Layer Manager, so the exporter parses all layers and processes them correctly. For example, we may have a layer called ‘lights’ or a layer called ‘visual fx markers’. When the exporter finds a layer it knows about, it will process it accordingly, putting the information in the XML file.

Somehow this simple system is working really well for us. I’m a big pro of the ‘one button export’, where the artist does not have to remember a ton of exporter settings. So the only requirement is that you put objects in the correct layer and the exporter handles the rest. And if you happen to have a object in the wrong layer, it simply won’t show up in the game.

We also use X-refs a bunch to deal with instanced/dynamic objects. For example we may have an exploding barrel in our game that is the same barrel duplicated 100 times and has specific physics properties. In Max we want to be able to place this barrel 100x around the level, but we don’t want to export the geometry 100 times. So we have a layer called ‘xref’ in which we place 100 xref-ed barrels. The exporter sees the xref layer and knows not to export the geometry, but instead puts a ‘pointer’ to the barrel file.

The benefit is that we can assemble the entire scene in 3ds Max and see 100% of the levels, all dynamic objects, all shaders and lights in the art tool before putting it in the game. Another benefit of using a layer approach is that the exporter stays really simple, because each layer has a small chunk of code to deal with exporting that layer and isn’t really intertwined with a large exporting loop, which you usually get if you process the scene by looping all objects you find in the scene.

AW: Thanks a bunch taking your time to share all of these experiences with us!

Kees was awesome enough to share screen shots for some of the tools and processes he talked about. Check 'em out here:

N+ Character Tool
Exporting from 3ds Max for Scrap Metal
Exporting with MAXScript for Scrap Metal

Great Interview !

i just registered 'cause i wanted to post that :wink:

And please correct the typo in the first line saying “PuppetShot” - it should “PuppetShop” - Kees great work deserves it for sure …

[QUOTE=spacefrog;1791]And please correct the typo in the first line saying “PuppetShot” - it should “PuppetShop” - Kees great work deserves it for sure …[/QUOTE]
My bad. I posted it up at 2 in the morning and threw the header in at the last moment :wink:

I think Kees has a really interesting story.

Wow, a really great interview that has tons of cool information:): And it’s always nice to read what fellow Dutchmen are up to.

Gungnir.


LovelyWendie99

General all around great guy, he taute me a ton at Bioware. Good to see things are going well.

Yes, I love stories/bio’s like this, very inspiring!
Thanks Kees & Adrian!

-Johan

Quite an adventure (:

Light

Great stuff Kees, It was interesting to read this as I remember speaking with you years ago when you were still in the Netherlands and sharing ideas about rigging and scripting, then on through Bioware and Frantic. You have come a very long way and I only wish that I had the chance to work with you at some point so I could learn more from you.

Good luck on all future endevours.

thanks everyone!
It was my pleasure to be interviewed by Tech Artists.

By the way, for anyone interested:

There is a post-mortem of N+ by Metanet, the co-developers of N+ along with Slick in the September 2008 issue of Game Developer Magazine. If you don’t subscribe (it is free!), or can’t get a copy (if your studio or school doesn’t get it, you need to speak up!), you can DL it for $4 here http://store.cmpgame.com/product.php?id=2920&cat=18&skin=gdmag (I’d recommend spending your money on N+ itself, though, and making sure you get future issues…)

Thats really great, I have also visited many other forums but this one is best of all