When you have a server that is publicly accessible, hackers can easily scan your IP address and check for open ports (particularly port 22 that is used for SSH) on your server. One way to hide your server from hackers is knockd. Knockd is a is a port-knock server. It listens to all traffic on an ethernet or other available interfaces, waiting for special sequences of port-hits. Clients such as telnet or Putty initiate port-hits by sending a TCP or packet to a port on the server.
In this article we will look at how we can use knockd to hide services running on a Linux server.
Install Knockd on a Linux Server
Knockd is available in most distro’s repositories. On a Debian/Ubuntu/Ubuntu-based server, you can use the apt-get command to install knockd.
sudo apt-get install knockd
For Fedora, CentOS, or REHL users, you can use the yum command:
Install and Configure Iptables
If you don’t have Iptables installed on your server, install it now.
sudo apt-get install iptables iptables-persistent
The package iptables-persistent takes over the automatic loading of saved iptables.
Next, you need to allow already established connections as well as current sessions through iptables. Use the following command to achieve this task:
iptables -A INPUT -m conntrack --ctstate ESTABLISHED, RELATED -j ACCEPT
Next, you need to block all incoming connections to port 22 SSH.
iptables -A INPUT -p tcp --dport 22 -j REJECT
Now let’s save the firewall rules via the following commands:
netfilter-persistent save netfilter-persistent reload
You can go ahead and check whether you have indeed blocked port 22 by connecting to your server via your computer.
Now it is time to configure knockd default settings. It is located at “/etc/knockd.conf.” To do so, change to the knockd configuration file using the following command:
cd /etc sudo leafpad knockd.conf
For illustration purposes, I am using the leafpad editor. On your server you can use nano or Vi.
The screenshot shows the knockd configuration file.
Options: You can find configuration options for Knockd in this field. As you can see in the screenshot above, it uses syslog for logging.
OpenSSH: This field is made up of sequence, sequence timeout, command and tcp flags.
Sequence: It shows the port sequence that can be used as a pattern by the client to initiate an action.
Sequence Timeout: It shows total time allocated to Clients to complete the required port knock sequence.
Command: This is the command that will be executed once the knocking sequence by the client matches the pattern in the sequence field.
TCP_FLAGS: This is the flag that must be set on the knocks issued by the client. If the flag was incorrect but the knock pattern bcorrect, the action will not be triggered.
Note: The iptables command in the OpenSSH section in Knockd configuration file uses the -A option to append this rule to the end of the INPUT chain. This causes all the remaining connections to drop.
To prevent it, replace it with the following below:
You’ve got a Raspberry Pi. You’ve probably entertained the idea of using it for retro gaming. But what if we told you that you don’t need to stop there—that you can play a massive selection of games, past and present, using a Raspberry Pi?
You probably don’t believe us, but it’s totally true. Save for a handful of modern console games, you can play almost any video game on a Raspberry Pi. Here’s everything you need to know about it.
6 Ways to Play Video Games on Raspberry Pi
Incredibly, you have six options for gaming on your Raspberry Pi. You’re not limited to Linux titles, or to games intended for x86 systems (like standard PCs). As long as you do it right, a massive library of games can be enjoyed on your Raspberry Pi:
Retro gaming with RetroPie, RecalBox, and Lakka
Play Raspberry Pi-exclusive games
Install classic games directly on Raspberry Pi
Play classic PC games with DOSBox
Play PC games on Raspberry Pi with Exagear and Wine
Stream modern PC games to Raspberry Pi with Parsec
Each of these six options will deliver some great gaming action to your Raspberry Pi. Let’s look at each in turn.
1. Retro Gaming With RetroPie, RecalBox, and Lakka
You probably already know about the possibilities of retro gaming with a Raspberry Pi. It’s one of the little computer’s most popular uses! While individual emulators can be installed on a per-platform basis, it’s a good idea to use one of the retro gaming suites, which include support for all emulators, including MAME for arcade machine emulation.
Once installed, you’ll be able to copy your favorite retro gaming ROMs to your Raspberry Pi. In the video above, I demonstrate how to run Dreamcast games on Raspberry Pi 3. Note that as Raspberry Pi computers become more sophisticated, the more platforms are added as emulators.
Be sure to only use ROMs that you own the physical copy of, in order to avoid charges of copyright theft.
Most games designed to run natively on the Raspberry Pi are written in Python. You can find a great selection of Python games at pygame.org. Meanwhile, you’ll find games that run on the Raspberry Pi via the Add/Remove Software tool.
3. Install Classic Games Directly on Raspberry Pi
An impressive collection of classic games has been re-released as open source over the past few years, enabling them to be ported to other platforms. Often, this means Linux, but typically only with x86 support. Fortunately, it can also mean ARM, which means Raspberry Pi compatibility.
Another option for playing classic games on your Raspberry Pi is with DOSBox. This is an emulator for Microsoft’s MS-DOS operating system, which precedes Windows (but was packaged with Windows 95 and 98). Almost all classic PC games can be installed in DOSBox, and the software can run on Raspberry Pi.
So, you can expect to revisit (or discover!) classics like F117A Stealth Fighter, the original Sim City and Civilization games, and many more. It’s estimated that over 2,000 titles were released for MS-DOS, so you’ll have plenty to keep you entertained!
Note: You’ll find most of these old PC games require keyboard and mouse, not a modern game controller.
5. Play PC Games on Pi With Exagear and Wine
Incredibly, you can even run some Windows games on a Raspberry Pi thanks to Wine. While the popular Windows application layer software for Linux is not designed to be run on ARM systems, Exagear’s software makes it possible.
The result is an ever-growing collection of Windows PC games that will run on your Raspberry Pi, with a bit of tweaking. Admittedly, these are not recent titles, but given that many older Windows games won’t work in modern versions of the operating system, running them on a Raspberry Pi instead seems like a good alternative.
Finally, and perhaps most surprisingly, you can stream games from Windows, macOS, and Linux PCs to your Raspberry Pi. While this will require a powerful PC in the background to run the game, this changes everything.
You’ll need a reliable network and a Raspberry Pi 3 or later, but with Parsec set up on the PC and on Raspbian, it’s simple to stream whatever is running on your computer to your Raspberry Pi. We’re not talking retro gaming anymore, either.
The latest titles, as long as they run on your PC, can be streamed to your Pi. This makes the Raspberry Pi an alternative to the Steam Link. Our guide to using Parsec with Raspberry Pi shows you how to make this happen.
Raspberry Pi: A Surprisingly Versatile Gaming Device!
Amazing, isn’t it? The Raspberry Pi is an incredibly versatile machine, capable not only of letting you play your favorite retro games, but also current games thanks to streaming technology.
Better still, you can retain your existing retro game emulators at the same time as running Exagear or Parsec. In short, each of the six options listed here can be set up on a single Raspberry Pi 3 or later. Given the price of the Raspberry Pi, this surely makes it the most amazing gaming computer currently available!
An incredible library of games and other software is available to your Raspberry Pi. You probably know that it makes a great base for emulating other platforms, but did you know it could run retro PC software?
Before Windows, there was MS-DOS. This old disk operating system from Microsoft can be emulated on the Raspberry Pi in a couple of different ways. Which method you choose depends on the outcome you’re looking for.
Here’s how to install old PC games on a Raspberry Pi!
Running DOS Software on Raspberry Pi
Microsoft’s first PC-based operating system, MS-DOS was released in 1981 and discontinued in 2000. During this time, over 2000 games were released for what was then a largely office-based computer system.
Furthermore, Windows 95 and 98 could run DOS software. Often you would leave the desktop operating system to run MS-DOS games and applications.
The process is straightforward:
Find MS-DOS games
Install MS-DOS games
For the best results, make sure you’re using a Raspberry Pi 2 or later, with an 8GB or higher SD card. Classic PC games typically need a keyboard and mouse to play, although some controllers and joysticks are supported.
Configuring is a bit trickier. You’ll need a directory to run DOSBox and the software from:
Next, edit the DOSBox configuration file in nano:
sudo nano .dosbox/dosbox-0.74.conf
Next, scroll to the end of the file and add your mount instruction under the [autoexec] heading.
This will ensure that when DOSBox runs, it uses the dos directory as the C: drive.
mount c ~/dos c:
Save and exit the text editor with Ctrl + X, and hit Y to confirm.
You should now be able to run DOSBox from the Games menu on your Raspberry Pi!
Step 3: Find MS-DOS Games for Raspberry Pi
Where can you find suitable games? Well, thrift stores and eBay are a good place to start. Old games will typically be available on CD-ROM or floppy disk, however, so you’ll need to make sure you have the right type of disk drive connected to your Raspberry Pi.
If this isn’t possible, then you will need to rely on disk images found online. We can’t link you to these as there are copyright considerations. Such ROM files can be found in ZIP format, unpacked, and installed within DOSBox just as they might be on a genuine MS-DOS PC.
To avoid breaching copyright and breaking the law, restrict your use of game ROMs to titles you already own.
You really shouldn’t need to break copyright law to get hold of old games, however, as so many have been made open source. A big selection of such games can be found at the Internet Archive. Here, you’ll find everything from genuine games to cover discs full of shareware titles.
In short, you should be able to find something to play very easily. But what do you do once the games have been downloaded? How can you load them into DOSBox?
Step 4: Install MS-DOS Games on Raspberry Pi
To run DOS games on your Raspberry Pi, you need DOSBox to be aware of the game. The best way to do this is create a new directory for your games within the dos directory:
You can then use the mv (move) command to copy any games from Downloads into this new folder:
mv Downloads/[GAME_TITLE] dos/games/
You’re now ready to start installing and playing games.
Launch DOSBox, and use the command line to navigate into the /games/ directory. Remember, you’re in an environment emulating MS-DOS, so different commands are needed. While cd still changes directory, the contents are listed with dir (you can use dir /p to display the contents list a page at a time). Type help to get more assistance.
Once you have copied games into the games directory, open a specific directory, then find the install.bat file and run it. Sometimes, this may be named after the game in question. For instance, in this example, I used cm2.bat to begin installation of Championship Manager 97-98.
Wait while the game installs. Once done, you can usually run the game using the shortened form of its title. Often, this is the same as the BAT file, but without the suffix.
For example, to run Championship Manager 2, I simply entered cm2. This will differ from game to game, however, so check the documentation. If all else fails, run the appropriately names EXE file to launch the game.
Note that you can also copy games to your Raspberry Pi from your PC. If you have SSH enabled on the Pi, the SFTP function of your preferred FTP software (we like Filezilla) will let you copy game files to the Pi. You should probably save them directly to the /games/ directory to save time.
When you’re done with DOSBox, simply exit the environment with a single command:
Classic PC Games on Raspberry Pi Made Easy!
It can be a little time-consuming to set up a DOS environment on your Raspberry Pi, but once you’re up and running, you have a massive library of games and software at your disposal.
Want to install RetroPie but don’t want to lose your existing Raspbian projects and environment? Not keen on the idea of dual booting? The answer is to install RetroPie as an application in Raspbian. In fact, it’s so simple, you’ll wonder why you didn’t do this way befor
You Don’t Always Need a Dedicated Disk Image
Raspberry Pi users have been sold the idea of having a single function for their computer. This single function is typically the Raspbian distro, which users are encouraged to reinstall for each major project. Not only does this reduce the lifespan of your SD card, it’s unnecessary.
In short, things have moved on since the Raspberry Pi first appeared in 2012. Dedicated disk images might be useful for Pi-based retro gaming projects, but if you want more of a versatile experience, Raspbian Stretch is more than adequate. We’ve already looked at how to install Kodi in Raspbian, so let’s find out how to install and configure RetroPie.
What You’ll Need
As ever for a Raspberry Pi project, you’ll need a reliable power supply, a microSD card (at least 8GB, with Raspbian Stretch pre-installed), and a HDMI cable (unless you’re using a touchscreen display).
You’ll also need an Ethernet cable connection to your router (or Wi-Fi connectivity), a keyboard and mouse, and a game controller. Whether you keep these connected or not will depend on the type of games you intend to play.
Indeed, if you’re interested in a very particular type of game (such as those released for the Commodore 64), then a keyboard and two-button joystick will be all you need.
Configure Raspbian to Install RetroPie
To get started, boot up your Raspberry Pi, and change the locale options. This can be done in the command line using:
Here, go to Localisation Options > Change Locale and scroll through the menu to select the en_US.UTF-8 UTF-8 option. Select OK to confirm, and wait while the change is made.
Then, reboot the Raspberry Pi with:
You might prefer to use the desktop Raspberry Pi Configuration Tool, available in the Preferences menu. In this case, go to the Localization tab, select Set Locale, and choose the en_US.UTF-8 character set. You’ll be prompted to reboot, so click OK.
With the computer restarted, open a new terminal window and enter the command:
Check that each parameter has the en_US.UTF-8 value assigned.
Install RetroPie on Raspbian
Before you install RetroPie, you’ll need to ensure that git is installed in Raspbian:
The RetroPie-Setup folder will download, so change directory, and make the retropie_setup.sh script executable:
cd RetroPie-Setup chmod +x retropie_setup.sh
You can now install RetroPie using the setup script:
Wait while this runs. Some additional packages may be installed. Once this is done, the RetroPie-Setup Script menu will appear. Select OK to close the intro screen, then choose 1. Basic install.
This installs all packages from the core and main RetroPie projects; select Yes to proceed, and wait as the emulation suite is installed.
This will take a while, and once done, you’ll be returned to the setup menu. Select R Perform Reboot, and select Yes to confirm.
Log In and Configure RetroPie
When the computer restarts, you’ll see the desktop at first; then this will close and display the command line interface. Login with the usual Raspberry Pi credentials. Once you’ve done that, run EmulationStation:
The user interface to RetroPie will load up, and you’ll be prompted to configure your controller. If you prefer to skip this and navigate via your keyboard, you can deal with the controller later.
Next, if you’re using wireless networking, rather than Ethernet, you’ll need to connect to your wireless network. Go to the RetroPie menu, then choose WiFi. Select 1 Connect to WiFi network and select the correct network name. Click OK, then enter the passkey, confirming with OK.
When this is done, wait for the menu to appear again; if successful, it should display the IP address for the wireless connection. Select Exit to close the menu.
As things stand, you’re ready to install BIOS files and game ROMs on your Raspberry Pi. But you might need some emulators first. You’ll find these via RetroPie > RetroPie Setup > M Manage packages. Here, select opt Manage optional packages, and find the one that suits the platform you wish to emulate.
Along with recognizable gaming platforms like the Nintendo 64 and Sega Dreamcast, you’ll find old 8-bit systems and even arcade games (always labelled “MAME”). Meanwhile, classic games ported to the Raspberry Pi can be found in the list (such as Doom and Quake), as can the ScummVM program, which enables you to run certain point-and-click graphic adventure games.
When you find the emulator(s) you want to add, select them one at a time, using Install from source. This can take a while depending on how many (and which) emulators you have chosen. Click Back when you’re done until you return to the main RetroPie-Setup Script menu, then select R Perform reboot again.
BIOS and Game Files
In order to play games on RetroPie, you need a BIOS file for the emulator concerned, and ROM files for the games you want to play. Due to copyright law, we cannot link to these, but you should find what you need via Google. Note that if you’re using ROM files, you should already own a copy of the physical media.
When you have the files (ROM files should be saved to the appropriate emulator folder, BIOS files to the BIOS directory), you’ll be able to run the games in EmulationStation.
Usually, we would instruct you to do this via SSH or FTP from a second computer. However, this isn’t necessary if you can easily drop out of RetroPie and back to the PIXEL desktop in Raspbian. This way, you can use the Chromium browser to find and download your BIOS and ROM files, and save them to your Raspberry Pi.
To exit RetroPie, click the Start button (which you will have configured earlier) and select Quit > Quit EmulationStation, then when the command line appears, enter:
sudo systemctl start lightdm
This will restart the Pixel desktop on Raspbian, and you can continue using your Raspberry Pi as normal. Perhaps you have a project you’re developing? If not, there are many other great uses for a Raspberry Pi.
Whenever you want to launch RetroPie again, simply use the emulationstation command.
One of the most important skills you can learn as a Linux user is how to use a manual page, or “man page.”
This article will introduce you to those simple documents. You’ll learn how to open man pages and identify the contents inside, which will include special markings such as bold and underlined text alongside indicators such as ellipses (…) and brackets ([ ]).
Man pages are fairly easy to tackle, and your time is valuable, so let’s not waste another minute.
Opening Man Pages
In whichever terminal you have on hand, type
to open a man page. If you want to open the page for xterm, a terminal probably on your system, type man xterm.
Man pages are sorted into sections. Sometimes you will find them listed with their section number, like “tty(4).” The section number here refers to the tty controlling terminal under the “Special files (devices)” section, which is part of the standard sections of man pages listed in the link in this paragraph.
Any time you see a listing like “tty(4),” you can reach that section by typing
man <section number> <page name>
The syntax man 4 tty will reach the page reference here.
Finding a Specific Page
If you ever want to see if a man page exists, try
like whatis xterm.
Suppose you don’t know what page you need, but you know you want to read about terminals. You can search for a keyword by first refreshing your manual page cache with the command
Then search with
The syntax man -k terminal is appropriate in this situation.
You can pipe long output into the text reader less by using
That will make it easier to scroll and search for items.
Man Page Syntax
Speaking of text readers, you will probably find less‘s younger cousin, known as more, on your system. Bring up its man page with
It should look like the following image.
The reason more‘s man page works well as an example is because of the syntax shown in its Synopsis section. It reads “more [options] file…”
While that may not look complex, the variations in text style and form are all important to that line.
Any text in bold means that you should type it exactly as shown. When using the more utility, you will need to type the word “more” at the beginning of every command.
Text shown in brackets is optional. In more’s case, you can use options like -f to count logical lines or -c to paint lines instead of scrolling them. The beginning of a more command could then look like
Since those parameters are optional, you can omit them entirely.
Underlined or Italicized Text
Depending on your terminal’s capabilities, you will likely see underlined and italicized text in certain places. Sometimes such text may also be a different color. In any case, this type of text means you need to replace it with an appropriate argument.
In this example with more, you must replace “file” with a file name. more -c file.txt makes sense here.
An ellipsis shown after any argument — file... – or expression – [options]... – means that argument or expression is repeatable.
What you get with more in file... means that something like
more -f text.txt anothertext.txt
is allowed. In this case more will read “text.txt,” print it to screen, allow you to scroll if necessary, and then take action on “anothertext.txt.”
One other type of indicator you’ll see in man pages is the “|.” This symbol means “or,” and in a man page it shows you that, for instance, two options are not allowed together at once.
The more example used above doesn’t list any parameters as being exclusive, so there isn’t a relevant example to show for that utility. If you read a handful of other man pages, however, you will come across something like -a|-b, and that means you can use only -a or -b in a command.
Sections of a Man Page
You will also see various sections in man pages that repeat time and time again. Typically, you will see “NAME,” “SYNOPSIS,” “DESCRIPTION,” “EXAMPLES,” and “SEE ALSO” sections, all listed in capital letters for clarity. The “OPTIONS” and “COMMANDS” sections will often be present as well.
Most of the sections are self-explanatory in nature. You can typically start from the top of any man page and get a brief overview of its contents with the Name, Synopsis, and Description sections. Afterward, you can peruse its options and examples to get a look at common usage.
Terminals often use the less utility to read man pages, so you should be able to search for any phrase with /.
While man pages might not be fancy, they hold a wealth of information. Now that you’re primed with the basic syntax found in most man pages, you can easily make use of one the next time you’re stuck when using a utility.
Also, don’t forget that man man is your friend and will cover all the details not discussed here.
You probably already know that you can use your Raspberry Pi as a media center. You can even install Kodi on it for managing media offline and online. But what if you’re happier to leave it running Raspbian as the main operating system?
Well, if you have a mobile device you don’t mind using for managing your media, you could use this to cast a video to your TV. Yes: you can use your Raspberry Pi just like a Chromecast. You won’t be able to use the Cast button on Android, but YouTube videos, pictures, audio and images from your smartphone can be streamed to your TV.
Install the Raspicast App
Get started by installing Raspicast on your Android device. This is a free app that connects to your Raspberry Pi and streams data to it. As long as your Pi is connected to the HDMI input on your TV or display, you’ll be able to view the media on your phone. You’ll find Raspicast in the Google Play app store. Unfortunately, there is no reliable iPhone alternative for this.
It’s important to note that both the Android phone and the Raspberry Pi need to be on the same network for this to work. You can’t, for example, stream video from your phone to your TV if you’re sat on the bus. If you’re trying to share a video with someone sat at home, simply message them the link!
With the app installed, turn your attention to the Raspberry Pi. This should be already connected to your TV via HDMI, and powered up. We tested this on a Raspberry Pi 3 running Raspbian Stretch. However, you should find it works with other Raspberry Pi distributions (although some of the commands may differ).
As you’ll need SSH enabled, here’s a quick primer. You have three options to enable it:
Via raspi-config. You can run this from the command line using sudo raspi-config, then select Interfacing Options > SSH and use the arrow keys to confirm with OK.
Use the Raspberry Pi Configuration tool. From the Raspbian desktop, open Menu > Preferences > Raspberry Pi Configuration. In the Interfaces tab, find SSH and set it to Enabled.
Finally, if you prefer simplicity, you can enable SSH before you boot up your Pi. Insert the microSD card into your computer, browse to the boot partition, and create a new file. This should be called ssh, and have no file extension. Once you replace the SD card and reboot, SSH should be enabled.
Now it’s time to run some updates. Start off by opening a terminal window on your Pi and running:
sudo apt-get update sudo apt-get upgrade
These commands will update your Raspberry Pi’s operating system, and find and install any software updates.
Install and Build OpenMax
With the updates installed, we need some prerequisite packages:
sudo apt-get install libjpeg9-dev libpng12-dev
The packages libjpeg9-dev and libpng12-dev are necessary for building programs that can handle JPG and PNG images. This will enable the media to be cast to your Raspberry Pi via the Raspicast app on Android!
Now, install OpenMax. This tool is the best option for casting video, audio and images from an Android device to a TV-connected Raspberry Pi. It’s available via GitHub, and you can install it by “cloning” the data repository to your Pi:
You’re nearly done; it’s time to build the OpenMax software. Begin by switching to the omxiv directory and using the make command.
cd omxiv make ilclient make
This will take a while. Once it’s done, you’ll be ready to install:
sudo make install
A few moments later, OpenMax will be installed!
Get Ready to Cast!
Everything you need to cast from your Android device to your Raspberry Pi is now in place. On Android, run the Raspicast app, and in the SSH settings input the Hostname or IP address of your Raspberry Pi. Follow this with your Pi’s username and password, then click OK.
To cast to your Raspberry Pi, you have two options. The first is to browse for the content within the Raspicast app and hit play. Alternatively, if you want to cast from YouTube, find the video in the app and tap the Share button.
Here, select Cast (Raspicast), and the video should automatically play on your TV! Meanwhile, to send videos, music and photos to your Raspberry Pi display, simply use the main Raspicast screen and select Cast. This will open a screen listing all videos on your Android device.
On one of the four tabs (along with Music, Albums, and Images), selecting a media file will prompt its immediate playback on your Raspberry Pi.
Need to change the IP address within the app (e.g. to cast to a different Pi)? Open the “three dots” menu and select SSH Settings. Simply input the new IP address and credentials.
More Raspicast Options
Also in the Raspicast menu, you’ll find a check box to Repeat the currently playing file. Further down the list, Audio output can be customized, using HDMI (default), local, both, or alsa. This will prove useful for anyone using an external audio solution with their Pi.
You should also check the Advanced options screen. Here you’ll find options for managing a queue of files, managing volume (audio volume offset), using HTTP if necessary (HTTPS is the default), specifying custom commands, and more.
Meanwhile, on the main Raspicast screen, use the Files button to navigate and play media stored on your Raspberry Pi!
You Can Also Cast With Kodi!
Now, there is a downside to all of this: you can’t run Raspicast with a Raspberry Pi running OSMC (a popular Kodi distribution). Unfortunate as this is, there is an alternative: the Kore remote control app for Android devices.
Usually, you’ll use this to remote control Kodi, but it’s also capable of casting to a Kodi system, including OSMC. Simply install the app, set it up with the IP address of your Raspberry Pi, and then head to YouTube. As with Raspicast, tap the Share button on the video you want to cast, then select Play on Kodi.
This will immediately stream the video to your TV via Kodi!
Other Chromecast Alternatives
The Raspberry Pi isn’t the only alternative to a Chromecast. You might already have a solution that you were unaware of, such as a set-top box or smart TV with YouTube compatibility. In this situation, casting videos from the YouTube app to the TV is usually possible as long as the receiver is on the same network.
The Raspberry Pi is a great way to learn both DIY tech and programming on a budget. They are also great cheap computers for kids, with plenty of great learning resources included to help young minds grasp useful concepts for the future.
There are many great beginner projects out there which use the Pi’s GPIO (general-purpose input/output) pins. It’s great for coding too, since the Raspbian operating system comes with Python built-in. There is even a version of Minecraft for the Pi which can help you learn both beginner electronics and Python!
While this is great for people with some coding experience, what if you wanted to teach someone how to use the Pi’s GPIO pins without having to learn a programming language?
With Scratch, you can.
Today we will use Scratch to turn on an LED attached to our GPIO pins, while learning about some basic animation and programming ideas—all without having to type any code! This tutorial is perfect for getting kids involved with DIY electronics and programmatic thinking from an early age. Both the video and the article are perfect for the home or classroom.
What You’ll Need
1 x Raspberry Pi with Raspbian installed. A Pi 3 is used today, but any Pi will do
1 x LED
1 x 220 Ohms or higher resistor
1 x breadboard
2 x hookup wires
Setting Up the LED
We want to set up our LED and resistor on the breadboard like this:
Here is a diagram of that same setup. Notice that in this diagram the LED is the other way around, but the circuit is still exactly the same.
We want to set it up so that the hookup wire from GPIO pin 5 connects to the leg of our resistor. The resistor’s other leg attaches to the positive side of our LED. If you are wondering which side that is, look at the top of your LED. One side should be curved, and the other side should be flat. The curved side is positive, and the flat side is negative. Use a piece of hookup wire to connect the negative side of the LED to a GND pin.
To open scratch, click on the Raspberry Pi start menu and navigate to Programming > Scratch 2.0. When scratch opens it will look something like this:
There is a lot going on here, but it’s quite simple to get the hang of. The left side of the screen is where the action happens. Anything we code will play out in this box.
Just below it is the sprite window where you can load images into your program, or paint your own sprites if you are feeling creative!
In the middle panel, you’ll find all of the blocks you can use to make your programs. You’ll also notice two tabs called Costumes and Sounds which you can use to customise your project even more, but today we won’t be using them.
On the right is where you can drag these blocks to make the magic happen!
The right side is currently empty. Let’s do something about that!
Before we go any further, we’ll need to add a few blocks to our toolkit to access our GPIO pins and turn on our LED. In the middle panel, click on More Blocks.
Now click Add an Extension and choose Pi GPIO. This will add blocks we can use with our Raspberry Pi pins.
Now that we’ve got all the tools we need, lets make a program!
Light Emitting Cat
Since we already have a cat sprite loaded in, let’s use it. We are going to make a program which makes the cat take a step whenever a button is clicked, and make the LED light up for one second every time. Start by grabbing the move 10 steps block from the Motion tab, and drag it to the empty space on the right. Now click on the More Blocks tab and drag the set GPIO output to to the right and connect it to the bottom of the first block. It should look like this:
You’ll notice that there is a number 5 in my GPIO block, click on the white circle and enter the number of your GPIO pin here. If you set up your LED the same way as was shown above, it will also be number 5. Now if you click on the code block it will glow for a moment. This means it is running, so you should see your cat move, and the LED will turn on. Progress!
Making It More Complicated
Now that we have a basic start, let’s add some more logic to our code. Right now, our light comes on and never goes off again. What we want is for it to wait a moment before going off again. We are going to use a wait block for this.
Under the Control tab, grab a wait 1 secs block and attach it to the bottom of your stack. Now the program knows to wait for a second every time it gets there. To turn the LED off again, grab another set GPIO output to block and drag it to the bottom.
This time we want it to turn the LED off, by setting the GPIO to output low. Click the little drop down arrow next to output high and change it to output low. Don’t forget this block also needs the same GPIO number as the one above it!
It should look like this:
Now when you click the block of code, the cat should move and the LED should turn on for one second before turning off. Right now, this only works when we click our code block. Let’s make a button to do it instead.
Button, Button, I’ve Got the Button!
We need something to click to tell our cat to move. An arrow should do the trick! In the Sprites window on the bottom left, click the button next to New sprite. This will let us choose from a library of sprites that comes with Scratch.
We are using the sprite Arrow1 as it seems appropriate for our program, but you can use whichever sprite you like. You can even draw your own sprites in Scratch, or upload images you have made elsewhere to use. Once you have added your arrow it should appear in the same pane as your cat on the left. Drag the cat to the left side of the screen and your arrow to the top like this:
We need to give our arrow its own set of blocks. Double click on the arrow sprite, you should see that the pane on the right is empty now. We want our cat to run their block of code every time the arrow is clicked.
To do this, grab the when this sprite clicked block from the Events tab. This means that whenever you click on the arrow, its block will start running. Now we need to send a message to our cat whenever that happens. Luckily, Scratch will let us do exactly that.
Receiving You, Loud and Clear!
We will send a message to our cat using the broadcast block. Grab it from the Events tab and slot it under the when this sprite clicked block. This block will send a message to every other sprite in our program. Right now it says message1, but lets add our own message by clicking the drop down arrow next to message1 and selecting new message. Type go into the window that pops up and click ok.
Now double click on the cat again. We need to tell the cat to listen for this broadcast message. Drag the When I receive block to the very top of the stack we have already made, and make sure the drop down menu reads go as well. Now, every time you click the arrow in the left pane it broadcasts go, the cat receives go and moves, and the LED should light up.
Well done! It’s looking good! There is just one final thing we can do to make it even better.
Never-Ending Cat Story
If you’ve clicked your arrow enough times, you’ll probably notice that your cat has gone off the right side of the screen. We could just grab it and drag it back each time, but good programmers are lazy, and they make the code do the work for them. Lets be good programmers and use blocks to make our cat move back by itself.
Drag the cat back to the left side of the screen, and make sure it isn’t touching the edge. Place your mouse pointer over the middle of the cat sprite, and look in the bottom corner of the left pane. There will be an x and a y there followed by two numbers. Write these down, we will need them in a minute.
Every time our cat moves we want to tell it: if you are touching the right side of the screen, go back to the start. We can use blocks to tell it this. Start by grabbing the if then block from the Control tab and drag it under your code blocks. This one looks a bit different, it has a diamond gap at the top, and a gap in the middle. We use these gaps to tell it what to do.
Now go to the Sensing tab, and select touching mouse-pointer? block. You will notice it is a diamond shape, which fits perfectly into the diamond gap in the if then block. If you are having trouble getting it to fit in, drag it to the right side of the if then first, and move it left until you see the diamond shaped gap glow. You’ll also notice it says mouse-pointer which isn’t what we want. Use the drop down menu to select edge instead.
So far, this part of the block is saying If the cat touches the edge do… nothing so far. Let’s change that.
Back to the Beginning
Our if <touching edge> then block has a gap that needs filling. Go to the Motion tab, and select the go to x: y: block, and drag it into the gap in our if <touching edge> then block.
Scratch is quite clever, and will have put the x and y numbers where your cat sprite is positioned already, but check that these numbers match the ones you wrote down earlier. If they don’t, change them by clicking on the white boxes next to x: and y:.
The full code block for your cat should look like this.
This is now a fully functional program! When you click the arrow enough times that your cat hits the other side of the window, he will pop back to the start again.
That’s it, we are finished. Well done!
Now You Can Use Scratch on Raspberry Pi
Today you have created a program which incorporated animation (when the cat moved), DIY electronics (building an LED circuit and controlling it), and some programmer’s logic to make your life a little easier.
All without having to write a single line of code.
Arguably, Kodi’s most significant selling point is that it is open-source. Because it’s open-source, a vast community of programmers and developers has built up around the app. If you’re a skilled coder, you can even make changes to the source code yourself.
The community is responsible for all the good stuff the app offers. Kodi by itself is an entirely underwhelming shell and provides nothing beyond the interface.
Let’s stress that again because Kodi newbies often overlook it: if you don’t have any locally saved media, and you don’t have any interest in learning how to use repos and add-ons, you don’t need Kodi. No media is included in the app. 7 Essential Kodi Tips for New Users7 Essential Kodi Tips for New Users If you’re just starting out on your Kodi journey and don’t have a clue where to begin, we’re here to help with these essential Kodi tips for newbies. Read More
Lastly, be aware that Kodi’s customizability comes at a cost. It requires a lot of user input to make the app run the way you want it to, and it necessitates more effort to keep everything working as time goes by. If you want a plug-and-play app, Plex might be a better choice.
How to Install Kodi
Kodi is available on Windows, Mac, Linux, Android (mobile and TV), iOS, and Raspberry Pi.
If you’re running the app on a desktop machine or Android, you just need to grab the app from either the website or the associated app store. Windows users can also use the Windows Store version, while Android can download the APK file and sideload the app. Sideloading will make it more difficult to update the app, however, so we recommend using the Play Store method.
If you want to install Kodi on iOS, the situation is a lot more complicated.
Kodi is not available in the Apple App Store. Instead, you need to compile an app using XCode. To get started, you need iOS 10.9 or higher, a copy of Kodi’s DEB file, XCode 7 or higher, an iOS app signer, and an Apple ID.
It’s also possible to install Kodi on iOS by using Cydia on a jailbroken device, but many users don’t want to risk voiding their warranty. However, if you have an older iOS gadget that you’re willing to take a few risks with, it’s certainly the easier approach.
For the other platforms, just get the installation file and follow the on-screen instructions. You will have Kodi running on your device in minutes.
Hopefully, you’re now looking at Kodi’s main interface. But there’s no content there, no setup wizard, and no hint of how to use add-ons and repos.
Don’t worry, we’re going to explain everything, but let’s get some basics out of the way first.
On the left-hand side of your screen, you will see shortcuts for all the different media classes. They are Movies, TV shows, Music, Music videos, TV, Radio, Add-ons, Pictures, Videos, and Weather. If you’re not planning to use all the shortcuts, you can remove some by heading to Settings > Skin settings > Main menu items and sliding the appropriate toggles into the Off position.
As you use Kodi more, you will probably find it’s easier to navigate through the app using your keyboard rather than your mouse.
There are more than 100 different keyboard shortcuts you can use. Some even perform different functions depending what’s on the screen. For example, Page Down will skip to the previous queued video (or previous chapter) if you’re watching a video, but will decrease the rating of a song if you’re listening to audio.
Nonetheless, there are some important keyboard shortcuts that all users should know about. Here are some of the most common:
F9 or –: Volume Down
F10 or +: Volume Up
Spacebar or P: Play / Pause
F: Fast Forward
Leftarrow: Jump back 30 seconds
Rightarrow: Jump forward 30 seconds
I: Show information about the currently playing video
T: Turn subtitles on or off
Note: You can use a keymap editor add-on to change which keys perform which function. Advanced users can also change the shortcuts by editing the userdata file.
Adding Your Media to Kodi
If you’re just starting your Kodi journey, there are probably three forms of media that your keen to add to the app as soon as possible: videos, music, and photos.
We’re going to look at each one individually.
Adding Videos to Kodi
Kodi is a supremely powerful app which skilled users can force to perform all manner of tricks. However, for the vast majority of users, the principal reason for installing the software is to watch videos.
If you want to maximize the enjoyment of watching videos on Kodi, there is an exact process you need to follow.
Prepare Your Video Files
Preparing your video files is crucial because Kodi uses scrappers to search for the appropriate metadata for your videos. Metadata includes artwork, synopses, show/movie descriptions, season numbers, episode numbers, cast lists, directors, and a whole lot more.
This data isn’t essential to being able to watch your videos through Kodi, but it’s the only way to build your library into a vibrant and dynamic list.
So, if you’re naming a TV show, place the files in the following folder structure:
/ShowName/Season XX/ (for example, Friends/Season 05)
For single episodes, name each file as sXXeYY, and for multiple episodes, name the file as sXXeYY-eYY. For example, S05E02.
Specials should be put into the following folder structure:
Movie files can either be saved as standalone files or each saved in their own sub-folder. Use the following structure for the movie file itself:
[Movie Name] (Year) (for example, The Hurt Locker (2008))
Therefore, the folder tree should look like either Movies/ The Hurt Locker (2008).mp4 or Movies/The Hurt Locker (2008)/The Hurt Locker (2008).mp4.
If your content is a disorganized mess, you could try using FileBot. It’s a TV show and movie renamer; it’ll scan online databases and do all the hard work on your behalf. However, FileBot does cost $19.99.
Note: You should keep your movie and TV shows in separate folder trees.
Add Your Videos
Now it’s time to add your video files into Kodi.
To begin, select Videos from the menu on the left-hand side of Kodi’s home screen. On the next screen, choose Files. Finally, click on Add videos.
Now you need to add the video source. “Source” is a word you will come across frequently while using Kodi. It can refer to many different things. In this case, it just means you need to select the folder on your hard drive when you have saved your video files.
You can give your source a name. Typically, you should name it Movies, TV Shows, Home Videos, or something else that’s similarly descriptive.
Now you need to tell Kodi what type of videos are in the source folder. It will allow Kodi to scan the correct online database for metadata. It uses TheTVDB for TV-based metadata and TheMovieDB for film information.
On the final screen, you can set some additional options. They include how frequently Kodi will scan the folder for new content and some movie naming conventions. When you’re ready, hit OK and Kodi will start importing your content. If you have hundreds of TV episodes and movies, the process might take a long time.
Repeat the above steps for each type of video content you want to add.
Adding Music to Kodi
Once your video collection is up and running, it’s time to turn your attention to your music library.
Prepare Your Music Files
Like with video files, if you want Kodi to find the metadata relating to your music, you need to prepare your music collection before you can add it.
Kodi uses the open-source MusicBrainz database for music tagging. The database includes more than 1.2 million artists, 1.8 million albums, and 17.5 million songs.
If MusicBrainz cannot correctly tag your music, you can do it yourself. The file tree of your music needs to follow the Artist > Album > Song structure. For example, Michael Jackson > Thriller > Billie Jean.
Correctly tagging all your music is a painstaking process. But when you’ve finally finished, you’re ready to add your music collection into the Kodi app.
Adding music to your library is a two-part process. Firstly, you need to scan your collection so Kodi can import it. Secondly, you need to scrape your library for additional information. You must finish the first step before you can move on.
To start the scanning process, you need to tell Kodi where your music collection is saved on your hard drive. Go to the Kodi home screen and click on Music in the menu on the left-hand side of the screen. On the next screen, go to Files > Add music. Click on Browse and choose the folder when your music is located.
Now give your music collection a name. If you’re going to import multiple collections, choose something recognizable.
On the next screen, Kodi will ask whether you want to add your media source to the library. Click on Yes and the app will start scanning.
Again, if you have an extensive collection, this process could take a while.
Next, it’s time to scrape your collection for additional information. The additional data comes in many forms: it could include artist style, the formation date of a band, the theme of an album, or even the date and location where the artist died.
To scrape more information, start by clicking on Music on the Kodi home screen. On the next screen choose Artists. Right-click on any artist name to pull up the context menu and select Query info for all artists to start the scrape.
The scraping process could take many hours to finish. It will cover about 300 artists per hour. When it’s complete, you should run it for a second time to make sure any “server busy” responses are fixed.
Adding Photos to Kodi
You will be pleased to learn that adding photos and pictures to Kodi requires much less preparation and time than adding music or video files.
To add a folder of photos, select Pictures from the menu on the left-hand side of the Kodi home screen. On the next screen, choose Add pictures.
A new window will pop up. Click on Browse and point to the folder which contains the images you want to add. When you’re ready, click on OK.
Kodi offers a few features to make viewing pictures more enjoyable. They include a slideshow, a randomizer, and zoom.
A repo (or repository) is a library of add-ons. The add-ons themselves are what allow you to access and watch content. You need to add a repo before you can install an add-on.
Kodi offers an official repo, but you can also find many third-party repos from people who create their own add-ons. The Kodi repo is included in the app automatically.
Sadly, given the recent clampdown on Kodi by the authorities, many once-popular repos have disappeared for good. It’s no longer possible to direct you to “must-have” repos because the situation is so fluid. We can, however, explain how to add repos.
Using the Official Kodi Repo
The official Kodi repo contains loads of add-ons, and many users won’t even need to consider using third-party repos. Available add-ons include BBC iPlayer, Pluto TV, Crackle, SoundCloud, Arte TV, Bravo, BT Sport, and the Disney Channel. Most importantly, all of the add-ons in the official repo are entirely legal.
To browse the official repo from within the Kodi app, select Add-ons from the left-hand side of the Kodi home screen. On the next screen, click on Download (again, on the left-hand side of the screen).
You will now see a list of add-on categories. You can click on any of them to see what’s available. In the image below, you can see the list of video add-ons.
To install an add-on, click on the name of the item in question and choose Install. Once the process is finished, you can launch the add-on from the relevant section of the Kodi home screen.
Installing Third-Party Repos
Before you can install a third-party repo, you will need to do some research online. You cannot simply browse a list of repos from within Kodi.
When you’ve located a repo you want, download its ZIP file onto your hard drive.
Now, head to your Kodi app and navigate to Settings > System > Add-ons. Mark the checkbox next to Unknown Sources.
To install the ZIP file, follow the step-by-step instructions below:
Click on Add-ons on the Kodi home screen.
In the top left-hand corner, click on the box icon.
A new screen will pop up. Select Install from ZIP file.
Use the browser window to point Kodi at the ZIP file.
Highlight the ZIP file you want to install and click on OK.
Installing an Add-On From a Third-Party Repo
The add-ons from any third-party repos will be mixed together if you go to Add-ons > Download > . However, it’s possible only to see add-ons from a particular repo. It makes it much easier to find add-ons you want to install.
To see add-ons from a specific repo, go to the Kodi home screen and click on Add-ons. Next, in the top left-hand corner, click on the box icon.
A new list of options will pop up. Click on Install from repo, and finally, click on the name of the repo you want to browse. To install an add-on, click on its name and choose Install.
As with any app, things can occasionally go wrong.
You can’t do much about buffering on live TV you’re streaming, but buffering issues on locally saved media and on-demand video are quite straightforward to cure.
Usually, the cache causes the issue. Specifically, the amount of memory the cache can use. You can change the cache settings by tweaking the Advanced Settings file.
Black and White Screen When Playing Video on Windows
DirectX is often responsible. Either you don’t have it installed, or you’re running a very old version. Grab the latest copy of the software from the Microsoft website.
Audio Delay Issues on Android
The Android version of Kodi is notorious for audio sync issues. If updating your app does not help, you can adjust the delay manually by going to Audio Options > Audio offset while a video is playing.
No matter what issue you encounter, there are some tried-and-tested steps you can take that frequently make the problem go away.
Updates: Always make sure both the Kodi app and any add-ons you’re using are running the latest version.
Delete recently installed repos and add-ons: Sometimes the code in add-ons can interfere with other add-ons or the Kodi app itself.
Have You Got Kodi Working?
This guide should be enough to get everyone up and running on the Kodi app. To recap, we’ve covered the essential parts of the app, including the initial setup, adding your videos, music, and photos, and installing add-ons and repos.
Did this guide to setting up Kodi answer all of your initial questions? If you’re still unsure about anything related to getting started with Kodi, please leave us a comment below and we’ll do our best to answer it.
Enjoyed this article? Join our newsletter and follow us!
Either way, the Raspberry Pi 3 (the newer the better!) makes an ideal desktop replacement for basic productivity purposes. But are you getting the best performance? We’re guessing you’re not.
So, if you want to use your Raspberry Pi 3 as a desktop PC and enjoy maximum performance, try these seven tips. Some of them might even work for other Raspberry Pi projects…
1. Apply Our Performance Tweaks
Any version of the Raspberry Pi can be used as a desktop PC, but the more recent Raspberry Pi 3 (released in 2016) is more suited than earlier versions. Whichever device you opt for, you’ll need to make sure that you’re getting the most out of it.
The tips you find in this list will help you. But for hardware tweaks to improve overall system performance, ensure you have things like an adequate power supply, and a good quality SD card. We’ve compiled a list of great tweaks to improve your Raspberry Pi’s performance, so check those out before proceeding.
There are several reasons why you should use Chromium, not least because it delivers continuity with your current desktop. Assuming you’re using Chromium on Windows or macOS, you can sign into the browser on the Raspberry Pi and sync your favorites, for example.
Remember, the Raspberry Pi 3 uses a 1.2 GHz CPU with just 1 Gb of RAM. You’re not going to get PC-like performance out of it, so use with moderation.
Along with apps, however, Chrome extensions will also (mostly) work in Chromium. This is important for enjoying the same browsing experience as you would on a PC or laptop computer.
4. Keep Browser Tabs to a Minimum
Speaking of extensions, it’s a good idea to employ a “session manager” add-on to ensure superior tab management.
Your best solution here is to run several tab sessions, along with a bookmarking tool. Keep your tabs focused on the task at hand, and save irrelevant reading for later. It’s basic productivity and time management, but becomes more important when you’re using a lower spec machine as your desktop computer.
Even a Raspberry Pi 3 will struggle with over 10 tabs. For the best results, keep it to around five most of the time.
5. Use LibreOffice for Productivity
Although Google Drive is an option via the Chromium browser, you should rely on LibreOffice for a superior office experience. Raspbian Stretch has the open-source office suite built in; you’ll find it in the desktop menu under Office.
Here, you’ll find LibreOffice Writer for word processing, Calc for spreadsheets, Impress for presentations, Base for database design, and more. It isn’t quite at the level of Microsoft Office, but should be adequate for 95% of users.
The Raspberry Pi 3 has wireless internet and Bluetooth. Despite this, however, it is recommended to rely on a cabled keyboard and mouse for the best performance.
While it is advantageous to run a Bluetooth keyboard and mouse (or integrated pointing device) for flexibility, power-wise it doesn’t always work out. This is especially the case if you haven’t connected the Raspberry Pi to a reliable power supply.
You may already know that Bluetooth Low Energy is designed to use as little power as possible. But with a computer as low spec and low power as the Pi, even a minor drain can result in power issues. Using cabled peripherals is the best answer here.
7. Install Some Extra Software
Although there is a great selection of applications bundled with the Raspberry Pi’s preferred Raspbian Stretch operating system, you might need a few extras. For instance, you might wish to access the command line quickly: Guake is a good option here.
Or you might require access to Dropbox. As this isn’t officially supported on Raspbian (or any Raspberry Pi, as there is no ARM version of Dropbox) you’ll need help. The answer is the Dropbox Uploader tool.
“Free” and “Linux” go hand in hand beautifully, like chips and a milkshake, and even though Linux isn’t widely seen as a gaming platform, there is a veritable wealth of free games you can get for it if you look in the right places. That’s in large part thanks to unpaid, open-source developers, who collaborate to bring classics (and new games) all together in Linux.
So in tribute to those tireless devs, we’ve gathered the best free games you can play on Linux right now. Enjoy!
1. Dota 2
So this one’s not an open-source offering but free and seismically popular nonetheless. Dota 2 is Valve’s free-to-play MOBA phenomenon, rubbing shoulders with League of Legends as the most popular game of its kind. Fun fact: the original Dota is in fact a mod for the RTS classic Warcraft III.
So what makes Dota 2 special? It’s actually a little deeper than League of Legends in some ways (though I’m sure LoL fans will disagree). You can pick from one of over 100 heroes to take into battle, fighting alongside your team and your army of minions to push those lanes and destroy the other team’s base. Units range from healing support types to charging, head-down attackers. Whatever your play style, there will be one in there to suit you.
Dota 2 has a few interesting features as well, such as the option to eat up your own minions in exchange for gold and numerous ways of kitting out and upgrading your character. Be warned: Dota 2 isn’t for the faint-hearted.
2. Brutal Doom
A painstakingly elaborate project for one of the most loved PC games of all time, Brutal Doom is a beefed-up version of ZDoom, the open-source port of Doom, Doom 2, Final Doom and Master Levels. It features extra animations and gore and weapons, as well as redesigned maps, modernized controls and UIs. It’s vicious and immensely satisfying and arguably the best way to play Doom in this day and age.
Those who are nostalgic for N64 should check out Brutal Doom 64, which remasters and bloodies up the open-source port of the N64 version. (Alternatively, there’s also Doom 64: Retribution which focuses on visual improvements while not redesigning much of the original game.)
3. OpenRA (Red Alert, Tiberian Dawn, Dune 2000)
Command & Conquer set the bar for real-time strategy games, and there are some who argue that it’s never quite been topped. OpenRA is an updated, up-resed and polished version of not just Red Alert but also Tiberian Dawn and Dune 2000, faithfully recreating these classic games with the interface and usability perks that we’d expect from a game made today. All the games are completely free and are without question the best way to play these classics. And yes, of course you can play LAN games with your pals.
4. 0 A.D.
Despite still being in an Alpha stage after nearly ten years, 0 A.D. is one of the most impressive free games out there. Players take control of one of twelve ancient civilizations and are tasked with its survival and proliferation. In order to do this, you must engage in combat with other civilizations while managing your economy. Featuring a single-player campaign as well as multiplayer, 0 A.D. is perfect for those who are going through Age of Empires II withdrawals.
5. Super TuxKart
It may have started as a Mario Kart clone, but Super TuxKart has come into its own over the years. This kart racer has a slew of game modes, offering lots of racing replayability. In addition to colorful graphics and well-designed tracks to race on, one of the best things about Super TuxKart is its collection of characters. Mascots from various open-source projects appear in the game. Keep your eyes peeled for the GNU wildebeest, the SUSE gecko and the Mozilla Thunderbird.
6. The Dark Mod
Don’t let the name fool you – this isn’t just a mod of an existing game. Instead it is a standalone game born from an attempt to remake the game “Thief” in the Doom 3 engine. In The Dark Modplayers control an agile thief who must use a variety of tools and equipment to avoid various threats. The software is bundled with a level editor which allows users to create their own missions. There are currently over one-hundred fan-made missions with various objectives. The Dark Mod has received significant attention from gamers and the press, even being crowned the “#2 best free PC game” by PC Gamer in 2016.
In this delightfully destructive game, players control hedgehogs who use anything and everything to kill, maim and obliterate each other. The turn-based action takes place on various destructive environments and features a dizzying amount of weapons. The collateral damage of the weapons can alter the landscape, restricting the movement of the hedgehogs. Luckily, the hedgehogs have various tools like ropes and parachutes at their disposal to help them navigate the land and get a clear shot at the enemy. If this sounds to you a lot like another turn-based war game featuring seemingly harmless animals, you wouldn’t be wrong. Hedgewars is heavily influenced by the long-running “Worms” series.
Voxelands is a sandbox construction game in the same vein as Minecraft. It places players in a fully-destructible 3D world where they can build pretty much anything they want. Voxelands also boasts role-playing elements, requiring players to defend their structures from the elements and enemies. The game features a large number of tools and over 500 different types of blocks to aid in their construction. Whereas some players can experience some performance issues with heavyweights like Minecraft, Voxelands is feather-light. The game’s website claims that Voxelands can run on a Pentium 1 processor and be played online with a 14.4 KB connection!
Xonotic is a fast-paced multiplayer game built on a heavily-modified version of the Quake engine. Xonotic features multiple game modes including staples like capture-the-flag and deathmatch and features a number of futuristic weapons. Gameplay emphasis is on speed and mastering level layout, making Xonotic similar to games like Unreal Tournament and Quake.
10. The Battle for Wesnoth
Fancy fighting elves, trolls, orcs and dragons? The Battle for Wesnoth indulges all your Tolkien-esque impulses in a turn-based strategy game. Players fight for dominance in a high fantasy realm populated with colorful retro sprites. In addition to factoring in the strengths and weaknesses of units, players must also account for weather and types of terrain during their quest, all of which can have an effect on the outcome of a battle. The stable version of the game includes sixteen campaigns; however, there are many unofficial campaigns in the form of user-made add-ons.
A remake of 1995’s Transport Tycoon Deluxe, OpenTTD tasks players with managing a major metropolitan transit system. The goal of the game is to build a transportation network utilizing a variety of vehicles such as trains, boats, planes and trucks. In addition, players earn money for successful deliveries. The money can then be used to build a more efficient infrastructure. OpenTTD supports multiplayer games of up to 255 people split between fifteen different transport companies, all in direct competition with one another. The game also supports a large and active user-base, resulting in a wide variety of mods being available.
12. Secret Maryo Chronicles
It’s no “secret” as to what classic game Secret Maryo Chronicles gets its inspiration from. Rest assured, this isn’t simply a half-baked rip-off. Secret Maryo Chronicles has been championed by many as a solid platform loaded with challenging puzzles. If you’ve been dying to take a trip down memory lane via a big green pipe, look no further.
It’s a plot that we’ve all heard before: Aliens are invading, and it’s up to you to annihilate them all. With impressive visuals, AstroMenace is an arcade-style shooter that really tests a player’s hand-eye coordination. Players will have to navigate the frontier of space while repelling hordes of enemy spaceships. Enemy units boast unique attacks and serious firepower, requiring players to be on their toes at all times. Weapon and ship upgrades become available throughout the game, and trust us when we say that you’ll need them to succeed in your mission.
What are your favorite free games to play on Linux? Let us know in the comments!
This article was first published in March 2017 and was updated in February 2018.