A Possible Skill Taxonomy for the Modern Game Developer

A Possible Skill Taxonomy for the Modern Game Developer

In the dynamic world of game development, knowing where to focus your efforts is crucial. This guide is divided into four categories, each outlining a different level of mastery required for various skills and tools in the industry.

Classification:

  • Master: These are non-negotiable proficiencies, demanding deep understanding and expertise.
  • Knowledgeable: Essential tools and techniques requiring proficiency beyond a beginner level.
  • Familiar: Areas where a foundational grasp suffices, one could almost call them optional, but not really.

Master

These are the skills you need to know inside out.

C++: Though not my personal favourite, C++ is indispensable in game development, particularly if you're building your own engine (which, by the way, is not recommended for beginners). It's the backbone of the Unreal Engine and mastering C++ means you’ll find other languages relatively puny.

One Scripting Language (Python or JavaScript): Essential for tool development, both Python and JavaScript offer flexibility and are widely used. They are your go-to languages for creating both web and desktop applications.

Unity 3D/Unreal/Godot: Choose one of these engines and delve deeply into it through an intensive course. The ones you don’t master, shift to the 'Knowledgeable' & ‘Familiar’ categories.

In general Godot is the least powerful of the three, but open source and free so with quite a low barrier of entry. Unity 3D is the most general use since it can export to pretty much all platforms, but using it involves accepting that you might owe Unity royalties for your work. Finally Unreal is the powerhouse of the three, particularly in the graphics department, highly recommended for those with more of a game design/artist inclination since they’ll be able to get a lot of out of it.

Git: The standard for version control in most of the software industry. The gaming sector also favours Perforce, but Git remains widely used enough that it’s worth mastering.

Knowledgeable

These skills require moderate proficiency.

C#: C# is a more user-friendly relative of C++, used predominantly in Unity 3D, and also available in Godot.

Unity 3D/Unreal/Godot: After mastering one of the previous engines, pick a second one to be knowledgeable in. So taking an introduction course on it ought to be enough. What you’re trying to get here is enough understanding to know what the engine can and cannot do.

Perforce: A popular version management tool in the gaming industry. Just do their official tutorial and jot it down in your CV.

Server Development: This includes setting up a basic web server, understanding HTTP requests, front-end development, databases, and hosting best practices. It's not just about building websites; it's crucial for multiplayer games, leaderboards, and online data storage.

Familiar

A basic understanding of these areas is sufficient.

Maya/Blender: Choose one and take a beginner's course. Understanding 3D animation software is beneficial as it shares similarities with game engines. Blender is recommended for its free and open-source nature.

Linear Algebra & Newtonian Physics: The foundational rules of game worlds. Keep a math book for games handy and consider an online course in game mathematics if you feel you need it.

Graphics Programming: This is a specialized field, so unless you're keen on engine development, stick to the basics. The tutorials at RasterTek are a good start.

Image Editing Software: Learn the basics of a raster (like Paint.NET) and a vector graphics program (like Inkscape). Both are free and cover most needs. Also worth mentioning LibreSprite for making retro graphics.

Unity 3D/Unreal/Godot or Prototyping tools: For your final game making tool you can pick and just do another beginner tutorial for the remaining engine you haven’t covered. Or you can check some other more specialised game making tools and engines. Here’s a short list:

  • GameMaker: A more user friendly but considerably less powerful game engine. Nonetheless, it has been used in plenty of commercial products and is a bit of an indie darling. A really good option for artists.
  • GDevelop: GameMaker's open-source alternative. Pretty much the same as Game Maker, but free and open source. It's relatively newer but is starting to gain a community.
  • Twine: A tool for making choose-your-own-path style text adventures. Quite simple, but also very easy to use. Highly recommended for those with more of a background in writing.
  • RenPy: A very popular tool to make Visual Novel style games. Has been used in several commercial projects and has an active community.
  • Love2D: Not an engine, but rather a library, worth mentioning because it's uses Lua as its programming language, so if you are familiar with that language, this might be a good option.

Conclusions

What I've presented here is an incredibly simplified taxonomy of skills. It's neither exhaustive, nor definitive. For example I didn't cover Graphics, Networking, Tools or AI programming in depth, all of which are specialties under game development.

But the truth is that would be quite out of scope. This ought to be used more as a starting point, and it's expected that the developer study trends and analyse their problem to choose the right tools and skills.

That being said, I hope this proves useful to someone.