Tuesday, May 22, 2012

Update: Break time

I'll be going hiking beginning Friday and through the next week, so I won't be posting anything on those days.

When I get back, I'll see where things stand on this blog.  I'll be refreshed, energized, and ready to slam down the awesome.

Friday, May 18, 2012

The Glitchers Sample #2

This is another test scene for a Glitchers series.

This one is less RPGish in nature and more of a modern spin.  It's much shorter than the first because it's just meant to be a quick introduction to the character and the setting, rather than conveying any emotion or plot.  I might pick this setting, the previous setting, or use something completely different.  I'm thinking of combining them into a fun chaotic mess.


Summer got up from her chair and studied the code on the whiteboard, line by line.  Looking at the forest didn't show any problems, so it was time to look at the trees.

She took a marker off the ledge and tapped the board as she repeated the code out loud.  She read the complete code three times, her tone growing increasingly frustrated with each iteration.

Finally, she put the marker down, backed away, and rubbed her eyes.  Time to look at the forest again.

Colin wrote pseudocode in his notepad, considering other ways to write the function.  He couldn't see the logic error, and sometimes the only solution is to erase and start again with a new approach.

Colin didn't want to speak to ask a question; Summer hated being interrupted while concentrating on problem like this.  Despite her name, Summer could be a cold woman when she was working.

"Oh, for crying out loud!" Summer suddenly burst, half an exclamation of joy at solving the problem, and half of aggravation for not solving it sooner.

She marched right up to the whiteboard again, wiped out two variables--one being subtracted from the other--grasped the marker, uncapped it, and quickly squiggled the reverse.

Colin facepalmed, and sighed.  "Wow.  Thanks, Summer."

"It's the simplest things that getcha," she said.

Colin couldn't tell whether she made the statement with a friendly 'we've all been there' concession or a mocking smirk.  She was impossible to read.  Most of the men and a couple of women in the office had once thought of her as a cute catch, but found her vexing personality didn't match her name and face.  Work was all business, and it seemed that work was her life.

"I feel like an idiot," Colin said.  "I've been confused for three hours on this."

"That's the way it is.  It's never something in the structure or the idea that's wrong; it's always a plus instead of a minus, a forgotten semicolon, a constant that should be a variable..."

Summer's attempted reassurance didn't reassure Colin, but he thanked her again, and left back to his cubicle.

Summer erased the whiteboard, thinking.  If someone making a small program down here could make a little error like that with such disastrous results, how perfect must the code of the universe be?  And what happens when there is an error?

Tuesday, May 15, 2012

Article: Games as More than Rules

Ever since The Spoony One began his Counter Monkey series, I've become fascinated with Pen & Paper RPGs.  As I watch his Dethklok Campaign, I realize I've been missing quite a lot of tabletop gaming goodness.

I've never been into D&D or other tabletop RPGs, mostly just because I haven't had much opportunity to get into it.  The entry threshold for such games is quite high, what with needing so many players, understanding all the number crunching, and having the time to play.

So the closest I ever got pre-college was a Milton Bradley boardgame called HeroQuest, which I've heard as described as "D&D 101".  In college I played Descent: Journeys in the Dark, which is a D&D 102, if HeroQuest is the first.

However, both of these are completely inaccurate nicknames and are practically insults to D&D.  Not quite as bad as the movie, but still.

The problem is more of what is defined as D&D.  The rules, while complex, can be mimicked by a computer, and there are many, many videogames that are simply that.  But there is something completely different between playing Neverwinter Nights on a computer and playing D&D with five friends around a table.

The part about using your imagination is taken care of, for instance.
And I'm not simply referencing the social aspect, although that is undoubtedly a major portion of it, but one could argue (and I do) that analog games will always have that advantage over digital.

But the real point of D&D is that it's a storytelling engine that relies on ingenuity and improv using a dice-based system to add some chaos to the mix.

The videogame versions have the numbers down pat, but a digital system, no matter how well designed, cannot allow for the decisions players want to make.

In any videogame, there are only a certain number of discrete actions the player can make.  If the animation or physics don't allow an action, or if the designer did not expect such a decision to be made, it simply can't be carried out.

While every bit of dialogue in a D&D session comes out on the fly, little can be done to replicate that on a computer.  Dialog trees do not account for every option, and it will be a few more years before algorithms and programs are designed to accept and analyze human speech to create appropriate responses.

"I'm afraid I can't do that, Dave.  Use one or two word phrases only."
Yet even beyond the dialogue, physical actions have the same limitations.  In the Dethlok campaign, the heroes had to perform a spell to create a portal to a throne room, and perform a second spell to break a King out of an amber prison.  The players decided to make the portal, and have the second spell caster stay on the other side and cast the un-imprisonment spell through the portal.

This was something the DM didn't expect, but he allowed it.  In a videogame version, if the designers didn't expect the players to cast a spell through a portal, the programming simply might not allow it (perhaps claiming lack of line of sight, or the distance being too great, or whathaveyou).

In the same encounter, another player set fire to his bedroll to create a distraction, and the DM allowed that as well, on the fly rolling dice to determine how the fire spread.  The fire was effective in blocking some enemies, and might have helped turn the tide of the battle.

During an earlier boss battle, the final blow was a critical hit with an axe.  The DM improvised that the blow cut off the boss's head just as a casual fluff to make the kill seem appropriate and entertaining.  The players then took the head and kept it with them for ten days to prove that they were trustworthy (after previously being framed for the death of the King).  The DM described how it had rotted and smelled over that time, and one player who carried it had to improv an excuse for the smell.

"The barkeep will never suspect a thing."
In the course of the Dethklok campaign, there were at least a few of these instances each session.

Without a human to extend the limitations of the system on the fly, computer games simply cannot mimic the real purpose of D&D and other Pen & Paper RPGs.  The stories of videogames, no matter how interactive they may get, can't get quite that interactive without human intervention (or at least a premonition).

I'm not knocking on videogames, of course.  HeroQuest, the board game, tried to create a dungeon-crawler.  But battles and encounters in D&D, while taking up a huge chunk of the gameplay (and the majority of the rules), are not exactly the core of the system.  HeroQuest doesn't allow for more than the most generic of dungeon crawls and no room for improvisation, because the rules are too tight.  You attack, cast spells, search for traps, etc.  You can't carry the head of your fallen enemy.  There is hardly a storyline.

I don't have any major problems with dungeon-crawlers, and I've enjoyed my fair share.  But, even if it technically has identical rules, it isn't the same game.  By their nature, just about every videogame is more like Clue or Battleship than D&D, simply because there is no room to make up stuff on the spot.

I wonder if this is allowed simply because they forgot to say "No punching each other while on the ice" in the rules.
Pen & Paper RPGs are a new breed of games (well, relatively new, given the history of games, let's suppose), which challenges the idea of what rules are for in a game.

In most games, rules restrict what you can do.  In Clue, you can only suggest the murder occurred in the room you are in, unless you are making an accusation.  That is a rule.  You cannot break the rule.

In D&D, the rules simply provide a framework for skills and chance, and instead of limiting players, it encourages smart thinking and rewards ingenuity.  Just because the rules don't explain what to do when you light a bedroll on fire and throw it through a portal to the surprise of six guards, that doesn't mean it's not allowed.  There are enough variables in play that a careful DM can take what is given and roll with it.

So to speak.
Perhaps the most impressive piece of improvisation in the Dethklok Campaign came in an early battle when the character Garret was killed by the sting of a Scorpion Queen.

But instead of killing Garret outright, the DM allowed him to survive, and gave him a curse from the Scorpion Queen's sting that possessed him and not only gave him a character quirk, but significantly altered the campaign.  Every major event in the campaign was effected by Garret's curse, even allowing Garret and two other heroes to escape hideous torture.  At seemingly random times, the DM would ask Garret to roll dice to see if his heightened spidey-senses notice something he otherwise wouldn't.

D&D is part game, part novel that five or so players make up as they go.  If the sessions were written down and cleaned up, the stories created would easily rival the biggest blockbuster movies or ancient epic poems.

This article, however, is not just vehement praise of D&D, or even of all Pen & Paper RPGs.  Rather, it is more a discussion to help think about how we define games.  SimCity changed videogames just as D&D changed boardgames, and perhaps MMOs did the same.

I end with two topics of questions:

Are there more ways we can expand our ideas of games?  D&D turned games into a true storytelling medium.  What else can games do?

And secondly, how to we get videogames to do what humans can do?  How do we allow players to perform actions that the designers didn't think of?  How do we create a framework in the digital world that rewards improvisation and ingenuity?

The designer of this thing did not expect it to be used as a wig.

Friday, May 11, 2012

Development Log: Facebook Timeline Adventure #2

I've decided it would be best to stop and restart the Facebook Timeline Adventure.

One of three programs I've been using to keep track of it.
I had been just making it up as I went along, with just one random encounter after another.  Since I don't have a solid plan for it, it gets confusing fast.  I had a few ideas that sprang to mind as I worked on it, which caused me to rethink how I even began the game.

If I kept improvising, eventually I'd paint myself into a corner or expand the choice tree outward far too much, making the whole project unwieldy and difficult to write for.

So what I'll be doing with it instead is working on it off Facebook for a time, getting an outline working and a better idea of where I want to go with it.

Then I'll make a flowchart of the entire thing, based on my outline, and finally I'll write the pages and pop them into Facebook.  What is already there will probably be deleted, so I may just create a completely different story altogether.

If that plan works right, I'll be able to create a more interesting and compelling game.

I hope to keep the RPG aspects of it simple to make it more of an RPG/Choose-Your-Own-Adventure hybrid, that works as more of a parody of both games.

If you have any ideas for what you'd like to read, leave a comment.  I may implement suggestions.

Tuesday, May 8, 2012

Learning Radiant - Hours 2 to 4

"The possibility of a resonance cascade scenario is extremely  unlikely," they said; "it's probably not a problem," they said.

Hour 2

Well, I tried to follow the tutorial again.  Problems ahoy.

So I did some searching and discovered a Valve Developer page which says:

"Note:  GtkRadiant 1.5 has certain compatibility and stability issues when creating maps for Half-Life, for this reason 1.4 or earlier are recommended instead."

So with that helpful piece of advice, I uninstalled 1.5 and installed 1.4, went to create a new Half-Life file, and...

Half-Life was not an option to choose from.  Counter Strike was, so I took it.  It appears so far that, to the program, Counter Strike and Half-Life are interchangeable synonyms.

Long story short, caulking still won't work.  Perhaps caulking is something that Half-Life simply can't handle, so I'm ignoring it until necessary.

So I tried the other steps again:  hollow cube, texture, player start, light, compile, and... it worked!

However, I started getting save errors.  Radiant tried to append "No brushes selected" to the end of the file name (even if I do have a brush selected as I save).  This is the weirdest freakin' error I've ever seen.

Somehow I fixed it, through a combination of saving, compiling and loading, but I'm still not sure exactly what the fix was.

The only error I seem to have left is figuring out how to make Half-Life find the file and play it.

Hour 3

In an attempt to get the level working, I backtracked and hosed myself.  Even though I solved that filename save error once, it came back.

Finally I found the solution with enough searching, which was to simply uncheck a particular box, and now saving works fine.  Still, the level doesn't seem to load in Half-Life, but at least I completely solved one problem.

Although, on occasion, the box rechecks itself.

The error I seem to be getting about loading Half-Life is that I'm seeing the Eye of God.

As the loading screen slides up, the screen looks like what's on the bottom there.
I can still hear the jump sound so I know the player is landing on solid ground; it's simply the visual that isn't working, even though I have a light and an enclosed space.

I had the thought that it might be a texture issue, so next I added an HEV suit into the level, since it's a model.  This is what I got:

I also noticed that when I load the test level, I get the warning "could not find [wall texture] in any listed wad files, searching all wad files instead!"

So my guess is that even though the editor finds the texture properly, it is not directly connected to the map when I compile.

So next I tried turning the room into a prefab, thinking that perhaps the texture would be (and I don't know the technical term) "fused" to the model.  However, the program crashed when I tried to make a prefab, so I'd say that's out for the time being.

Hour 4

I tried looking up the warning I got (minus the exact texture name) and I got exactly 1 result, in German, and the solution was never found.

I tried just opening a Half-Life level to see what they do differently.  Unfortunately, because the editor uses .map files for editing and compiles them into .bsp's, I can't load a Half-Life map into the editor.

My next thought was that perhaps the editor has a problem with the whole Half-Life/Counterstrike naming thing, and I had best reinstall the editor and point to Counterstrike instead of the original Half-Life.

No luck.  Same problem.

Until I can get this fixed, learning Radiant will slow down to a crawl.

If you have any suggestions for fixes, leave a comment and I'll try it out.

Friday, May 4, 2012

1st Impression: Fruit Ninja Kinect

Fruit Ninja Kinect is a free download when you purchase a Kinect.  It's fun for the first two minutes, but gets boring far too quick.

In Fruit Ninja, your task is pretty much what it sounds like from the title: fruit will come flying onto the screen, and you try to slice the fruit in half before it leaves.

You have a shadow displayed on the wall behind the fruit so you can more easily aim your slices, which is a very well-thought detail.  Unfortunately, that's the most creative aspect of the design.

There are many kinds of fruit, most of which slice like all other kinds.  However, when you slice certain kinds of bananas, you might slow down the speed of the fruits, or double your points for a short time.  If you strike a dragonfruit, you zoom in on it and can continue to slice it for a huge combo.

There are also bombs that are thrown which you must avoid, which can make you lose ten points, or end the round prematurely.

There are a few different modes to the game with little difference: some modes are timed, others let you keep going until you miss three fruit.  There is also a Challenge mode which simply mixes up the modes and gives you a goal to reach each round.

There are also two-player modes where you can work together or compete.

However, there is little in the way of variety and the rewards simply aren't worth the trouble (different colors for your slashing motions, new backgrounds).  There are also 21 Xbox achievements to unlock, which seems like way too many.

Ultimately, Fruit Ninja Kinect is no more than a party game, and even then it is not one you'd spend much time on.  It's a minigame that should have been included in a different game.  It might have worked well if it were a sixth game in Kinect Adventures, for instance, but it did not need to be its own entity.

But while the game is fun for five minutes, what kills the experience is the menu.  You activate buttons by slicing them, and I find myself slicing the wrong button when I am simply moving my hand to reach the right button.  The scrolling menu for selecting visual options also seems to behave too quickly:  when I try to slide the menu down, it slides up.

I wish I could write a longer review, but there's is nothing else to talk about.  It is that simple a game.

Fortunately it's a free game, so the most you are wasting is some space on your Xbox.

At the end of the day, Fruit Ninja Kinect is better suited to a Mario Party minigame than a standalone Kinect experience.  It's okay that it shows off the Kinect's abilities, but Kinect Adventures does this already, and far better.

Tuesday, May 1, 2012

Learning Radiant - Hour 1

I remember when I first downloaded and tried to use Radiant.  In the manual there was a quick tutorial on making a simple room, starting with a hollow cube.  I remember that I could make the cube just fine, but when I clicked the 'Hollow' button, the cube got deleted.  This annoyed me greatly, and I set the editor aside, to be learned when I had more patience.

Well, starting it up again (to learn it in earnest this month) led to the same problem.  I tried hollowing out a cube many times, but it never seemed to work.

The manual's tutorial simply doesn't work for me, and I can't yet find the problem.

So instead I found a decent resource on how to use Radiant, and I tried making the room based on what it showed.

I made six separate thin cubes that would serve as the sides of a hollow cube.  I grabbed a random texture from Half-Life (the only game I have that Radiant works for) and applied it to the cubes.

This worked without problems, so I added a light and a player start, and compiled.

My BSP disappeared.

In fact, my light disappeared too.  The compiler detected no errors at all, so I don't know why almost everything went boom.

That green thing is a player start.  The gray is where my light and walls should be.
I can only imagine there is a problem with the way I set up Radiant, like the directory structure is off or it points to certain folders or game files incorrectly.

So next, even though my BSP seemingly went away, I decided to test it anyway.  The online resource seems to indicate that there is no way to test in-editor, so I went into Half-Life and tried to load up my test map.

It can't find it.  Half-Life can't find anything but Team Fortress and Opposing Force.

So I seem to have at least three problems I have to figure out before I can move on: compile disappearance, hollowing disappearances, and Half-Life finding the file.

This is going to be a fun month.