So, you have an idea for a game you want to make. You want to bring it to life. And you’ve decided on hiring a freelancer developer. You know that, in order for the project to be finished, you’ll need to bring a game coder on board to write the code.
In this article, I’ll go over seven suggestions you can use when looking for a coder, and how to help your game coder help you complete your game.
But before I get into those seven tips, let’s figure out: what is a game programmer?
This is the person who creates the functionality of the game to make it work. They write the code that allows the game to do everything from displaying characters and objects on the screen, moving them around, playing music and sound effects, presenting messages to the player, or allowing the game to handle keyboard, mouse, or touch, among many other things. The programmer is the one who makes the game do things. They often are the glue, combining the work and talents of the artist, music, and game designer, into fully functional game to be played and enjoyed by (millions of?) people.
Note that the game programmer, or coder, is different from the game designer. The designer is the person who comes up with the concept and idea for the game. The designer focuses on what the game is about, its theme, how the graphics should look, what type of sounds, and how it should respond to what the player does. The designer and programmer often work together, with the designer sending specifications over to the programmer as to how these various aspects of the game should function.
This article is not about game design, but you can check this out for more information on it. Instead, it’ll focuses on helping you hire a programmer to help you with your game, and to help ensure that you and the programmer are a good fit for each other. This article will also cover, on a high level, some explanations the more technical aspects of building a game. Don’t worry, you won’t get overwhelmed with any code here. (:
The topics up for discussion are:
- Be clear about the kind of game you want
- Make sure your programmer is qualified
- Make sure your programmer is interested
- Know which platforms on which you want to release your game
- Have graphics ready
- Managing your project
- Budget and project scope
Let’s get started, shall we? (:
1 – Be Clear About The Kind Of Game You Want
While you don’t need a hefty game design document to build a small game, you should still have a good idea about the kind of game you want to build will really help your programmer out. Having lighter documentation to help your programmer out will go a long way.
More often than not, programmers are not the best game designers. More often than not, their game design skills suck balls. That said, keep these three points in mind when looking for a programmer:
- a) Don’t rely on your programmer to come up with the game idea
- b) Decide on which graphics to use
- c) What type of experience should the game present to the player?
Let’s go over these three points:
a) Don’t rely on your programmer to come up with the game idea
It’s up to you to provide your programmer with clear details about what your game is about and how it should function. Your programmer can’t read your mind. If you have a very industry-specific game (for example you’re in the casino gaming industry), don’t assume or in some cases, expect, your programmer to be familiar with all the lingo and rules of the game you are creating.
You may find that you need to break down the rules. Teaching a skill to others is often considered one of the best way to learn something, as this can reveal potential gotchas in your own logic of the game’s design. (Or your programmer may ask you a “what if this happened in the game?” type of question that reveal something you hadn’t considered.) Although you understand the game’s rules effortlessly, breaking them down into steps to be implemented into a game can prove to be a bit of a challenge, especially if you’re new to making games.
b) Decide on which graphics
There are two systems for graphics: 2D or 3D. There are programmers who make both, or who specialize in only one or the other. It would be of a great help to your programmer if you know which type of graphics you’re looking for.
Again, programmers are typically not the best ones for this task. You’ll really want to bring in an artist for this. A few sources where you can find talented artists on freelance sites like Upwork or Fiverr .
c) What type of experience should the game present to the player?
What kind of game are you making? Is it an action or arcade game? Something more casual like a puzzle? An educational game? Or maybe a card game like Thunderjack! ? Sorry, couldn’t resist. (:
How many players are in your game? Is it a single-player, meaning, only one player plays your game? Or is it multi-player, meaning several people can play your game all at once, interacting with each other, in real-time? Very important for your programmer to know, because a multi-player game is much more difficult to develop than a single-player one, takes longer, costs more, and not not all programmers specialize in multi-player game development.
What is the aim of your game? Think about the reasons why you play games, and what draws you to play certain ones over others.
2 – Make Sure Your Programmer Is Qualified
This one goes without saying, but you want to make sure your programmer can do the job that you’re hiring him or her for: to write the code for your game. With freelance sites like Upwork, you can look up the skills that various programmer have, jobs they’ve done in the past, and even their portfolio if they have one (they should, unless they’re just starting out). If you already know which technology platform (which we’ll cover later in this article) or programming language, you can ask for samples specific to those areas.
You want to make sure they are a FINISHER. That they can stick with the project until it is finished, and won’t abandon midway through. You can ask them for games that they’ve finished. If you have good social skills and are adapt at reading people through their voice, you can get them on the phone for a voice call. You can listen to how they talk and see if they sound confident.
Make sure your programmer is a team player. Many programmers realize that they are the “glue” behind a game project, and they let that go to their heads. You want someone who communicates with other team players respectfully, asks for help when they need it, and are willing to help others on the team.
3 – Make Sure Your Programmer Is Interested
In addition to a qualified programmer, you want to have a programmer who takes a genuine interest in what you’re trying to accomplish, and is not in it just for the money.
Someone who enjoys the work they’re doing will more often go an extra mile to improve the qualify of the game.
You can always view a programmer’s past projects to get a feel for what they’ve made. Especially for freelancers, who have more control over the type of work that take on. If you see that a programmer makes lots of retro arcade like games for web, and you present them a simple 2D casual puzzle game, or a hyper-casual game that runs on mobile, they may not be interested. Of course, it never hurts to ask. 😉
4 – Know Which Platforms On Which You Want To Release Your Game
There are many platforms on which you can release your game. What I mean the by “platform” is the technology or device(s) on which your game will run. We’ll be talking about these four major platforms:
- Web browser
- Mobile
- Desktop/PC
- Console
Not all programmers will specialize in these platforms. On a side note, I recommend starting with one platform, and if your game is successful and applicable, then you can target other platforms.
You may find one platform to suit your needs over others. I’ll go over some pros and cons of each one.
Web browser
Your game runs in a web browser. If you’re going this route, this is often the easiest for players to get started with your game, because there is nothing for them to download and install. Popular web browsers ones include Mozilla Firefox, Google Chrome, and Safari.
Games that run in the web browser are often made using HTML5, and a common library that your programmer may use for this is Phaser. Phaser is by no means the only one out there, but it’s my library of choice for HTML5 games. Phaser makes it easy to get a some simple graphics up and running on the screen.
Pros of a web browser game
Instantly available: The biggest pro of a web browser game, in my opinion, is ease of access. You can appeal to people’s need of instant gratification by providing them with a game they don’t need to install; they can begin playing right away. There are basically three technologies that your game can run on when in a web browser: HTML5 Canvas, OpenGL WebGL, or SVG, with the first two being the more popular.
Easier requirements: Because the game runs in a browser, all your player needs is just that: a web browser. The hardware requirements of a browser are less that those of a PC.
Cons of a web browser game
Performance This can be a double-edged sword, especially if you’re planning to build your game for web mobile, it may take a performance hit.
I won’t go deep into details, but while WebGL is more powerful than Canvas. While WebGL often works great on PCs, it has minimal support on mobile. Many devices don’t support WebGL at all. On the other hand, Canvas has a wider range of support, including mobile, but performance on mobile isn’t nearly as good as on PCs. If you want to build a mobile game, I’d suggest making a native mobile app, and putting it on the Google Play Store (for Android) and/or the App Store (for iOS). A native mobile game app can perform on a mobile device much better than a hybrid web game mobile app.
This post on Game Development Stack Exchange sums it up nicely in layman’s terms.
There is also Adobe *cough*Flash*cough*, which was the ABSOLUTE KING back in the 2000s. Was being the key word. You see, but unfortunately, Adobe is ending support for Flash by end of 2020. So, sadly, I’d no longer consider Flash an option (though I’ve made over 50 Flash games for clients, and had two of my own games sponsored back when Flash game sponsorships were a thing! ^_^ ).
Mobile
With mobile internet traffic occupying almost half of the world’s global online traffic as of 2018 (approximately 48.2%), mobile has become a very popular choice for game developers. According a report by Sensor Tower, in 2016, 20,958 games apps were released in MAY ALONE, and stats like these don’t seem to be slowing down anytime soon.
Before I go any further, let me define what I consider “mobile” here. There are two big players: Android (made by Google), and iOS (made by Apple). And there are also phones and tablets. So, when I say “mobile”, I’m talking about these:
- Android phone
- Android tablet
- iOS phone
- iOS tablet
You should have an idea of which mobile platform you want to support, which orientation, and if your game will be for phones and/or tablets. Don’t just tell your programmer (or your designer for that matter), “I want to make a mobile game”. You’ll need to be a little more specific than that. 😉
That said, let’s get into the pros and cons of mobile.
Pros of a mobile game
Exposure: With everyone on their phones now, game developers left and right are jumping on the mobile bandwagon, and have been for years. With it’s relatively low barrier to entry (much more so for Android than iOS in my opinion), and game dev tools now offering cross-platform support, it doesn’t take much to get an app up and running on a mobile device.
Cons of a mobile game
Oversaturation: The mobile market is extremely saturated, and can be very hard to stand out among all the noise. You have to have a very good game to stand out.
Different screen sizes and orientations: You see, with mobile, there are lots of devices with different screen sizes. This is typically not a problem on web games, and to a lesser degree, not a problem on PCs. However, you can’t just make a mobile game and expect it to look the same across all mobile devices, unless you’re targeting a very type of device, which is usually not the case.
Here’s an image of what the two orientations look like:
In addition to various screen sizes, you can hold your phone or tablet on of two ways: portrait (the tall way, much like a phone); or landscape (the wide way, much like a wide screen TV). You may have noticed that many apps will only display in one orientation or the other. But, if your game should support both, then you’ll need to have your designer build separate layouts for each. Sometimes, this can mean re-locating various elements on the screen, or removing them altogether. In my opinion, it’s best to support only one orientation or the other for the entire game session.
You may find that, especially on phones, your user interface is very tiny and hard to see, or buttons may be hard to press. Also, you may find white space along the left and right sides, or top and bottom of your app, or even worse, essential parts of the game screen are cut out of view on some devices (but look find on others).
To rectify this and make the most of your screen real estate, you may have to build what’s called a responsive layout, which is one that adapts to the screen size of whatever device the app’s running one. This is because devices have different aspect ratios, and some can show more content length-wise or width-wise than others.
While a good programmer should understand these terms, and also be working with either you or a designer to decide how the game’s visual elements will fit into the game.
Fragmentation: As it pertains to mobile, fragmentation is the concept of having multiple versions of a mobile OS in service. People use various version of Android and iOS devices alike. While not as big a problem on iOS as it is on Android, this may or may not be an issue for your game.
What I mean is, certain features and functions of a particular OS may not be available on earlier versions of the OS. Also, not everyone has the latest and greatest version of Android, as older versions take up more of the market share than newer ones. While this exists on iOS as well, it’s not as widespread.
Getting into the mobile stores: Okay, okay, I did mention before that it doesn’t take much to get an app running on a device. However, getting the app into its corresponding app store (Google Play for Android, and the App Store for iOS) is another story, especially for iOS.
It’s a bit easier to get an Android app into Google Play. You do need a to sign up for a developer account, review the distribution rules and guidelines, and pay a $25 registration fee. But, if you want to build and test an game on an Android device, you can do this without setting up the account; the account is only required when you are ready to upload your app to the App Store. When testing the app, the programmer can simply forward you the APK (the file extension for Android apps) file, and you can sideload it onto your device.
However, with iOS, it’s not so simple.
You can’t even test or install the app on a device until you’ve set up an account on Apple’s Developer Program. And it costs $99/year. Yes, you heard right, it’s a recurring subscription. On top of that, in order to test the app, you’ll need to have a Mac OS to do this.
Note: The only way to upload your app even for testing is to use Xcode or Application Loader.
I’m a Windows guy; I don’t own a Mac, nor do I intend on buying one anytime soon. However, I’ve still managed to upload apps to the app store for clients by using a service called MacinCloud, which allows you remote access to an actual Mac OS in their cloud. Use of a Mac makes it waaaaay easier than trying to do it from Windows.
Because I use Adobe AIR to target iOS, not Xcode, I can use Application Loader to upload the IPS file (the file extension for an iOS app) to the App Store Connect, which from there, you can distribute the build to other team members to test, or submit to the app store for approval.
Finally, Apple’s submission process is, in my experience and opinion of course, a bit more strict than Android’s. It’s not uncommon for Apple to reject a submission for a myriad of reasons. Some, in fairness, could be simple oversights on your part, but other reasons are just plain ridiculous.
But hey, it’s their platform, they’re the gatekeepers, and if we want out games on iOS, we have to play by their rules, whether we like ’em or not.
Desktop / Personal Computer (PC)
Sometimes called “desktop”, but can include laptops as well, your game is designed to run as a stand alone application on a PC. If going this route, some operating systems to consider are Microsoft Windows, Mac OS, and Linux.
Pros of a desktop game
Distribution: You may end up putting your game on Steam, which is a distribution platform where you sell directly to the customer. Steam has made it relatively easy for developers to get their game onto their marketplace.
Performance: Nothing kills a game experience faster than a slow or laggy game. When compared to say, a web game, a game running as an app directly on a desktop machine will be able to take advantage of the computer’s hardware better than its web counterpart. A smoother, faster running game, will create a better experience for your player. But performance is one of those aspects that they typical gamer won’t notice when it’s there, but will notice when it’s not there.
Cons of a desktop game
High saturation: Again, with Steam, a low barrier to entry results in an over-flooded market. This means more competition for your game, especially considering much of the competition is from lower-quality games. You’d have to make a really good game, which again, is why good game design is so important.
Fragmentation: If you’re making a desktop game, fragmentation may be an issue. While cross-platform development is common nowadays, and there are tools like Unity to bride the gap, you may still encounter issues in the game that appear only on one operating system (or different versions of the same operating system), but not on others.
Distribution: Unless you have your own system for distributing your games, this may be a challenge for you. Steam seems to have become de facto standard for digital distribution of PC games.
However, there are other places you can distribute your game. If you’d like more, have a look at this article, Other Than Steam: 7 Game Distribution Alternatives. Some of them apply to mobile only, but there some that are suitable for PC game distribution.
Console
Like desktop, console game development is not my specialty, so I’ll briefly go over pros and cons of a console game here. Today’s console gaming systems (at the time of this article) include: PS4, Xbox One, Wii U, PS3, Wii, and the Xbox 360.
Pros of a console game
Exposure: Much like Steam, there is a potential for exposure as Microsoft, Sony, and Nintendo all have their own distribution platforms.
Cons of a console game
Development time and costs for a console game are much higher than those for web, PC or mobile. Unlike those, the barrier to entry is a bit higher as the top AAA companies have higher standards.
5 – Have Graphics Ready (or Coming)
Whew! Section 4 of knowing which platform you want to target was a big one, and if you went through all that, congrats on still reading this far! 💪🏿
If you really want a happy programmer on your hands, unless they have a talent and desire for creating the game’s art, do not, and I repeat, do not rely on him or her to create the art for your game.
This task belongs to the artist or graphic designer. He or she can create custom graphics and animations for your game. Everything from button images, to headers, banners, backgrounds, characters, dialog windows, and more. They’ll even have make better choices than the programmer on color schemes, and which fonts to use to fit the theme of the game.
It’s not uncommon for the programmer and the artist to work together while you can keep the project on track with proper management. If you’ve been clear about the type of game you want, and your team understands what kind of game you’re building, they can often complete milestones with little to no intervention on your part. You may not hear from them until an update is ready, though you should be touching base with them at least once or twice a week, just to keep everything on track.
6 – Managing Your Project
Other than you, if your team has other members besides just the programmer (and it really should!), do not depend on him/her to manage the project, and stay on track. If you want to get really savvy, you can use a project management tool. There are free ones, like Trello. If Trello isn’t your thing, there are several other free alternatives out there. Note that your programmer may or may not be familiar with them. I took time out to learn Trello, which I find to be very helpful with its Kanban-like functionality.
7 – Budget And Project Scope
This is the last topic I’ll cover in hiring a programmer. Budgeting can be a tricky one, but make no mistake, developing a game is not an inexpensive endeavor. A game can cost anywhere from $2000 (for a low-quality game) to tens of thousands of dollars (for ambitions games with several people working on a team).
The cost of the programmer could easily be the largest investment for your project. Programmers in the U.S., Australia can charge well over $50/hr for hourly projects, and your project can take months to complete. (Though price-per-project may be more common among experienced game programmers.) Please have a look at this article for cost of freelance mobile app developers, for example.
My advice is to not automatically go for the cheapest option. As the saying goes, “you get what you pay for”. Going for the cheapest option will likely not return you the best experience in building your game, and you may end up with a unqualified programmer, either in technical skill, soft skills, or work ethic.
About project scope: This is related to knowing what you want from your game. As your programmer sends your small, iterative game updates (he/she should!), you may want to start adding more features that weren’t originally discussed. Unless these can be worked into the current contract, and the budget adjusted, avoid doing this. In fact, I’d avoid this unless it’s absolutely necessary.
Now, this is different from correcting issues that may arise along the way, as issues will come up. But if you keep inundating your programmer with more changes every other update, or when the project is almost finished, and you decide at change a bunch of things at the eleventh hour, this will frustrate your programmer to no end.
Not only do they want to finish the game project, but often times, additional requests don’t always fit in well with the current game’s build. Meaning, they may have to tear down, and re-code various parts of the game to make your new changes work, because they weren’t in the original scope of work.
Feature creep has been the death of many gaming projects, and can easily kill off your project if you’re not careful.
Well, that’s about all I have on this topic, as I’ve covered quite a bit of what you should consider when hiring a game programmer. These are some general guidelines that you can follow. You don’t to have every single I dotted and T crossed, but a competent programmer can help you in some of these other areas. Just remember that their primary job is to write code, and if you keep that in mind you’ll be fine.
And finally, if you’re looking to hire a game programmer to help you build your next 2D, single-player game for web or Android, or if you have a specific 2D, single- or mulit-player card game you want to build, then you’ve come to the right place! Get in touch with me by e-mailing me directly at cartrell@gameplaycoder.com, or by contacting me here. Thanks!
– C. out.