Interview with Michal Jarolimek
UI programmer at Warhorse Studios
Can you introduce yourself in a few lines, what do you do and where do you work?
My name is Michal Jarolimek and I’ve been working in Warhorse Studios in Prague, Czech Republic as an UI programmer for the past 6 years. I started working there while I was still a student of the Faculty of Informatics at Masaryk University in Brno, Czech Republic. When I first joined, the Warhorse Studios team had been working on its first game Kingdom Come: Deliverance, which was shipped in spring 2018.
How did you start in the industry?
I’m not sure how much my journey into game development could be considered as standard since I had not been playing video games before I joined Warhorse Studios. My main interest dwelled in the development of educational applications. Even with those, I focused mainly on user experience aspects. Due to my interest in Czech history, I stumbled upon a series of Game Developers Session video lectures recordings including one with Dan Vávra (note: creative director of Warhorse Studios), Viktor Bocan and other developers from the studio. They were introducing their new game and it was the first ever game I really wanted to play. A half a year later, I saw their job ad. They were looking for a Flash developer and I happened to work with it, so I applied and they gave me a chance. Even though I was not a gamer and in fact I had no idea that you can use Autodesk Scaleform (Adobe Flash/Animate) to create UI.
What is the favorite part of your job and what is the hardest part of your job?
I’ve always enjoyed front end programming because I can see and test my creations almost immediately. It doesn’t have to necessarily be a mini game. I am talking about any functionality part that is working the way I intended. We have talented concept artists and 2D graphic designers and they always manage to surprise me with how good things can look. It makes working with assets a quite pleasant job.
What I don’t enjoy that much is merging multiple branches of our development. Our team has grown over the years and managing tasks like these can be tedious even with the help of tools like YouTrack (for tracking tasks and bugs) and Perforce for file version control.
What are your responsibilities at Warhorse Studios?
I’ve been in the programming team since starting but I started using C++ two years ago. Until then I worked exclusively on Adobe Flash and CryEngine flow graphs. That’s how we implemented most of the UI logic in Kingdom Come: Deliverance. Recently we decided to leave flow graphs behind and keep only the bare minimum in Flash. I am responsible of the creation of new UI elements and their communication with the game modules (we use C++ in the GUImodule).
Pickpocketing
What does the workflow look like for a UI programmer in Warhorse Studios?
My workflow heavily depends on what I am working on. There are differences in working on a UI game feature, like part of inventory system, main menu or if it’s a system feature that uses UI for rendering notifications on HUD. In that case I leave the communication between the programmer and us to others in the team but I make sure to talk with the programmer about the code API, and helping getting new assets from a 2D artist implemented. If we work on something bigger, I am the one responsible for the programming tasks. The team which usually works on these features consists of a designer, concept artist, 2D artist, producer and tester. We sometimes have people from other departments working on it; such as scripters, sound designers, environment artists, etc. After the designer talks us through his ideas, we feedback by adding our comments and questions. To get the feature approved for the next step we need to make sure that is technically achievable and the creative director approved it. Then after, a kick-off meeting happens — the designer explains to all the leads the final design and each of the developers breakdown the amount of work needed to make it happen. If the feature is approved, we all start working on it. The feature team meets regularly, usually once a week, to discuss the project progress and communicate what is needed to finalize it.
Can you tell us about the process of working on Kingdom Come: Deliverance from your perspective? What part of the work you did on the game are you the most proud of?
The UI in Kingdom Come had been created before I joined the company, at least the basic layouts and principles. The reason why it was so basic is because the company needed to present the game vertical slice to potential investors and later publish the project on Kickstarter for backers and the UI of course was a part of the demo. My job was to elevate and polish the prototype into a full-fledged version. I had to rewrite the action script of the main menu, optimize the HUD, and enhance the functionality of the inventory system and map. The map is something I am especially proud of. Of course players like it because it’s beautifully painted by our artists but I dare to say that we did a great job with the cloud parallax feature same with the animation when the ‘fast travel’ mode is activated.
Do you want to highlight something from the project? Any anecdotes/problems to solve/story behind it?
When we were finalizing the project, I was working on the final credits. I wanted them to have a perfect flow while rolling. Players most likely would not notice but I wanted it to be perfect but for the longest time I wasn’t able to achieve what I wanted. So, with one of the optimizations I rendered a first block of movie clips and added the rest of them as I went. I made a mistake in indexing the transition from the first block to the dynamic ones. As a result one of the records got skipped. It was the name of one of my programmer colleagues who noticed that and pointed it out. Otherwise, the bug would stay there forever. Luckily he didn’t take my mistake seriously.
Where do you get your motivation and inspiration from?
You don’t want to reinvent a wheel. What works is to have an awareness of how they solved UI elsewhere. I am not much of a gamer so I often use secondary resources. In the past I watched YouTube videos, but lately I got inspiration from the recent trends like game UI databases such as this website InterfaceInGame.com.
What do you do when you get stuck? Are there any hobbies that help spark creativity?
For the past two years, also because of the home office due to COVID-19, I’ve been playing with LEGO which is my favorite childhood toy. It’s nice to get hold of more expensive sets throughout the year and not have to wait for my birthday or Christmas. I also bought train models. LEGO is now integrated with Bluetooth and there’s a library in JavaScript you can use to program it. So, yeah, essentially in my free time when I am not programming game I am programming LEGO for fun.
How would you characterize Czech video game industry? What do you think is unique about it? Why should people be interested in what is brewing in the Czech Republic?
Czech studios are, compared to the big “factories” abroad, smaller. Our company consists of 180 people and it’s one of the biggest in the country. But we have two superpowers that distinguish us from others – we know how to improvise and our sense of humor is great! I think these aspects have helped us sell millions of copies around the world without the need of having a huge corporation backing us up.
Do you have any advice for people who want to become UI programmers?
I would say that it all depends on their background. The domain knowledge is important, but there is more than just knowledge and programming skills. In other words, it’s easier for a programmer to figure out the game scene and UI than for a hardcore gamer to learn programming. It’s also good to know what your role entails. If the budget allows for it, the ideal is to split UI designing and programming between two people. Then the designer can be the creative one coming up with ideas that will enhance the gameplay. Programmers are more systematic people who establish order and make sure that the designed UI elements work well in synergy with the other elements.
What’s your point of view on the future of gaming?
I’m not a hardcore player, after all I play games occasionally only. Thanks to the modern and faster internet connection and spread connectivity we might get rid of physical consoles one day but I am not expecting a huge revolution in gaming any time soon. VR and other gadgets will stay on the margins. The games themselves will have more advanced graphics based on the new hardware. Personally, I am curious if there will be a moment when developers will start using neural networks. But after all the quality of the future games will stay in the hands of the writers and the game designers.
What’s next for Michal Jarolimek?
I am definitely continuing my journey at Warhorse Studios but unfortunately, I cannot say much about what I am currently working on as right now is too early to disclose any details.