We caught up with SAE London Games Programming Degree student Kamil Kuzma to learn more about his keen interest in AI, and how he’s implemented that into the games he has been making as part of the game development course.
What made you want to study games programming at SAE?
The fact that this course was an accelerated 2 year games programming degree in was the main point for me. For most of my life I had no idea what I wanted to do in the future until I was suddenly introduced to game programming. I loved it from the very beginning, even if it was just using Python to create ticket booking systems. So, not wanting to waste any more time, I just wanted to get stuck in and learn more about programming games. Hence, taking the quick route of the accelerated games design degree felt like the best choice. And I was right. SAE is heavily practice-based so I had a lot of fun throughout and I continue to do so. Even learning the maths, which I would always find boring, was suddenly exciting since we were always making some kind of game at the same time.
Why did you choose to study at SAE London?
I live in London so it seemed like the smart choice. I would never have any trouble with getting to campus.
What have you enjoyed so far about the course?
Just making games so often. I like that the course really just gets into the practice from the very beginning. Since I had a little bit of game programming experience before starting the course, I haven’t really had any problems with the speed of things. Quite the opposite, I enjoyed the challenge. I tend to be a little over-ambitious with my work so I’m also glad I was always supported by my lecturers throughout the course. So support is another big thing. Whenever I needed that little bit of extra support outside of lesson time, my lecturers would always have time for some extra sessions with me.
You’ve produced a game that demonstrates the application of AI – can you tell us a bit about this project and what was involved?
This game was actually a result of a series of experiments I have been doing for my advanced specialised project. I started off trying to build an intelligent AI using Machine Learning with the methods of reinforcement or imitation learning. Basically getting the computer to learn by itself. Learn what it is supposed to do. It would randomize some actions and if it managed to do something well, for example grabbing a collectable, I would reward it with some numbers. Computers do love their numbers. The higher the number, the better it would learn.
However, that didn’t go to plan. Machine Learning turned out to be a little more complicated & time-consuming than I thought. But I didn’t give up. With my deadlines coming up, I looked into different methods of AI and discovered finite state machines (FSM). Being more comfortable with FSMs, I was able to create a very nice AI agent from the most basic challenges to the final result. First I got the AI to collect some spheres. Then press a button to spawn the sphere before collecting it. Next I started adding some obstacles the AI had to jump over, crouch under or just avoid. And finally, the time came to bring everything together so I thought the best way to go was to create a nice little game of tag. Human vs AI. I’m happy I was able to persevere and make something so cool despite the challenges.
Have you always been interested in AI?
Definitely. Some people fear computers getting intelligent but I’m all for it. It’s so exciting sometimes. And with AI coming to something I love even more — games of course — well it was hard to not be interested. I almost wish that there was an entire, separate module about AI but, I also found it satisfying to take on the challenge of learning AI myself.
What else have you been doing in class recently?
I’ve just been enjoying myself, making as many games as possible. I managed to re-create one of my favourite classic games: Minesweeper. On top of that, I managed to make a 3D version of the game. I call it Minesweeper: Dimensions. It’s just a huge cube you rotate and there’s a separate minesweeper board on each side.
I also created a space shoot ‘em up called Space Mayhem. It’s an infinite game that just gets harder and harder the longer you survive. You fly a spaceship, shooting lasers & black holes at the enemies and asteroids. When you die, you get a score. So, it’s nice to play with friends. See who gets the high score!
I made a dedicated level editor too. It’s tile-based so you simply select what kind of tile you like and colour the grid with it. I had fun giving it a little bit of a retro look with classic save symbols for the settings. I even added a playlist of songs that play in the background so you don’t get too bored. You can skip to the next song or just mute it altogether. Everyone gets a choice.
On top of this, I also created a network racer that makes use of the level editor. Unfortunately, time got in my way so I wasn’t able to make it what I wanted it to be. But, I managed to get cars racing around a single track I created only using my own level editor. So, cool.
Finally, my most complex adventure: my graphics/shaders demo. It’s a pretty cool scene editor. You’re able to choose from a range of different models. Move them around. Rotate and scale. Modify everything’s materials/textures. Even add lighting. I was even able to add Windows handling so you can save and load your scenes in using binary files. I’ll be honest — there were a couple of sleepless nights with this one. But, I don’t regret it. Very proud of what I managed to make there.
How have you found studying during COVID-19 – have you encountered any challenges, and how have you overcome these?
Since games programming is such a practical subject, there haven’t been too many challenges. We mostly work on computers anyway, using free software like Unity so it wasn’t too bad. I guess the worst thing is just getting less face-to-face contact with the lecturers. Getting through everyone’s work and getting feedback has been a challenge to do so online. With everyone sharing their screens one at a time, it was very time-consuming. But, like I said before, lecturers were very open to extra sessions to help us whenever we needed it, so that issue really solved itself.
What are your long term career ambitions within the games industry?
My all-time dream would be to work for Naughty Dog. Crash Bandicoot might have been the very first game I played. There hasn’t been a better platformer since. Then came Uncharted, one of my best experiences of adventure in games. I’m an avid completionist when playing games, so I had a lot of fun looking for all the small treasures hidden around. Finally, The Last of Us. Don’t need to say much here. Just look at any review of the game, they’re all fantastic. One of the best games I played. So, getting to work for them would just be the best thing ever. But, if we’re talking a little more realistically, I would just like to be a game developer. Any studio. Any salary. It’s just so fun. If I manage to make a living just from creating games or helping create games, I’ll be happy with anything I get.
Where can people keep up-to-date with your work?
I have a website where I’ve been posting all of my work so far and will continue to do so: www.kamilkuzma.co.uk.
I’m also on LinkedIn but, I haven’t been too active yet. After I finish the course and I start creating my own games, I’ll start posting lots of stuff. I’m also a big fan of Reddit. I’ll definitely start posting on the likes of r/gamedev soon enough. My username is u/KJK_01.
You can also check out our Games Design and Development Course here.