Introducing Rose!

As we finally get ready to release our huge v1.1.1 mega-update for Letter Quest, we thought it would be a good time to formally introduce Rose, our second playable character. Rose joins Grimm as another Reaper attempting to help clean up the ghost problem that they seem to be having. She has her own custom weapon, which provides a bonus to max health. She also has different starting stats than Grimm: she starts with a bit less health and critical damage bonus, but she starts with more armor/defense, a bonus to how much health each health potion restores, and has a higher chance of getting a critical attack and dodging attacks. We’re excited to add Rose to the Reaper family, look forward to playing as her when the new update hits the App Store and Google Play (and of course she’ll also be in the desktop version). Don’t forget to vote for Letter Quest on Steam...

read more

The Little Details Do Matter

Art Bandit was playing the game recently and had something unexpected happen – on the first stage of a new save file, he received a tile board that contained no vowels! While I knew that it was statistically possible, it’s highly improbable given how our letter selection works. So I decided it would be a good idea to fix that up. The most obvious solution was to simple analyze the board at the beginning of each stage, count the number of vowels, and if that was below a threshold that we decided upon (3, for the record), then we could randomly change consonant tiles to random vowels until the threshold was met. Of course, nothing is ever that simple. We have some unique challenges in the game that restrict the letters that are available in a given stage. So we also need to make sure that we only add vowels that are allowed in the given stage. It ended up being fairly simple, here’s the code for anyone that’s curious: private function ensureEnoughVowels():void { var minVowels:int = MIN_NUM_STARTING_VOWELS; var numVowels:int = 0; var numTiles:int = mTiles1D.length; var tile:LetterTile; var consonantTiles:Array = []; for (var i:int = 0; i < numTiles; i++) { tile = mTiles1D[i]; if (TileType.IS_VOWEL[tile.tileType] == 1) { numVowels++; } else { consonantTiles.push(tile); } } if (numVowels < minVowels) // not enough vowels, need to randomly change some consonant tiles to vowels { // figure out which vowels are valid - if we're in a challenge some could be restricted var bannedLetterIndexes:Array = Globals.CurrentGameSettings.StageDef.bannedLetterIndexes; var validVowels:Array = []; if (!bannedLetterIndexes[TileType.A]) { validVowels.push(TileType.A); } if (!bannedLetterIndexes[TileType.E]) { validVowels.push(TileType.E); } if (!bannedLetterIndexes[TileType.I]) { validVowels.push(TileType.I); } if (!bannedLetterIndexes[TileType.O]) { validVowels.push(TileType.O); } if (!bannedLetterIndexes[TileType.U]) { validVowels.push(TileType.U); } do { var tileIndex:int = Utils.randomIntFromRange(0, consonantTiles.length); // select a random consonant tile to change to a vowel var vowelIndex:int = Utils.randomIntFromRange(0, validVowels.length); // select a random vowel type tile = consonantTiles[tileIndex]; tile.setTileType(validVowels[vowelIndex]); // change the tile to the selected vowel type numVowels++; consonantTiles.splice(tileIndex, 1); // remove the consonant tile } while (numVowels < minVowels); } } And voila! The player always receives at least 3 vowels when starting a...

read more

New Store UI

We’ve been working on Letter Quest for quite a while now. One of the things we’ve ignored for a long time is the UI for the store in the game. Basically early on we had a decent, fairly usable store so spent our time working on everything else. Now that the design of the game has been finalized (as much as anything in a game can be considered “final” or “finished”!), we decided to fix up the store. Our old store was a separate popup for each store section. We’ve got stores for upgrades (permanent modifications to character stats), books (equippable items that provide unique bonuses, gain XP and can level up providing better bonuses), potions (one-time use consumable items that restore Grimm’s health), special items (unique items that change things in the game, such as upgrading all treasure crates to treasure chests), and finally a gem/cash shop if playing on a mobile device. Whew! We decided to move to a single store with several tabs, like what Plants vs. Zombies 2 has. Here’s some comparison shots: Old upgrade shop, it’s very brown! New upgrade shop, you can see the new shop tabs instead of needing to constantly close a shop and open another one, much bigger items, less brown, etc. Old book shop. The books the player had equipped were randomly jammed into a small section at the top, confusing a lot of players. New book shop, has a dedicated area/panel for equipped books, and a much cooler shopkeeper. The icons are still placeholder, as are the equipped book slot image and lock, and the little green “equipped book” checkmark. But we’re happy with the layout, and I personally think it’s a big improvement. Also it has nice big items that are easy to select on a phone. 🙂 What do you think? Love it? Hate it? Want to buy it a beer, or kick it to the curb? Let us know in the...

read more

The Value of a Demo

As we’re getting close to releasing our first game, Letter Quest, I figure it’s a good time to talk about the value of a demo and getting feedback from complete strangers. About a month ago we decided that we should make a demo version of Letter Quest that people could try in a web browser. Because we built the game using Flash and Starling, it was trivial to get a browser version working. A few things needed to be tweaked to make more sense with a mouse (instead of the usual touch controls), but that didn’t take long. I ended up adding a flag to the game called DEMO_BUILD, and if it was set to true, a whole bunch of things in the game are automatically changed and configured for doing demo builds. This includes the following changes: limiting the game to just the first 7 stages in the first area, removing the area/mode select screen, removing the ability to purchase cash items (we’re still deciding on how to monetize the game), etc. Now whenever we want to do a demo build, it’s as easy as setting that flag and uploading the build to our web server. Before releasing a public demo, we had six excellent testers. One of them has played the game for probably close to 100 hours at this point, and she’s still not tired of the game, which is a great sign! The trouble with having a limited set of testers, though, is that after a while they get to be way too good at the game. I’m also very good at the game now too because I’ve played it so much during development. So of course the first handful of people that played the public demo came back with feedback of “nice game but way too hard”, “why is the first enemy so hard?”, “Y so difficult?”, etc. I played the game again and still don’t find it hard. I did some reading about game balancing and found that making your game too difficult/making it feel “just right” for yourself is a common problem that developers face when making games. So I adjusted the difficulty of the game to the point where my testers and I found it to be quite easy, and lacking any real challenge. It’s still fun, but not difficult for us. Then I updated the demo and got more people to play it. Everyone suddenly thought the difficulty was very good, with comments like “challenging but fair”, “very well-balanced”, “cool game and nice difficulty progression”, etc. Lesson learned: make your game a little too easy for yourself, and it’s likely just about right for new players. I’ve also been really impressed with the feedback I’ve gotten from players on a couple of forums. A few people commented in the threads I posted, but many people ended up private messaging or emailing me with feedback, which I really appreciated. I’ve been using this feedback to quickly release new demos with fixes/changes, and players have been noticing – I’ve received several emails from happy players that are impressed that their feedback was useful/listened to, and that have said they’d love an email notifying them when the game is released on iOS. Seems like a pretty good way to start slowly building a great fan-base. Here’s the forums I’ve posted the demo on so far – I try to post on one new forum with each new revision of the demo, to avoid getting the same feedback from multiple sources: Starling forum Tig-source forum I’ve been using the excellent Flox analytics to track...

read more

Player’s Perception of Value

An interesting point was raised by a couple of our players – sometimes when they defeated a monster or hit a bag of gems at the end of a stage, they would only be rewarded with one single gem. They said that this didn’t feel very rewarding. In Letter Quest, there are five different colors of gems, each worth a different amount: As an example, imagine a monster dropping 20 gems when defeated – only a single red gem would drop. Even though that gem is worth 20, players were perceiving this as a smaller reward than seeing a bunch of green and blue gems. There are a couple of things we could change to fix this. The first option is to make each successive higher-valued gem physically larger. However this still wouldn’t solve the issue because if they only received one red gem, there wouldn’t be any green or blue gems on-screen to compare it to. The second option is the one we ended up going with, and it’s a very simple fix. Before we drop any gems for the player, we look at the number of gems. If it happens to be greater than 1, and an even multiple of one of our gem values (5, 20, 50, or 100), we simply create one single green gem, and then create the rest of our gems as usual. This gives the appearance of receiving much more gems, and players were much happier and felt like the rewards were more valuable. Example: instead of dropping 1 red gem for a 20-gem reward, we would instead drop 1 green gem, then run the rest of our algorithm, which would create 3 blue gems (each worth 5 gems), then 4 green gems (each worth 1). So the player would see a total of 8 gems on-screen (ooooh shiny!), instead of just 1 red one....

read more

And…We’re Back!

We’ve been working hard on the game all summer, which is why we haven’t been posting on the blog much. We’re back now though, so expect to see more content as we move forward. The game is in a very stable state right now, basically somewhere between alpha and beta. We should have a demo ready by late September/early October! Thank you for your patience. We can’t wait to finally let you play the game soon! Here’s a preview of what the game currently looks...

read more