Search This Blog

Wednesday, April 26, 2017

Killing replay value

So this is a #gamedev related post based on a discussion I had with a friend recently.

It was primarily centered around the lack of replay value in a lot of modern games.  Whereas previously in the 90's the games had a significant amount of replay value.  This I think goes beyond a level of nostalgia; it's actually I think more a product of the engines being worked with and the types of development being done.

There's a lot of really fine games out there; things that are absolutely superb - that I simply don't want to play again.  Or that replaying is simply a monumental task.  Games like Fallout 4 or Dragon Age Inquisition.  I love these games but can't bring myself to start over in many cases.  Yet I'll play the original Doom 1 (brutal doom modified included, of course) over and over again.  I mean probably at least a hundred times a year.

Why is that?

The answer hit me while having this discussion with a friend and recommending him play the new Doom (which was also a fantastic game).

The levels are simply TOO - DAMN - BIG.

There, I said it.  Wow, do I feel better now.  I mean that's the truth of it, isn't it?  These great games that we absolutely loved - simply require too much of us as an investment to want to replay.   Bigger levels and games mean bigger time sinks.

Ironically there's an answer to that.

Actually there's several but first we need some case studies.

There's an exception to this (from the standpoint of modern-ish games for me) - and that's Fallout: New Vegas.

I probably have over a thousand hours (easily!) in that game.  Now FO:NV was a huge game in it's own right.  While the base story is rather fast and easy to complete the game itself is huge in every sense of the word and rewards exploration.  Many games do this, Dragon Age Inquisition (DAI) did this pretty well too.  So what's different?

FO:NV has an absolutely UNREAL level of detail on the play variations and event markers for things happening.  It makes every game play a dissimilar experience (if you so desire).  Now this is accomplished with rogue-likes but I'm not a big fan of those because those never really feel like you're getting anywhere.  It's just another new randomly generated level with new randomly generated challenges.

FO:NV's level of detail is more linear but acts more like a series of alternate realities.  Sort of like "Al Gore beat George Bush" things.  The world is MOSTLY the same, but say 30% is different.  Couple that with a massive set of different endings.  I mean most games offer 'variable endings' in some sense but in many cases it's just the same thing with different screens.

And while most people complain about that happening with Mass Effect: 3, virtually everyone forgets the 'different endings' of games like Bioshock 2.  Now Bioshock 2 was an excellent game in every right - it played well, was innovative, but was terrifically linear and brought absolutely NO value to replay in any sense.  Not only did the game have only a superficial attempt at meaningful player choices, but the endings were literally 7 different versions of the exact same thing.  And I mean maybe a few words were changed or the color was slightly darker.  And there was the 'perfect' ending.  That was about it.  Sigh.  I literally played it once, got the perfect ending, and never played again.

Doom on the other hand (the original), specifically the first episode, was effectively short, fast, and furious.  It represents the other end of the play ability spectrum - massively fun, short romps. 

So back to FO:NV, as it fits the modern format a lot better.  FO:NV's level of detail with a huge plot and story allow me to go back and do all kinds of crazy things like wipe out whole towns, convert population alignments, or say kill a mine full of raiders who killed well meaning scavengers, keeping it clear, and allowing the scavengers to return.

Virtually every big box game these days does NOT do this.  They provide a linear experience that is easily managed and controlled.  One that allows them to figure out a simple story without drastically different endings.

So what can the average indy game dev do?

I think that the basic things we need to focus on is to provide a fixed set of a game that is basically the same every time in many ways:
  • Fixed, easy to grasp game mechanics
  • Mostly fixed environment, enemies, characters
  • A fairly basic trajectory for plot lines.

This is not unlike most of the games out there, right?  So what do we do different?  How do we increase replay value?

  • Don't make the game zones too long.  Break it up into easily digestible chunks.  If you can't finish a segment in 30-60 minutes, then it's probably taking too long for most people to want to replay.
  • Take 30% of the game environment, enemies, story lines and either randomly generate changes each playthrough (with procedural techniques ala roguelikes) or with meaningful player choices.
  • And lastly offer WILDLY DIFFERENT outcomes for player playthroughs.  Don't just give different colored screens and different words.  Give them completely different aftermaths.  Give them completely different endings.  
  • Allow minimal or complete modding.  I didn't mention this above but the proof is in the pudding.  Dragon Age Origins (the original), Fallout New Vegas, Doom - they all had very active modding communities centered around very open modding policies by the devs.  Even a little bit of modification allows a huge amount of replay value; open a door - let them change things like values, colors, sprites, you name it.  They will propel your product further than you EVER could by yourself.
THIS is how you make a game that has lasting value (and thus, creates a more permanent space  in the player's mind) which in turn allows future games to cash in on older IP's.


After a bit more discussion with friend it's worth mentioning that it's not just the ending that needs to be variable.  I probably didn't express this well enough but when I was saying 30% of the game should be changed, I meant story as well.  Your journey matters just as much as the ending; factions should hate you based on your actions.  Stories open and close based on who you are friendly with and whom you are not.  You get the idea.  It's not that hard to do, offer maybe three paths for say thirty percent of the faction alignments in the game.  Each of them affects things in a different way - maybe a little (ooh I'm helped by faction X during the end fight!)  or maybe a lot (end fight happens completely differently in different location).   

You get the idea. 

Monday, April 24, 2017

A month of minimal progress

Unfortunately my weather system isn't done yet.  Like.. it's done - but not done. Why? 
The investment of time required in one solid block (5+ hours, uninterrupted) is very hard for me to find as of current.  My new job (Linux System Engineer for Rite-Aid) has kept me busier than expected.

I also have been unable to do my usual forum perusals to keep my interest on boil too.  Will it get done? Yes.  When?  Not sure.

That's the honest truth.  I'm putting together a few things for MWDA too in my javascript game and I hope to post that on the website here when it's reached something appreciable but that's probably a solid 6 months of real development away which let's be honest, means probably more like 2 years in my world.

It's a shame, but that's how time is managed.  Life priorities are simply soaking too much free time.
What would be awesome is if someone wrote a Lua interpreter that could syntax check Game-Guru style Lua language without actually running Game-Guru.  Then I could build and test without actually testing, at least on a very superficial level.

Ah well.  For now, things stall.

Monday, April 3, 2017

MWDA, javascript, and weather system updates.

With my surplus of 'thinking time' for javascript coding, I find myself making progress inexorably towards a real, functional item.
So this isn't available yet but it will be soon.  I'm currently working on making this thing safely output to a page and I'll post it up on my blog eventually.

For your reference: MWDA is Mechwarrior: Dark Age.  It's a wargame using mini figures on the clix system.  It ran it's course a few years back and has since become something of a collector's item.  I collect many, myself.  That said, there's virtually no one to play with or against locally.  My sons aren't old enough yet.  So I have been humbly trying to migrate this to a program I can use and run to eventually build up to a full fledged game (similar to megamek in principle).  Then, eventually, I'll rip out the guts and rebuild it with my own game that I have been working on.

That said it's a great exercise in building something from nothing in javascript.  The current iteration builds it's own objects, a data table, a huge volume of information which only covers about 60% of the objects in the original Dark Age game.  There were many expansions of course, all of which will have to be added later.  The current version can do combat between two infantry units in direct contact.  It has no game board to speak of, no ranges, no graphics.  It's just the guts of a combat system and a very simplistic database.  

Once I have it mapping everything to a webpage properly I'll post it up on this site along with some updates from time to time.  I may obfuscate my code first, not sure.

We'll see.

 For now, that's what's up.  Once I sit down and hammer out my weather system (hopefully tomorrow) to make it consumable for the general public at large, then I will put it up for sale after final testing.  Price will range between 10 and 20 dollars.  Probably 15 with a sale price of 10-12.

Final checklist items needed for the weather system:
  • inclusion of my lightning scripting to provide realistic weather effects during a rainstorm.
  • ambient sound of various weather effects.
  • better methodology for deploying weather and time of day.
  • a general 'time of day' global variable based on loop counter/time.  Shouldn't be hard to do.  This will give a means to pull a time of day for secondary scripts (to allow shopkeepers to close up at 9pm, for instance).
  • better weather randomization.  Right now it's simply selecting based off a probability matrix.  This isn't really a great way to do things.  I'd rather it be for a percentage of the day vs just randomly selecting based on a time of day state change.  
I've also been thinking about just calling it early, wrapping it up, and saving other changes for a 'version two'.  Feature creep is a real bitch and sometimes it's better to just cut it off at the knees and save the rest for another time.  Some of this stuff is really easy.  Other stuff is more complex theoretical work (like how best to initiate/ramp up weather).

Anyways that's the status.  Take care and see you around.