top of page

How To Start Developing Video Games

Updated: Oct 27, 2020

Gaming is big business from e-sports to cloud gaming. Microsoft bought Mojang, makers of Minecraft, for 2.5 billion in 2014. This summer, Sony invested $250 million in Epic Games, creators of Fortnite. As Election Day approaches, the Biden Campaign recently launched new headquarters in the popular video game "Animal Crossing: New Horizon," where players can visit an island called Biden HQ and learn about his campaign. It doesn't get more exciting than video games, so who wouldn't want to develop them as a hobby or career?


Video games are developed using a variety of game engines and languages, such as C++, C#, GameMaker, Godot, Unity, and Unreal. Development may also involve graphics and design, using tools such as Blender and Illustrator. At My Coding Place, our Game Development track begins with Scratch followed by GameMaker, Unity, and Unreal. In our Digital Arts track, we introduce Photo Editing, Motion Graphics, and 3D Modeling.


While many of our instructors play video games as a hobby, our instructor who was a professional gamer departed earlier this year to continue his coaching career. As a result, we recently welcomed a seasoned game developer to our team, whose game credits include Tony Hawk, The Simpsons Game, and Terminator Dark Fate. Reasons to learn from our current Game Development instructor, include reasons to learn to code and learn digital art, combined with an interest and desire to contribute to the exciting world of video game development.


The Value of Coding


Knowing how to program is essential for developing games, and the skill will translate to many other disciplines even if video game development doesn't work out as a career. According to Juni Learning in their recent article 8 Reasons Coding For Kids Is Not A Fad, coding teaches computational thinking and is good for the brain. Coding teaches students how to do the following:

  • effectively break down problems into manageable parts

  • observe patterns in data

  • identify how these patterns are generated

  • develop the step-by-step instructions for solving those problems

This leads to better performance on cognitive tasks, "because coding activates areas of the brain that are associated with memory, attention, and logic," states the article.


Coding is great for children and adults because it stimulates critical thinking and helps improve performance on cognitive tasks. There are many resources for learning to code which we have examined in previous articles. Once basic skills are learned, building video games is a desirable outcome that many of our students express when we ask them what types of projects they are interested in coding.


Types of Coding For Video Games


While people can code games on their own, except for very simple mobile games, video game development requires a large team. On the creative side, game development companies need writers and artists. On the tech side, they need programmers, QA testers, and engineers. Video game development is a business, so companies also need marketers, accountants, and managers. Many people who aspire to become game developers, however, are interested in careers in programming. Skills in writing, character design, art, and animation are helpful too, and we will explore the artistic aspects in a future post.


Because modern video games include a lot of elements (online gameplay, 3D graphics, custom digital sound, custom game physics, AI, etc.), video game developers have to solve some pretty challenging computer science problems. They often specialize in specific areas of the software development process such as the following:

  • Gameplay programmers help develop a game's overall feel, and may work on audio and graphics

  • UI programmers build and maintain user interfaces

  • Game engine programmers work on both graphics and simulated physics

  • Physics engine programmers determine and program the simulated physics in games

  • Graphics engine programmers design and troubleshoot 3D graphic renderers for both 2D and 3D games

  • AI programmers design and develop the technology that allows NPCs in games to behave in a lifelike way

  • Network programmers write the code that lets players in different locations play together online

  • Audio programmers build sound engines for games

  • Input programmers develop the code that lets peripherals control gameplay

  • Porting programmers do what's necessary to make games created for one platform playable on other platforms

There are also video game programmers who specialize in creating games for specific platforms or creating certain types of games (e.g., action/adventure games or puzzles).


We listed the types of programming required for game development to illustrate the depth and breadth of skills used and aspects involved for developers in the field. To get started, a developer should lay the foundation for their game by selecting a genre and platform and documenting the design and features. Once they have an idea of what they want to build, learning to code will be the most time-intensive part.


We recommend starting with block coding languages like Scratch, then proceeding to game development platforms like GameMaker, Unity, and Unreal. In a future post, we will discuss the value of learning digital art to complement video game programming, among other applications of coding.


Summary


In summary, game development is just one area in which coding skills are paramount for success. Learning to code is not a fad and will benefit students in numerous ways, from nurturing critical thinking skills to improving memory and attention. Naturally, the desire to build video games appeals to many programmers as a relevant and engaging way to apply their skills. Furthermore, there are many aspects of programming to learn and apply in game development such as physics, audio, graphics, and AI programming. To that end, there are YouTube videos, college courses, websites, and books on coding and learning to build video games. If you need help, reach out to us at hello@mycodingplace.com!



bottom of page