For a lot of 9-to-5 developers, the idea of building a video game on their own often seems like a monumental task. Game developers need to consider art, animation, physics, math, input, rendering, shaders, and countless other things that probably seem like they are in no way relevant to the daily job of building websites, services, or business apps.
If you’re a developer who wants to get into games, you may think that there are big differences between game and app development. But it’s important to realize that the majority of the work in each type of development is similar. Day to day as a game programmer, you’re mostly just working in code, solving problems—that’s the same thing you do when you’re building business apps.
Learning how to develop games can help you in your career, by making you a better overall coder, or just by learning how to be flexible and adding new skills to your portfolio.
In this article, I’ll explain how game development differs from app development, describe how to get started making your own games, and provide some pieces of advice on what to watch out for when taking the leap.
The very basic building blocks of a HTML5 game are those of the web:
Similarly to what happens with HTML5, when people talk about CSS3 they usually refer to the new things that come with CSS’s latest specifications, but in an analog manner, CSS3 is simply the latest CSS. Ignoring for a second the semantics of these definitions and thinking of the hyped versions of these terms, we also may need, in order to make HTML5 games:
With the above you can make awesome games that will run on modern web browsers on mobile and desktop, but some games might require more features, so there are more building blocks that you can add.
If you want your games to saved data remotely you’ll need a server-side for your game. You can develop your own backend using any server-side language, you’ll need well a server in this case.
Or you can use a third-party Backend-as-a-Service provider. Some have free versions you can use and they’ll start charging you once you surpass certain limits. Some of these providers are particularly focused on games, some are mostly conceived for mobile apps but can be used for games too.
HTML5 game frameworks
Most games share some concepts, that of sprites (graphic elements that represent enemies, players, elements in your game), scenes or stages, animations, sound, loading graphic assets, etc. Since most game developers want to focus on their actual game and not in creating this whole abstraction layer, it is recommended you use a HTML5 game frameworks.
HTML5 game frameworks and libraries that contain building components you can use to create your own games. These libraries are Open Source projects created and maintained by people who want to contribute to the HTML5 gamedev environment. In many cases they created the frameworks for their own games, and after realizing that other people would want to not only use it but also contribute to it they released them as Open Source code, so everybody wins.
Picking what game engine to use is an important decision, so make sure you do proper research before making your choice. No matter what engine you pick, you will have to get familiar with its code and inner working if you want to use properly, so they shouldn’t be treated as black boxes.
What can help you make your choice:
- Is your game for desktop, mobile or both?
- Do they have an active community?
- Are there many people using the framework nowadays?
- Is it being maintained or the Github page looks like an abandoned town?
Sometimes looking at real games gives you more insight than just words. This project compares different engines by making the exact same Breakout game in all of them.
Some popular free frameworks are:
HTML5 gamedev challenges
- One Game a Month is one of the most active initiatives on the web for starting game developers. It consists on a pledge of making 1 game per month, no matter how basic or ugly. You make one game, you move on. It’s a great community and I recommend you check it out.
- j13k competition: Contest to make a HTML5 game of only 13 kb, quite a challenge! the 2013 competition is over but don’t miss out 2014’s!
My usual recommendation for anyone interested in getting started with game development is a lot like my recommendation for someone starting any other type of development: Start small.
Pick a simple mobile game that already exists. Then pick one that’s even simpler and recreate that through tutorials. There’s a lot to learn, and diving in with a huge project is a guaranteed way to get overwhelmed, lost, frustrated, and fail. So again, pick the simplest game you can possibly think of to start.
In fact, I usually recommend that people start off with something like Flappy Bird.
With the right tutorials and a little understanding of programming, you can build these little games in a day. Throughout the process, you’ll start learning your way around the editor, discovering new components, and realizing how little code is required (and you’ll pick up a little C# along the way).
And when you finish the games, you can build them to your phone and then share them with your friends and family. It’s easy!
One other skill you can practice through building games is how to develop something that switches between platforms. This skill is important because the more platforms your app is in, the more valuable your work.
In fact, one of the reasons I love Unity as a game engine so much is the ease of switching your target platform. You can build your game for Windows or Mac first, then simply select a new target device in the build settings and push your game or app right out with no changes or custom work.
I’ve used cross-platform tools like Xamarin before, and while they’re good, they don’t come anywhere near the ease of use you get with Unity. Simply select the new platform, hit “switch,” and build. Most of the time, it just works, with no changes. You can choose between all the mobile platforms, WebGL, Linux, Mac, Windows, Xbox, Playstation, and a whole lot more (around 30 platforms total).
Even if you’re not interested in games specifically, using a game engine for business apps is becoming more and more popular every year (especially really interactive/visual ones). Half of the Unity contract development work I do is for non-game applications, like visualizing data and locations, and building interactive displays for kiosks.
And being able to switch platforms and give the client a mobile version of their kiosk app always puts a smile on their face (and takes about 10 minutes).
Getting started in game development is easy. If you can code, you can develop games. It takes a few tools and some time, but it’s a useful skill, even for app developers.
Knowing how to develop games, even simple ones, can build your skill set. It can also provide a useful way to present business apps to your clients. You’ll be able to propose options with stunning interactive visuals, devices and platforms that wouldn’t normally be available, and a multitude of other impressive features.
So, if you’re ready to get started, or just want to dabble and see if it’s really as easy as I say, why don’t you try to build something today?
Pick a simple game to practice on, and don’t sweat the shiny stuff like art: Just get building.
Once you get that first build done, if you’re anything like me, you’ll be hooked … and perhaps make a career switch into the wonderful world of game development.
GameSalad is similar to GameMaker in that it allows you to make and publish games on several platforms, as well as having its own intuitive drag-and-drop interface that’s easy for anyone to use.
Most impressive is the behavior library which allows developers to implement complex behaviors that someone without coding knowledge would have a hard time executing if they had to use a computer language.
Thousands of games have already been made via GameSalad, and most of them have seen success in the mobile market. GameSalad Creator is currently available for free while a $300 PRO version offers some additional benefits.
Ready to learn more about game design? Check out NYFA’s Game Design School to begin your journey with the world’s most hands-on, intensive programs.