I’m always blown away by GDC attendees’ passion for games - especially the students, recent graduates and indie developers there to network and break into the industry. I’ve heard more than a few people say that the most valuable thing about the GDC is the connections that they make; it’s these connections that help them find their dream jobs in professional game development.
I’d like to take a few moments of your time and tell you about another way to connect, get noticed and perhaps find your dream job.
Geting Noticed
In 2010 Jacob Minkoff delivered an inspiring talk about getting noticed, advising people how they could get their foot in the door. If you want a job in the games industry, stop what you’re doing right now and watch his talk.
Jacob suggests that you need to make game content if you want to get a job in the industry and recommends that you
- buy a game with an editor and start making levels
- make a tech demo or utility draw concept art, make models, textures, etc.
- compose music or re-foley an existing game
He goes on to say that you should share all of this on a web site. Sure, you could spend hours setting up a free/hosted Wordpress site, customize some free/premium themes and spend days making it look awesome, but what are you trying to accomplish?
You probably want to show off your beautifully written, thoroughly tested game code. You probably want people to to easily find and download your content. You probably want your game to go viral and make you Internet-famous for a day. You probably want a safe place to store your projects. You probably want a career in the games industry, want to collaborate and learn. Right? If the answer is “yes” to one or more of the above, please read on…
Share, Sell and Better Yourself with GitHub
Use GitHub and you will
- become a better developer
- learn about version control
- learn about code review
- learn how to collaborate on projects
- learn about change control
- learn how to submit bug fixes
- learn how easy it is to share your code and collaborate with other developers
A GitHub account will document all of your work and can serve as your portfolio / resume. Your contributions, collaborations and personal projects that you hosted on GitHub will help you get noticed.
Potential employers will see your work.
Game development companies like Blizzard, Zynga, and Unity use GitHub. A number of other companies use GitHub Enterprise internally. A GitHub profile will show a recruiter that you’re passionate about game development.
Getting Started
There are plenty of excellent resources on getting started with Git and GitHub. Once you’ve learned the basics, where do you go from there? In addition to sharing some of your own projects on GitHub, you could look at some open source games, libraries, frameworks, etc. and contribute by
- fixing a bug
- refactoring some code (e.g. for better readability/performance)
- adding some test coverage
- adding some documentation
- adding a map/level/thing
- cloning it and deriving your own work from it
You might even have someone add to your code or want to use bits of your game in their projects.
There are some great game projects on GitHub
Here are some game/game-related repositories I’ve found hosted on GitHub. I invite you to check them out.
Browser-based games
- BrowserQuest - an HTML5/JavaScript multiplayer game experiment. Play it now!
- Coil - HTML5 canvas game where you defeat enemies by wrapping enemies in your trail. Play now!
- Command & Conquer - clone of the popular RTS. Play it now!
- Digger - HTML5 version of a Boulderdash game. Play it now!
- Emberwind - HTML5 port of the indie platform game Emberwind. Play now!
- Lichess - High performance chess game built with PHP 5.3 and Symfony2. Play now!
- Onslaught Arena - fight off hordes of classic medieval monsters in this fast paced arcade shooter! Play now!
- Orbium - a modern version of the 90’s game Log!cal. Play now!
- Survivor - a playable HTML + CSS + JavaScript remake of a space-based “shoot-‘em-up” arcade game for Atari / Commodore 64 from 1982, including a level editor and design tool. Play now!
- The Killer - a flash/as3-based “nongame”. Play it now!
- Trigger Rally Online Edition - fast arcade rally racing. Play now!
Native Games
- Arx Fatalis - cross-platform port of Arx Fatalis, a first-person role-playing game.
- Canabalt - open source release of Canabalt for iOS.
- Doom - Doom Classic for iOS.
- Gorillas - An iPhone (or iPod touch) port of the popular old QBasic game.
- Wolfenstein 3D - Wolfenstein 3D for iOS Source Release.
- Dominion - a C# implementation of Dominion, a board/card game.
- Gish - open Source version of the award-winning physics platformer.
- Gorillas - An iPhone (or iPod touch) port of the popular old QBasic game.
- Wizznic - most awesome puzzle game.
Just The Source
- Aquaria - a breath-taking underwater fantasy game. Winner of the Grand Prize at the 2007 Independent Games Festival.
- Doom 3 - pew pew pew.
- ID Software - includes Doom, Quake, Wolfenstein and more!
- Prince of Persia - Prince of Persia!
Frameworks/Engines/Libraries
- Akihabara - a set of libraries, tools and presets to create pixelated indie-style 8/16-bit era games in Javascript.
- Chipmunk Physics - a simple, lightweight, fast and portable 2D rigid body physics library written in C.
- cocos2d for iphone - a framework for building 2D games, demos, and other graphical/interactive applications for iPod Touch, iPhone, iPad and Mac. It is based on the cocos2d design but instead of using python it, uses objective-c.
- EaselJS - a library to make working with the Canvas element easier.
- EntityJS - an HTML5 javascript game engine utlizing the entity-component design.
- Flashpunk - a free ActionScript 3 library designed for developing 2D Flash games.
- Flixel - an open source game-making library written entirely in ActionScript 3.
- GenesisEngine - GenesisEngine allows you to create and explore procedurally-generated planetary systems, from ground level all the way out into space. Experiments with procedurally-generated worlds, XNA, and design patterns.
- Plasma - Cyan Worlds’s Plasma game engine.
- Tesseract - make mapping more fun by using modern dynamic rendering techniques, sothat you can get instant feedback on lighting changes, not just geometry.
- Spring - an Open Source Real Time Strategy game engine.
Maps/Hacks/Plugins/Utilities/All of the Things™
- Halo::Reach::API - Ruby gem for interacting with the Halo:Reach API.
- Leaderboard (Ruby) - Leaderboards backed by Redis (in Ruby). PHP, Python, Java and Scala versions also available.
- Tassadar - A Starcraft 2 replay parser written in pure Ruby.
- libfreenect - drivers and libraries for the Xbox Kinect device on Windows, Linux, and OS X.
- World of Warcraft Addons - too many to list!
- World of Warcraft API Docs - the public documentation for the RESTful web service provided as part of the World of Warcraft community site.
Thanks for listening
Have I missed any cool game-related projects on GitHub? Please feel free to fork and add your game to my games repository. Have you used any of these libraries in your games? Anything you want to share? Let me know! Send a tweet to @leereilly.