Open game development: Jams and tools

How to Game Jam

Plus, a few favorite open source tools for game development.

How to start a game jam
Image by : 

opensource.com

x

Get the newsletter

Join the 85,000 open source advocates who receive our giveaway alerts and article roundups.

At the All Things Open 2017 conference, Michael Clayton and I gave a talk about game jams and open source development tools. Here's an overview of our presentation.

First, there are many reasons developers love creating games. Here are four great ones:

  1. It includes many disciplines, both creative and technical.
  2. It offers a tangible, shareable result.
  3. It is symbiotic to work.
  4. It's fun!

How can you get started in game development? You could simply write a game, but that might be intimidating, so it can be hard to know where to begin. "Game jams" are a great way to get started, let me explain how.

What is a game jam?

A game jam is an event where participants create a game under constraints, such as a limited period of time or a theme.

We recently completed our first Open Jam, a game jam designed with using open source tools and programs in mind, with Opensource.com. Many people who had never attended a game jam participated, and we plan to repeat Open Jam every fall.

Our inspiration for the game jam came from Ludum Dare, one of the world's largest and longest-running game jam events. Every four months, creators are challenged to make a game from scratch in a weekend. Participants choose one of two categories: the Jam (easy mode) or the Compo (hard mode). In April 2017, 2,944 games were submitted for Ludum Dare 38. Some high-placing Ludum Dare games go on to be commercially successful.

Why game jams?

Here are a few examples of how game jams help game developers learn:

  1. They include constraints: Sometimes it’s easier to be creative when you are working within some constraints. Game jams provide a time limit and a theme.
  2. They require teamwork: Team game jams are a great way to use your skills to make a game with others. You don’t need to be a coder, for example—you could be an artist, a musician, or just about anything when you're working on a team with programmers.
  3. They require planning and prioritization: Time limits keep your game scope in check so you can focus on making something simple in a short amount of time.
  4. They cure perfectionism: In game jams, you don’t have time to make sure every single pixel is just right.
  5. They provide feedback: Finding players can be a challenge for game developers, but at a game jam you have a vast, eager audience who will play, rate, and give you feedback.
  6. They offer friendly competition: Competition can spur motivation, but the main reward is your game.

How to jam with open source tools

Anyone can jump into a game jam, regardless of experience, but it helps to have an idea of which tools you plan to use and get familiar with them first. Here are some of our favorite open source tools for game development in the categories of engines, graphics, audio, and multiplayer.

Engines

Godot is one of the fastest-growing free and open source game engines available today. It provides a full development environment and supports both 2D and 3D. (gdscript, C++, C# coming soon)

Phaser.js is one of the best 2D HTM5 game engines and is my personal favorite. It provides a Get Example page to help you get started.

From the LÖVE website: “LÖVE is an *awesome* framework you can use to make 2D games in Lua. It's free, open-source, and works on Windows, Mac OS X, Linux, Android, and iOS.”

 

Graphics

Blender is very popular open source 3D modeling tool. It is great for making 3D models, textures for games, and even entire games.

Gimp is the most widely used free, open source image editor. It’s like an old friend; it’s been around for a long time and you can always rely on it when you need to create or edit an image. It’s great for creating 2D game assets.

If you need vector graphics, reach for Inkscape. It's also a great choice for svg images that scale well.

Piskel is a terrific web-based sprite-sheet editor. It’s also free and open source. It’s great for making quick sprite animations.

Three.js is a JavaScript library for rendering 3D scenes right in your browser, without plugins. It uses WebGL and is natively supported by all modern web browsers. It’s great for creating web-based 3D games. You can also import models from Blender.

Babylon.js is similar to Three.js in that it is a JavaScript library for WebGL, but it also includes handy features like physics and collision detection.

Audio

Audacity has been the go-to open source sound editing application for years. It is a great tool for creating and editing audio for your games.

BeepBox is a super cool browser-based tool used to create and share chiptune melodies.

A top feature of BeepBox: You can create a great-sounding tunes in just a few minutes with almost no effort—perfect for game jams!

Sfxr is a handy sound effects randomizer, which was created for Ludum Dare 10 and is now part of the default package Fedora Linux distribution. It’s perfect for when you need to quickly synthesize sound effects.

Howler.js is an excellent audio library for the web. It is our go-to library when we need to add audio to browser-based games.

Multiplayer

WebSocket Is a great protocol for adding multiplayer to your games. It has many different server implementations in many different technology stacks, including Node.js, Python, C++, and Java.

Socket.io is a real-time messaging framework for Node.js. Its intuitive API makes it the easiest way to quickly set up multiplayer for a web-based game.

The tools described above represent just a small selection of open source tools available for game creation. We chose these tools based on their popularity and our own preferences, but there are many more excellent tools for all categories of game development. For a comprehensive list of free and open source game development tools organized by category, check out the Awesome-Gamedev list. You might also want to check out Scripta Games and Open Jam.

Pick a jam

Once you have your tools and are ready to join a game jam, here's how to find one: IndieGameJams.com is an independent calendar that lists almost every game jam coming up. Itch.io/jams offers an excellent system for hosting and participating in game jams right on the site; it's the resource that OpenJam uses. Ludum Dare happens three times every year; find out when the next one is scheduled at ldjam.com

itch.io_.png

Itch.io online game jam list

Game jam list on Itch.io

Join a team

Many game jams allow teams to work together. I recommend small teams with no more than four participants (two or three is ideal). The best way to form a team is through local meetups with friends, but another option is crowdforge.io/jams, an excellent website specifically designed to help game jammers find, create, and join teams.

With your toolkit in hand and a game jam in sight, you’re ready to start your game dev journey. Just be aware that when you finish your first game and see the smile on a player's face, you'll be hooked.

Topics

About the author

Jared Sprague - Jared Sprague is a Principal Software Engineer at Red Hat. He leads the Red Hat Customer Portal DevOps and Site Reliability Program. Outside of Red Hat, he is a Co-Founder of a game company Scripta, Inc. He also cuts gemstones as a hobby, and contributes to various Open Source projects. He lives in Raleigh NC with his wife, two...