Вообще, разработка игры мало отличается от разработки любого другого приложения. Основное отличие – производительность. Если десктопное/мобильное приложение довольно терпимо к задержке, допустим, в полсекунды, при игре эта задержка может быть критичной.
Поэтому в первую очередь нужно иметь хороший алгоритмический базис, а также знать структуры данных, и уметь все это эффективно применять.