The Open-Source Game Development Pipeline

Providing the means and education to create games using free/libre open-source tools.

1 Comment

The Command Line: Don’t Be Afraid!

So… you’ve managed to get a flavor of Linux installed and now you’re thinking: “It works! Awesome!”, or, “%$#@!”

In either case, you’re going to have to dabble in command-line magic in order to troubleshoot, or get the most out of your Linux experience.

For those of us who “fondly” remember the MS-DOS days, that’s basically all there was to it; a simple command-line interface. While most distributions of Linux come with a nice-looking desktop out-of-the-box, you’ll probably spend a good portion of your time using the terminal (UNIX command line).

The good thing is that, even though it may seem a little scary at first, the terminal will help give you full, unrestricted access to your computer’s file system. This also happens to be the whole point of using Linux: Freedom! I’m at the point now where I’m always using my terminal. Don’t get me wrong, though, it didn’t start out that way… I hated it!

And now… it’s your turn. <evil grin>

So, without further ado, let’s get started!

First and foremost, the command line is your friend. Don’t be afraid of it! The command line gives you intimate access to your Linux system, and there’s no better way to develop a bond with your machine than using it. Some basic commands are below:

“cd <directory_name>” – Navigate the terminal into the following directory

“cd ..” – Navigate the terminal back one directory

“cd” – Returns the terminal back to the “home” directory

“mkdir <directory_name>” – Creates a new directory with the following name

“rm <file_name>” – Removes a file with the following name

“rm -R <directory_name>” – Removes a directory with the following name and all of the files contained within it

“mv <file_or_directory_name> <new_name_or_destination>” – Renames or moves a file/directory

“cp <file_to_be_copied> <new_file_name>” – Copies a file and places its duplicate within the same directory, unless explicitly declared otherwise

“cp -R <directory_to_be_copied> <new_directory_name>” – Copies a directory and places its duplicate within the scope of the same directory, unless explicitly declared otherwise

“ls” – Shows the contents of the current directory

A simple web search will yield more comprehensive references for basic UNIX Commands, like this one.

When I first installed Debian on my computer, I had to manually download and install the Wireless driver because of how new it was. A little command-line magic allowed me to place the driver module in the right spot and get everything working.

Speaking of that… it’s VERY important to make sure you have the latest version of the Linux Kernel. For those of you with older machines, you may not have to worry, but those of you who just walked out of the store with a new computer are going to want to have full-operating-system-compliance with your machine. Most distributions upgrade the kernel differently because some of them use a unique packaging system: “.deb” for Debian systems, “.rpm” for Red-Hat-based systems, and the list goes on.

Since I recommended that you use Debian in my last article, here’s a link for upgrading the kernel.

Another thing to note: more often than not, if you’re making modifications to your file system, you’re going to want to prefix your commands with “sudo” in order to perform that command as a “super-user”. This gives you root access to make system modifications at will, or within the context of that command. For example:

“sudo rm -R <directory_name>” – Would give me the permission I need to remove this protected directory from my file system

Keep in mind that whenever you “sudo” anything, the terminal will prompt you for your user password.

I understand that this is a lot to take in if you’re new to this method of interacting with your computer, so take your time. 🙂

Got it? Good! If not, then let me know.

That’s it for now! In my next post, I’ll talk about the Debian Packaging System and how to install files directly from the Debian repositories. I’ll also cover how to use CMake to build source and install it locally (as an alternative). Finally, I’ll show you applications you can use to get started on making assets for your game.


Leave a comment

Why Linux?

Why not?

It’s the manual-transmission of operating systems. Most distributions include a full suite of free software to be creative/productive at no cost, a community willing to share their knowledge to help you get started, and did I mention it was free?

Free = Free to use and modify at your discretion

Free = Zero dollars ($0.00 USD)

Linux means freedom in both cost and spirit, which makes it a much needed entity given the current state of the hardware/software industry, which (more often than not) acts like a cartel.

Eventually, I would like to see open hardware become as equally prominent as Linux has for software, and you can take a look at OpenCores to see what I’m talking about. If you have money to spare, please donate to their OpenRISC project. anything that helps subsidize the cost of computers (and thereby making them more accessible to everybody) is a good thing in my book.

Back to Linux.

I currently use Debian as my base-of-operations, so to speak. If you’re interested in getting your feet wet, this is the distribution I’d recommend checking out. Ubuntu, and the upcoming SteamOS (for the SteamBox) are based upon it.

You can download Debian “Jessie” (which is their testing environment, but contains the latest version of its supported software packages) here. Make sure to download the correct disk image for your computer’s architecture. If you’re using an x86_64 processor, then you’ll want the “amd64” version.

After downloading, you’ll probably want to switch to a different window manager besides GNOME. I am currently using “XFCE” on top of “LightDM” “KDE” on top of “KDM”. I would recommend performing a search for those terms and understanding the difference between them before making the switch. If you’re happy with the way GNOME looks, then you’re good to go.

That’s it for now! Try to get a Debian setup running if you can. If not, don’t hesitate to reach out so I can help you.


Leave a comment



Welcome to the “Open-Source Game Development Pipeline” blog! I’ve chosen WordPress to host this because of the fact that it is an open-source platform.

The goal of this blog is to educate the masses about the existence and benefits of open-source technology. My hope is that through reading the material I’ve posted here, you’ll begin to grasp a greater understanding of computers and software, and become a proactive member of the community.

Most of the articles here will cover development using a Linux based operating system. If you’re unfamiliar (or uncomfortable) with that environment, I would recommend searching for “VirtualBox” and running a flavor of Linux through it. That way, you can take baby-steps into the world of open-source development.

Using Linux isn’t a requirement to become an open-source developer, as the term technically means that you provide the end-user with the ability to edit the source of your application after/while developing it. Because of that, you can use any operating system you desire to create open-source software. I would prefer, however, that you give Linux a fair shot. I can attest from personal experience that you will walk away with a much better appreciation and understanding of the computing world if you go this route.

That being said… welcome! I plan on writing articles about open-source game development on a regular basis. I will cover topics ranging from programming, audio production, graphics and animation, to any other essentials needed to get a fully-produced game up and running. The goal is to provide you with a free environment and education with which to create games and express yourself without restraint.