Want to be a better developer? Start making Games

Opherv
ekoEngineering
Published in
4 min readSep 9, 2019

If you have some coding skills, you might have already written a website, a desktop program, or an iOS app — which are all awesome. However, if you haven’t worked on a game before — you should go make one now.

Games are an entirely different beast. They force you to constantly be on your feet, try new things and experiment. It’s a field that will have you bashing your head against the wall for days trying to figure out how to fix a problem and challenge you in ways you did not think possible.

It may sound daunting — and it kind of is, but let me assure you, it’s nothing compared to the rush of excitement you get when someone else is playing your game and having fun.

Evolb — An open source HTML5 game of mine which aims to teach kids basic concepts in evolution

Level Up

Learning how to make games is a great way to advance your coding skills. I’m not talking about a crazy AAA title, you can start with something simple like a breakout clone or connect the dots to test the waters.

When making games, not only will you be working on something fun for you and others, depending on the level of complexity, you’ll be learning many valuable and useful skills along the way: self-learning, programming, design, storytelling, product planning, time management and much much more.

It doesn’t matter what you’re making. A side scroller platformer, an old school quest, a 3rd person shooter or an interactive narrative, all games have something in common — they’re the ultimate media experience, combining visuals, sound, input, narrative, storytelling and human psychology. No other form of media can claim to do the same.

Getting started isn’t even that hard, with so many resources online and communities of like-minded individuals to assist you. Some of my personal favorites are the Udemy Learn Unity 3D for Absolute Beginners course, a JavaScript tutorial by MDN and the Game Development community on StackExchange.

An old prototype of mine for a campy zombie survival game

Difficulty: Nightmare

Developing a game is like the Ironman Triathlon of the software engineering world. Why is it so hard though? Because games are a superset of all engineering challenges happening at the exact same time.

Since games are played in real time, every function, every feature, has to be as efficient as possible to be running without hiccups. Enemies and bullets are constantly being created and destroyed, so you’ll be wanting to read about Object Pools to avoid memory leaks and not provoke the hungry memory monster. Want to add physics to your game? You’ll need to tackle Collision Detection and figure out how to lower its complexity from (o²) to something manageable. AI makes your characters and enemies feel more alive, so you’ll want to catch up on that. You’ll also be learning about sound and graphics, and that’s just for single player games. Multiplayer games add another layer of complexity. Latency, lag, client prediction, entity interpolation, time zones — the list goes on.

The more you want to challenge yourself — the more you’ll learn.

A cool project I led in Eko: 1on1 with the Detroit Pistons

Save The Game

Technical difficulties aside, the real challenge in developing games is making them fun — and fun is a tricky thing to achieve. Make it too difficult and your game is frustrating, too easy and it becomes boring. How do you crack the code on fun? You tinker and experiment with coding, art, sound, design and any other game aspect you can think of until you find the magic combination that makes it fun.

As an amalgam of different backgrounds and professions, games require people of different skill sets to communicate and work closely with one another. These aren’t simply people with different jobs, each of them has different goals and constraints, uses different tools and sees things from a different perspective. You’ll need to learn how to communicate with all of them to bring it all together.

Games can fall flat for a multitude of reasons. Anything from bad code to graphics or sound can turn a fun game into meh. So it’s very much a team effort.

As you hone your skills and work on more complex projects, you’ll encounter producers, sound engineers, DevOps people, graphic designers, game designers (not the same thing, BTW), scriptwriters, product managers and other team members. Each of them thinking in different terms on different concepts and working on the same thing.

Telluric — A browser-based online experience

Accept The Quest

Now that you know the challenges and benefits of making games, grab a sketchpad, open your editor and bang in some code… Sure, it will be frustrating at times, but it’s also going to be challenging, enlightening and most importantly — fun!

Want to build something together?

Eko is always looking for cool people to join our team and create the tech for a new era of digital storytelling!

Check out our open positions.

Opher Vishnia is a lead creative developer at Eko, working with both creative teams (design, art, film) as well as development teams to push the envelope of interactive video, a new and exciting creative medium. In his spare time, he writes open source games that run in the browser.

--

--

Opherv
ekoEngineering

Designer, developer, musician and overall a pretty nice guy 🙃 made @lancegg_ 👾 creative dev @ekovideo 🎸 lead guitar at Tillian