13 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

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.

Construct 3

Free trial is feature limited – classroom use requires paid license; paid Full Version; Windows

Construct is an HTML5-based 2D game editor that runs in a browser. Game logic can be built using an event system or with javascript code.

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 which are available for free or 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!

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 license) assets. Teams need to keep a log of where they acquire resources from and bring it to the main event. Note that any assets that are purchased or privately created and provided by individuals not on the team are not allowed.

OpenGameArt.org

This site provides lots of assets ranging from 2D/3D assets, to music, to sound effects. All of the assets are released under various open source licenses.

thenounproject.com

Icons and graphics that are available under open licenses.

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.