Welcome to our continuing series of Code Project interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Michael Hopke, who helped launch a game and a game development company while still in college.
Who are you?
I’m Michael Hopke. Currently I live in Burlington, Vermont, but i’m a native of Dunstable, Massachusetts. I am one of two programmers at Birnam Woods Games, and I’m also one of the four founders, along with Zach Bohn, Marguerite Dibble, and Matthew Brand.
So far Loc is the company’s first commercial release. However, the four of us have worked on a few large projects for classes at Champlain College. Last year we worked on a 2D platformer that involved the player controlling minions that represented the four elements. This year, in addition to Loc, we are working with about five others on our Senior Team Project, a platformer that travels in the reverse fashion (left to right) and involves you trying to save your son.
Our first commerical game, Loc, was released on April 4th.
What do you do?
Personally, I’ve worked with XNA, OpenGl, a little Flash, and a little Direct X. I was able to produce an interesting prototype of a 2D puzzle game two years ago using XNA and C#. The game was designed around the control of a cloud as you float around collecting moisture and avoid environmental hazards.
Recently for one of the classes I’m taking I’ve been developing a physics engine in C++. This has been a lot of fun, but it has a steep learning curve.
My most recent experiment was using OpenCV, an open source computer vision library, to do object recognition.
What is your development environment?
For Birnam Woods Games, Matt and I use C# with Unity. We’ve also used that for the game last year, and our Senior Team Project. I have also had a lot of experience with C++ and now I’m getting proficient in C because of the Operating System course I’m taking.
I do all of my work on my four year old HP Pavilion laptop. However it’s getting quite old, and I’m looking to upgrade to another laptop of some kind. Once Birnam Woods gets up and running I think we’ll have modules, but until then all the work we do is on whatever hardware we have.
I’ve spent the last two years working in Unity so at the moment, that is my favorite engine to develop with. C# is super easy, but I’m growing to like C++ more than I did before.
I’m really interested in using OpenCV some more, and possibly integrating it with Flickr and a few other things to make an app for playing Warhammer 40k.
What is your coding pet peeve?
I don’t really have a coding pet peeve, but unnecessary returns in code are frustrating. I don’t have a preference on naming convention either. I generally use camelCase because that is what my programming teachers taught me.
How did you get started programming?
I didn’t start programming until freshmen year of college. Originally I was going to be a physics major at every other school besides Champlain, where I applied for a game design major. After being accepted to Champlain, I changed over to game programming and… BAM! I hit the ground running. My first programming language was Alice… although that doesn’t really count, so it was C++.
The only real online developer community I interact with is the Unity 3D forums. They have amazing answers to questions and are extremely knowledgeable whenever I have a question. Their answers are usually very fast too.
The community offline – AKA fellow programmers at Champain – has helped me structure my code a lot better and have generally guided me with questions too. Its really helpful when I don’t know how to fix some error at 2 AM and I can just hop on Facebook and ask our Champlain Programmers group a question and then have someone respond within the hour.
My twitter account is MHopkey, and I just made my GitHub account last week, but our school uses git for all of the Senior Team Projects.
What advice would you offer to an up-and-coming programmer?
The biggest piece of advice I’d give up and coming programmers is to be diligent and to set deadlines. Also that there is most likely someone out there who can help, so don’t be afraid to ask questions on forums or to other classmates or fellow programmers.