I've been writing games for around 10 years now (from QBasic to C# and everything in-between). I need to start stretching my skills into different areas. What are other, surprising topics I should read up on?

Expected topics would include the usual suspects:

  • Programming language of your choice
  • Scripting language
  • Source control
  • Project management (or Agile)
  • Graphics API
  • Maybe some AI (A* path-finding?)
  • Physics (projectile physics)
  • Unit testing (automated testing)

I'm looking for more esoteric topics; things that you don't expect to need to know, but if you do know them, they make a difference. This could include things like:

  • Art skills (drawing, lighting, colouring, layout, etc.)
  • Natural language processing
  • The physics of sound (sound-waves, doppler effect, etc.)

Personally, I feel that having technical art skills (eg. can make decent art-work if you can only come up with ideas; or, following Photoshop/GIMP tutorials) was the most beneficial for me.

This is not intended to be an open-ended question; I'm looking for specific skills that helped you and you expect will continue to benefit you in the short- and long-term.

  • 1
    \$\begingroup\$ I don't really think art counts as 'esoteric', but this is definitely a great question. \$\endgroup\$ – The Communist Duck Mar 13 '11 at 11:11
  • 3
    \$\begingroup\$ I still think this is pretty open-ended by its nature, and it's not about a specific, directed problem. At the very least I think it should be CW, but I've also voted to close it. \$\endgroup\$ – user1430 Oct 21 '11 at 19:04
  • \$\begingroup\$ @JoshPetrie what's the point of closing an already asked and answered question? \$\endgroup\$ – ashes999 Oct 21 '11 at 19:28
  • 2
    \$\begingroup\$ Closing a question indicates that it isn't a good fit for the site in its current form; leaving it open implies the opposite, thus creating a precedent for future overly-broad questions to fall back on. See also discussion about the issue in chat \$\endgroup\$ – user1430 Oct 21 '11 at 19:32
  • 1
    \$\begingroup\$ It surprises me how the majority of favorited questions on stack exchange are closed \$\endgroup\$ – Aralox Jan 19 '12 at 2:58

Story Telling - people and critics always say story is important in games. It's often added as an addendum to a list of things your game should have, but actually implementing a compelling narrative in a game is hard. Games narratives get put into the context of literature or movies often, yet they fundamentally function differently and there is a lot of interesting discussion around about how to even talk about game narrative on its own terms. This gets even more abstract for games that don't use 'characters' or are basically an assembly of mechanics.

Given all that, literary and film analysis can be useful to be able to phrase intent.

Marketing - so you've actually finished a game (haha, as if). Now what? We hear about Minecraft or Angry Birds, but the business side of actually promoting and distributing our game is, for many of us, a giant black box. XNA? Sure, put it on XBLIG, but what else can be done to promote it?

Psychology - Specifically, how do we learn? How can you teach game mechanics through game play so that people aren't totally lost by your esoteric opus on time manipulation?

Graphic Design - Sure we all know that using Papyrus or Comic Sans is bad, but creating a well designed menus system or UI requires skill. This is only partially a subset of art skills, not necessarily an complete subset - some people can be good designers without being able to draw well.

  • 1
    \$\begingroup\$ You nailed it - just what I was thinking of posting, starting with storytelling. \$\endgroup\$ – Tim Holt Jun 15 '11 at 18:53
  • \$\begingroup\$ I just wanted to add a point in Psychology part: motivation. especially self determination theory. its been used in the gaming world a lot. particularly extrinsic versus intrinsic, and more recently the 3 main points of motivation relatedness, autonomy and competence \$\endgroup\$ – v.oddou Mar 6 '14 at 2:07

Having a firm grasp of world mythology and religious iconography is always good for game design. HCI and other bits of human factors psych are important just about everywhere. Being able to think like an engineer and deconstruct complex systems into smaller units is useful not just as a programmer, but also when trying to see how other games are built. Game developers tend to be a very diverse bunch, so almost any field of expertise can be used to make better games.

  • \$\begingroup\$ How do you suggest learning about mythology and religious iconography? \$\endgroup\$ – ashes999 Mar 13 '11 at 22:50
  • \$\begingroup\$ @ashes999 There are numerous books you can get on the subject. Also, holy books of various religions. \$\endgroup\$ – Jesse Dorsey Mar 13 '11 at 23:34
  • \$\begingroup\$ For Greek myth, Ovid's Metamorphoses is good and you can find free copies on any ebook store. Others are a bit harder, but a few nights on Wikipedia are probably a good starting place (Maya, Norse, Christian). \$\endgroup\$ – coderanger Mar 14 '11 at 1:57
  • 2
    \$\begingroup\$ Also my point was less so to push you towards these specific things, but more to make the case that literally anything you expose yourself to can be harnessed to make better games. Join SCA, read random books in the library, have dinner with a homeless person. You don't need to be a world expert in any of these things, but the more you have in your proverbial tool belt, the better! \$\endgroup\$ – coderanger Mar 14 '11 at 2:21
  • \$\begingroup\$ One way, to get started with Mythology is to look into children's books about Mythology -- and then follow up on the more interesting stories. Every ancient culture has Mythology of some sort, most which are quite intriguing. \$\endgroup\$ – Nate Mar 14 '11 at 15:32

I am surprised that no one mentioned maths yet. I cannot for the life of me understand how you can be a good game developer without being good at maths.

I have seen game developers stuck with algorithm or optimisation problems, or simply writing very bad or underperforming code, because they used convolutions without knowing what an integral was, or did not know that a convolution was separable if the rank of its matrix was one, or that a composition of linear maps was linear, that the slope of a curve was related to the derivative of its function, that interpolating using 3*t^3-2*t^2 instead of t ensured slope continuity. I have seen them sum 50 values of sin(x) to approximate an area instead of using an integral. If x was supposed to grow to A*x in 10 seconds, they would set it at A/10*x after 1 second instead of exp(log(A)/10))*x. This is only what I can think of right now, but I could probably come up with dozens more of such examples.

Seriously, learn maths.

  • 1
    \$\begingroup\$ I did math college, long time ago. Now when I am doing some pysical simulation in my first aracade game, I feel I need all that math knowledge back! Making games is like being a scientis/artist - it is quite cool actually. \$\endgroup\$ – Lumis Apr 9 '11 at 11:51
  • \$\begingroup\$ +1 all that highschool algebra paid off; I've used equations for circles for line-of-sight stuff -- but in general, I don't get too big a benefit from my extensive Math background (first year multi-variable calculus?!) \$\endgroup\$ – ashes999 Apr 9 '11 at 15:48
  • 3
    \$\begingroup\$ I'd vote this up twice and thrice if I could. So obvious and overlooked, yet so true. \$\endgroup\$ – Koarl Apr 10 '11 at 22:17

History - So many successful games are based off of either true history, or adapations of it. Some of the Call of Duty series, and the Assassin's Creed series come to mind.

Common sense - Yes, having something completely which implements perfectly realistic sound waves travelling through the air is nice and all that, but the user is going to struggle to see the difference. Oh, and run the game on a PC with less than a dozen GHz worth of processor power.

  • \$\begingroup\$ Common sense comes from the software-engineering side...maybe I should've mentioned that that's a given in my case (I did mention source control and scripting languages, after all) \$\endgroup\$ – ashes999 Mar 13 '11 at 13:41

Immersion Is actually a term still being defined and discovered. What makes us immersed? Why do some people get easily immersed while others won't even flinch when playing Dead Space 2 in a dark room with loud sounds?

This subject alone has helped me a lot as it involves many psychological aspects that are great to have in mind when designing and developing games.

  • What in your game will actually move your player emotionally? Make use of narrative immersion!

  • How can you make your player stay in his or her immersion "bubble"? Make use of tactile immersion!

  • What will make your player focused and think of nothing but the current challenge in your game? Make use of strategic immersion!

Check out these links for more interesting insights in to the subject:

Wikipedia article

Oldie but goldie

  • \$\begingroup\$ This is almost always not something that can be taught or learned directly. The best (only?) way to do it is to fail many times. Make a lot of games or play a lot of games and see where the pain points are. \$\endgroup\$ – coderanger Mar 14 '11 at 2:00
  • \$\begingroup\$ Absolutely, but then again, if you have these points in mind while playing you'll learn to identify what made you immersed and why. The same goes for when you play your own game. \$\endgroup\$ – Phil Mar 14 '11 at 10:37


Principles learned in economics are very useful in many parts of game development. I'm not only talking about money either; economic principles apply to decisions players make about about everything from whether or not to pick up the health pack to choosing which path to take, and thus knowing economic principles can help make your game designs much stronger.


Usability. Designing a good and intuitive UI is actually quite hard, ensuring that all the info the player needs is nicely laid-out on-screen, that it doesn't obstruct the action or eat into available screen real-estate, that it's obvious when it needs to be but doesn't detract from the main scene, that the correct options are exposed in the menus, etc - that's not easy at all and takes lots of time, testing, and iterations to get right. Basic usability lessons can be picked up from almost any program, and it's well worth investing time to get right.

Input. This one is vitally important, and kinda ties in with usability. The graphics are the sexy stuff that people like looking at, sound gives important cues and clues, but input is the player's primary interface with the game so you'd better have really good input code. Getting a bunch of ultra-competitive multiplayer fans to road-test your engine can be quite illuminating here, not to mention humbling. You very quickly find out where your input glitches, quirks and lack of responsiveness lies.


Not the answer you're looking for? Browse other questions tagged or ask your own question.