В этом и большая проблема, что люди, которые не болеют IT пытаются всё это выучить. Не знаю, для меня забава отвечать огромным списком материалов для изучения друзьям, которые спрашивают: а как стать программистом?
Вот есть у тебя кастрюля в 2л, заполняешь её водой наполовину, ставишь кипятиться, но потом резко выливаешь воду - твоя кастрюля черная.
Цель: получить как можно быстрее черную кастрюлю (получить солдатов как можно быстрее). Нажимаешь на казарму, которая даёт юниты - ставишь кастрюлю на плиту, и видишь, что тебе надо повысить уровень замка для получения солдат (также как и вода - тебе мешает недостающий уровень замка). Повышаешь уровень замка - выливаешь воду из кастрюли. В это время, ты задал параметр повышения уровня замка - убрал воду которая тебе мешает, этот параметр теперь учитывается и апи казармы обращается к замку после повторного открытия казармы и учитывая уровень замка, апи тебе выдает, что можно делать юнитов