So I came across a theory a while back - unfortunately I can't remember where - that the most important part of your game is that little action loop, maximum of thirty seconds long, that your player makes most frequently while playing.

In an FPS this is moving, taking cover, and gunning down an enemy. In an RTS this is selecting buildings, creating units, and then moving units to attack. An MMO is moving around, selecting targets, and balancing your power cooldowns. Turn-based strategy games are more about navigating through interface options or weighing information to make the best decisions.

If this core interaction loop is not fun, runs the theory, the rest of the game will not be fun regardless of how well designed it is. A game's core experience trumps almost all other considerations, because a core feel will either put players off before they even have a chance to experience the rest of the design, or nag at them until they get bored or angry and log off.

In the original CivClicker, the core action loop was as follows:

  • Create housing
  • Create workers
  • Assign workers to jobs
  • Save resources
  • Rinse, repeat

(Okay, so that last one was a bit flippant, but you get the idea.) This would be punctuated with building other buildings, or by buying upgrades, but the core gameplay saw players looping between the buildings, the create workers button, and the job assignment list.

This is, incidentally, the main reason that I didn't want to automatically make new workers into farmers (as some forks of the original game have subsequently done). Sure, it makes sense from an interaction design perspective to remove a step from that cycle, but I considered it to reinforce the idea that you were managing your population, not simply accumulating them.

This... worked. Surprisingly well. I knew Cookie Clicker's "click button, receive cookies, buy thing that allows you to get more cookies" loop was a winner in particular because it invoked the general principles behind operant conditioning and was demonstrably quite addictive. When considered in terms of interaction design the feedback loop was very tight - a click was an event that produced an immediate and obviously positive outcome that was trivial to evaluate.

CivClicker's resource buttons, that could be clicked to perform a similar effect, had this property primarily because of physical proximity. The game loop I described above could be constantly monitored by keeping an eye on two things - the food level (whether it was going up or down), and either the population indicator or the status of the buttons allowing to create more workers.

This kept the loop similarly tight and allowed for fast evaluation of actions - how many workers to allocate as farmers vs. how many to allocate as other jobs being the primary (simple) challenge in this loop and causing rapid evaluation and re-evaluation while iterating through the cycle.

Put shortly - it worked. The occasional bonus resource and the occasional opportunity to put workers into another profession was interesting enough to keep people occupied, while they were, at a higher level, balancing resources, evaluating upgrades, and planning ahead.

All of this is a very long-winded way to say that I'm not 100% certain that my core game interaction loop has been finalised yet, and while it's something I intend to focus on, I'm perpetually worried about it. There are solutions I can see, and I'm intending to work to make it as good as I possibly can, but that nagging doubt is still there.

Despite the amount of thinking I did about the game while building it, a lot of CivClicker was built on a purely visceral level - what seemed right at the time, or what seemed right to playtesters. A spreadsheeted, planned balance was an alien concept until near the end of the game (and only then because I had to very carefully gauge the costing for things like fortifications and mills in order to make them useful). To be completely honest, I'm scared that I got it right by accident rather than by design, and I'm really hoping that I can replicate my earlier success.