14 Years!

Resources

Extra Credits is a great resource for learning about game development

This is a list of resources OGPC recommends. If you are an experienced game developer, you may already have favorite tools and resources, but it is worth a quick scan to see if there is something you hadn’t heard of. If you are new to making games, these resources should help you get up and running. There are more useful tools and sites than we can possible catalog, and there are always new tools being created, so teams are also encouraged to do additional research before making any decisions about what tools and resources to use.



Game Engines

Many teams at OGPC (especially those starting out) rely on a tool that is designed to help speed up game development. While experienced programmers may enjoy the challenge and experience of coding a game from scratch, it is not an easy task. Even professionals often rely on a game engine that handles many of the low-level details of running the game, freeing them up to focus on implementing the mechanics of their particular game.

2D vs 3D

Everything about developing a 2D game tends to be easier. From the art to the coding to the level design, there is just less to worry about. First time teams are STRONGLY recommended to make a 2D game before trying to move on to 3D.

Basic Engines – Drag and Drop Coding

Construct 3

Free trial is feature limited – classroom use requires paid license; paid Full Version; Windows/Mac/Linux/iOS/Android/ChromeOS

Construct is an HTML5-based 2D game editor that runs in a browser. Because it is browser-based, it can be used to edit games on any platform with a browser. Game logic can be built using a visual editing system or with javascript code.

Due to generous support from Scirra, the makers of Construct, OGPC is able to provide teams with licenses to use the full version of Construct 3 for the season! Please see the season 14 page for details.

Stencyl

Free for personal use – classroom use requires paid license; paid version to target desktop or mobile; Windows/Mac/Linux

Stencyl allows students to start to make a game with minimal programming by using predefined behaviors – first-time designers can just tell an object “you obey gravity” and it will start behaving according to prebuilt rules. Thus, if what a team wants to do is already supported by built-in behaviors, they will likely get farther faster. There is, however, a significant difficulty jump if custom behaviors are necessary. Code can be customized with either a drag and drop syntax that looks a lot like that of Scratch, or a text-based programming language.

GameMaker Studio

Paid; Windows/Mac

GameMaker Studio is a popular tool for making 2D games. New programmers can use the visual scripting system to start programming a game without writing code while experienced programmers can go under the hood to use the written scripting language.

Exporting a project to a web playable version requires a paid upgrade.

Scratch

Free Web-based (any platform)

Scratch is designed to teach the basics of programming logic and problem solving using drag and drop coding. Although it can be used to create games, it was not designed for this purpose and thus there are some significant limitations (screen is a fixed size, projects can only be played on the web, et cetera) and some things that are “built-in” to more game-focused tools, need to be coded manually in Scratch. 

Advanced Engines

Unity

Free Windows/Mac/Linux

Unity is a popular commercial/indie development environment and also popular among OGPC teams making the jump to 3D (though it can also be used for 2D). The Unity community is quite large and more experienced teams can find lots of help on their forums. Unity is programmed using JavaScript or C# and games can be exported to a variety of platforms.

Godot

Free Windows/Mac/Linux

Godot is an Open Source game engine for 2D and 3D games that allows for coding in a visual scripting system or C#. Although it doesn’t have all the features of Unity, its 2D engine has a reputation for being easier to use than Unity’s 2D system.

Unreal Engine/Cry Engine/Source Engine

There are many other professional game engines that are available for free or at a reasonable cost. Often, programmers will need to know languages such as C/C++ and teams will need to have a very good grasp on programming and game design to make effective use of these tools.

Game Design

Learning how to design a game is just as critical in OGPC as learning to use the tools that can help realize a design. Teams need to learn how to set goals that are manageable and design games in terms of their most important feature – player interaction. Here are some resources to help:

OGPC GameStorming

A card game where you brainstorm about game design! Check it out here.

Extra Credits

Hands down, one of the best resources out there for learning about designing games is the web series Extra Credits. They have 12+ seasons of episodes that cover a wide range of topics. This playlist contains some of the videos that we think provide the most bang for the buck for beginning designers. The first 4 videos especially should be considered mandatory viewing!

Game Maker’s Toolkit

A Youtube channel that focuses on deconstructing games to figure out what makes then work (or not).

OGPC Game Development Videos

Follow Adam and Gabriel as they go from brainstorming and planning to designing and prototyping, and finally to creating an entry for OGPC.
Crafting a Game series

Programming

There are an increasing number of “learn to code” websites. Many of them offer high quality, interactive tutorials in a particular programming language. Also, most programming languages have web based communities which provide tutorials and support. We cannot possibly list all the resources, and chances are, if teams are thinking about programming a game from scratch, they already know of some resources. But here are a few good ones for teams looking to start learning how to program.

code.org

Code.org is an organization dedicated to exposing more students to coding. The code.org studio provides self-paced lessons that teach the basic logic of programming (often using game-like problems). It is a great place for teams with no programming experience to learn the basic skills they will need to code a game. It uses a block-based visual programming language that transfers well to tools like Scratch and Stencyl.

Kahn Academy

Khan Academy has a well-done series of interactive programming lessons taht focus on Javascript. For students looking to learn text based programming, this is a great place to start. 

Javascript can be used directly in some game engines. But even if your tool uses another programming language, most of the concepts you learn in Javascript will translate directly to whatever language you are using.

YouTube

Whatever tools you are using, you can probably find tutorials on YouTube. 

StackOverflow.com

The Stack Exchange network has a great many communities for a great many tools and environments. Stack Overflow specifically is a great way for programmers to find other programmers asking the same questions and to ask questions and get personalized responses. If a programmer is having difficulty with a task, this is the place to look!

Story

Looking for a way to organize your ideas about characters and the world they inhabit? If you have outgrown a google doc, check out Zim.

Art

Sprites, music, animations, and textures are the essential ingredients that turn a vision into reality for the player. Here are a few resources to get teams started:

Piskel

A handy simple sprite editor specialized for making the kind of graphics used in 2D games. It makes creating animated sprites much easier than traditional painting programs. It is browser based, so students can work on any computer and save work to the cloud until they are ready to export it to work with locally.

InkScape

Windows/Mac/Linux

InkScape is a free, open-source vector graphics tool. Vector graphics allow images to be defined as a set of shapes defined by curves. While less intuitive than “painting” a bitmap, creating art this way allows it to be resized without becoming distorted. Not all game engines support the vector format, but images can be exported to JPG/PNG as needed.

Krita

Windows/Mac/Linux

A free and open-source painting program. Painting software is most commonly used for concept art and textures, but may be useful for other purposes depending on the art style of your game.

Blender

Windows/Mac/Linux A free and open-source 3D modeling, animation, and rendering engine.

Learning to use it will take some time, but it is capable of producing professional results.

Sound Tools

JSFXR

JSFXR is a web-based tool that allows teams to generate basic sound effects. It has preset categories like “pickup” and “jump” and simple customization of sounds via sliders. With many sliders and options, teams have a huge amount of control over the sound being generated.

Audacity

Audacity is a free, multitrack audio editor and recorder for Window/Mac/Linux . If teams need to record sound effects, change audio formats, or layer multiple sounds together, Audacity is the tool to use.

AudioTool.com

AudioTool.com is a free web-based tool for composing, mixing, and sequencing sound and music. It supports MIDI input, a variety of instruments, and a visualizer/spectrum analyzer.

Premade Assets

We strongly encourage teams to create their own art and sounds but this may not always be possible. In the event that a team cannot make their own assets, teams can use publicly available, free, properly licensed (creative commons or other open licensed) assets. Teams need to keep a log of where they acquire resources from and include that in their documentation.

Teams are NOT allowed to use assets that are purchased or created and provided by individuals that are not on the team.

OpenGameArt.org

This site provides lots of assets including 2D/3D art, music, and sound effects. All of the assets are released under various open-source licenses.

thenounproject.com

Icons and graphics that are available under open licenses. (They generally require attribution – make sure to document who created each of the assets!)

kenney.nl

A website with creative commons assets packs for games. The graphics packs are available for free, but it is permissible to donate to kenney.nl if you use assets from the site.

FreeSound.org

A large and ever-expanding list of sounds and music licensed under Creative Commons licenses. Sounds and music could be professional or amateur but will always be free. Sounds come in a variety of file formats to fit teams’ needs.

Video Recording

As part of their submission, teams need to produce two videos. Here are some recommended tools for recording and editing those.

Windows Game Bar

Windows Game Bar is built into Windows 10 and can record footage of your project.

Mac Screen Recording Tool

On a Mac you can record video of your screen using this built-in tool.

Screencastify for Chrome

On any platform with the Chrome browser, you can use screencastify to record video. (Up to 5 minutes at a time with the free version).

Open Broadcaster Software

A more powerful (and complex option) is Open Broadcaster Software – a free tool available for both PC and Mac. Here is a tutorial for it: OBS YouTube Tutorial.

Video Editing

Adobe Spark

Adobe Spark is a free tool for editing simple videos. It runs on the web and can be used from any platform. Use the Slideshow template to make a project that you can export as a video. You can then mix together footage that you have recorded, as well as add title screens, narration, and effects.

Advanced tools

Teams that want to dive deeper into video editing can check out either: iMovie for Macs or Lightworks for PC.