Hi all, obviously, [my announcement] about switching visual styles was an April Fools joke. From what I read in the comments, nobody fell for it (too bad); instead, people ask for it to be included in the game... what have I done :P. I'm making no promises here, but I agree that it would be nice.
Anyway, what I have really been doing is working on integrating town as a real entity ingame. It's probably best explained with a picture:
I'd say like 70-80% of it is done; you can do things like found a town, view and change the laws (which at the moment only entails changing the name, and what is its official color), become a citizen of a town, stop being a citizen, etc. Big things that still need to be included for the next update are that [a town's territory expands when you build on the edges], disbanding a town and stopping players from building on patches of land they don't own.
Interestingly, the most important thing I have discovered while implementing this system is that it is INCREDIBLY COMPLICATED, although you hopefully won't notice that as a player. Let me explain. This is the inside of a town hall (which is a bit different from [the one in the current version of the game]).
You interact with the counter for the citizen-related stuff (joining towns, viewing laws), and the desk in the office for the mayor-related stuff (founding towns, changing laws, etc.). However, there are literally dozens of things that should be taken care of. Some examples:
- If there is a town hall, but the town has not yet been founded, players should be able to do so... but only when the are not already mayor of another town. And if they are a citizen of a another town, but not a mayor, they should be able to leave that town right there.
- If a player interacts with a desk, it should display the possibility to change the laws. However, that's only true if there the town has already been founded, and the player is a mayor. Oh yeah, and that mayor should also be in his hometown.
- If a mayor changes the name or official color of a town, all GUI information and territory information needs to be updated for all players playing at the moment.
- If you want to join a new town, you should not have a hometown yet. Or when you do, you should be able to say 'leave my old town'... but not if you're a mayor (because then the old town wouldn't have a mayor anymore). But this system should only work in town halls where a town already has been founded, and only if you do not already live in the town you are trying to join.
I could go on for hours and hours with stuff like this - it's pretty boring, so don't feel ashamed if you skipped it ;). Things like this kept popping into my head while coding, so I wrote them down because I was afraid to forget important stuff. That list, however, didn't stop growing: for every feature I implemented from the top of the list, I added four things I also shouldn't forget to the bottom of that list. Things got so confused in my head that I almost wanted to bang my head against the wall, but then it hit me: this is so confusing, because I've got three factors interacting. We have the:
1. Type of furniture (counter or desk)
2. Kind of location (no town, strange town or hometown)
3. Kind of player (free, citizen, mayor)
And all of these things influence how the game should behave at a certain point. If you every had to work with ANOVA, you know that human brains cannot handle 3-way interactions, so that's why I got so confused. The solution was to write it all down in a spreadsheet; now I've got things under control again. Yay!