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 concrete decisions about what resources to use.
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. (Video: How Game Engines Work!)
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 advised to tackle a 2D game.
Free for personal – classroom use requires paid class license; paid version for other targets; 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.
Free feature limited; paid full version; Windows
GameMaker Studio is a popular tool for making 2D games. There is a free version that limits the number of different objects you can have in a game. The full paid version of the program provides unlimited resources. 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.
Free feature limited; paid Full Version; Windows
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 signigicant 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. On the plus side, there are many examples to look at, code is very easy to examine, and curriculum/videos are easy to find and have lots of information.
As mentioned earlier, 3D games in general represent a significant amount of additional work. Teams should probably have some 2D games under their belt before taking on a 3D project.
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.
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:
A card game where you brainstorm about game design! Check it out here.
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!
HTML 5 Game Development
HTML5 is a great choice for cross-platform game development where games run and perform the same virtually everywhere. Game development using HTML5 reduces development time for multiple platforms and makes the gaming experience consistent across different mobile and desktop platforms like iOS, Android, Windows, and Chromebooks.
Game development using HTML5 (open source Phaser framework)
OGPC Sample 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 this year’s OGPC challenge.
Crafting a Game series
Villanova University Resource List
A variety of articles, tutorials, and related resources for getting started with programming and game design.
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 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.
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!
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:
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. http://www.piskelapp.com/
Windows Paint.net is a significant step up from MS Paint (and probably from whatever image editor is built into a team’s game engine of choice). It supports features like layers and advanced selection and editing tools, but is much simpler than Photoshop or Gimp.
Note: Paint.NET can be found at http://www.getpaint.net.
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.
Note: Not all game engines support the vector format, but images can be exported to JPG/PNG as needed.
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.
Find a list of some great open source art tools here.
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 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 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.
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. Note that “google search” is NOT a valid source.
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.
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.