Tuesday, July 30, 2013

Back to work

Construction worker eating lunch

Break time is over, and I'll be getting back into the swing of things.  I'll try to continue what I was doing last month:  once a week, a post about the horror text adventure, and on the other post of the week will be something random, be it an article, review, or whatever.  We'll see how far that gets me.

Tuesday, July 16, 2013

The outernet calls.

For the next couple of weeks, I'll be busy going to a wedding, travelling, and having relatives visit.  Next post should be on Tuesday, July 30th.

Mario wedding cake topper

Friday, July 12, 2013

Dev Log: Horror Text Adventure #14

This week I spent taking care of runtime errors (trace is my best friend), and trying to get new text to show up.  I've got it working for the top-left box, which says what rooms are in different directions.

Next is to get it to work for the top-center box which will be a bit more complicated.  That box isn't static, and doesn't change simply because you move from room to room.  It changes basically when you do anything at all; every command should change that box.  For now, my goal is to get a room and item description to show up there, so the player can see their surroundings.

I'm also trying to figure out the best way to tackle doors.  I kind of want the world to know what room is next to it, even if there's no door directly connecting it, that way if something happens in the next room, like a loud noise, the player will know.

For now, all that I have is a doubly-linked list of pointers in each direction, but there is no way of distinguishing between two rooms connected by a wall or a threshold.  Then, I'll also need to figure out how to make a door that starts locked, and have the world generation be smart enough to not put the key on the wrong side of the door.  But that will come later, once I've figured out door basics.

Tuesday, July 9, 2013

Infinite Beginnings

When I play MMORPGs, I make a new character and get plopped into a pre-chosen location to begin my journey.  In Tera Rising, everyone starts in the same place.  In Dragon Nest, there are two places to start, depending on your class.  In DC Universe Online, you get six starting locations, based on your chosen mentor.  In World of Warcraft, each race has a separate starting location, giving thirteen total options.  As much as I retch when I say this, WoW wins for variety.

Pandaren in WoW
Also: Pandas.  No other MMO has Pandas.
And a variety of starting locations is needed for MMOs and similar genres, because players are constantly making new characters and starting fresh, and the player may not want to see the same thing or go on the same journey every time.  And if they do want things to be the same, they can make a similar character.

But beyond the beginning, unfortunately, all of these games combine.  In Dragon Nest, for instance, it doesn't matter what class you pick, because by the time you get to level 10, you're following a story and quest structure that's identical to every other class.  Even WoW is guilty of this (despite it's thirteen starts), though much less so:  Trolls and Orcs, for instance, combine together once the player reaches the first city, as do Dwarves and Gnomes (I don't know beyond level 20, but I imagine that more races combine over time).

Yet oftentimes I feel that the content for unique character customization is far superior to storyline customization.  The first few times the player creates a character, they may feel that they are getting something unique... until they reach a point where their last character had been.

Now, I don't begrudge any game for being linear or having a linear story, since some of my favorite games are just that.  No one expects to pop in God of War, start up a game, and have Kratos appear in Egypt.  It's a linear story about a specific character, and his journey does not change, so a player restarting the game shouldn't expect to have a different experience.

But games that are heavy on customization, like MMOs, are trying their best to make the player feel like the game was made just for them, that they are an individual and are going on an epic quest that no one else has ever (or will ever) go on.  And surprisingly, thirteen distinct starting locations still isn't enough variety.

At least, not when it's predictable.

I've mentioned in an earlier article how MMOs can suffer from cloning because their is not enough variety is character customization, or in armor, etc.  But this is also very true for story.  If I know another player is experiencing an identical story, I don't feel like a hero anymore.  There is enough space between me and another player if I'm playing God of War, since I don't have to physically see another Kratos running around, but when I see another player completing identical quests (the worst offense is watching them kill a boss and waiting for it to respawn), I feel like a cog.

I think there are ways to fix this, and none-too-difficult, either.  Take a look at WoW, for instance:  there are clearly defined Alliance and Horde cities, where all races come together.  So let's take Alliance, just for kicks.  If you are Human, you start in a completely human area.  If you are Dwarf or Gnome or Night Elf, ditto.  They all start in areas where all players and NPCs are the same race as the player.

But if cities exist where all races join together, why should picking my race determine my starting spot?  It's not like choosing to be a Dwarf means I am born from a specific hole in the ground and by my nature I have to start there.  I could start in any Alliance city, outpost, village, etc., as long as those areas were set up for tutorial bits, and as long as the enemies weren't overpowering to a level 1 character.

The latter problem is easy enough to solve:  there is no reason today to have statically-stated (stat-ed? statted?) enemies.  Three words: dynamic difficulty adjustment.  MMOs use this concept already for PvP.  Players have their levels raised or lowered to average out teams and put everyone on equal footing.  This can be done in PvE environments, too.  A player who is level 1 might attack an enemy that appears to be level 1 to it, and deal out the appropriate damage, while a player who is level 10 looking at the very same enemy will see a level 10 beast.  And those two players can fight side by side, seeing the stats that match them.  This isn't impossible; it might not be the easiest thing to program, but the principle is there both in MMO PvP, as well as in games like America's Army where players see different things depending on their own circumstances.

The slightly less technical problem is the one of player tutorials being everywhere.  This however, doesn't need to happen nearly as much as you'd think.

WoW Training Dummy
Almost every stinking game I've played has a section where you have to test your first spell or skill on a training dummy, and there's no reason for it.  Half of the MMORPGs I've played also suffer from Glorified Exterminator Syndrome at low levels, where the player has to just go out and kill 20 rats.  Half of this nonsense can be eliminated.  Even if you are brand new to the world of MMOs, you don't need that much hand-holding.  "Click to attack, press the number keys for special stuff" is basically a combat tutorial for 90% of MMORPGs.  The tricky things for MMORPGs are those oddly specific mechanics like crafting which a non-gamer might not readily understand.  But everyone can understand "click on the enemy to kill them."

But, let's suppose for the sake of argument that we really do need those early tutorials.  Do it basically the way DCUO does it:  the tutorial sequence is the same for everyone, and then the player gets placed in their individual starting location after the first ten minutes.  It's not ideal, but it's an example to go by.  And if that must be done, making it skippable would be better.  No need for hand-holding the fifth time you play.

The opening level of a game has always been regarded as the most important, just as much as the opening chapter of a novel or opening scene of a movie.  In each case, it's to grab the audience and make them want to continue playing/reading/watching.  Games have an additional reason:  it's the part that's going to be played the most.  It needs to be good enough that it can withstand being played over twice as much as the rest of the game.

Multiple starting points fixes that, to some degree, but players do blast through them all if there's only a handful (and the most I've seen is only thirteen).  But if the entire game world were an option, with every town or city or outpost or any civilized area at all, the number of options would rise exponentially.

Then a player who makes a new character will certainly never get bored, and we can finally say they'll never play the same game twice.

Friday, July 5, 2013

There's Something About Adventure Games

There is something beautiful about Adventure games.  MYST-style, that is: first-person, puzzle-based, surrealistic, thought-provoking, mind-bending.  Of course, I call it "MYST-style", but I think that's kind of like calling an FPS a "DOOM clone".  That was true once, but they've come into their own, and though they appear to be oddly specific on the surface, the paradigm allows for infinite variety.

There is the MYST series, of course, and others of its time like The 7th Guest games (a slightly different take, but within the mold).  And after that, of course, Adventure games died--but this article is not a history lesson.

So let's zip to the present, where there is a light resurgence of Adventure games.  Often they're in the guise of another kind of game, such as Platformers, or mixed half-and-half (or worse proportions) with other genres, like Action.  Pure first-person puzzle-Adventure has become exclusive to casual games, and there are too many awful ones (if it labels itself as an "Escape the Room" game, odds are you want to skip it), so searching for a diamond in the rough is quite a task.

There are great Adventure game developers, like Mateusz Skutnik, as I've mentioned before, with his Daymare series, though his Submachine series is even better.  But unfortunately the list of quality Adventure devs is quite small.

What happened to Adventure games?  There seems to be this constant complaint that games these days are too violent (they've been violent since Spacewar! in 1962, so knock it off with the "these days" nonsense), and violence creeps into practically every genre.  Too often, my search for a puzzle platformer leads me to a puzzle platformer with guns.  Adventure games are rarely violent, partly because they don't lend themselves to violence well.  Violence tends to be a quick, think-on-your-feet kind of action, while Adventure games are designed around thoughtful, drawn-out decisions and contemplations.  I've played Adventure games with violence, but I have found the violent sequences to be almost universally quick, actiony challenges that quite break the flow of the game.

Space Quest spider part
Games where you have to type are not meant for action... Note to self...
I don't quite know what the demand is for Adventure games.  The big industry doesn't seem to care, so Adventure games have become an indie thing.  But hey, if games these days are too violent, bring back the Adventure games, and have yourself a ball...

I think the death of Adventure games was also partly because it was thought that anybody could make them.  MYST's puzzles were extremely difficult, but they were also fair, and quite clever.  I think Adventure game makers jumped on the "extremely difficult" part, but forgot about the "fair" and the "quite clever" bits.  You can still see this, not just with older Adventure games that left no mark, but also in today's casual Escape-the-Rooms, where the puzzle might make no sense ("Of course you have to take the light bulb out of the fixture to unlock the door!  Why didn't I think of that before?").

The other trick of a great Adventure game is surrealism.  Even a game that takes place in a "normal" house (The 7th Guest, for instance) is very surreal.  In most games, the art of a game is a given, and beautiful vistas are not taken into consideration.  Although a player might have their jaw drop when they enter a new area (and I hope all developers strive for that), their mouth shuts when they need to shoot something.

But with Adventure games, that feeling of awe should happen with almost every click of the mouse.  Every time the player sees a new screen or solves a puzzle, something striking should happen.  I just finished playing an Escape-the-Room game that took place in an apartment.  There was nothing interesting to see.  There were probably a dozen puzzles to be solved in the room (or even more), but each one only achieved an unlocking of a drawer or a safe in the wall.  There was nothing impressive about it.

Yet even a beautiful, surreal world follows logic, and the combination of the two can trip up a designer.  It can follow its own logic, to some degree, but it must make sense in the context of the game.  MYST's world used books as a mode of teleportation, and this concept was introduced at the very beginning of the game.  Everything else that followed was a beautiful screen with a completely logical puzzle.  You never needed to drown a fish to unlock a door.

There was a game called Juggernaut for the Playstation (full disclosure:  it was panned, but I loved it) which took place inside the mind of the player character's girlfriend.  Since it took place basically in the imagination, anything could happen.  Yet the designers did not give into that temptation, and instead made each puzzle completely logical within the context of the incredibly surreal world.  You needed to do illogical things like paint a door to make it take you somewhere else, but before you tried to solve that puzzle, you understood that that was something that could happen in this world, so you went along with it.

The key to making a great Adventure game is to understand the opposing forces of the medium:  a logical surreality that, like all videogames should do, is challenging but solvable.  A player should never need to guess at the solution to a puzzle, but they should have to think about it for a bit.  It's the "Aha!" moment that drives the Adventure gamer.  Too often that moment is non-existent in a game, and that's why it fails.

The third, perhaps equally important piece of an Adventure game lies in the convergence of story and puzzle.  Each puzzle exists for a reason, and can't be there arbitrarily.  In MYST, Atrus created many of the puzzles to keep his sons from getting into the books behind them.  They are not just logical puzzles, but logically existent.  The Escape-the-Room game I played recently had no reason for the puzzles to exist in the first place.  Why am I locked in this apartment?  Who would go through all this trouble to hide all these keys around, create all these puzzles?  No one, really.

Adventure games, all told, are much more difficult to create than most casual gaming mills think.  This is probably why they died:  there were too many terrible ones, not because they were hastily slapped together like many of today's, but because making a passable Adventure game is much tougher than it seems.  When one genre grows in popularity, it suffers from too many copycats that don't know what they're doing.

After the boom and bust of Adventure games in the 1990's, they went on hiatus for a while, or got subsumed in other genres.  But now it seems there is more interest in the genre in the indie scene, and although there is a lot of rough, there are a few diamonds, if you know where to look.

Tuesday, July 2, 2013

Dev Log: Horror Text Adventure #13

Mostly been trying to figure out items. Items are basically everything, I've decided: a poster on a wall is an item, a key is an item, a bed is an item, etc. Then each item has a "takeable" boolean, a description vector of strings (separate sentences, so if one sentence changes I can change that part, I think), and a "container" boolean. The container boolean basically is whether the item can contain other items (like a treasure chest).

I spend a lot of time hemming and hawing over how to make the content itself. I considered text files that would be read in, but that was 99% just for making it easier for me to type up.  I am unsure how best to code something like that, with most tutorials I see load the file into memory, and it doesn't work for large files. I don't know how large such a file would be, but even so, it's really not necessary to go through the trouble just so I can write item descriptions easier.

So instead, I've done it in good ol' fashioned AS3 code, with lovely switch statements and the random function to pick descriptions for items. I expect the same will work for room descriptions, as well.  So it doesn't look pretty; I think it works well enough.  I think there should be a way for me to squeeze the switch statement by eliminating one more repeated line (just a vector.length++ line that really needs to go), but I'll figure out the proper way to do it sooner or later (preferably sooner).

I guess now one of my concerns is making more universal statements. I mean, why repeat "There is a bed here" and "There is a chair here" when I can type "There is a [item] here" and have the code take care of all that?  But the two tricks I need to learn is making upper and lower case properly so it doesn't say "There is a BED here" or garbage, and also determining, with more descriptive ones, which ones go where ("The TOILET PAPER is RUSTY" should not occur... although that would certainly be disturbing).

I'm sure there is lots more to specify with items, but it's a start. My hope would be that items can be made universal, and perhaps I can add the names to the dictionary to help work the text parser. Ah, well, interconnectedness shall be biting me, I am sure.