Beer, booze or bytes: Make your own Homebrew!
What is Homebrew?
The term "Homebrew" is defined by Webster dictionary as "beer or other alcoholic beverage made at home." This definition which is the most commonly used would refer to the making of beer and wine at home. But beer is not the only thing that is "brewed" at home and referred to by this term. Homebrew also refers to the creation of software, typically video games that are produced for proprietary platforms or via official development kits.
Homebrew software exists for nearly every game console that has been developed. These projects are usually developed as a fun side project or a challenge. Systems such as the Atari 2600 still have an avid homebrew community, even though it was released in 1977. Skilled programmers have been able to create games that really push what is possible the system.
Homebrew is a great way to learn new skills or enhance and refine existing ones. Writing video games can be a fun exercise for picking up a new programming language. In most game development there are a number of components that go into the overall package that is delivered. And being that they are video games it helps add a little fun and entertainment to the mix. Today, with the explosion of app ecosystems video game consoles are not the only venue for your homebrew development. Development of games and apps for systems such as iOS and Android can teach useful important skills.
Making Your Own
I myself have developed a number of Homebrew games over the years. A few years back I was interested in learning more about C programming, and had recently acquired a PlayStation portable system. Being an ambitious developer I decided to write software for it. I started with a fun challenge of porting the source code from a DOS based game to the system. I successfully was able to port the code from a 3D shooter called Heretic to the system.
This was quite a fun and interesting process. Since the game had been written for completely different hardware there was quite a bit of specific handling for things like sound blaster audio. I was able to do most of the development through a partially working emulator that had been available at the time. After getting it to boot I moved on to running on actual hardware.
Through this process I learned about challenges of moving between platforms and quite a bit of reverse engineering. Having to follow the code around a system I was unfamiliar with, in order to adjust its functionality. It is a skill used very frequently in daily work. And it was a very good opportunity to examine the source code of a successful commercial game. I since went on to develop other games for the platform from scratch using those skills learned with this initial project.
Bolster Your Portfolio
Most homebrew these days is open source and freeware. It really is a great outlet for creativity and learning new skills. Which then in turn can apply to our daily jobs. So I encourage everyone to go make Homebrew!