Another update, finally. Hopefully all the info here will be worth the wait!
First, I added some other levels. Most notably, I added the troll dance party, which is where you go to get new quests and restock on spray paint
Yeah, that's a DJ off on the right hand side. Probably need to put him up on a stage with some speakers or something.
Second, I dipped into multithreading to speed up the level construction, since now I'm starting to make larger dungeons levels. I have to perform a lot of computation to generate geometry from map data for these large levels; basically I'm doing the same work that the old compilers for
quake maps used to do, only now I have to do it in a few seconds while the user stares at a loading screen. So it has to be quite fast. Luckily most of the computation is what we call "embarrassingly parallel" so I just split up the level building into several tasks and feed them into a task-based thread pool.
Finally, I updated the combat mechanics AGAIN. Someday I'll get it right. I wanted some more powerful special attacks, but I wanted to avoid the use of cooldowns or energy bars to power special attacks. At the same time, you don't want the player spamming his special attacks all the time. What to do?
I found something to like in the combat in Batman: Arkham Asylum. In particular, there was the "press Y to counter this guy who is about to attack you" thing, complete with little flashy icon over the guys head. That combined with lunging from one guy to another added some nice variety.
So I added something similar. Each monster can have an "exploit" which shows up over his/her head as a colored icon. Exploits usually appear when the enemy charges up and attack or casts a spell, but presumably certain skills or spells can also cause them to appear. When a monster has an exploit, you can face them and hit the matching key/button to perform a special "exploit attack" on that monster. It seems to work well at breaking up the routine of spamming you basic attack all the time.
. Note at the end that I just sit there waiting for the guy to charge his next attack so I can wallop him with my uppercut exploit attack. Dunno if I want to keep this or not.
Next I am rewriting the dungeon generator to simplify the collision geometry while also making it a little more flexible so I can easily customize the room layout and room shape.