My current game project has very bright, colourful, simple graphics. I am however trying to craft something involving and meaningful - in the sense that I want people to experience a sense of agency. I want players to feel that the act of play will reveal the systems at work, therefore allowing them to improve their score and have a more enjoyable time.
In trying to build a game that isn't too shallow, I started layering conditions on conditions. Events on events, some random, some not. Sometimes X might happen, sometimes Y, and sometimes neither. Herein lay the problem.
In order to meet sudden conditions posed by the game, the player needs to plan ahead. The random nature of these conditions was at odds with creating a sound feedback loop. I found players might sometimes find themselves preparing for a rainy day that never comes.
The game threatens you. You rise to the challenge, only to find it responds 'just kidding, you've been wasting your time, you needn't of planned ahead so much'.
The answer in this case: simplify the systems that trigger events and establish winning/scoring conditions. Implement a higher level of redundancy, therefore boosting agency and a sense of reward for making meaningful strategic decisions. With a simpler system at work, one that features less random elements, the player can learn the game (to some degree), isolate the key strategies required for a (not quite) perfect playthrough...
and most importantly: enjoy themselves and get a flipping huge score.