Aug 29, 2011

Rings of Valor v0.4.7

The 2011 Annual Roguelike Release Party is getting closer and closer, and I'm trying to get Rings of Valor into a releasable state for it. I'm almost halfway through the to-do list and I think at least some sort of beta phase might be ready on September 18th.

The tournament mode has been added into the game. Initially, I intended it to be a 12-phase (one match for each character level) single elimination tournament. Then I realized that it would require 2^12 teams, which is quite a few. And creating so many teams would be pretty pointless as the player's team would only fight against 12 of them.

So instead, I ended up with something little different, which requires only seven teams in addition to the player's. I wonder, though, if the tournament is too easy. I seem to able to win it without too much trouble (when playing with a balanced team). I'm planning to improve the AI players, but I'm also going to increase the player's control over the team in matches. I might have to discard that plan.

I also made a new map (needs a bit tweaking yet), second of the five the game will include upon completion. It is very much inspired by TSMI's roguelike project. In fact, I pretty much copied the palette of his jungle (he's aware of this) and included rain aswell, which is surprisingly cool.

During the development of this version, my dislike for C strings grew stronger due to the bugs they caused (mostly because of my lack of understanding how they work). Sadly, their use is required as libtcod likes to take everything in const char *.

Then I realized I could just use std::string and call its c_str() function whenever a variable needs to deal with libtcod. I feel a bit stupid for not doing this earlier. Makes things so much easier.

What else... Ah, yes; weird bugs. Here's one: Take a screenshot in menu -- all ranged characters created afterwards do millions of damage.

And the reason for this curious behavior: Gladiator class's calcStats() function was missing calcSpellPen();, which left spellPen [spell penetration] attribute uninitialized. Somehow using libtcod's easy screenshot utility made the variable something else than 0 when creating new Gladiator objects. Beats me how, but that certainly puzzled me for a while.

The ladder mode will be the next thing to do. Yay, more ASCII GUI design. Derp.

No comments:

Post a Comment