Project of the Month, March 2009

Frets On Fire


Project Leader:

Sami Kyöstilä

Experience: Specialist, 3D graphics

Education: M.Sc. in Information Engineering

Location: Oulu, Finland

Key Developers:

Tommi Inkilä

Experience: Student of Economics, Musician

Education: Finnish Matriculation Examination

Location: Oulu, Finland

Joonas Kerttula

Experience: Game Developer

Education: Finnish Matriculation Examination

Location: Oulu, Finland

How has SourceForge.net helped your project succeed?

It was a provided a convenient way to coordinate development efforts and the fact that it provides web hosting space was a lifesaver for us.

Why did you place the project on SourceForge.net?

I was familiar with SourceForge.net through other projects that are hosted there.

How has SourceForge.net helped your project?

It was a provided a convenient way to coordinate development efforts and the fact that it provides web hosting space was a lifesaver for us.

The number one benefit of using SourceForge.net is:

The number one benefit of using SourceForge.net is: web hosting and a fast network of download mirrors around the world

Project name:Frets On Fire

Date founded/started:2006

Project page: http://sourceforge.net/projects/fretsonfire

Description of project:

Frets on Fire is a game of musical skill and fast fingers. The aim of the game is to play guitar with the keyboard as accurately as possible. The game comes with four songs and more can be made with the built-in editor.

Why and how did you get started?

We started making the game in the summer of 2006 as an entry for the Assembly party’s game development competition, which is held annually in Helsinki, Finland. The game was very well received by the audience and was awarded with first place.

Who is the software’s intended audience?

The game is made for everyone who enjoys music and rhythm based games. The game has four difficulty levels which make it easy for a beginner to pick up while still providing a challenge even for the seasoned pro. We’ve also included an interactive tutorial that makes it easy to get going.

What are a couple of notable examples of how people are using your software?

We have been nothing short of overwhelmed by how well players have adopted the game. These days you can find thousands of community-made add-on song tabulatures on the Internet, along with several high-quality game modifications that provide new graphics, instruments and other amazing features. Several people have also built their own custom guitar controllers for the game. One example I found particularily inspiring was a University project in which a special version of the game along with custom controllers was created for the blind.

What are the system requirements for your software, and what do people need to know about getting it set up and running?

The game requires a Linux, Windows or Mac OS X operating system, some 128 MB of RAM, a sound card and reasonably powerful 3D graphics accelerator. A separate keyboard is highly recommended, but you can still use a regular laptop to play the game.

What gave you an indication that your project was becoming successful?

I think the first signs were visible already at the Assembly party where the game was originally published. The event lasts for four days, and on each successive day more and more people could be seen playing Frets on Fire.

What has been your biggest surprise?

We definitely did not anticipate the enormous community that has formed around the game. The Frets on Fire fans are very creative and enthusiastic and it has been a great experience to see the community grow.

What has been your biggest challenge?

Some technical challenges were posed by the fact that we wrote the game in Python. This has made it somewhat difficult to guarantee good performance, especially on lower-end machines. The difficulty of creating stand-alone installation packages for Windows and Mac OS X has also caused some headaches. We also found out the hard way that the quality of consumer 3D graphics hardware varies greatly and using any advanced features quickly leads to compatibility problems.

Why do you think your project has been so well received?

I think one reason is that in addition to providing a solid stand-alone game, we’ve tried to make it very easy for anyone to create additional content such as new songs, graphics and other game modifications. Players can also compete against each other in our online World Charts, as well as host their own, community specific score servers. I think these factors have contributed to the game’s good reception.

What advice would you give to a project that’s just starting out?

If you’re making a game, try to make sure it provides a fun playing experience as early on as possible. All the graphics, glitzy effects and other tweaking can come later once you have that core game playing mechanic nailed down.

Where do you see your project going?

I think we’ll see Frets on Fire keep on improving by getting new features and being ported to weird and wonderful platforms.

What’s on your project wish list?

One long standing wish is that we would take the most popular modifications of the game and incorporate their features into the mainline version. It’s a big job, but it would enable many popular game enhancements in a convenient way.

What are you most proud of?

I’m proud that we were able to make something enjoyed by so many people :)

If you could change something about the project, what would it be?

In retrospect, I might consider writing the game in a more traditional language such as C or C++. Python is awesome for quick prototyping, but once you have something you have to maintain the dynamic nature of the language can work against you.

How do you coordinate the project?

For me personally, the project is nowadays in a stable maintenance mode. I do occasional bug fixes, but most of my development work is focused on other projects.

How many hours a month do you and/or your team devote to the project?

General maintenance work usually only takes a few hours every week, but when we are actively implementing new features, the number is of course higher.

What is your development environment like?

I develop on an AMD Athlon 64 X2 5000+ machine with a GeForce 7950 GT graphics card. My weapon of choice is, of course, VIM running on Linux, but I also do release testing on a MacBook and on Windows XP.

Milestones:

Milestone Description
Version 1.0.192 Joystick (guitar controller) support
Version 1.0.255 Guitar Hero ™ song importer
Version 1.0.263 Mac OS X support
Version 1.1.324 Guitar Hero II ™ support
Version 1.2.451 Introduced the new World Charts system


Releases since then have introduced some other new features such as themeable stages as well as important optimizations and bug fixes. We’ve also recently refactored the game code, dropped some unneeded dependencies and made the project more accessible for new developers. For the near term, future releases will also continue on this path.

How can others contribute?

One significant area where we can use help are translations for various languages. We would also appreciate help with making sure the Windows and Mac OS X ports are working as they should. And of course, we warmly welcome any interested developers on board. Any interested participants can contact me at sami.kyostila@unrealvoodoo.org.


Check out our previous projects of the month.