Sunday, September 30, 2012

Pick a Number, Any Number... So Long As It's Four

Just for the fun of it, today I went back and played Tepiiku, a dice game I reviewed way back when for JIG. It's an interesting game for three players (you and two AI) where the player with the lowest-scoring hand has the obligation to either pay the highest-scoring player a forfeit, or attempt to increase their hand's value at the risk of paying double the forfeit for failing. There's a major flaw in how the wagering plays out, since the game will not allow you to attempt to reroll if you can't pay the potential double forfeit; sometimes your opponents will boost the stake between them, and by the time it passes to you, you're forced to pay up without ever getting to play. Sure, it could result in interesting tactics if you could find a way to work it to your advantage, but more often than not, it's just frustrating.

That was a flaw I pointed out in my review, and it was echoed by many of the commenters. Later on, the creator of the game stopped by to acknowledge the flaw and explain his reasoning for it. Which is awesome. I love it when the developer stops by to discuss the development of their game.

But that's not what this post is about. This post was sparked by what was the very first comment left to the game, by an ever-so-popular visitor named Anonymous.

"Mmm-hmmm. Just like I thought. Just like every other dice and card game in existence, apparently, once you get out of the practice round, it's absolutely nothing but consistent crap for you, and perfect hands/rolls for all AI players, every single hand. No thanks. How about at least faking some random fairness for once, developers? Maybe?"

The developer addressed this comment by assuring Mr. 'mous that the dice rolls are "fair and random" and that there were no shenanigans at hand. Streaks of bad luck, perhaps, but no foul play. That didn't stop 'mous from insisting that the game was clearly still rigged, and even going so far as to accuse the developer of ignoring him and the "evidence" that the game is rigged.

This, for reasons I don't understand, is a trend in a lot of dice games I review or see reviewed; the game is cuh-learly rigged because the player doesn't win once or twice. It happened with Tepiiku. It happened with Pigalator 2k5; the developer also addressed complaints about randomness there (but they still continued). It happened with Zilch, and the developer not only addressed the griefers but also released the code for the random number generator. Is it so hard to accept that streaks of bad luck happen, and that hopefully you'll hit a good streak if you keep playing? Or, heaven forbid, could you just not be good at the game?

-----

Bear with me on this sudden change of topic: Last week, I started working my way through Codecademy, a website that takes you through the basics of coding in HTML, JavaScript, Python, and other programming languages. I'm obviously not a coding genius, but if my experiences with this website and SpaceChem are anything to go by, I might be a bit of a programming addict. I'm about a third of the way through the JavaScript Fundamentals track, which, if I am to take the authors' interpretations of "next week we'll talk about..." literally, is supposed to be a 26-week course... Whoops.

I'm obviously not a coding genius, and I don't know how much JavaScript goes into programming Flash games, but I've picked up a few things from the course. In the lessons I've had so far, I've learned the basics for simple random events, such as rolling a die or picking a card. In fact, here's what rolling a die looks like:

var roll = Math.floor(Math.random()*6+1);

To break that down:
  • Starting inside the parentheses, Math.random() generates a random number between 0 and 1. I don't know how specific the number is, but in the printouts I've tried, it's generally extended out to something like twelve decimal places, like 0.728027699732 (and yes, I did pull that number from random.org).
  • Since there are six sides on our die, we multiply that random value by six. That will give us something between 0.000000000006 and 5.999999999994. Our random value is now 4.368166198392.
  • Dice are usually labelled with the numbers 1-6, not 0-5, so we add one to our result. Now we've got 5.368166198392.
  • But what sort of die gives us a decimal as a roll? Math.floor() rounds down the value to the highest whole number below our value, which is 5. So there you have it, I just rolled a 5.

It's a long explanation, but that one line of code is all it takes to roll a six-sided die. (Well, you'd also add console.log(roll); to print out the number.) But can you imagine the coding it would take to rig a die so it rolls one number more frequently than another, for example, more low numbers than high? Walk with me through this idea.

  • In theory, while you'd be visually displaying a die with six sides, you'd probably program it as something with more than six sides, with extra sides representing more instances of the numbers you want to occur more frequently. We'll keep it simple by secretly rolling a 10-sided die, where the numbers 7-10 give more weight to outcomes of 1 or 2.
  • We could start out with a similar line of code to the one above and substitute one number: var rollStack = Math.floor(Math.random()*10+1);
  • On a regular roll of the dice, we would just return the value of roll as a result. But since we're stacking the deck, we need to add more coding. We need to add an if/else function statement that checks if our result is 7-10 and tweak it so it gives us a 1 or 2. (This was implemented in an exercise involving making a blackjack game, such that jacks, queens, and kings, with the values 11-13, still return a value of 10.) In the end, you'll end up with something like this:

var rollStack = function() {
var die = Math.floor(Math.random()*10+1);
return die;};
var die = rollStack();
var getValue = function(die) {
if(die===7 || die===8 || die===9)
{return 1;}
else if(die===10)
{return 2;}
else
{return die;}};


Slap a console.log(getValue(die)); on the end, and you've got yourself a stacked die that gives 1s and 2s over half of the time. I've got to confess to you though, the above coding took me about two hours to figure out, and I ended up having to go back to the blackjack exercise and lift a decent portion of the code from there. In the end, by my writing (I'm sure someone could probably reduce what I've done down by a couple lines), it takes you about a dozen lines of code to rig a die, and a slender single line to play with a fair die.

-----

I went through all that coding hell to illustrate this point: Coding a fair die is so much easier than coding a stacked die. To think that someone would intentionally suffer through coding a stacked die to make a game unfair, rather than using a simple fair die, is just stupid. If anything, I would hope that if someone wrote a game with a stacked die, they would wear it as a badge to show you how much work they went through (like something by RRRRThats5Rs, or The Binding of Isaac). Plus, people would flock to it in greater numbers knowing that it's a deliberately unfair game against them.

Coding a cheating game isn't logical. Next time you play a game that "seems to hate you," just accept it: You suck. But you can change that! Play some more. Develop new strategies. Find out how other people beat the game. It's entirely possible that you might've had bad luck once or twice or twenty times, but automatically blaming that on the game being rigged is narcissistic lunacy. After all, if you won every time, it wouldn't be much of a game, would it?

-----

Edit: Well, that didn't take long. As zxo points out in the comments, all it would take to change the fair die roll to a stacked die roll is to square the value of the random number, giving much greater weight to lower numbers. He suggests it could be done by adding two characters (I'd imagine ^2), but the shortest addition I can find is Math.pow(). So all of a sudden, my brick of stacked code looks like this:

var roll = Math.floor(Math.pow(Math.random(),2)*6+1);

And my entire argument has already been obliterated. Not that it was even a strong argument to begin with, I confess. But can we at least agree that people who complain about random number generators need to shut up?

Friday, September 14, 2012

Paint the Town Red... Or Yellow

Pop Quiz: What do "Legends of the Hidden Temple," "American Dad," and "de Blob 2" have in common? Dee Bradley Baker. But I digress.

de Blob 2 is a pretty-good-but-not-perfect platformer that came out last year. In it, you play as Blob, the colorful leader of the Colour Underground, who must restore the color to Prisma City by fighting the evil Comrade Black and his army of inky soldiers. The gameplay involves rolling around town and painting buildings with your body to unlock previously inaccessible areas. The game is divided into three-dimensional platforming challenges while running around in gigantic outdoor cityscapes, and two-dimensional linear-maze-ish challenges while inside buildings. Even though there is combat, it's pretty minimal, where most enemies are defeated by jumping and squashing them, plowing through them, or just getting out of their way and letting them self-destruct. As such, with all of the ultra-colorful rainbow themes and excessive glee, it would be easy to mistake de Blob 2 as a children's game. Which it might actually be, I'm not sure. (It is put out by SyFy Kids, after all.) Kid cuisine or not, de Blob 2 does some awesome things that I wish more games would follow suit on.

Each level in de Blob 2 is huge, both in length and height. You'll spend a good portion of your time unlocking each of five to seven sections of each map, one at a time. As such, each level is a pretty decent timesink; I probably spent 90 minutes or more on each level, which also includes a handful of time for completionist activites (more on that later). What amazes me is that even for all of the crazy long levels, and fairly few variations on the themes of "paint things, smash things, and collect things," the gameplay didn't feel that stale at all. Of course, it was frustrating having to go back and replay chunks of the level after dying, but somehow playing through rather similar sequences didn't feel that tedious at all. (But man, what I wouldn't do to have some sort of level map to see where everything is...)

One thing that might have helped ease the tedium was the fact that each level has its own soundtrack, some of which you create as you go along. The music in each level generally starts out quite hollow and bare, maybe the vaguest semblance of a chord structure happening. As you accomplish more tasks and paint more of the level, you hear more instruments added to the mix until it's a raucous jam session by the end. Another cool element is that as you paint your surroundings, an extra instrumental riff is added in depending on what color you are (trumpets for yellow, bass for purple, organ for green, etc., although I might have those mixed up). Even though each level's music is essentially a long loop with different bits mixed in or taken out each time you hear it, it still feels fresh by the end of the level, and that's awesome.

Another point I feel other games need to copy is the acknowledgement that you might have accomplished a certain task before you're formally asked to do so. Since each level is essentially a mini-sandbox game with new portions unlocked as you go, you have the ability to accomplish some tasks (such as painting buildings or freeing trapped citizens) before you reach their actual starting points. Often times, the game simply acknowledges that you've accomplished this and moves you right on to the next task, which is awesome. But perhaps it's worth noting that this stands out to me as a strong suit simply because I've played a number of games where this isn't the case, and you'll be asked to redo a task you've already done just because the game "needs" you to advance in a very set order in order to move on (there are some instances in the Assassin's Creed games that spring to mind with regards to this). So perhaps I only feel this is awesome because this is the first sandboxy game I've played, but it's still something that grabbed me as cool.

Alas, if there's one huge issue I have with this game, it's a huge limiting factor to de Blob 2's sandbox-ness: Each level has a time limit in which you have to accomplish all story-related portions of the level. The time limit doesn't enhance the gameplay at all, it only feels like an extra layer of difficulty stapled on because the game wasn't "tough enough" to begin with. It's frustrating to have to restart a level simply because an arbitrary time limit ran out. It's frustrating to not be allowed to explore the levels and collect all of the hidden items just because you have to get the plotline tasks done first. As a gaming completionist, the latter point deeply bothers me. Mind you, once the main plot of each level is out of the way, you're free to explore the level with no time limit, but to restrict it to the end of each level is stupid. There's only once instance where the time limit means anything significant, and that's in the final level, where you are offered several temptations to save more citizens and grab extra swag at the penalty of wasting time before the crucial countdown ends. It's entirely possible that the time limits in all of the previous levels existed just to give the player a ballpark estimate of "Oh yeah, I could get that done with the amount of time I have left" at that final stage of the game, but before that, it's just fake difficulty.

The camera and controls sometimes do wonky things, but that's not too large of an issue that I feel it's worth ranting about here.

Aside from the time issue, de Blob 2 is definitely a very solid game. Even if you're not familiar with the plotline from the first commercial de Blob game (which I'm not), the in-game storyline and cutscenes are written in such a way that it's really easy to pick up the story and even make some emotional bonds with the characters, even if everything is gibberish. The gameplay, to my surprise, contains just enough variety to make sure the game never feels too stale, and is just the right difficulty for most ages. There's a ton of game to tackle in de Blob 2, which makes it very much worth the price (shame it seems to be on the clearance racks everywhere now). Pick up a copy and experience the joy of smearing paint all over town with your body.

Friday, August 3, 2012

A Quick Review of Quantum Conundrum

Ha! Another game that starts with a Q!

Quantum Conundrum is an interesting puzzle platformer where you play a boy dropped into his uncle's mansion, who needs to free his uncle from some bizarre dimension he's trapped in. You know, like that one episode of Happy Days. To aid your rescue, you take control of an interdimensional-switching glove (I think that's what the acronym stood for?). Given the presence of the associated battery in an area, you can switch the dimension you're experiencing to a fluffy dimension (where you can move heavy objects), a heavy dimension (where you can make lightweight objects trigger weight-sensitive pads), a slow-motion dimension (where you can... well, it's self-explanatory), and a reverse-gravity dimension (ditto).

There are sixty-some levels, and on the whole, I'd say they're... good. Not fabulous, but good. In my mind, I want to compare the puzzles in this game to the puzzles in Q.U.B.E. or Portal. In those games, solving a hard puzzle took quite a long time, and you got an exhilarating feeling of accomplishment when you figured it out. That excitement just doesn't happen here, and I can't pinpoint a specific reason why. It might be because the puzzles were faster and easier to solve, so that "ah-ha" bliss couldn't build up enough tension before the explosive moment of realization. It might be because the puzzles usually felt too intuitive, as though there was only one way to progress from point A to point B, and all you had to do was get there (not that red herring solutions would have improved it at all). Mind you, the puzzles in here were of a good quality and never felt "old" at any point, but they just weren't that compelling.

The story's a bit disappointing, to be honest. You're working to save your uncle (voiced by John de Lancie, who was in so many things I've heard of but never seen, but he's apparently a big deal, I guess?) who chides you and gives you hints as you go along, but the payoff for your efforts really isn't worth it in the end. Still, the puzzles are good, and the game goes out of its way to bring you a fun and occasionally hilarious experience. Quantum Conundrum is worth a go, though you wouldn't miss out on too much if you waited for a sale.

Monday, July 2, 2012

Time Traveling Italians!

After months of basically not playing the game because I didn't have a decent-enough television to allow me to read the on-screen text that described what my goal was, the tutorials that told me how to do what I was supposed to do, etc., I have finally finished Assassin's Creed: Revelations, and somehow, months before Assassin's Creed 3 comes out! I know, it's a miracle, right?

Here's a bit of history between me and this game: ACRev was the first game I bought for my PS3 when I ordered it on Black Friday last year. I tried to work my way through the game, but the TV I found on Craigslist didn't give a clear enough image to let the game's tiny text be readable. This was annoying considering how many new concepts were introduced at the start of the game (bomb-making, den defense, rearranged buttons for old features), and especially when the tutorial bits would stay on the screen long enough for you to read the whole thing minus one line. Beyond this, for whatever reason, I would usually get a headache after trying to play any PS3 game for more than 20 minutes (though strangely, not anything on Xbox). So, ACRev sat on the shelf for a long time.

Assassin's Creed: Revelations, creditsWhen I recently resumed playing ACRev (on a less headache-inducing television), I have to admit, I forgot most of the plotline leading up to that point. This wasn't aided by the bizarre plethora of missions available at any point in time. You could do this mission over here where you would look for a hidden book for love-interest Sofia (who effectively served as the new Leonardo, decoding it and giving you new sites to check out). You could do that mission where you assist one of your fellow Assassins in some task. You could do that other mission that actually pertains to the plot of the game. In the end, at least some of these elements came together to form a coherent storyline, but probably not until about halfway through the game.

That's probably my biggest complaint about the game: Unlike in the past where side missions actually meant something, side missions here are little more than toys you can play with. For example, like in Brotherhood, you can recruit and send Assassins to do work for you in other cities. I think unlike the last game, they could knock a certain portion off of the Templars' control of that city, then once the city was "claimed" by the Assassins, it would slowly revert back to Templar control unless you kept sending Assassins there to do more tasks. By the end, I stopped caring about the other cities because this mindless economic exercise didn't even result in much change in the end; most cities became controlled by Templars again anyway. It was probably even a mindless economic exercise in ACBro as well, but it didn't hit home as such until this game proved the efforts to be futile.

Taking over the (local) Templar dens and converting them to Assassin dens allows you to unlock shops for renovation, just like the last game. Once your Assassins reach a certain experience level, you can appoint them to take charge of certain districts of the city, where if a series of other missions are accomplished, they can completely protect that region from attack. How does a den get attacked? Well, if you let your notoriety meter spike just a little to high and remain notorious, one of your dens will be attacked. Or at the very least, that's what I think is supposed to happen, because I never had this issue. Never mind that there was a big tutorial den defense game way back before I gave up playing, I never encountered that problem again. Which I'm thankful for, really, because throwing a tower defense-style game in the middle of the AC series is a really stupid idea, but still the fact that the possibility that it could happen, and then is completely preventable, leaves a sour taste in one's mouth.

But much to my surprise, ACRev is probably more of a story-driven game than its predecessors. Which is to say, its story was less crap than Brotherhood's. Near the end of the game, I played through a few missions that I'm surprised to admit struck an emotional chord with me, and especially after seeing the ending of the game (no spoilers here), those emotional moments were generously rewarded. I had to take a few moments to smack myself and remind myself that I still hated certain parts of the game and the entire game wasn't redeemed by the late-breaking awesomeness of the story. Still, while AC1's ending was a middle finger, AC2's was a strongly-shaken fist, and ACBro's was defecating one's trousers, ACRev's ending was probably the first point of satisfying closure the series has provided, though leaving the door open for more development in the future (obviously, if there's yet another sequel coming).

So to sum up this game way more quickly than any of the other games in the series, is it worth playing? Yes. Does it mean having to go back and play Brotherhood? Eugh... unfortunately, maybe, if only to get certain references that come up again here. Am I pre-ordering Assassin's Creed 3? Not yet. Maybe. I dunno. I'll probably jump on the boat months after everyone else does, as is my usual style. I'm sure I'll get around to it eventually though. Sadly, I no longer have my television to blame.

(Postscript: I haven't done much with the multiplayer, sorry. I'll get on that.)

Thursday, June 28, 2012

Quickersilverer

Lately I've complained a lot on here about games I haven't liked. How about something I do like? Probably the second game I purchased was Mercury Hg, a Labyrinth-esque (the ball-bearing kind) maze game with some interesting not-quite-puzzle elements. The object is to slide a drop (or drops) of mercury to a target area by tilting the entire game area, allowing the mercury to move with gravity. Along the way, there are bonus pickups to grab as well as moving platforms that might need to be activated by painting your mercury blob a different color and rolling over a handful of tiles. There are also magnets, conveyor belts, and holes that throw your mercury off the edge of the platform; lose too much, and it's game over.

Mercury HgFor each of the game's sixty levels, there are different targets to be reached for speed, the amount of mercury left in play, and how many bonuses you nab. On some levels, reaching these targets can unlock Bonus Levels (where you start out as a tiny blob and gather vials of mercury to make yourself larger) and Challenge Levels (strings of levels with combined time/mercury/bonus targets).

While some individual levels can be deviously frustrating, the overall difficulty of Mercury Hg is pleasantly middle-of-the-road. If you can't tackle all of the targets for a level at once, you can break the levels down into separate, more manageable runs. However, once some of these same levels enter into the Challenge and Bonus modes, the difficulty shoots through the roof as you try to grab 23 out of 24 bonuses in under three minutes with 100% of your starting mercury intact over the course of four levels (or something to that effect, you get the idea).

One thing that doesn't help is the camera movement in the game. While you can rotate the camera side-to-side fairly freely, you only seem to be able to zoom in and out via a weird curved camera track, which isn't helpful when you want to zoom in AND be directly above your blob. There's one level in particular (I think it was Iodine... Oh, did I mention the levels are laid out in the form of the periodic table of elements?) where you have two blobs that move through very high-walled mazes with holes in the ground, but you can't get a good angle to see the blobs and the layout of the maze at the same time.

The game itself costs 400MSP ($5), which is an absolutely fair price for a game like this. There are two expansion packs of 30 levels each available for 240MSP ($3) apiece, but they don't add too much to the game. A lot of expansion levels are rehashes of the gameplay ideas from the original levels. You'll feel like you've played the exact same level before, but not quite. Still, the basic package is well worth it on its own (unless you're an achievements chaser like myself), and I'd give it a strong recommendation. If you fancy a clever take on a classic game of skill, give Mercury Hg a shot.