Friday, 24 January 2014

People of Frictional: Rasmus Gunnarsson

Fifth post in the series. You can read the other posts here.

Who am I?

Hello! My name Rasmus Gunnarsson and I started working for Frictional Games as a freelance artist back in 2010 to help out with the final stages of Amnesia's development. Later, I became an intern, and that landed me full-time employment as a concept artist / 3D artist / level artist / whatever’s needed artist.                                   
I work from an elevated desk where I stand all day. 
Background
I've always drawn a lot since I was a child. I never took it that seriously, which is something I regret, but then again perhaps if I had I wouldn't have spent most of my free time playing games. I used to buy those magazines that came with demo disks, and then use all my savings to either get a cool game from the budget bin or save it up for a larger release. I played everything from Megaman to Silent Hill to Counter Strike to Fallout to Starcraft to Monkey Island.

The time comes when you look at your life and where you are going; soon you'll be out of school and in need of a job. I asked myself what I wanted to do. If I was going to have to work for most of my life, I’d love it to be something that I cared about and enjoyed. This started a long and hard journey to where I am today.

I started out with all the resources I could find on the internet and practised all day instead of just playing - I was drawing, painting, reading tutorials and watching educational materials. When I did play games or watch movies, I tried to be more observant of things art-related. But just working on my own wasn't really going to cut it; even when you improve with lots of practice, you won't have any real practical tests of your skill and it’s easy to fall into patterns that feel comfortable.

I enrolled in a school for Industrial Design in my home town. I'd read that many successful concept artists had started out there, and it was the best way I could find of getting practical experience - or so I thought at the time. It turned out that it wasn’t a good idea at all. All it offered were some practical opportunities for that specific field, and no real meaty general design courses regarding aesthetics and so on -  we were left to figure that out on our own. As I was already doing that myself, I just quit, and looked for a course that might give me a chance for real practical experience.

This search took me to The Game Assembly, a school with close links to the games industry. So not only were there many more practical opportunities to be had, but there was also a chance to meet people in the industry. I didn't expect to be spoon-fed anything and still focused on the work and practice I did on my own.

I got to work on many small games during the course, but the big turning point was when I just got lucky. One of the guys I befriended happened to be doing ex for Frictional. Due to the busy schedule at the school, he had trouble keeping up with everything he needed to do and asked me to help out. While I was quite busy myself, I wouldn't pass up on this opportunity.


Painting made in my spare time.
A personal painting much inspired by Beksinski.
When I started working on Amnesia I had no idea what Frictional had done in the past, so of course I decided to check it out. After playing Penumbra, I realised quite how good Frictional were, and felt under pressure to perform well. I really enjoyed Penumbra and thought it did a lot of new things with old gaming ideas that I loved in a way that got me really excited. During school I hadn't wanted to end up working on AAA games as I felt they didn't manage to create new things that could rival many of the old great classic games. But after playing Penumbra I knew that I'd do anything to keep working with Frictional.


Concept art for the Justine suitor enemy.

After completing the freelance work for Amnesia I got an internship at Frictional where I, among other things, worked on the Justine expansion. After the internship I got full employment.


What do I do?
I create concept art and sketches for objects and environments. I also create 3D models and work on levels like a normal 3D artist when that takes a higher priority.

Sometimes an area might need a redesign, and doing a paintover is the quickest way of evaluating what needs to be changed and to set a clear goal; at other times we might need to fix a bunch of objects both technically and aesthetically.

I really love being able to have a finger in everything, making sure that the concepts are translated correctly, and then having the freedom to explore and tweak things, making every area or object as good as it can be instead of simply contributing art and hoping that it becomes something good in the end.

I use Photoshop and a Wacom for drawing and Modo for creating 3D assets.

My normal workflow is to interpret the initial design doc by Thomas (the Lead Designer), using his description and simple layout to try and capture the right mood and give the artists building the level something to go on.

Concepts for the teaser.
Above is an example from the teaser video we recently released. We chose "hero shots" of the environment where there is something special going on, so you get the most mileage out of a single sketch.

Another thing that happens in the process of designing an area is that the initial sketches tend to act as a visual playtest. Something that might've been problematic to communicate visually can easily slip through when you are only designing something in your head or on paper. In the end, nothing is final and will always evolve in each stage it goes through.


10 comments:

  1. Rasmus,so you are creator of all enemies in SOMA ? :)

    ReplyDelete
  2. Really interesting read! I hope I get a similar opportunity to work on something that interests me when I need to find a full job. Amazing that you ended up working on a lot of things within Frictional instead of just [this and that small part]. Absolutely loving how the game looks so far, best of luck to you and your team!

    ReplyDelete
  3. I love these posts!
    Is nice to know more about the people behind the games we like so much!

    ReplyDelete
  4. I'm glad to see at least one person at frictional uses modo—I have vague hopes of applying at frictional whenever they might next be hiring.

    I love talking to other modo users about how they find it for game art (because it certainly is lacking in some areas); scripts are essential for a efficient workflow. Some I've come to rely upon are Svartberg's (Ariel Chai) PipelineIO (exporting script with many handy features, hard edges by UV seam, cage via morph map..), Farfarer's (James O'Hare) Vertex Normal toolkit and his Texel Density toolkit, ETERA uv tools, and of course Seneca's scripts. Would you have any other worthy mentions? Any in-house scripts you can talk about?

    It is a pretty exciting time for modo too, with an increased focus on the (fairly ignored) game art aspects.. we've had modo steam edition, improved FBX support, basic edge smoothing controls, modo for linux... and most recently, how about that mesh fusion!? Amazing stuff. With the impending release of Substance Painter I'm wondering if linux could now be a viable platform for the game artist—assuming Substance Painter can completely replace photoshop—and if either modo gets cage baking or xn4 releases on linux.

    Anyway, I'd love to hear your thoughts on using modo as part of an indie team. I know some of the Almost Human (Legend of Grimrock) guys use it so it's cool to see it pop up elsewhere too.

    ReplyDelete
    Replies
    1. Hi Ben, I'm one of the other artists at Frictional, also using Modo. I don't really use many scripts myself (I used to use quite a few). There are a couple of scripts I can't work without and those are Senca's Lazy select (for selecting adjacent faces that face the same direction, and I had Senca hook me up with a texel density script that I use pretty often. Should probably try out James', though! I know him pretty well so if there's any lacking features I can just bug him about it ;).

      I also make a couple modifications to the UI so I can assign smoothing groups with buttons under the Polygon tab, and for sculpting I maximise the 3D viewport and have all the pallets on the second screen. Apart from that my Modo 701 is pretty vanilla.
      We use collada DAE for our meshes (and recently supported FBX, too), which Modo supports with all the features we need, so no custom scripts have had to be written, though a lot of trial-and-error for getting animations to export 1:1.

      Really looking forward to getting Meshfusion at some point, looks like it will speed up my highpoly workflow substantially!

      Overall I think Modo is a great tool for game development, imo you can't beat it for subD and poly modelling which is 75% of a game artist's working day :).

      Delete
  5. Hey Aaron, thanks for the reply!

    I haven't explored modo's sculpting abilities much yet; I usually go to Zbrush for the little sculpting I do—although in Tor Frick's modular masterclass tutorial he uses modo's sculpting for some quick concrete damage. I might have to play around with it more.

    So you still use smoothing groups by polygon selections? I urge you to try smoothing by hard/soft edges; it is in my opinion a much more logical and manageable way to control smoothing. A practical example of this would be setting UV seams to hard edges (something that is essential for hard surface assets that use normal maps). To do this by edges you merely have to select UV borders and set them to hard—easily automated. However doing the same thing by polygons is very difficult on anything more complex than a cylinder, because you cannot simply assign one UV island to one smoothing group to produce a hard edge at their border.

    I know modo has a native lazy selection feature; but I'll check out seneca's script too. Thanks!

    Apart from scripts I'd say my modo is fairly vanilla too; although with a few key changes. I assigned commonly used tools to hotkeys, like add loop to Shift+F, bridge to Shift+E... and I changed spacebar to remove, since I was removing edge loops a lot to make lowpoly models from the high and I used 1/2/3/etc for selection modes anyway. And I just discovered alt+x for local action center and alt+z for element which was excellent.

    100% agree that modo is excellent for sub-d; it also has a wonderful UI which makes working with it pleasant from beginner to expert. It's UV tools are excellent too, except for the lack of polygonal based straightening... max has a tool for that of which I am shamefully jealous.

    Also for a controversial question among modo users: do you bake your normal maps inside modo, or use xNormal? There are two schools of thought here with some interesting arguments from both sides. I argue that (at the very least for hero assets) baking should be done in xNormal or anything else that has cage support; as cages are the only way to get perfect bakes.

    Others (including some industry veterans) say that you can do your baking inside modo without a cage (which is faster) by being clever about how you construct your lowpoly, so as to avoid the problems you will have from using ray-casting rather than a projection cage (namely gaps in the cast rays caused by hard edges).

    When using pipelineIO exporting to xnormal with your low/exploded + cage is so quick I really think there's no reason not to do it for important assets (I have a google doc with various modo tips which goes through the process if you're interested: https://docs.google.com/document/d/1H4Mv-9Zryg-Vn-5cA2g7eqIwLbiJD5ELHcjgGcPN1so/edit?usp=sharing ), but I'm always curious to hear other opinions on the matter.

    ReplyDelete
    Replies
    1. I do all my baking in Modo, I guess I have become so conditioned to how Modo bakes that my workarounds to it's problems are automatic. I tend to "explode" my meshes a lot when baking to reduce raycast errors. Meaning I'll assign a morph map to the high and low poly meshes, move the elements appart in 3D space and then bake.
      Only thing you need to watch out for are really tight concave shapes, like between toes of a character, etc. My usual workaround for this is give the toes enough space to begin with on your bake mesh and then bake seperate maps with a small raycast (you can usually tell what length is enough by checking it against the grid as the ray cast length is in grid units).

      As for hard edges I'll have to give it a go at some point. But when you say "you cannot simply assign one UV island to one smoothing group to produce a hard edge at their border" - this is precisely what you can do! The only thing you have to do is keep track of which island has what smoothing group. But if you forget you can always check in the lists view.

      Delete
    2. Interesting! Definitely give pipelineIO/xNormal a go next time you feel like messing around; once the initial setup is done you might find it saves you time not having to do mutliple bakes with different ray distances.

      And regarding UV island smoothing groups; it is not so simple. Say you have a cylinder, with three UV islands, the body and the top/bottom caps. Each island is a separate sg. You now have a hard edge at the caps but not at the edge of the body UV seam (because the body is a single, unbroken sg).

      To do this with polygonal sg's you would have to make one border sg 'ab' and the other 'ac' while the rest of the cylinder body is sg 'a'. To do the same with edge based smoothing is simple. Now in most cases you wouldn't want a hard edge on the smooth body of a cylinder, but the more complex a shape is the more complex it is to get a hard edge by UV seams using polygons.

      Delete
  6. I'm a fan of video games especially those with good design and history, congratulations for the success in ammesia, I have not played this game but soon be installing on my PC, I'm an amateur designer and I know how it feels when things and pass another level, your story very inspirational greetings

    ReplyDelete
  7. I actually prefer your art to bekinski. Its "lagom" scary ;D

    ReplyDelete

SiteMeter