Wednesday, 2 May 2018

People of Frictional: Gregor Panič

WHO AM I?


Hi there! I’m Gregor and I’m a designer and programmer at Frictional, which means I’m responsible for all the fun events in our levels. Okay, maybe they’re fun just for us.

It's me! And the sign on our door, printed on an A4 and a little crumpled...

I’m a more recent recruit, having joined around September 2016. My job description, gameplay programmer / designer, is purposefully vague. While I mainly work on level scripting, I also spend time on AI, gameplay systems and level design. I also worked on our collaboration with the Tobii Eye Tracker, which I will talk about later. The great part about this is that my work never gets stale and almost none of my days feel the same.

I’m originally from a little known country called Slovenia, but I’ve recently moved to the land of the vikings to become one myself. Or, in other words: I moved to Malmö around two months ago and now work from our fairly new office.

My setup at work - right next to the fanart wall! No deskmate yet, though. :'(
I absolutely adore our office and go there pretty much every day to socialize with and get inspired by my co-workers. I’m also the one who nags everyone with occasional movie and gaming nights, where we usually grab some snacks, relax and watch a horror movie (obviously), or games like FIFA and Jackbox Party Pack!

BACKGROUND


I can’t really remember the time when I first started playing games. I do know that around the late 90s my dad brought home an Intel 80186 PC one day, thinking he would use it for work. He was wrong. After he showed me a couple of MS-DOS games and I realized I could make things move by pressing buttons, I became glued to that PC. My parents didn’t manage to pry me from it, so I’ve been playing games ever since. Not on the same machine, obviously.

I played a lot of games, but didn’t touch the horror genre for the longest time. I still remember having vivid nightmares and being unable to sleep whenever I saw something remotely scary on television. When I was older, however, a friend of mine bought me Amnesia as a “gift”. It was a dare, of course, but because I didn’t want to disappoint my friend, I played through it. It was just as scary as everyone was telling me, perhaps even more so.

But while I was playing it I also realized that it was about more than just scaring the living hell out of me. It managed to fully immerse me in its world and story, which I had not experienced to this degree before. This is how I got introduced to the horror genre, and to Frictional, which would later impact my life more than I could have possibly imagined.

Making games has been my dream ever since I can remember. Given how much fun I had playing them, I thought it would be great if I could make my own – which is why I always liked messing around with settings, seeing what I could do with cheat codes, and figuring out damage formulas so I could get an advantage. It wasn’t until I got sucked into a game called Jedi Knight: Jedi Academy, however, that I actually made my first array into creating my own content. I made lightsaber hilts, maps, and even modified some scripts to make the game play like I wanted to.

Unfortunately, growing up in Slovenia there was no real game dev scene there, so I forgot about my dream. It simply never occured to me that I could make games for a living. However, since I was already using my computer so much, I thought it would be fun to work in IT. So I learned some basic C++ programming in high school, then went to a computer science university where I learned a lot more about programming and software in general.

For a long time I resigned myself to becoming a web developer, taking some summer jobs and part-time work in that field. The job became more and more mundane and boring, until I finally realized that I couldn’t do it long term, and that I had to find something more fulfilling. That is when I remembered my dream of making games, how much fun they brought me and how great it would be to be able to help someone else have the same experience. I already had a lot of programming experience, so I became determined to join the games industry.

I immediately quit my part-time job and started working on my first small game. I wanted to do everything on my own so that I would learn all the intricacies of game development. A year or so of studying and work amounted to Welkin Road, a little puzzle platformer with grappling hooks.

In Welkin Road you use your two grappling hooks to solve movement-based puzzles.

While I was in the process of finishing Welkin Road, I started looking at potential studios I could join. That’s when I saw a tweet from Frictional, mentioning that they were looking for a designer / programmer. I didn’t think I was ready, but I figured this was my only chance to work with the company, so I sent my resume in anyway.

To my big surprise they offered me a work test, to see whether I was suitable for the role. I gave it my best, but after I sent in my project I tried to prepare myself for the inevitable let-down. Instead I got a positive reply and an invitation to an interview. The final decision came a couple of weeks later.

Spoiler alert: I got the job.

Given that I was a big fan of Amnesia and SOMA, the decision to accept was a no-brainer. However, it took me quite a while to properly register that I had fulfilled my lifelong dream. A year and a half later I realize how lucky I am to be one of the few people who can wake up on Mondays with a smile on their face.

After joining, I immediately started working on my introductory tasks aimed at learning the new tools. I joined at the same time as Max, so we bonded over struggling to understand all the new stuff. When those tasks were done, I started working on my first real project: designing and implementing eye tracking features in SOMA, which I will talk about in more detail in the next section.

A while after I was brought on, the company started looking to set up a studio in Malmö. I already knew that if I wanted to make games, I would most likely have to move, so the decision to move to Malmö didn’t take me long to make. Finding a place to stay took a while, but I eventually managed to find a nice apartment and settle in, in no small part thanks to my incredibly kind and welcoming co-workers.

The setup in my new home in Malmö!


FIRING LASERS (more commonly known as Eye Tracking)


As promised, I will now spend some time talking about my adventures in eye tracking. After receiving a unit from Tobii, I first tested it with a bunch of games that already had eye tracking support. Deus Ex: Mankind Divided was a particularly useful use case study, since it had a robust implementation and used the eye tracker in interesting ways. I was initially very surprised at how well the eye tracker worked in that game, and how seamless and intuitive it was to use without putting any strain on my eyes. This gave me the confidence that we could use this to enhance SOMA.

Once I got a feel for what the technology was capable of, I read through Tobii’s SDK documentation and code samples to figure out how it all worked. In simple terms, the Tobii eye tracker provides a continuous data stream of screen coordinates that represent the location on the screen the user is looking at. Think of it as firing 60+ laser beams per second from your eyes to your monitor. Bring it on, Cyclops!

After I was done feeling like a superhero, I looked into how we could use this in our own engine, HPL3. Since Tobii’s SDK was easy to use, integrating it into HPL3 wasn’t too difficult, especially with the help of our engine programmer Peter.

With the technical aspects more or less dealt with, I started thinking about the design of our eye tracking features, and how we could best make use of this technology to enhance the game. This included brainstorming sessions, quick prototyping and a lot of feedback from the rest of the team.

It quickly became clear that while controlling and moving stuff around on the screen with your eyes is fun, it becomes tiring and uncomfortable really fast. For a good experience, the player must never be actively thinking about using their eyes. Instead, the game should react to the player’s natural eye movements and try to enhance the experience. A negative side effect of this design principle is that unfortunately quite a lot of features become very subtle and hard for the player to notice consciously, despite having an overall positive effect.

The white circle is where the player is looking.

Another interesting aspect of designing these features was how eye tracking could be used in a very immersive first person horror game. Horror games often rely on where the player is looking to trigger certain events, which always means a certain level of uncertainty about whether the player actually registered what was happening on the screen or not. With eye tracking, this uncertainty became very minimal, which meant that the timing of a lot of the events in SOMA naturally improved.

In the end, we ended up with a number of eye tracking features we were happy with. The most noticeable ones are extended view, which makes the viewport pan towards where the player is looking, and the ability to control the flashlight with your eyes. A number of enemies also react to the player’s gaze, such as the flesher monster becoming aggressive when looked at and teleporting when the player blinks, or the deep sea diver stopping when the player maintains eye contact.

Other features are much more subtle and designed to enhance immersion and mood. For example, staring at creepy and gory scenes zooms the screen slightly, giving the impression that Simon is in a trance or shock-like state and can’t look away. When the player looks at enemies, the screen distortion effect intensifies to further discourage players from looking at them.

Additionally there are some really secret ones, such as Ross’ distorted computer messages appearing exactly when the player blinks, to further reinforce how Ross is inside Simon’s head. My personal favorite, however, is a subtle reaction from K8, the incredibly friendly and helpful swimbot, which gives the player a small opportunity to communicate with it.

The developer showcase of eye tracking features.


In summary, working on eye tracking has been an incredibly fun and rewarding experience both because of the challenge, knowledge gained and the creative freedom. Besides, who doesn’t enjoy firing lasers with their eyes? The end result hopefully enhances the SOMA experience, even if just a tiny little bit. So if you have the PC version on Windows and a Tobii eye tracker, consider giving an even more immersive version of SOMA a go!

The official trailer for eye tracking in SOMA.

Eye tracking is just a small part of my work at Frictional though, as I’m currently working on one of our next projects. I’m already really proud of what we’re creating and I’m happier than ever with my choice to follow my dream of making games. We’re all really excited to be able to share more of what we’re doing, but until then we’ll just keep doing our best. This also reminds me it is time for another gaming night, to keep our spirits up!

Quality Frictional Humour™ from a recent Jackbox Party night.


Wanna see who else works at Frictional? Check out the rest of the People of Frictional posts!


7 comments:

  1. I can't wait to see Munshi in HPL4.

    ReplyDelete
  2. cool wallpaper on your pc at work, where can i found it?

    ReplyDelete
    Replies
    1. Here you go! :)
      https://www.artstation.com/artwork/mQLe1
      https://alpha.wallhaven.cc/wallpaper/634689

      Delete
    2. Thank you.

      Delete
  3. Hey!
    With some crazy luck, I scored myself screen with tobii, and SOMA installed on steam.
    I have some feedback after quick testing, and I didn't find any other place to tell it!
    so.

    first of all, you guys have made it to work perfectly!

    But, biggest problem is lag. looking to some corner takes too long to fov to move,and it feels weird and annoying. I think this could be easily fixed with slightly lower threshold or whatever.
    And for second thing, I feel like screen could really move almost twice as more!! screen movement limit is just too small and it just makes you feel that possibilities of tobii are underused.

    That's all! Or not!
    If possible, please make real feedback form to main site.
    ILY you guys, keep up THE BEST WORK!

    ReplyDelete
    Replies
    1. Hey, thank you so much for the feedback!

      Have you checked out the options menu? There should be a new menu with eye tracking specific options if you have an eye tracker connected, with adjustable settings for responsiveness and how much the extended view can pan. We went with conservative values here because bigger ones were causing discomfort to some people.

      Delete
  4. If it's so bad even in Slovenia that you have to move away, then I wonder what awaits me here in Bosnia lol. Good lad, best of luck.

    ReplyDelete