Valve’s upcoming release of Steam for Linux is the best news student and game developer Damien Levac has heard since he started using Linux three years ago. Not only will it raise the profile of Linux as a gaming platform to rival Windows and OS X, he says, it also reinforces his belief that Linux is the best programming environment for games.
“If Steam coming to Linux shows Linux to be superior for gaming, it might kill Windows and Mac OSX in the long run, because gaming is a very important market for desktop,” Levac, a computer science student at McGill University in Montreal, Quebec, Canada, said via email. “In any case, if we get better support from third-party drivers, it will be a big plus for everyone in the community.”
In addition to pursuing his degree, Levac is building an adventure puzzle game using Vim, Make, GDB, Clang++, Bullet and Git, among other software tools. The goal is to create an immersive game that allows players to explore the fictional world and uncover a story along the way. It’s a big goal for a beginner, he said, but undertaking such a large project is the best way to learn more about programming and gain experience.
“A video game is a very "complete" piece of software from which we can learn a lot,” he said. “I love working on projects. They make us explore things and innovate by bringing concrete problems we need to solve. It is very stimulating.”
He’s partial to the “visual simplicity” of Vim compared with a “less intuitive” IDE (Integrated Development Environment) for game development. He’s set up a workflow that allows him to work from home or from school via a virtual terminal using SSH (Secure Shell). And he likes how easy it is to access the libraries he’s using (Portage in this case), simply by typing one line into a terminal.
Three Tips for New Game Developers
Levac's already learned a lot from the experience and has some tips to share with other would-be game developers who are starting with only a working knowledge of C++.
1. “SDL is a must,” he said. “Especially when Wayland might become the new ‘standard.’ I wouldn't want to program X-specific code.”
2. He also recommends joining the ##C++ IRC channel on Freenode as a place to learn and ask about C++. Just watching C++ programmers “argue on controversial topics” is interesting and educational, he said.
3. And don’t forget to read up on the topic. His favorite titles include “Game Engine Architecture” by Jason Gregory, “API design for C++” by Martin Reddy, “The art of debugging with GDB, DDD and Eclipse” by Norman Matloff and Peter Jay Salzman and “Pro Git” by Scott Chacon.
Levac recently joined The Linux Foundation as an individual member. Welcome!