Ever wanted to get a glimpse of the workings of the mind of a indie game developer? Here you get the chance. This is an interview I made with the multi talented, driven and all-round nice guy Benny Samuelsson.
Tell us a bit about yourself - who are you?
My name is Benny Samuelsson and I'm from Linköping, Sweden.
I am mainly a programmer currently working at Usify - a contracting company specialized in improving and creating user friendly services and user interfaces using service design and user centered methods.
I also just started a solo company called Solid Core that creates indie games. At Usify I'm mainly a Web programmer, at Solid Core I have many hats. Not literally, I don't own any hats in fact, but I do a lot of different things from managing the company, designing, marketing and programming the games. For Solid Core I'm currently working on www.roadclubgame.com which is already greenlit on Steam and will be released as a Early Access title this year.
What are your passions, outside programming?
I love gaming, music, tv shows and sports. I like to follow the gaming industry, E3 (any big gaming conferences actually) is a fun time of the year where so many new revelations from developers all over the world are made public that have been worked on for years behind the scenes.
Gamingwise I play many different genres from small indie platformers, 3D puzzle games to giant FPS's, RPG's, racing games and action/adventure games. A few quick favourites from the top of my head are Braid, Dragon Age, Baldur's Gate, F-zero, Most Zelda games, Death Rally, Life is Strange, The Wolf Among Us, The Witness, Portal, Mirror's Edge, Rocket League, DOOM and Dirt Rally.
From time to time I make my own electronic music using Cubase and software synths and a midi keyboard. Check out my soundcloud if you like: https://soundcloud.com/bennisines
My favourite pastime at the moment is Rocket League. It just captures almost everything I love into one: Skill, tactics, sports, competition, cars and team play.
What type of programs do you mostly write? At work and outside work.
At work I'm mostly writing frontend code, i.e. mostly focusing on design and development of user interfaces for web applications.
At home I'm mostly writing games, although recently I wrote a Twitch bot Mr Kyle Bosman wanted for the EasyAllies Twitch channel (twitch.tv//easyallies). It stores bets on the high score of the tetris streams they do every weekend. That was a fun (and short for once) side project.
Which programming languages do you use?
I've previously written lots of PHP in various server applications. I started with GFA Basic on the Atari around '90 and then had some fun with Basic and Visual Basic on PC before jumping straight to C++ and trying out some DirectX programming around the late '90s early 2000's.
What made you interested of programming?
As with most things for me, it started with games :)
When I was around 5 years old my brother let me play games on his Atari 2600E. A year later (I really have no idea of exact times here, it was almost 30 years ago!) my brother got the STOS game programming program for the Atari and I realized it was possible that anyone could to make games! Sadly, we never got the STOS program to work which frustrated me to no end. I wanted to make games now!
A bit later we realized you could code things using GFA Basic on the Atari. That's when we first managed to build anything. With a few commands you could make lines, rounded squares, and text appear on the screen however you wanted! It was magical.
What kind of stuff did you program once you got started?
I made a small text adventure there using the examples and docs as best I could and then a hockey match simulator (really just randomizing results between teams I listed on screen). After a while I reached my limits with GFA Basic and forgot about programming for a while.
In 7th grade I found a few new friends into programming and we made some top-down game experiments using Basic and Visual Basic on his PC. We never finished anything but we made a cool custom Zelda-like dungeon level with traps and enemies in visual basic and parts of a Oil Imperium clone which were pretty cool.
Pretty soon thereafter I wanted to make my own things and found books on DirectX and C++ somewhere around high school and made a multi-ball pong game for a programming exam.
Then I tried to make an RPG together with a friend which was way above our skill level but I made a cool 4-player pong game called Shuffleboard with spinnable pads and obstacles to play with my brothers.
I found yet another good friend interested in games and programming in college and we made some shmup tests and racing game experiments and this is where top-down view racing game Roadclub was born. Somewhere around 2004 I think. We barely worked on anything else until 2008 when we released it on PC. During that time we graduated college and got full-time jobs as software engineers.
I made a lot of other top-down experiments over the years and fiddled with Unity (Spherace, Rogue Like Me) in 2012, mobile games (Pyramid Jumble, Sunrise Madness (Unfinished), Thousand Layers (Unfinished)) in 2013-2014. I was finally greenlit on steam for a remaster of Roadclub in 2015 which is now nearing completion in 2016.
Do you have any advice for a person who want to work as a software developer?
Be curious. Start somewhere and just experiment.
Be inspired by others work but don't get discouraged when they make better stuff than you. They probably have years more experience already! Don't take bigger steps than you can handle along the way, if it gets too difficult its easy to put it down and forget about it.
The most important thing is to just do something and never stop creating what you want. Every new experience is a learning experience. Even better, find friends and do things together. You'll learn from each other and motivate each other. Join coding communities and show off your work and progress.
Any pet peeves? For indentation, code structure, programming styles, programming languages, etc?
There are several things I want from my code. And if it doesn't look that way I need to fix it. 😊
Correct indentation goes without saying. The code must be as clear as it can be. I save so much time making it easier to read for myself. I need good names on classes, variables and functions. I don't want too large functions or I easily get lost in details. Function names are great descriptors. I also want modular, functional code. This is something I've really tried to improve lately. Minimizing magical state, i.e. globals, member variables, non-static classes. I still use them for convenience for huge things that are application global for a reason. The alternatives are much messier I think.
A balanced approach using all tools you know is usually the most pragmatic and efficient way to go. Don't get hung up on ideology or "best practices" that clearly makes it worse for you to code.
Do what feels good and makes you productive until you realize you need more structure and modularity to prevent unstable code.
What kind of personality traits do you think is valuable for a programmer?
I think you need to have clear visions of what you want to create, you need to be able to break these down into minimal, clear, simple tasks and you need to be curious and want to learn and get better all the time.
Also, today most companies work in teams so, I'm not saying you need to be extremely social, but you need to be able to work with and learn from other people with an open mind and be able find the best solutions together with others. Don't hold your ground based just on principles. Learn to argue for the best solutions and compromise for the benefit of the product you are making.
It's also very good to know how to work with scope, deadlines and projects. You can always make something better, faster... Learn to find what a good level is based on the constraints and competence your team has and you'll always deliver on time.
Do you have any good advice, rule of thumb, adage, important principle, word of wisdom or simply an experience of yours to share with us?
Creating software or anything really is one of the most fulfilling things you can do in life. Find your passion and go for it! I love games and want to make games. Maybe you have a different vision, but get to it! It's hard work most of the time but few things compare to seeing your own or your teams' work in action!
Where can people find more of you?
Check out my vision and latest game I'm working on @roadclubgame on Twitter and roadclubgame.com. I'm @bennysce on Twitter if you want to see what I'm doing or just say hi or discuss games/game development/coding!
I would like to thank Mr. Samuelsson for taking time from his obviously busy schedule to do this interview.