July 13, 2011

Evil Cult v4pre2 release

After a huge amount of time the new dev release of Evil Cult is finally ready. You can play it here. The list of changes is significant:
  • Sects - after the cult grows to some point every cult member can make a sect for himself. Sect is useful for lots of small tasks - gaining information about other cults, confusing investigators, etc.
  • HTML5 Canvas for map display - map no longer uses crazy divs for displaying nodes and lines between them. Everything consists of images now which are drawn on canvas surface.
  • Virtual map bigger than the screen - canvas display almost immediately lead to implementing the old feature request of bigger maps. Minimap included.
  • Custom game - you can now set all difficulty parameters in a separate "Custom game" window
  • Local Multiplayer - up to 4 players (and more after I'm done with cult colors) can now play on the same computer.
  • And a nifty favicon, courtesy of qubodup!
Saving and loading has been disabled until later.

Sects are the biggest gameplay change for this release. The idea is that each cult must have 5-10 of them for some important tasks like gathering information about a cult (all cults are now unknown at start which makes taking over their nodes much harder), confusing an investigator (decreases chance of losing followers) or sabotaging a ritual (ritual won't gain any points while sect is actively sabotaging it). I will write about sect management in detail in the manual for this release.

I thought about moving to HTML5 display for some time but kept postponing it. But when I finally sat and did it, it wasn't that hard at all and had huge benefits. One thing is that memory usage of EC is much lower now and does not increase over time. The game became faster and more responsive. That change led me to removing jQuery tooltip code from nodes which also was slow and memory-hungry. jQuery tooltips do not allow dynamic tooltip text so each time I changed anything in the visible node tooltip (which happens once per visible node each turn at the minimum) I had to update the tooltip. The more map opened the slower the game became. Not anymore.

Another possibility that opened up is having maps bigger than the screen. That was easy with canvas as a foundation. Bigger maps immediately necessitated the minimap display in the corner. I'm still not sure whether it should be there or moved to a space under music player while moving End turn and Main buttons to the top button panel. Heh, I did that panel so long ago that I already forgot about it actually being a new addition in that release. Bigger map opens up the possibility of having more than 4 cults in the same game. While I do have 6 text sets available, I don't have more cult colors available yet so 4 players max for now (that will probably increase in the near future).

Having maps bigger than the screen led to another obvious thing - selecting this size before game start. That need meshed well with the feature request for having harder and custom game difficulties. I decided to do the Custom Game dialog  which would allow to configure all difficulty parameters and also allow people to make their own "very hard" game modes which I can later import into the game. So, play around with this, folks, tell me what else should I move to custom game parameters and send me your "very hard" settings, I'll see if I can put them into the game. Important note: keep in mind that no matter what difficulty settings you input, AI always plays on "normal", mainly for the reason that it sucks when it plays on "hard". Later I can move that into custom game parameters if anyone needs it.

Now having the custom game up and running I remembered about the feature that people requested from time to time - multiplayer. Adding a text field for a number of human players is easy so I did that and decided to try implementing local multiplayer mode. Surprisingly, the implementation of rough multiplayer mode required to rewrite one method - game.endTurn(), something along 30 lines of code and 20 minutes of work. And a day of laborious UI changes after that. I always assumed that only one player-cult would be using the UI so all stuff like node visibility/highlights, lines visibility, log window and log messages panel, all that had to be changed. Everything is now cult-specific: visibility, highlighting, log messages etc. And the game can be played in multiplayer, yay! Unfortunately, client-server multiplayer is still somewhere in the very distant future. Changes to the code would be too immense to move everything into proper client-server architecture.

There were also some small gameplay tweaks and changes which I didn't write about like the investigator's starting willpower/level (now based on cult size).

Now you see that most of this stuff was practically linear after the one first thing - HTML5 canvas display. Each new thing opened up new possibilities. Before that, somehow all these tasks seemed distant and not all that interesting. But after unlocking this implementation path everything else was smooth and linear - almost like a game itself :D

You may also notice a brief message from me under the game window. Send your feedback on the new features, I need it to make the game better.


    1. My employer's firewall is blocking access to starinfidel.co.cc for security concerns. Have you been hacked or is senderbase being twitchy? Thanks!


    2. Dammit, I knew Google blacklisting the whole *.co.cc would get me into trouble! I need a new domain.

      In the mean time use this url: