Thoughts On: New AAA Gaming Debuts, Promises and Expectations

New IPs (Intellectual Properties) come and go in any media. Movies have their John Carter of Mars and Vampire Academy. TV has their unpopular spinoffs like The Lone Gunman , Trust Me, and Rubicon. They try to capitalize on a franchise or build up a new one, they are either over-ambitious and  over-optimistic to the point where they just can’t live up to what they were trying to bring to the audience, or they are overly simplified and uncreative, bringing nothing new to the table and not creating enough substance to keep an audience entertained long enough to last even a half season.

Games aren’t any different than more traditional entertainment. There’s a build up of all of this news and press about how the game looks great and plays well but once it’s time for the game to be released, all of that buzz evaporates into a white noise of simply going unnoticed over the wash of other games that get released or older games that people go back to. Although, some games do tend to keep up with the perpetual hype distortion field that it generates for itself and they continue to at least pump out something every so often to the combined purchase power of a few million or so fans.

Keeping Promises and Managing Expectations

The most recent disappointments were The Order: 1886 and Watchdogs.

The Order came as a late advertised game during E3 2013 and it made a slight splash with the gaming press and other attendees of the Expo. The retconned-historics lead to an entirely different look that the could set it apart from many other space-marine blaster-cannon games that have been looking more and more alike since the Battlefield/Call of Duty war of the past decade or the Gears of War look that has yet to be a passe style when pulling in the young Males market.

the-order-1886-listing-thumb-ps4-us-09un14

The game touted a monster mayhem shooter set in a post-industrial, pre-modern Victorian era which is already setting itself apart from the three major eras to pull from World War II and Nazis, Cold War and Russians, or Modern Era and most of the civilized world. They even already set the realism dial to implausible by making it a story about fighting monster half-breeds so they could pull from any pre-modern monster Lore that they wanted to spice the game up however they chose. The game had so many avenues available to it and yet it couldn’t capitalize on it. What we got was a got was a pretty uninspiring over-the-shoulder shooter and a slight depression that a game with so much promise was such a let-down. It looked great, but the story was piecemeal and a bore to sit through and the game was repetitive at best. The game didn’t set themselves up for failure, but they had so many ways to be creative and use the source material that they’ve developed for themselves in a better way that would keep people excited to play the game.

Watchdogs was the game that set themselves up with several impossible to meet expectations.

Remember this trailer? The first one that got the gaming populace talking about how amazing it would be to have a GTA-style Mayhem engine with the ability to play super-spy and dick around with everyone in the gamespace and the manipulate the environment itself? I bought into the hype when this trailer came out at E3 2012 because I just had the perfect image of what I would want to be able to do within the game. The trailer was perfect in that it allowed me to imagine how I would want to interact with the game. To be able to orchestrate the perfect getaway with the rhythmic change of the traffic lights and the raising of the barricades, all of the 21st century enhancements that GTA doesn’t want to move towards, yet.

The problem with letting my imagination run wild is that you never set an imaginative ceiling for me to reach. Not only that, once you start taking away the open-ended parts of the game that let my imagination run wild in the first place, you ultimately leave me with a different game entirely. Watchdogs set such high expectations for themselves that leaving out any feature that they showcased at premiere was going to hurt how we view the game. Something about keeping promises would be a good thing to mention here.

Delivering a vision

Assassin’s Creed may have gone down the toilet in some of its more recent iterations, which would be a great explorative discussion for another time, but when the game was first debuted in 2007 it had me eager to get my hands on the game. The game was repetitive at times, with missions and objectives being too similar across the game that the side-missions quickly devolved to a chore-like drone, but the game delivered exactly what it had promised us in its debut trailer. A century in the past, hand to hand combat with an emphasis on stealth and cunning, and most importantly showcased the ability to interact vertically with the environment as you wished. Scaling up a few dozen stories of a monestary to gaze at the historic Jerusalem, Damascus, and so on, only to plummet at breakneck speeds into a cart of hay at the city streets only to start the exploration once again.

The vision that Assassin’s Creed brought the player and the vision that the game was able to deliver was almost identical so that even the lowlights weren’t being focused on so much because the anticipation was focused on the vertical free-roaming free-running ability of the game.

Little Big Planet also debuted at E3 2007, promising us the Create, Play, Share model that many other games have adopted since. Creating whatever creatures you wanted within the game or task yourself with creating a challenging platforming level within the game, being able to playtest those levels directly within the game so keep the flow of creation from being disrupted, and sharing those level with anyone else on PSN and watch as others play with what your imagination and effort have spawned.

The tools were easy to use and intuitive to understand, the standalone game was fun and offered a lot of creative uses of its tools to help spark the creative instincts, and the community was active in its development offering many levels focusing on either a single mechanic to playtest, a new creation to share or an amalgamation of each to a challenging super-level that was hot stuff for the next few weeks.

The game built its hype around the features that were the most important parts of the game and those that were being tested the most. Much like how Assassin’s Creed focused its hype around the free-running, we were enthusiastic about the creation aspects of LBP and constantly reminded about it. The Order didn’t really have any in game mechanic for the audience to focus on, other than the timeperiod. Watchdogs had its phonington hackathon 9000 as a big focus, but it also had the manipulability of the environment as a big focus as well, both of which were overhyped and underdelivered.

The guess the lesson is, if you’re gonna keep promising your audience it’s best to put most of your development into those areas.

No Notice

The Uncharted trailer for the PS3 definitely didn’t showcase much of what people wanted from the game, but it also didn’t promise us anything other than a jungle treasure-hunting adventure. It didn’t leave us expecting much from the game, it didn’t overpromise anything that it couldn’t deliver. Actually, it didn’t promise us anything. So when it delivered such a summer-blockbuster story with (at the time) fun gameplay, and context sensitive ass-scratching, everyone was surprised by how good it was. You don’t need to overpromise us a gimmick to play the game if it looks like it’ll be a good time. It’s one way to mitigate expectations I suppose, aside from the accolades of coming from Naughty Dog, I mean.

Twitter:@GIntrospection

 

Game Dev Tutorial: Twinery Day 2: Swigler enters the Hinterlands

For Twinery.org 2.0 Harlowe. Reference guide

This part of the guide is more for advanced use and more advanced routines from the reference guide. Because of this, I’ll be describing the use of what’s going on instead of a step by step guide of a “Let’s Code”.

For understand the basics of Twinery, check out the first post here: Part 1: Basics

::Your Pocket

(print: “**Pocket**”)

(if: $pocket) [

(if: $pocket’s sword > 0)[Swords: (print:$pocket’s sword)]

(if: $pocket’s flint > 0)[Flint: (print:$pocket’s flint)]

]

(else:) [

(set: $pocket to (datamap: “sword”, 0, “flint”, 1))

]

03 - Your Pocket

So, “Your Pocket” has a few things going on with it. It’s meant to do two things, initialize $pocket if you don’t have one and print your inventory when you do have a $pocket.

(if: $pocket) […]

(else:)[ (set: $pocket to …)]


 

if the pocket exists do something

(if: $pocket) […]


 

otherwise, create a pocket with some value

(else:) [(set: $pocket to …)]

In this case, we’re setting $pocket to:

(set: $pocket to (datamap: “sword”, 0, “flint”, 1))

which has attributes of “sword” and “flint” with a count to your inventory 0 and 1, respectively’


 

So next time “Your Pocket” gets displayed:

(if: $pocket) [

(if: $pocket’s sword > 0)[Swords: (print:$pocket’s sword)]

(if: $pocket’s flint > 0)[Flint: (print:$pocket’s flint)]

]

Your $pocket should exist and if you have any stock of your inventory (e.g. flint):

(if: $pocket’s flint > 0)[Flint: (print:$pocket’s flint)]

It’ll be printed that you have something.

 


:: Something about Swiglers Family

(display: “Your Pocket”)

{

(if: $pocket’s sword <= 0) [

Swiglers family was a bit dim, as their batteries didn’t power their ideas. [[Sniglers Life]]

]

(else: $pocket’s sword > 0) [

[[Oh, you can now venture forward. You have stuff|Start Adventure]]

]

}

04 - Swiglers Family

(display: “Your Pocket”)

Display the contents of “Your Pocket”, which the first time it’s called will initialize $pocket with flint.

(if: $pocket’s sword <= 0) [

Swiglers family was a bit dim, as their batteries didn’t power their ideas. [[Sniglers Life]]

]

When we don’t have a sword, we get a certain block of text linking to passage “Sniglers Life”

(else:) [

[[Oh, you can now venture forward. You have stuff|Start Adventure]]

]

If we have a sword, then we get a different text block linking leading us to “Start Adventure”


 

::Sniglers Life

Life Was Bland

A large rock was outside you’re house.

{

[You go and look under the rock]<looking|

 

(mouseover: ?looking)[

(replace: ?looking)[

But you found a sword

(set: $pocket’s sword to 1)

(display:”Your Pocket”)

[[Go back a few steps|Something about Swiglers Family]]

]

]

}

05 - Sniglers Life

[You go and look under the rock]<looking|

The text “You go look under the rock” is displayed to the screen, but it has what’s called a hook, which we labeled as “looking”.

[You go and look under the rock]<looking|

(mouseover: ?looking)[

(replace: ?looking)[

“Something here”…

]

]

We hooked “looking” with an action “mouseover”. When we run our mouse over this text, it “replaces” the text blob that was hooked with whatever is within the “Something here”

 [You go and look under the rock]<looking|

(mouseover: ?looking)[

(replace: ?looking)[

But you found a sword

(set: $pocket’s sword to 1)

(display:”Your Pocket”)

[[Go back a few steps|Something about Swiglers Family]]

]

]

In this case, you print some stuff, add a sword to you inventory, show your inventory, and display a link back to “Something about Swiglers Family”

So when you take the link back to “Something about Swiglers Family”, you now have a sword in your inventory, so it should look a bit different now.

Twinery - Item get--Half

The Hinterlands

:: Start Adventure

(display: “Hinterland Enemies”)

You’ve encountered something already?! you idiot…

(set: $next_loc to “Hinterland’s End”)

(display: “Combat Start”)

07 - Start Adventure

This block should be a bit straight forward.Show the “Hinterland Enemies” passage, set the variable $next_loc to “Hinterland’s End”, show the “Combat Start” passage. $next_loc is meant to be the passage that you’ll be heading to after combat Is finished. You’ll see it in action in a bit.


 

::Hinterland Enemies

{

(print: “New Enemy has joined”)

(set: $hinterlandsGoose to (datamap: “name”, “goose”, “hp”, 5, “atk”, 1))

(set: $hinterlandsPoop  to (datamap: “name”, “poop”, “hp”, 3, “atk”, 2))

(set: $enemy to (either: $hinterlandsGoose, $hinterlandsPoop))

}

06 - Hinterland Enemies

This block is generally standard for the most part. Set up different enemies for the area giving them properties like a name, health points and attack damage. The interesting line of code is this:

(set: $enemy to (either: $hinterlandsGoose, $hinterlandsPoop))

Because what it does is it randomizes what your encounter is. $enemy gets set to either goose or poop. At least you don’t need to write your own randomizer for this, however if you want a weighted randomizer then you’ll need a bit more intricate code (later on)


 

::Enemy Info

Enemy: (print: $enemy’s name)

Hp: (print: $enemy’s hp)

09 - Enemy Info

Not much going on here. This is the part of code to show the enemies name and hp


 

:: Combat Start

(display: “Enemy Info”)

 

[[Attack|Attack Loop]]

[[Run Away|Flee]]

10 - Combat Start

Again, not much interesting going on here. The enemy has appeared and we can see what it is. What do we do, attack or run? If we attack, then we move to the more interesting “Attack Loop”

01 - Layout


 

::Attack Loop

(set: $enemy’s hp to $enemy’s hp – 1)

(if: $enemy’s hp <=0) [

(print: $enemy’s name) has been killed!

[You Murderer!]<shout|

(click: ?shout)[

(replace: ?shout)[

[[Flee the crime scene|Flee]]

]

]

]

(else:)[

(display: “Enemy Info”)

[[Attack|Attack Loop]]

[[Run Away|Flee]]

]

11 - Attack Loop

Assuming you start the attack loop, say the enemy attacks at the beginning of every turn and so do you. For simplicity, you don’t take damage, but you do take a swing at the enemy, so you take away from its health

(set: $enemy’s hp to $enemy’s hp – 1)

And you ask again, what do you want to do? Attack or Run?

(display: “Enemy Info”)

 

[[Attack|Attack Loop]]

[[Run Away|Flee]]

09 - Enemy Info

But the enemy isn’t invulnerable, so you need to check when the bloody thing is dead

(if: $enemy’s hp <=0) […

]

(else:)[…

]

So, what do you do when it is dead?

(print: $enemy’s name) has been killed!

[You Murderer!]<shout|

(click: ?shout)[

(replace: ?shout)[

[[Flee the crime scene|Flee]]

]

]

You’re stuck looking at its dead body until you get the wherewithal to flee the scene (after clicking on the “You Murderer!” link created, of course)

05-CombatEnd1

05-CombatEnd2


 

:: Flee

Why did you run?

We were only getting to the fun part!

(link-goto: “Moving on”, $next_loc)

12 - Flee

Again, nothing really interesting except for this part:

(link-goto: “Moving on”, $next_loc)

Where when we set $next_loc from way back in “Start Adventure” passage dictating to us that we can go to “Hinterland’s End” Passage next.

I did this because we are able to separate out the attack loop section from the rest of the “story” so they don’t become tightly dependent on each other.

01 - Layout

The only dependencies are $enemy and $next_loc, and if they are set, then we can use the “Combat Start” loop at any point in the story and we can return to where we need to go.

We can even make combat encounters randomized by an if check like this:

(set: $combatRand to (random: 1, 10))

(if: $combatRand > 8) [(display: “Combat Start”)]

(else:)[

Something’s supposed to happen here.

]

A similar sort of randomizer can be used to weight when enemy you want to encounter.

(set: $combatRand to (random: 1, 10))

(if: $combatRand > 8) [(set:$enemy to $hinterlandsGoose)]

(else:)[(set:$enemy to $hinterlandsPoop)]


:: Hinterland’s End

Something looks funny about this place

06 - Hinterland Enemies

Nothing interesting to say here, just a placeholder for more stuff to happen in the story.

Putting it all together looks something like this:

Twinery---Combat-Half

Here’s the project for this so you can load it up and not type the same thing over again. Download for you Lazy Butts.

 

There was a reason why I put the time in to writing up a tutorial for Twinery, but I’ll get to that in another post.

Twitter: @GIntrospection

Follow

Get every new post delivered to your Inbox.

Join 200 other followers

%d bloggers like this: