If you believe this content violates Code of conduct please provide details below. All reports are strictly confidential.
Last summer, we hosted Fabian Kober as part of a student team presenting a CRYENGINE VR project. Today, Fabian is on our team! Discover his journey.
Back when social distancing wasn’t a thing in 2019, Fabian Kober was part of a student team from Darmstadt University of Applied Sciences presenting their VR game In The Beginning Was The Word. The game was created in just five weeks, and you can read about their experience at Crytek’s HQ in our blog. We’re proud to say that Fabian has since joined our games team as a Junior Gameplay Programmer. Today, we’re chatting to him to find out about his journey from student to pro game developer, his experiences at Crytek so far, and to learn his advice for those who wish to follow in his footsteps.
The first games I played were Mario Kart 64, Diddy Kong Racing, and Super Mario 64 on a friend’s N64 back when I was about five or six. The first console I owned was a Nintendo DS, which I got a few years later, and I was really into Pokémon Diamond. In my teens, I only really played party games like Super Smash Bros Brawl, but I got back into gaming properly when a friend introduced me to Pokémon X and Y.
I always thought I would study Chemistry or Biology. However, I had an interest in technology, programming, and 3D animation. To be honest, I attended a job and studies fair, and that was the first time I realized that making digital content like games could be a career.
The Animation & Game course at the University of Applied Sciences Darmstadt seemed to be the perfect synergy between tech and creativity. I only had a year of bare-bones Blender experience and a very basic understanding of Java, but I took a chance, and I was accepted onto the course. I could start learning how to make games! Initially, I wanted to become a tech artist and animator, but I discovered how much I enjoyed programming, so I concentrated on that and became a programmer.
Our studies were very hands-on, and each semester we had a project that would run in small groups of three to five people. Each of these projects was a small game or animation of some sort. Each team member had a main role, but because the teams were so small, everyone had to do many other tasks. As I enjoyed the creative parts of game development, I usually did things like VFX, lighting, and custom shaders for our projects in addition to programming.
In the Beginning Was The Word was the first significant VR project I worked on, and I had limited C++ experience at the time. I convinced my team to go with CRYENGINE instead of Unity or Unreal, which we were used too. Some of our professors tried to push us to Unity, rather than use an engine that none of us had ever used before. But we all learned a lot working with CRYENGINE, especially by using the CRYENGINE Discord server. I improved my C++, and in the end, we all were very excited about what our game had become.
It was an awesome experience to gain the attention of Crytek. For example, Gabriel, CRYENGINE Brand Manager, checked out a version of our game when he was at the campus during an event, and of course, we got to take the project to Crytek’s office, and we were covered on the website!
Compared to Unity, which I was experienced with, I must admit that the learning curve of CRYENGINE was steeper. I used the CRYENGINE Discord Server to communicate with Crytekkers, which really helped. On the other hand, we were really blown away by what we could achieve in the engine graphically. The vegetation, which was really important to my vision, looked awesome.
Using CRYENGINE as a student felt very different from how I use it now. Partly this is because I did not know the best way to use it, and used it in a Unity-like fashion. Partly this is because here at Crytek, we have many custom tools and systems, like the Schematyc from Hunt and the Descriptor database, that are crucial to the work I do now.
My plan towards the end of my studies was to apply for a job at Crytek, but I wanted to take a vacation once I had graduated. Unexpectedly, in the week between finishing my course and going on vacation, Valentin Klink, a Gameplay Programmer for Hunt, whom I knew from my studies, forwarded an open job position and suggested that I should apply for it. I applied before going on vacation, and when I came back, I had the coding test, some Interviews, and before I knew it, I was here!
Working in a relatively small team, I do a bit of everything! I recently worked on some in-game development tools, but I have also designed and implemented a few HUD systems and improved some existing game mechanics.
What really saved me some time on the coding side during “In the Beginning Was The Word” was the audio middleware implementation of CRYENGINE. It was effortless to trigger audio set up in Wwise. As one of our Audio Designers, Lucca Riitano, had worked on Hunt before, I could just expose audio-related data to Sandbox, which could be implemented and tweaked by him. I used to do VFX for my games as well, and the pfx2 Particle Editor was an awesome tool to work with. It was straightforward to create cool, multi-staged effects with it.
During my Crytek time so far, the most useful tools for me are Schematyc and the Descriptor Database, which we got from Hunt. These tools combine to create an awesome interface between me as a programmer and our designers, allowing me to develop data-driven systems with ease.
I haven’t experienced anything like a game release yet, but it is always immensely satisfying to see something that was my idea in the game. I can’t go into detail about the project. However, some of the mechanics I designed and implemented were quite well received by the rest of the team, which always feels pretty good!
So far, I have only worked from home due to Corona. I start by logging into my workstation and checking messages. Then I work on tasks until our daily team standup. Depending on what was said in the standup, I return to the task I worked on before or put it on hold if there are urgent bugs to fix, features to implement, or things like playtests to prepare for. In the afternoon, at least once a week, we have a team playtest where we play our game and gather feedback afterwards. If that is not the case, I have the whole afternoon to work on my tasks.
The typical traits of a good programmer, really. Patience, the drive to solve problems that can seem unsolvable at first glance, and the creativity to come up with system designs. As a gameplay programmer specifically, it is helpful to have some game design experience and have fun with game design. It is also really important to communicate with the people who will use the systems I am creating. I need to make sure that they know how to use them, but I must also make sure that the system can do precisely what they need it to do. It is always easier to design something with a specific function in mind from the beginning, rather than adding it later onto an existing system.
You can look at all the books in the world, but in my experience, the most important thing when learning to program is to actually do it. Sit down, write a simple game. Do it in Java, Javascript, C++, C#, use CRYENGINE, Unity, Unreal, Godot, or whatever you like. Then write another one. It does not have to be complicated in the beginning. Just try to recreate Snake or Asteroids. Don’t be afraid of using new tools and learning new languages. If you can program in one language, you can do it in another language as well. Sure, the syntax might be different, and you might have to design your systems a little differently, but the base skill you need is the same in all languages. It’s the same with engines. It is different, creating a game in Unity compared to CRYENGINE, but if you can do it in one, you can learn it in the other.
Most importantly, never give up! If you don’t know how to solve something, you will find someone on Stack Overflow who has solved that problem already. If your question is so advanced that you don’t see anyone with a solution for it, you know that you have become a good programmer!
At the moment, I am playing Super Mario Galaxy on the Switch and Horizon Zero Dawn on PC. Choosing just one favorite game is really difficult, but I think I’d have to say Breath of the Wild. It is an absolute
masterpiece. But Pokémon Diamond is pretty high on the list, as well as Skyrim, Hellblade: Senuas Sacrifice, Super Mario 64, Subnautica, Hollowknight…. I could go on and on!
Cheers, Fabian! As ever, we look forward to your feedback in the comments, on the forum, or via Facebook and Twitter. You can ask questions, pick up tips and tricks, and more by joining our community and the CRYENGINE development team over on our official CRYENGINE Discord channel. If you find a bug in the engine, please report it directly on GitHub, which helps us to process the issue quickly and efficiently. Don’t forget to subscribe to our YouTube channel, where we host a range of content, including tutorials covering all aspects of the engine and game design.
Are you looking for your next career move? At Crytek, we value diversity, and we actively encourage people from all kinds of backgrounds and experience levels to apply to our open positions, so join us over at LinkedIn and check out our careers page.