Что, как правило, делают люди, когда игра кажется нереально сложной? Кто-то бросает ее, кто-то бьется до потери пульса, однако большиство ищет тайные лазейки. Одним из видов этих тайных лазеек являются чит-коды. Это по сути пароли, различные по написанию и способу ввода, обладающие смыслом или лишенные его, но в любом случае они дают какие-то неестесственные возможности в игре, как то бессмертие, полеты и т.д.
А вот задумывался ли кто-нибудь, откуда пошли эти чит-коды, для чего разработчики их ввели, почему часто до них сложно добраться? Есть мнение, их придумали для того, чтобы людям было легче проходить. Но это не совсем так.
Как создатель игр, я могу утверждать, что чит-коды разработчики ввели в игры сугубо для себя. Спросите, для чего? Приведу несколько примеров:
Вот кто-то написал игру. В любом случае, игра это программа, а программа сразу после написания НИКОГДА не заработает, то есть по-любому ее нужно отлаживать. Дыр в программе может быть море. Например, из-за недочета при падении в пропасть игра может вылететь, это нужно исправить. Или где-то идет плохой просчет и игрок проваливается сквозь текстуры. Либо где-то не стыкуются модели. Список можно продолжать долго. В любом случае, проверять эти дыры жутко неудобно, если вокруг море врагов и все атакуют. Убьют раньше, чем удастся понять, в чем именно заключается ошибка. А если в игре предусмотрены пароли, можно активировать, скажем, бессмертие или невидимость, и можно спокойно тестировать игру. Проверить, скажем, что будет, если рухнуть в пропасть можно просто, если эта пропасть есть неподалеку. А если такие места только под конец игры попадаются? Проходить ее всю? Если, как обычно делается, прорисовка низа одинакова везде, можно пройти сквозь пол. Если нет, кодом перепрыгнуть в нужную карту. Стыковки карт между собой, конечно, кроме как прохождением всей игры никак не проверишь. Но вот имеет ли смысл проходить ее по всем правилам. Если бы это так и делалось, то новые игры выходили бы крайне редко. А так с бессмертием можно пройти почти любую игру за один день.
Единственный случай, когда разработчики играют по правилам, это при проверке на проходимость. Вот только в последнее время, я смотрю, эти проверки редко проводятся, оттого часто выпускают непроходимые без читов игры.
Отсюда и вытекают такие вещи, как попытки спрятать эти читы, скрыть. Есть игры, где консоль открывается одним нажатием клавиши. Но чаще всего, в этих играх читы либо какие-то особенные либо требуется особая команда для их активации. Консоль часто прячут, делают невидимой или вообще не ставят. Это как раз делается для того, чтобы заставить играть все-таки по правилам.
Здесь же возникает такая вещь, как типология чит-кодов. Почему в большинстве шутеров они одинаковые? Просто так удобнее. Допустим, разработчик сам по себе игрок. Вот он привык, например, к читу god (бессмертие). И в свою игру он тоже на бессмертие поставит god. Invincibility, например, длинный и неудобный, хотя означает тоже самое. Зачем усложнять себе жизнь?
Консоли вообще пришли из далекого прошлого. DOS и Linux в оригинале - командная строка, причем помимо команд там же выдаются данные о работе программ. А сдвиньте такой экранчик вверх наполовину, а на фон повесьте игру. Узнаете?

Однако, не смотря ни на что, существует множество игр, где читы отсутствуют напрочь. И порой, эти игры не менее сложны, чем такие. Кто-то спросит, а как же их отлаживают? А ответ прост. Всем известны так называемые трейнеры. Так вот если читов и нет в программе, эти трейнеры их туда вводят. Правда эти читы имеют вид каких-то кнопок (то есть не команда, а просто нажатие клавиши). Могу предположить, что процесс отладки таких игр аналогичен, но только с использованием трейнеров.
Итак, вопреки всем мнениям, чит-коды созданы разработчиками для себя, чтобы легче было отлаживать. Как их вскрывают, доподлинно неизвестно. Сами разработчики сообщают или их подбирают, непонятно. Скорее всего и то и другое.