Last month, the second annual 7 Day FPS Challenge brought developers of all skill levels and backgrounds together to try their hands at making first person games within a week.
This year, I not only had the pleasure of participating again, but I also spent some time talking to other Linux using participants and wrote the article below, which was first published in August 2013 on GamingOnLinux.com as part one of a two part look at 7DFPS (part two listed all of the Linux compatible titles at the time of publishing and can be viewed here).
Last week, hundreds of game developers of all skill levels, from professional published developers through to people who've always dreamed of trying their hand at game development, dedicated 7 days to make first person games.
In this first part of our two part recap, we're going to take a look at why 7DFPS is important and hear from some Linux game developers. In part two, we've put together a list of all the titles currently supporting Linux to give you a head start on sifting through the list of entries.
Originally created as an opportunity to promote innovation in first person games in 2012, 7DFPS throws down the gauntlet and dares developers to challenge their own expectations and capabilities with nothing (no rules, no judging, no prizes) on the line but their own limitations.
The 7DFPS Keynote featuring prominent game developers offering their thoughts as inspiration.
Don't worry about missing part 1 of the keynote. It's a cut down version of this.
The vast majority games are (unsurprisingly) Unity titles. The Unity crew donated a unlimited seat Unity Pro trial key (other licence deals were offered, only Unity provided some level of Linux support so far as I could see), which many took advantage of, and Unity's Community Evangelist Joe Robins hung out in the #7DFPS IRC channel. Whilst on one hand, this has meant less tech diversity amongst 7DFPS games than last year, it's also enabled many more developers to deploy Linux versions.
Brendon Chung of Blendo Games (Atom Zombie Smasher, Air Forte) also put together a stripped down version of the open source idTech 4 engine for people to take advantage of (Brendon made two games for 7DFPS, and though there are only Windows builds available, the source for Guru and Photog are available if anybody wants to try building them).↑return to top↑
"Sure these hurriedly made and for the most part underpolished games are nice, but why is this of interest to Linux gamers?"
There are two reasons I've put this together. The first is to highlight and inspire people who're making or considering making games on Linux - the communities that have made F/OSS strong are all geared towards empowering people to be creators ahead of consumers, and that's something we shouldn't lose sight of as more software from other platforms is being published on Linux.
A snapshot of the 7DFPS titles marked as finished which offered Linux builds at the time of writing.
Just as importantly, it's worth putting what we have here into perspective. The majority of the titles that support Linux were developed by people on other platforms. That participants have taken time out of their crazy short schedules to provide Linux support for what aren't generally considered "serious projects" (even if it's via Unity) says something.
If it's to be a positive one, the future of Linux gaming won't be in ports of legacy titles from other platforms, it's in those who believe that Linux is a viable enough platform to warrant equal footing, and those people are worth recognising and celebrating! :D↑return to top↑
In addition to looking through the games themselves, I thought I'd take some time to talk to some of the Linux using developers responsible for them.
JamesNZ worked as an artist on the gravity defying Flipflop alongside Windows developer Darkfrost.
LunaVorax is an aspiring game developer who worked on the as yet unfinished Tetrahedron.
hjaarnio provided character models and animations for Transparencies, partnering up with Windows developer Teh_Bucket.
Additionally, I'm going to be answering these questions myself. I happened to have the pleasure of working on two games this year, a first person puzzle game created with Blender's built in game engine called Dance which I worked on by myself (with some prototype positioning code provided by my Dad), and an asymmetric multiplayer survival game using the Source SDK called Haunt by members of the SteamLUG community.
What attracted you to 7DFPS?
JamesNZ: I had just finished doing a lot of modeling for a short film, and I was looking for some volunteer work. I mentioned it in an IRC channel and someone referred me to 7DFPS. And it went from there :)
tm512: My artist and I had been experiencing some burn-out with our existing game project. When I discovered 7dfps, I suggested that we do it as a short and challenging break. We are both fans of the original Doom engine games, so doing a raycaster FPS seemed rather appealing, and not too out of scope.
LunaVorax: It's not the first time that I came accross a game jam. It's been a few years I looked at the Ludum Dare for a few years now (approximately 4, time flies).
Making my own video game is something that I wanted to do since I was a child. Making an FPS offers a very wide range of possibilities; from the funniest run and shoot (Doom, Quake, Duke Nukem 3D) to the narrative non-shooter (Gravity Bone, Mistake of Pythagoras, Dear Esther).
hjaarnio: This was the first game jam I've been part of, and trying out this form of development was what got me interested to join.
Cheese: I find the freeform nature of 7DFPS and its lack of rules really enticing. It's true that limitations can make people be creative in unexpected ways, but the 7 day timeframe gives that, and I enjoy and appreciate not only being able to choose my own direction, but finding out what paths others have chosen to go down.
Have you worked on any games previously? If so, what are they, if not, what's inspired you to try?
tm512: I've had some experience with game development going back to 2008, when I used Flash. Nothing noteworthy came from that, but I started learning the C language in late 2010.
In late 2011, I started working on what was intended to be a metroidvania style platformer, along with the artist that I work with to this day, but that project dissolved after only a couple weeks. We didn't start any new project until summer of 2012, which was an action RPG code-named Nemesis.
Nemesis was put on hold in October, to make way for Dawning, which was an experimental platformer made in a self-imposed 3 week time limit. Afterwards Nemesis was indefinitely shelved due to the oversized scope, and so that we could expand upon Dawning. Dawning was released on Desura in early March of 2013.
Since then, we've begun work on a puzzle game, which is what we put on hold so that we could work on our 7dfps game.
LunaVorax: Not really, I helped a few projects for school but nothing extraordinary. What inspired me mostly was that I knew that one of my favorite game, Mistake of Pythagoras, did not involved a lot of programming.
The Darkplaces engine was perfectly suited for a project that would only involve map/textures/models making and a few scripting.
For a 7 day project, my skills were not enough to dive into programming my own engine from scratch.
hjaarnio: For this jam I worked solely on the 3d graphics of the game, an area which I'm pretty familiar with. I have done some small demo games before, not anything that was finished enough to be published.
Cheese: The first "serious" game I worked on was a Half-Life 1 deathmatch TC with silly weapons called G.S.T. (at some stage when I have time, I'd like to bring this to Linux). For 7DFPS last year I partnered up with a couple of others to make FLAT, a first person sci-fi ice skating combat game. I also contribute to the open source game Neverball, and I've worked on a several unreleased games.
What was your favourite part of working on your 7DFPS game? What did you learn, and what were the biggest hurdles you faced?
JamesNZ: Definitely the collaboration, I love working with other people. The biggest hurdle would be the limited time frame. I think the biggest thing I learned was to make sure I have a fast workflow.
tm512: One of the things that I enjoyed was getting a chance to work entirely in the C language again, since I've been working a lot in Lua since Dawning started. I also enjoyed the pace, as I saw myself building a game engine in mere days, with a renderer that was much more complex than anything that I've ever done before.
The hardest thing was running into the inevitable bugs, and difficulties with correctly implementing a feature, which sucked away time, energy, and enjoyment from the project. Spending hours upon hours hunting after some single bug, or trying to implement a single feature, was rather horrible, and the time limit made it even worse.
LunaVorax: The first days where the best, mostly because I was doing a lot of things right and on time. You can boil down my learning to using the basics of NetRadiant, a mapper for the Quake and other id Tech engines. It was very interesting because it's very quick to build a map and play around with it. You get a direct result.
On the other hand, I mostly faced motivation and organisation trouble. When I was facing a problem, I was just spending way too much time trying to fix it rather than switching another one. And in addition to that, the NetRadiant documentation is really poor.
hjaarnio: There wasn't many parts to what I worked on the game, but I enjoy modelling more that animating. Not having access to Unity, which the game actually was made in was the biggest hurdle. Our team relied on my team mate to actually get the game done, so I was a bit out of the loop.
What advice would you have for anybody wanting to develop a game using Linux?
JamesNZ: Prepare, prepare, prepare! Stuff like concept art is absolutely vital because it gives your artists something to work towards. And before concept art make sure you've got a good story. Too many people rush headfirst into a project without sitting down and fleshing out exactly what they want it to be. Though of course in a 7 day game jam you probably won't have the time to do that :P
tm512: This is something that I really don't have much of an answer for. After moving on from Flash, all I've used for development is Linux. I wouldn't know what advice to give because I don't have experience with Windows/Mac development to compare with. All I can really say, is that being on Linux has not been a problem for me with developing video games. The tools and libraries that I need do exist.
LunaVorax: First of all, if it's you're first time, stick Ubuntu or an Ubuntu-based distribution. You'll be sure you're game works on most GNU/Linux distributions that way.
Second of all, use ONLY free and open source libraries! Forget about FMOD, DirectX and so on. Use free and open-source alternative like OpenAL and OpenGL that are as (if not more) powerful as their proprietary counter-parts.
And finally, don't reinvent the wheel. There's plenty of free and open source tools that can do what you are looking for : Lua and Squirrel for scripting, Ogg Vorbis and Opus for sound, this conference by Ryan Icculus Gordon about the tools you can and should use for game development under GNU/Linux.
hjaarnio: While lacking support for some game engines, like the afore mentioned Unity, Linux is still a solid platform with tons of capable application. Try out the different open source projects for making art, like Blender for 3d, and GIMP, Krita or MyPaint for 2d art.
Cheese: Be aware of your workflows before you start. Spend some time getting familiar with your tools beforehand and know what their limitations are. Surprises along the way can cost you valuable time (eg: Haunt suffered due to some of the Windows only map and model compilation tools not working well in Wine - something we've been working to remedy, but it still pushed us out of our 7 day goal).
Try to design your game and its systems with a modular approach early on so that you can put in your bare minimum assets, features, etc. whilst still planning ahead for extra stuff if you have time left over to add more in (eg: the suit wearing characters in Dance came at the last second. Because I randomly selected assets by a particular naming convention, they automatically appeard in the game when I gave the model a name that fit my character pattern).↑return to top↑
Thanks for reading!
Please do take the time to check out some of the games listed on the 7DFPS website. If you're looking for somewhere to start, I put together a list of Linux supporting titles to accompany this article when I first wrote it.
 The title counts were sourced on the 19th of August and are likely to be out of date as many developers have chosen to continue working on their titles.
 I'm hoping that will serve as a distraction from my more subtle intentions and stop people from asking me to interview myself :D
This article was first published on the 24th of August on GamingOnLinux.comas the first part of a two part look at 7DFPS from a Linux perspective.