Fresh back from the midnight showing of the final chapter in the Harry Potter film series, so, of course, I'm going to write about that instead of taking this opportunity to go to sleep at what would only be a mildly unreasonable hour. I'll try to minimize spoilers, but they're obviously going to be here.
First of all, a reminder that I'm not the hugest fan of the Deathly Hallows book. Long story short, my general sense about the movie is about the same as with Part 1, only generally more favorable because of the portion of the story captured. With a few small exceptions, the adaptation itself is about as strong as you could want. By and large, deviations from the source made perfect sense within the characterizations given in the movies and the nature of the medium. More important, the aspects of the book that I found most frustrating -- The Hallows, wand lore, Gringotts -- were minimized to the extent possible, while full attention was paid to the most important factors -- Snape's past, King's Cross, and others. In fact, I came into the theater thinking "If they handle Snape right, that will account for all other sins." And while I mostly feel they did this and more, I can't quite give it a completely free pass.
See, there were too many moments that just seemed...manufactured. Scenes that wanted to be emotional rarely were, and the execution just had a number of moments where it just didn't feel all there. It seemed, at times, like they were including sequences because they knew that the fans would be clamoring for them and just letting it ride on that fact. In general, I'd say that the more people who were on the screen, the less honest anything seemed. The core cast continues to be largely phenomenal, but the Wizarding World somehow felt less real than ever. Heck, early on, even the small moments seemed a little bit too rushed and matter-of-fact.
I want to end on a positive note, though. Even if it will never be the first Harry Potter film I reach for on a lazy day, Deathly Hallows Pt. 2 was an enjoyable time and a worthy ending to one of the most lucrative film franchises of all time. I'd really like to watch a cut of this and part 1 blended together to eliminate the handful of redundancies and see if I still have problems with some of the early pacing or if the momentum carries. I suspect that it would, elevating both movies considerably (thank God, DVD will also let us skip over Harry and Hermione dancing in Part 1).
Friday, July 15, 2011
Deathly Hallows: Part 2
Sunday, July 3, 2011
Brave New World
I've been meaning to read Aldous Huxley's Brave New World for ages. I picked up a cheap copy at a Borders' liquidation sale last March and just got around to reading it while I was traveling the past couple of weeks. All I can really say is: "meh". There are interesting things, but I described the book to a friend who had never read it as thus: The first two chapters, where we learn about the conditioning process that occurs from fertilization through adolescent development for all citizens is very fascinating. Chapters 17 and 18, where our would-be protagonists talk with the Controller about God, Science, Truth, and Beauty and their lack of place in a harmonious society are interesting. Everything else is whiny bitches.
Really, this is a problem with plenty of "dystopian" fiction. It's so concerned with portraying its authors personal take on why humanity is screwed that it feels it doesn't need to tell a compelling story or provide characters with realistic motivations. It's like reading a Platonic dialogue for the plot rather than the philosophy: you're just going to be irked by how much of a Mary Jane Socrates is. In Plato, though, this is tolerable because there really isn't any action beyond the discussion and the philosophy. In Brave New World and other books of its ilk, however, the plot is meant to be somehow meaningful, or at least illustrative, and it takes up a much more significant proportion of the proceedings.
So, the fact that our "savage" and Bernard and, to a lesser extent, Heimholtz are all complete idiots is consistently annoying. Beyond even that, Huxley shoots his entire thesis in the foot with the fate of Bernard and Heimholtz by telling us that failures in the conditioning process are more common than we've been led to believe and that there are effectively numerous colonies of "normal" humans continuing to advance the race on the fringes of Utopia in the form of the Islands. That we then finish the book with a long and completely pointless chapter following John's fate is pointless. We know damn well that, were he not a "savage" and a "social experiment" his grim end would be unneeded.
Furthermore, while Huxley does a good job in early chapters of seeming to take his society seriously and as the norm, the tone becomes increasingly tongue-in-cheek as he delves into the more ridiculous suppositions. The community sing culminating in the mass orgy, for instance, is just absurd. I get that real art is supposed to have disappeared, but that doesn't change the fact that the entire sequence is a chore to read through between the songs and the sudden, inexplicable sexual frenzy that sweeps through. Contrasted to the very well written early portions where Lenina is being scolded for her borderline monogamy (ridiculous, but believable), it's a sad failure. Further, the notion of "Ford" instead of god just became more and more painful as it entered into the character's vocabulary. As what I believed to be a tongue-in-cheek idea in the foreword, I could deal with it. As a foundational aspect of society, it just seemed utterly unbelievable -- though this has more to do with a problem I'll discuss at the end.
Finally, everything to do with the "reservation" is also just poorly executed. The notion that all world religions would have merged over hundreds of years just shows an unnecessary lack of respect for all of them. To be franks, an equally offensive (to a theist) and far more likely suggestion is that religious warfare would have wiped out the remaining "uncivilized" regions or left them with a handful of small factions fighting over scarce resources. Disease, poverty, and monogomy, not simple greed or other human instincts stamped out or tempered by the conditioning process, seem to be the reasons for the reservations to be in such disarray.
That said, Huxley has a lot of interesting ideas about what it would take in order for individuals to live as willing slaves of the government. Specifically, he focuses on the fairly obvious notion of control via the carrot. By keeping people content, you keep them from questioning you. The genetic selection, developmental behavioral training, and biological "surrogate" drugs provide the foundation for this contentment, which is then maintained throughout life by three societal pillars: Soma helps to manage those inevitable moments of disappointment and sadness. The elimination of the family in favor of government "hatcheries" and indoctrination centers reduces the odds of personal attachment and thus strong emotional reactions to overpower logic. Societally expected promiscuity works on both effects.
It's a fascinating approach, but one that time has shown to be absurd.
First of all, Huxley lived in a time where Freud was still taken somewhat seriously and where Psychology was synonymous with Behaviorism. This is no longer the case. We know so much more about the brain and how it operates now that it becomes trivial to question the basic premises upon which so much of the conditioning process is based. More important, though, is the fact that Huxley assumed a society that would continue in the wake of industrialization. He had no idea, even in his addenda and commentary, that the microcomputer, much less The Internet, was on the horizon. Mass, immediate access to information completely obliterates Huxley's future, and while a future where such technology is squashed away, the process to get there would be more violent -- and certainly more prolonged -- even than the war he suggests led to the founding of Utopia.
Of course, The Internet provides plenty of opportunity for a parallel road into a similar future. We have the sort of constant, superficial contact with people that Huxley predicted in the form of social networking. We can sit and anesthetize ourselves to our ills and those of the world by overloading on news to the point that we lose our capacity to care or by playing games or by watching cat videos. The important distinction, though, is that these problems are not government imposed or even sanctioned. They are self inflicted. Fortunately, we live in a society that has smart enough to recognize that Internet addiction and information overload are actual problems. Unfortunately, we also live in a society that continues to pursue ubiquitous computing and the social isolation it promotes before we've begun to solve the problems of the current generation of technology. I'm hopeful, but...we'll see.
Really, this is a problem with plenty of "dystopian" fiction. It's so concerned with portraying its authors personal take on why humanity is screwed that it feels it doesn't need to tell a compelling story or provide characters with realistic motivations. It's like reading a Platonic dialogue for the plot rather than the philosophy: you're just going to be irked by how much of a Mary Jane Socrates is. In Plato, though, this is tolerable because there really isn't any action beyond the discussion and the philosophy. In Brave New World and other books of its ilk, however, the plot is meant to be somehow meaningful, or at least illustrative, and it takes up a much more significant proportion of the proceedings.
So, the fact that our "savage" and Bernard and, to a lesser extent, Heimholtz are all complete idiots is consistently annoying. Beyond even that, Huxley shoots his entire thesis in the foot with the fate of Bernard and Heimholtz by telling us that failures in the conditioning process are more common than we've been led to believe and that there are effectively numerous colonies of "normal" humans continuing to advance the race on the fringes of Utopia in the form of the Islands. That we then finish the book with a long and completely pointless chapter following John's fate is pointless. We know damn well that, were he not a "savage" and a "social experiment" his grim end would be unneeded.
Furthermore, while Huxley does a good job in early chapters of seeming to take his society seriously and as the norm, the tone becomes increasingly tongue-in-cheek as he delves into the more ridiculous suppositions. The community sing culminating in the mass orgy, for instance, is just absurd. I get that real art is supposed to have disappeared, but that doesn't change the fact that the entire sequence is a chore to read through between the songs and the sudden, inexplicable sexual frenzy that sweeps through. Contrasted to the very well written early portions where Lenina is being scolded for her borderline monogamy (ridiculous, but believable), it's a sad failure. Further, the notion of "Ford" instead of god just became more and more painful as it entered into the character's vocabulary. As what I believed to be a tongue-in-cheek idea in the foreword, I could deal with it. As a foundational aspect of society, it just seemed utterly unbelievable -- though this has more to do with a problem I'll discuss at the end.
Finally, everything to do with the "reservation" is also just poorly executed. The notion that all world religions would have merged over hundreds of years just shows an unnecessary lack of respect for all of them. To be franks, an equally offensive (to a theist) and far more likely suggestion is that religious warfare would have wiped out the remaining "uncivilized" regions or left them with a handful of small factions fighting over scarce resources. Disease, poverty, and monogomy, not simple greed or other human instincts stamped out or tempered by the conditioning process, seem to be the reasons for the reservations to be in such disarray.
That said, Huxley has a lot of interesting ideas about what it would take in order for individuals to live as willing slaves of the government. Specifically, he focuses on the fairly obvious notion of control via the carrot. By keeping people content, you keep them from questioning you. The genetic selection, developmental behavioral training, and biological "surrogate" drugs provide the foundation for this contentment, which is then maintained throughout life by three societal pillars: Soma helps to manage those inevitable moments of disappointment and sadness. The elimination of the family in favor of government "hatcheries" and indoctrination centers reduces the odds of personal attachment and thus strong emotional reactions to overpower logic. Societally expected promiscuity works on both effects.
It's a fascinating approach, but one that time has shown to be absurd.
First of all, Huxley lived in a time where Freud was still taken somewhat seriously and where Psychology was synonymous with Behaviorism. This is no longer the case. We know so much more about the brain and how it operates now that it becomes trivial to question the basic premises upon which so much of the conditioning process is based. More important, though, is the fact that Huxley assumed a society that would continue in the wake of industrialization. He had no idea, even in his addenda and commentary, that the microcomputer, much less The Internet, was on the horizon. Mass, immediate access to information completely obliterates Huxley's future, and while a future where such technology is squashed away, the process to get there would be more violent -- and certainly more prolonged -- even than the war he suggests led to the founding of Utopia.
Of course, The Internet provides plenty of opportunity for a parallel road into a similar future. We have the sort of constant, superficial contact with people that Huxley predicted in the form of social networking. We can sit and anesthetize ourselves to our ills and those of the world by overloading on news to the point that we lose our capacity to care or by playing games or by watching cat videos. The important distinction, though, is that these problems are not government imposed or even sanctioned. They are self inflicted. Fortunately, we live in a society that has smart enough to recognize that Internet addiction and information overload are actual problems. Unfortunately, we also live in a society that continues to pursue ubiquitous computing and the social isolation it promotes before we've begun to solve the problems of the current generation of technology. I'm hopeful, but...we'll see.
Thursday, June 16, 2011
Brief Thoughts on Kinect
Microsoft Research has finally released its free SDK for developing Windows applications that utilize Kinect -- the natural user interface device originally sold as an Xbox 360 peripheral.
I've never thought much of Kinect as a game controller. As much time as Microsoft has spent trying to sell it over the last couple of E3s, the only really great thing they managed to do was sell it as a means of interfacing with the main menu hub. The games have all been iffy, especially attempts to integrate it into the traditional genres with anything other than voice recognition. It's hard to make immersive game experiences without any sort of controller, even if only because of constraints on the camera and physical movement of your avatar around the game environment. The result is sports minigames, dance games, and an assortment of on rails experiences -- not bad intrinsically, but certainly more limited than Microsoft wants us to believe.
Still, the basic interface manipulation powers -- both based on physical, three dimensional gesturing and voice recognition -- is potentially revelatory. Looking through the hacks that have been popping up since the initial release of the device, you can see so many applications for recognition of three dimensional movement of the hands and arms alone -- and this sort of tracking makes full body identification essential so as to not get distracted by other noise. I'm greatly hopeful for the sorts of applications that will result from heavier use of Kinect and other NUI devices in traditional computing.
Still, Microsoft was brilliant in releasing this as a toy first. Even if that isn't ever going to be the best use of the technology, we needed a phase where people were excited about the sheer novelty of this thing in order to develop a proper vocabulary for developing with it. Had this originally shipped as some much vaunted peripheral (a la the Magic Mouse), it would have been laughed at for its lack of support and non-existent consistency of use between applications. Instead, we had a period where that was expected because its primary purpose was as a fun diversion -- a way to sucker people out of their money instead of as a meaningful productivity tool. Months later now, we have experience determining current best practices for recognizing and translating certain behaviors and a proper set of verbs for describing interaction with this thing and an API for productivity development that supports these verbs out of the box.
Kudos, Microsoft. Here's hoping that you can pioneer NUI support in Windows 8 as you continue your positive trend of starting to give a damn about your customers.
I've never thought much of Kinect as a game controller. As much time as Microsoft has spent trying to sell it over the last couple of E3s, the only really great thing they managed to do was sell it as a means of interfacing with the main menu hub. The games have all been iffy, especially attempts to integrate it into the traditional genres with anything other than voice recognition. It's hard to make immersive game experiences without any sort of controller, even if only because of constraints on the camera and physical movement of your avatar around the game environment. The result is sports minigames, dance games, and an assortment of on rails experiences -- not bad intrinsically, but certainly more limited than Microsoft wants us to believe.
Still, the basic interface manipulation powers -- both based on physical, three dimensional gesturing and voice recognition -- is potentially revelatory. Looking through the hacks that have been popping up since the initial release of the device, you can see so many applications for recognition of three dimensional movement of the hands and arms alone -- and this sort of tracking makes full body identification essential so as to not get distracted by other noise. I'm greatly hopeful for the sorts of applications that will result from heavier use of Kinect and other NUI devices in traditional computing.
Still, Microsoft was brilliant in releasing this as a toy first. Even if that isn't ever going to be the best use of the technology, we needed a phase where people were excited about the sheer novelty of this thing in order to develop a proper vocabulary for developing with it. Had this originally shipped as some much vaunted peripheral (a la the Magic Mouse), it would have been laughed at for its lack of support and non-existent consistency of use between applications. Instead, we had a period where that was expected because its primary purpose was as a fun diversion -- a way to sucker people out of their money instead of as a meaningful productivity tool. Months later now, we have experience determining current best practices for recognizing and translating certain behaviors and a proper set of verbs for describing interaction with this thing and an API for productivity development that supports these verbs out of the box.
Kudos, Microsoft. Here's hoping that you can pioneer NUI support in Windows 8 as you continue your positive trend of starting to give a damn about your customers.
Tuesday, May 24, 2011
LA Noire Frequently Gets Lost in the Filler
Let me start by saying that the core mechanics of LA Noire, the crime scene investigation and the interviewing/interrogating of witnesses, are as great as advertised. The face mapping technology is fantastic, even if I occasionally think Cole Phelps looks less like Aaron Staton and more like Ryan Gosling. It's eerie in a good way, somehow managing to largely avoid uncanny valley territory. While big, obvious tells make deciding whether to trust or doubt people is fairly straight-forward in the early going (and knowing your evidence is enough to let you know when to make accusations of lying), it gets more nuanced later in the game as the crimes get more serious. Does your PoI look nervous because she's holding out on you or just because she's a 15-year-old girl being grilled for information on the death of her mother?
I adore the use of music in the crime scene investigation portions of the game. The music itself is moody and carries with it the seriousness of the actions behind your task. The chimes that indicate an examinable object are subtle but helpful, and short fanfare that cuts off the music once all clues are found is incredibly useful. I like that there are always things to pick up that aren't useful -- even if plenty of them would be in this day and age of DNA testing. I also like that plenty of clues are only useful in helping you conduct your investigation and won't actually be strong enough to serve any purpose in your interviews and accusations.
Similarly, as has become the norm with Rockstar games, the atmosphere is impeccable. It feels like a 1940's hardboiled crime serial, even if your role as a "real cop" rather than a private detective necessitates a less pulpy approach. The music, the style, the characters all work out great. Despite what one of my roommates seems to think, all of the actors so far have provided strong performances. Between the period nature and the abundance of familiar faces, LA Noire has actually done a fair bit to satisfy my Mad Men itch while I wait to catch up on Season 4 via Netflix.
That said, roughly half-way through the game, I can't condone the various 9.0 and higher ratings that everybody seems insistent on giving the game simply because this core gameplay mechanic doesn't account for the bulk of the game.
You see, you don't just move from scene to scene and talk with witnesses. You need to drive all around an expansive LA. The city has been compressed from real life, but it's still huge. The intro talks about LA as being a new sort of city, one built around the automobile and the ability to commute from your own home on the outskirts. The game takes this seriously, as you're regularly going to be spending 5-10 minutes driving, stuck in traffic trying to get where you're going. Sure, you can speed and navigate your way around somewhat more quickly, but the cars handle so poorly, and the AI governing other drivers is so flaky, that you're likely to cause a fair bit of damage, both taking you out of the experience of being one of the few "good cops" in the LAPD and reducing your post-case rating.
Then, when you're on your way to your next scene, you're virtually guaranteed to get a call on the police scanner about some crime occurring in a completely different part of the city. You can, of course, choose not to respond to these, but they increase your detective rating, and it's just hard not to do anything when you hear "officer under fire". These street crime cases nearly always result in shoot-outs, which just aren't fulfilling -- both because the gun play isn't terribly well developed and it just feels like bad police work. If these were just an occasional diversion, it wouldn't be the worst thing in the world, but I once started a case only to spend 40 minutes driving around and responding to three such incidents before I ever reached the scene of the crime.
Finally, the basic character handling isn't a hole lot better than the cars. Wandering around a crime scene and getting stuck on corners because Cole moves more like a mannequin than a war hero turned star policeman is just strange. Chasing down perps isn't a whole lot smoother, especially since the camera just doesn't keep up with all of the turns you have to make. Complaints here are reminiscent of some I made about Assassin's Creed 2 last year, except more aggravating considering I'm just running through alleyways and climbing drain pipes, not attempting death-defying acrobatics high above the streets of medieval Venice.
So, as much as I'm loving LA Noire, I find that I can't play it for protracted periods of time. One case is about my limit, and I'm often ready to quit even before then if I'm moving frequently between sites. The new ideas it brings to the table are fantastic, but slapping it onto a modified version of an existing Rockstar engine and bloating things up with extra tasks just wasn't necessary. Moving to different sites around LA for crimes would give the same sense of scope without forcing you to drive it, and the street crime inserts its way into things far too insistently.
Still, I'm enjoying the cases themselves and the back-story about Cole's experiences in WWII (that this largely seems to tie into the Battle of Okinawa, an event to which I have strong personal ties, only makes it more fascinating to me), and the subplot that seems to be developing through the newspaper stories is also intriguing. I'd definitely check it out to see if you have the patience.
8/10
I adore the use of music in the crime scene investigation portions of the game. The music itself is moody and carries with it the seriousness of the actions behind your task. The chimes that indicate an examinable object are subtle but helpful, and short fanfare that cuts off the music once all clues are found is incredibly useful. I like that there are always things to pick up that aren't useful -- even if plenty of them would be in this day and age of DNA testing. I also like that plenty of clues are only useful in helping you conduct your investigation and won't actually be strong enough to serve any purpose in your interviews and accusations.
Similarly, as has become the norm with Rockstar games, the atmosphere is impeccable. It feels like a 1940's hardboiled crime serial, even if your role as a "real cop" rather than a private detective necessitates a less pulpy approach. The music, the style, the characters all work out great. Despite what one of my roommates seems to think, all of the actors so far have provided strong performances. Between the period nature and the abundance of familiar faces, LA Noire has actually done a fair bit to satisfy my Mad Men itch while I wait to catch up on Season 4 via Netflix.
That said, roughly half-way through the game, I can't condone the various 9.0 and higher ratings that everybody seems insistent on giving the game simply because this core gameplay mechanic doesn't account for the bulk of the game.
You see, you don't just move from scene to scene and talk with witnesses. You need to drive all around an expansive LA. The city has been compressed from real life, but it's still huge. The intro talks about LA as being a new sort of city, one built around the automobile and the ability to commute from your own home on the outskirts. The game takes this seriously, as you're regularly going to be spending 5-10 minutes driving, stuck in traffic trying to get where you're going. Sure, you can speed and navigate your way around somewhat more quickly, but the cars handle so poorly, and the AI governing other drivers is so flaky, that you're likely to cause a fair bit of damage, both taking you out of the experience of being one of the few "good cops" in the LAPD and reducing your post-case rating.
Then, when you're on your way to your next scene, you're virtually guaranteed to get a call on the police scanner about some crime occurring in a completely different part of the city. You can, of course, choose not to respond to these, but they increase your detective rating, and it's just hard not to do anything when you hear "officer under fire". These street crime cases nearly always result in shoot-outs, which just aren't fulfilling -- both because the gun play isn't terribly well developed and it just feels like bad police work. If these were just an occasional diversion, it wouldn't be the worst thing in the world, but I once started a case only to spend 40 minutes driving around and responding to three such incidents before I ever reached the scene of the crime.
Finally, the basic character handling isn't a hole lot better than the cars. Wandering around a crime scene and getting stuck on corners because Cole moves more like a mannequin than a war hero turned star policeman is just strange. Chasing down perps isn't a whole lot smoother, especially since the camera just doesn't keep up with all of the turns you have to make. Complaints here are reminiscent of some I made about Assassin's Creed 2 last year, except more aggravating considering I'm just running through alleyways and climbing drain pipes, not attempting death-defying acrobatics high above the streets of medieval Venice.
So, as much as I'm loving LA Noire, I find that I can't play it for protracted periods of time. One case is about my limit, and I'm often ready to quit even before then if I'm moving frequently between sites. The new ideas it brings to the table are fantastic, but slapping it onto a modified version of an existing Rockstar engine and bloating things up with extra tasks just wasn't necessary. Moving to different sites around LA for crimes would give the same sense of scope without forcing you to drive it, and the street crime inserts its way into things far too insistently.
Still, I'm enjoying the cases themselves and the back-story about Cole's experiences in WWII (that this largely seems to tie into the Battle of Okinawa, an event to which I have strong personal ties, only makes it more fascinating to me), and the subplot that seems to be developing through the newspaper stories is also intriguing. I'd definitely check it out to see if you have the patience.
8/10
Monday, May 2, 2011
Finally, An Exciting Project!
Just shot this off to my advisors, and I figure it's accessible enough share here rather than at my (largely ignored) research blog. Hopefully this makes sense to non-CS people. If it doesn't the backtracking posts at said research blog might help.
Using Games to Teach Shared Memory Parallelism
It seems to me that there are two approaches one can take with designing educational games. If you’re simply looking to teach facts (arithmetic, spelling, geography), you can focus on rote skill building. Decades of Math Blaster and Where in the World is Carmen San Diego and who knows what else have made it plain that, if you create a compelling enough environment, you can simply drill basic ideas over and over again and players will eventually learn them. If you’re lucky, they might even begin to pick up on the underlying principles, but this is less essential at the point where such games are generally in play. It doesn’t matter as much if players pursue a trial and error approach so long as they eventually build up the right stimulus-response pairing so that, when presented with “7 + 6”, they spout out “13”.
When teaching concepts, however, things become more difficult. The goal in this instance is to help the player realize that they *already* understand what we’re asking of them by transporting the underlying principles into a familiar environment. This means we’re not just taking some ultimate response into account. The process, and learning how to relate that process to desired domain, becomes the focus. This makes it much harder to properly develop games to teach concepts, since the process and the eventual relationships that form are completely outside of our control. This means that we need to make sure that our games are designed with metaphors that accurately represent the original problem or system and that they main focus is on tasks we actually want to promote.
When we first began discussing ideas for a game to “teach” shared memory concurrency, it was suggested that I work with trains. The basic idea was that trains are exciting and that signals and switches are already built into the system. For a handful of basic ideas, this seemed like a great approach, but as soon as we expand to more complicated problems, it falls apart. Consider, for instance, the most basic problem with shared memory concurrency: race conditions.
For the simplest case, two threads running through the same piece of sensitive code, this makes sense. We can have trains running on parallel tracks that eventually become a single track. If both trains try to do this simultaneously, they will crash. Thus, we need policies to ensure that only one train makes the transition at a time.
Let’s look at a more complicated example, though. Let’s say we have two completely different sections of code, both of which touch the same global variable. Suddenly, our trains are no longer running on parallel tracks. They’re working in completely different regions of space. How, then, do we signify that our two trains need to somehow limit one another’s movement?
Sure, we could introduce new elements -- say, pressure guages rigged to bombs that will cause the track to explode if the weight of more than one train touches any segment to which the sensor is connected. But that starts to expand our metaphor beyond what is reasonable. It makes our metaphor instantly unrelatable, even if somewhat more exciting.
Let’s also consider the basic nature of computer programs as humans write them, which tend to be broken into numerous subroutines. A subroutine is called in one spot, control jumps to that subroutine, and then, when the subroutine is finished, control returns to the spot it which the subroutine was called. This also cannot be readily modeled with the train metaphor, as an actual train moves along a single continuous piece of track. It doesn’t teleport all over kingdom come before eventually reaching its destination.
The underlying problem here is one of metaphor. We have too few types of objects, and they’re related in the wrong way. Let’s take a moment, then, to look at the requirements for an effective metaphor for a shared memory system:
First of all, let’s consider the things that need to be modeled. Obviously, we need multiple actors that can represent our threads, and we need something to guide the behavior of these actors to represent our code. The train metaphor has both of these in the trains and the tracks. It is important to note here that the tracks in the train metaphor can only represent the program, since they fundamentally guide the behavior of the trains. We need more than this, though. We need to be able to see why shared memory, in particular, is difficult. This means that our metaphor needs to contain some way of representing memory and another way of representing the values in that memory so that we see why things are going wrong.
Moreover, since threads operating in a shared memory environment can see virtually any piece of the shared address space at virtually any time, we need this memory to be obviously accessible to our actors. Between this necessity and the obvious requirement that memory somehow contain values, it becomes obvious that memory must be a physical space and not a logical one in our metaphor. Our program, on the other hand, just needs to be some sort of set of instructions that the user can see and augment.
Note that I didn’t include any sort of signals or locks or control statements of any sort as necessities for our basic metaphor. That’s because these control statements are primarily what we want to teach. This means that they are more effective if we highlight them by making them additions to our otherwise familiar situation. Much of the problem with programming shared memory concurrency is that it isn’t ultimately intuitive why we need these sorts of constructs. Our primary experiences of concurrency are physical, and the physical world places obvious, unviolatable limitations on what can and cannot be done in parallel. Chiefly, two objects cannot occupy the same physical space (though I know a handful of metaphysicians who disagree under certain circumstances).
Our goal was always to make control of these constructs one of the chief mechanisms of “play”, and by injecting the constructs into the situation as somehow unintuitive and alien, we increase the strength of the relationship between our metaphor and our “real world” circumstances.
If all that we were trying to teach was concurrency, this would be sufficient, but we’re looking to teach parallelism, the use of concurrency to provide improved performance via domain decomposition. This means that we want to place one more restriction on our metaphor. We want our “instructions” to be something that the player can actively divvy up between our actors to see how different approaches work. This was, in my opinion, another failing of the train metaphor for this particular problem. Establishing conditions for different signals to be sent between trains doesn’t do anything to modify the way the routes themselves operate. There is no obvious domain to decompose.
With all of these considerations in place, I would like to suggest the basic framework for a new game to teach parallelism in a shared memory environment, one I like to call Too Many Cooks!
The basic idea is that you control a kitchen with several cooks, all working together to produce enough food of a minimum quality to satisfy a given number of customers within a certain time limit. You begin with a certain number of cooks and a list of recipes. Recipes are divided into steps, and each recipe has its own quality ranking and will feed a different number of people.
At each level, your goal is to select recipes that meet or exceed the level requirements and divide the work of preparing them up among your chefs (by assigning either whole recipes or tasks within recipes to individual chefs) so as to finish under the time limit. At the end of each level, you recieve a score based on the average quality of your food and how far under the time limit you came.
So, we have our two foundational ideas that make this a metaphor for a (parallel) computer program: our actors and our instructions. We also have the task of domain decomposition. What makes this a shared memory system, then, are the limitations of physical space.
The kitchen is divided up into regions for different tasks. Counters for chopping. Ovens for baking. Stove tops for simmering. Freezers for cooling. Chefs will retrieve ingredients (values) from some bottomless pantry or from other workstations and transfer them around from chef to chef and station to station as the recipe is completed. Every time you assign a chef an instruction, you tell him where (s)he will find the necessary ingredients and where (s)he will work at the task. However, our chefs, much like computers, are a little bit stupid and do not communicate directly.
This means that, if Chef A needs onions that Chef B is chopping, but Chef B is not finished chopping them, Chef A may suddenly find himself fingerless as he intrudes on Chef B’s activities and the level will be failed. Similarly, if Chef A is expecting tomatoes at a given workstation, but Chef C hasn’t yet gotten around to preparing them but the cucumbers that Chef D had just finished up for Chef E are still sitting there, Chef A will gladly take them, ruining his recipe and resulting in unhappy (vomitting) customers and another failure of the level. There can be all sorts of other situations like this where things go wrong because of a lack of communication and timing.
What this means is that players needs to do two more things. First of all, they must be intentional in their assignment of tasks between chefs in order to minimize such conflicts (especially of the second sort described). More important, though, it is their job, after assigning tasks and locations to the chefs, to annotate the recipe with a number of markers that result in indirect communication between chefs. In the first example, for instance, Chef B could put up a sign that would prevent other chefs from intruding on his space.
Again, it would seem somewhat non-intuitive to players why they would need these signs. In the real world, chefs wouldn’t be so stupid. But that’s the entire point. It makes the task memorable and thus, ideally, helps in its transfer to the actual domain of writing programs.
The game will begin in a small kitchen with only two chefs and requirements that allow them to work on individual recipes with no communication in order to simply pass. But, as time progresses, you will unlock a larger stable of chefs and more elaborate recipes and requirements will mandate complicated distribution of work and consistent use of signals in recipe preparation. This larger grouping of chefs and recipes will remain available for the player to go back and complete earlier challenges with more elaborate approaches for a higher score.
There are lots of specifics yet to be worked out, and I feel like I’m neglecting to mention things that I’d already thought of. Even once I figure out all of the foundational ideas, development of this game will not be a simple task. Tweaking and balancing everything in this system from level requirements to recipe complexity to interface in order to make it engaging and reasonable is going to be terribly difficult, but that’s a problem faced by any game devloper, particularly, I would imagine, those working on educational games. Still, it seems to me like a solid beginning point, and I would welcome any criticisms or suggestions for its improvment as I get things hashed out on paper and start to figure out a development platform.
Using Games to Teach Shared Memory Parallelism
It seems to me that there are two approaches one can take with designing educational games. If you’re simply looking to teach facts (arithmetic, spelling, geography), you can focus on rote skill building. Decades of Math Blaster and Where in the World is Carmen San Diego and who knows what else have made it plain that, if you create a compelling enough environment, you can simply drill basic ideas over and over again and players will eventually learn them. If you’re lucky, they might even begin to pick up on the underlying principles, but this is less essential at the point where such games are generally in play. It doesn’t matter as much if players pursue a trial and error approach so long as they eventually build up the right stimulus-response pairing so that, when presented with “7 + 6”, they spout out “13”.
When teaching concepts, however, things become more difficult. The goal in this instance is to help the player realize that they *already* understand what we’re asking of them by transporting the underlying principles into a familiar environment. This means we’re not just taking some ultimate response into account. The process, and learning how to relate that process to desired domain, becomes the focus. This makes it much harder to properly develop games to teach concepts, since the process and the eventual relationships that form are completely outside of our control. This means that we need to make sure that our games are designed with metaphors that accurately represent the original problem or system and that they main focus is on tasks we actually want to promote.
When we first began discussing ideas for a game to “teach” shared memory concurrency, it was suggested that I work with trains. The basic idea was that trains are exciting and that signals and switches are already built into the system. For a handful of basic ideas, this seemed like a great approach, but as soon as we expand to more complicated problems, it falls apart. Consider, for instance, the most basic problem with shared memory concurrency: race conditions.
For the simplest case, two threads running through the same piece of sensitive code, this makes sense. We can have trains running on parallel tracks that eventually become a single track. If both trains try to do this simultaneously, they will crash. Thus, we need policies to ensure that only one train makes the transition at a time.
Let’s look at a more complicated example, though. Let’s say we have two completely different sections of code, both of which touch the same global variable. Suddenly, our trains are no longer running on parallel tracks. They’re working in completely different regions of space. How, then, do we signify that our two trains need to somehow limit one another’s movement?
Sure, we could introduce new elements -- say, pressure guages rigged to bombs that will cause the track to explode if the weight of more than one train touches any segment to which the sensor is connected. But that starts to expand our metaphor beyond what is reasonable. It makes our metaphor instantly unrelatable, even if somewhat more exciting.
Let’s also consider the basic nature of computer programs as humans write them, which tend to be broken into numerous subroutines. A subroutine is called in one spot, control jumps to that subroutine, and then, when the subroutine is finished, control returns to the spot it which the subroutine was called. This also cannot be readily modeled with the train metaphor, as an actual train moves along a single continuous piece of track. It doesn’t teleport all over kingdom come before eventually reaching its destination.
The underlying problem here is one of metaphor. We have too few types of objects, and they’re related in the wrong way. Let’s take a moment, then, to look at the requirements for an effective metaphor for a shared memory system:
First of all, let’s consider the things that need to be modeled. Obviously, we need multiple actors that can represent our threads, and we need something to guide the behavior of these actors to represent our code. The train metaphor has both of these in the trains and the tracks. It is important to note here that the tracks in the train metaphor can only represent the program, since they fundamentally guide the behavior of the trains. We need more than this, though. We need to be able to see why shared memory, in particular, is difficult. This means that our metaphor needs to contain some way of representing memory and another way of representing the values in that memory so that we see why things are going wrong.
Moreover, since threads operating in a shared memory environment can see virtually any piece of the shared address space at virtually any time, we need this memory to be obviously accessible to our actors. Between this necessity and the obvious requirement that memory somehow contain values, it becomes obvious that memory must be a physical space and not a logical one in our metaphor. Our program, on the other hand, just needs to be some sort of set of instructions that the user can see and augment.
Note that I didn’t include any sort of signals or locks or control statements of any sort as necessities for our basic metaphor. That’s because these control statements are primarily what we want to teach. This means that they are more effective if we highlight them by making them additions to our otherwise familiar situation. Much of the problem with programming shared memory concurrency is that it isn’t ultimately intuitive why we need these sorts of constructs. Our primary experiences of concurrency are physical, and the physical world places obvious, unviolatable limitations on what can and cannot be done in parallel. Chiefly, two objects cannot occupy the same physical space (though I know a handful of metaphysicians who disagree under certain circumstances).
Our goal was always to make control of these constructs one of the chief mechanisms of “play”, and by injecting the constructs into the situation as somehow unintuitive and alien, we increase the strength of the relationship between our metaphor and our “real world” circumstances.
If all that we were trying to teach was concurrency, this would be sufficient, but we’re looking to teach parallelism, the use of concurrency to provide improved performance via domain decomposition. This means that we want to place one more restriction on our metaphor. We want our “instructions” to be something that the player can actively divvy up between our actors to see how different approaches work. This was, in my opinion, another failing of the train metaphor for this particular problem. Establishing conditions for different signals to be sent between trains doesn’t do anything to modify the way the routes themselves operate. There is no obvious domain to decompose.
With all of these considerations in place, I would like to suggest the basic framework for a new game to teach parallelism in a shared memory environment, one I like to call Too Many Cooks!
The basic idea is that you control a kitchen with several cooks, all working together to produce enough food of a minimum quality to satisfy a given number of customers within a certain time limit. You begin with a certain number of cooks and a list of recipes. Recipes are divided into steps, and each recipe has its own quality ranking and will feed a different number of people.
At each level, your goal is to select recipes that meet or exceed the level requirements and divide the work of preparing them up among your chefs (by assigning either whole recipes or tasks within recipes to individual chefs) so as to finish under the time limit. At the end of each level, you recieve a score based on the average quality of your food and how far under the time limit you came.
So, we have our two foundational ideas that make this a metaphor for a (parallel) computer program: our actors and our instructions. We also have the task of domain decomposition. What makes this a shared memory system, then, are the limitations of physical space.
The kitchen is divided up into regions for different tasks. Counters for chopping. Ovens for baking. Stove tops for simmering. Freezers for cooling. Chefs will retrieve ingredients (values) from some bottomless pantry or from other workstations and transfer them around from chef to chef and station to station as the recipe is completed. Every time you assign a chef an instruction, you tell him where (s)he will find the necessary ingredients and where (s)he will work at the task. However, our chefs, much like computers, are a little bit stupid and do not communicate directly.
This means that, if Chef A needs onions that Chef B is chopping, but Chef B is not finished chopping them, Chef A may suddenly find himself fingerless as he intrudes on Chef B’s activities and the level will be failed. Similarly, if Chef A is expecting tomatoes at a given workstation, but Chef C hasn’t yet gotten around to preparing them but the cucumbers that Chef D had just finished up for Chef E are still sitting there, Chef A will gladly take them, ruining his recipe and resulting in unhappy (vomitting) customers and another failure of the level. There can be all sorts of other situations like this where things go wrong because of a lack of communication and timing.
What this means is that players needs to do two more things. First of all, they must be intentional in their assignment of tasks between chefs in order to minimize such conflicts (especially of the second sort described). More important, though, it is their job, after assigning tasks and locations to the chefs, to annotate the recipe with a number of markers that result in indirect communication between chefs. In the first example, for instance, Chef B could put up a sign that would prevent other chefs from intruding on his space.
Again, it would seem somewhat non-intuitive to players why they would need these signs. In the real world, chefs wouldn’t be so stupid. But that’s the entire point. It makes the task memorable and thus, ideally, helps in its transfer to the actual domain of writing programs.
The game will begin in a small kitchen with only two chefs and requirements that allow them to work on individual recipes with no communication in order to simply pass. But, as time progresses, you will unlock a larger stable of chefs and more elaborate recipes and requirements will mandate complicated distribution of work and consistent use of signals in recipe preparation. This larger grouping of chefs and recipes will remain available for the player to go back and complete earlier challenges with more elaborate approaches for a higher score.
There are lots of specifics yet to be worked out, and I feel like I’m neglecting to mention things that I’d already thought of. Even once I figure out all of the foundational ideas, development of this game will not be a simple task. Tweaking and balancing everything in this system from level requirements to recipe complexity to interface in order to make it engaging and reasonable is going to be terribly difficult, but that’s a problem faced by any game devloper, particularly, I would imagine, those working on educational games. Still, it seems to me like a solid beginning point, and I would welcome any criticisms or suggestions for its improvment as I get things hashed out on paper and start to figure out a development platform.
Monday, April 18, 2011
Dragon Age 2 and Balance in Story Telling.
So, now that the game has been patched to properly support DirectX 11 and it no longer crashes my computer at regular intervals, I've been spending more time with Dragon Age II than I probably should be this late into the semester. The direct successor to 2009's Dragon Age: Origins, itself the long-developed spiritual successor to Bioware's much beloved Baldur's Gate franchise of genre-defining PC RPGs, there was a lot expected of this game. Cursory glances around the internet would suggest that it has failed, and while the game certainly has its failings, I would happily direct most of the people who are incessantly bitching about its "simplifications" (of which there are far fewer than one would be led to believe) to a post I wrote addressing similar complaints about Mass Effect 2 last year.
The most obvious and most frequently cited failings of the game are the unfortunate bi-product of a blatantly rushed development cycle. Environment reuse stands out particularly. I clearly recall the first time I was running through a cave and my map showed an area that lay sitting behind what was so obviously an unmarked door that I spent nearly 15 minutes running around the cave trying to find some lever to open it so as to plunder the riches that must be waiting for me on the other side. I can understand reusing resources, and even building dungeons/instance areas piecemeal from stock parts. Simply re-using the exact same environments with certain areas sealed off, though, is sloppy. At the very least, keep the map from reflecting the unreachable areas.
The second trouble area is the general flow of combat. Now, for the most part, I like many of the changes made here. Full disclosure, I rarely used the top down view in Dragon Age: Origins. As far as I was concerned, it existed almost solely to target area of effect spells without getting stuck on specific enemies. As such, being stuck with the lower, more cinematic camera angle doesn't bother me. The faster animations don't bother me at all, and, contrary to what many people seem to be saying, this is the only significant difference in how combat plays out between Dragon Age 2 and DA:O. In fact, there are a wider variety of skill trees available to work through and, due to the absurd bonuses from cross-class combos, greater attention to be paid as to how your party members' skills will mesh together. Combat is just as tactical and engaging as it ever as.
The problem I have with combat is the way fights are now entirely scripted. Sure, it wasn't uncommon in DA:O to open a door and find a room full of enemies you'd have no choice but to fight, but that wasn't always the way things worked. There were plenty of fights in Origins that I only managed to win by scouting ahead with a rogue and using ranged attacks to carefully pull outlying enemies away one or two at a time before engaging the main force. This doesn't work in DA2. Enemies aren't persistent on the map. Instead, they only appear when you step into a designated area. Then, as the battle rages on, more will show up (either dropping in from the city walls or mystically appearing right out of the ground) to take advantage of the fact that your AI controlled teammates shot their wad against your will and are either stuck in cooldown or have no stamina/manna left. It's an irritation that seems designed to force you to play the game within a somewhat limited framework endorsed by Bioware. Fights are rarely tough enough that I would have liked to have the option to do things the old way, but it just doesn't feel even remotely organic.
These aren't major complaints, though. They are quirks that you adapt to as you get into the real meat of the game -- the combat itself and the story telling. Having already touched on the first topic to the extent I need to, I'll turn my attention to the second.
One of the first posts I wrote on this blog was about Chrono Trigger, a game I have played more times than I care to count. In that post, I credited its success and longevity not just to its innovative combat mechanics, wonderful score, and engaging plot, but to the overall story-telling style and the way it merged the perspectives of its creators' signature franchises (Dragon Quest and Final Fantasy). I'll recap the argument in brief here.
Historically, Dragon Quest has been a series about exploration and creating a world filled with people whose problems you get tangled up in. Caring about this world, more than about any particular vendetta of your own, is what drives you to complete the plot and defeat whatever evil is looming on the horizon. Final Fantasy, on the other hand, has long been primarily concerned with its own characters and their struggles. Nearly everything you do winds up having some particular meaning for some member of the cast, and you finish the game because you want to see their problems resolved. Chrono Trigger manages to combine these approaches by throwing you into different eras of your world's history. At each step, you have some larger goal towards finding the cause of humanity's destruction, but you also help resolve the problems of that particular era. Further, each era lends you its own voice to your party in the form of a playable character to whom you develop attachment, furthering your attachment to the game world as a whole.
Nearly all RPGs (except, perhaps, for open world games like the Elder Scrolls series) fall into some point on this world vs. character spectrum of story telling. Few nail the balance as perfectly as Chrono Trigger, but Bioware games tend to come close. I think that the problem that many people have had with both DA2 and Mass Effect 2, is that both shifted focus slightly, relatively to their predecessors, in the direction of character-focused story telling in an effort to better find that balance.
Let's look quickly at Dragon Age: Origins. Throughout everything you do, the threat of the Blight looms in the background, and your personal motive of being a Grey Warden -- not only sworn to stamp out the blight but the only individuals capable of it due to your ties to it -- drives you to continue. And yet, you need to put your concerns on hold as you run around the country side, easing political tensions and freeing up factions to pledge resources to your crusade against the Darkspawn. You become directly involved in the fate of every civilization in the nation of Ferelden (perhaps too much so, but whatever) and are made keenly aware of the tenuous balance that you're trying to keep in place. Meanwhile, your companions travel with you and have problems of their own that they would like to put behind them -- from Alistair learning to cope with his lineage to Morrigan asserting freedom from her mother to Shale learning some semblance of respect for squishy beings. These stories are engaging, and the banter between particular party members may help to dictate who you bring with you in battle, but they don't drive you directly to defeating the blight or hook you deeper into mythology of Thedas.
Similarly for Mass Effect. You move between planets, uncovering details about Saren's plot and eventually learning about the Reaper threat. You come to an understanding about how humanity's ambitions impact their relationship with the established space-faring races and how you, as an exemplar of your species, will inevitably impact that. Your companions are an entertaining diversion, but contribute nothing to the real plot beyond providing key information at certain points.
Both Mass Effect 2 and Dragon Age 2 tell much smaller stories. In ME2, the entire game revolves around recruiting and building trust with a squad capable enough of determining why the Collectors are abducting human colonies. You focus on your crew because their allegiance and dedication is the only thing that will get you out alive. As much as I enjoy the game and the characters, I'll admit that this story is almost too small, and there are a couple of revelations that could have been handled better.
Dragon Age 2 is about a slowly building avalanche. It's a story about how one man and his decisions -- fueled by his relationships -- change the entire history of a city on the brink. Because Hawke is meant to be affected by his experiences with his companions, we spend a lot more time with them and their personalities are much more thoroughly established. We see them engaging one another, developing friendships and rivalries within the group instead of just with you. The nature of the game as a story within a story (one of your party members is relating the true events of your life to a less-than-friendly interrogator) places unfortunate limits on your freedom. These are events that have occurred, and there is a framework that must be followed. But by building so much around your relationship to your friends and family and the organism that is the city of Kirkwall, we can see different reasons that some of these same, unavoidable events could have come to fruition.
Compounding this is the fact that Dragon Age 2 only barely touches on the major topics of Dragon Age: Origins. Nearly the entirety of the game takes place far removed -- in time and space -- from the events of the first game. Few familiar characters show up, and none of the lingering questions are answered. Taken together with the drastic change in tone, it's a shock that people expecting another grand, nation-spanning adventure weren't ready to deal with.
For the most part, though, it's an interesting approach and, so far, an engaging time. It had some bugs out-of-the-gate, but it really doesn't deserve the hate that's been spewed its way by PC vanguards insistent that any sort of streamlining (to visuals or gameplay) is a sin meant to take advantage of the supposed naivete of console playing "babies". I'd definitely recommended it to anybody who likes games with strong writing and entertaining combat -- in that order.
The most obvious and most frequently cited failings of the game are the unfortunate bi-product of a blatantly rushed development cycle. Environment reuse stands out particularly. I clearly recall the first time I was running through a cave and my map showed an area that lay sitting behind what was so obviously an unmarked door that I spent nearly 15 minutes running around the cave trying to find some lever to open it so as to plunder the riches that must be waiting for me on the other side. I can understand reusing resources, and even building dungeons/instance areas piecemeal from stock parts. Simply re-using the exact same environments with certain areas sealed off, though, is sloppy. At the very least, keep the map from reflecting the unreachable areas.
The second trouble area is the general flow of combat. Now, for the most part, I like many of the changes made here. Full disclosure, I rarely used the top down view in Dragon Age: Origins. As far as I was concerned, it existed almost solely to target area of effect spells without getting stuck on specific enemies. As such, being stuck with the lower, more cinematic camera angle doesn't bother me. The faster animations don't bother me at all, and, contrary to what many people seem to be saying, this is the only significant difference in how combat plays out between Dragon Age 2 and DA:O. In fact, there are a wider variety of skill trees available to work through and, due to the absurd bonuses from cross-class combos, greater attention to be paid as to how your party members' skills will mesh together. Combat is just as tactical and engaging as it ever as.
The problem I have with combat is the way fights are now entirely scripted. Sure, it wasn't uncommon in DA:O to open a door and find a room full of enemies you'd have no choice but to fight, but that wasn't always the way things worked. There were plenty of fights in Origins that I only managed to win by scouting ahead with a rogue and using ranged attacks to carefully pull outlying enemies away one or two at a time before engaging the main force. This doesn't work in DA2. Enemies aren't persistent on the map. Instead, they only appear when you step into a designated area. Then, as the battle rages on, more will show up (either dropping in from the city walls or mystically appearing right out of the ground) to take advantage of the fact that your AI controlled teammates shot their wad against your will and are either stuck in cooldown or have no stamina/manna left. It's an irritation that seems designed to force you to play the game within a somewhat limited framework endorsed by Bioware. Fights are rarely tough enough that I would have liked to have the option to do things the old way, but it just doesn't feel even remotely organic.
These aren't major complaints, though. They are quirks that you adapt to as you get into the real meat of the game -- the combat itself and the story telling. Having already touched on the first topic to the extent I need to, I'll turn my attention to the second.
One of the first posts I wrote on this blog was about Chrono Trigger, a game I have played more times than I care to count. In that post, I credited its success and longevity not just to its innovative combat mechanics, wonderful score, and engaging plot, but to the overall story-telling style and the way it merged the perspectives of its creators' signature franchises (Dragon Quest and Final Fantasy). I'll recap the argument in brief here.
Historically, Dragon Quest has been a series about exploration and creating a world filled with people whose problems you get tangled up in. Caring about this world, more than about any particular vendetta of your own, is what drives you to complete the plot and defeat whatever evil is looming on the horizon. Final Fantasy, on the other hand, has long been primarily concerned with its own characters and their struggles. Nearly everything you do winds up having some particular meaning for some member of the cast, and you finish the game because you want to see their problems resolved. Chrono Trigger manages to combine these approaches by throwing you into different eras of your world's history. At each step, you have some larger goal towards finding the cause of humanity's destruction, but you also help resolve the problems of that particular era. Further, each era lends you its own voice to your party in the form of a playable character to whom you develop attachment, furthering your attachment to the game world as a whole.
Nearly all RPGs (except, perhaps, for open world games like the Elder Scrolls series) fall into some point on this world vs. character spectrum of story telling. Few nail the balance as perfectly as Chrono Trigger, but Bioware games tend to come close. I think that the problem that many people have had with both DA2 and Mass Effect 2, is that both shifted focus slightly, relatively to their predecessors, in the direction of character-focused story telling in an effort to better find that balance.
Let's look quickly at Dragon Age: Origins. Throughout everything you do, the threat of the Blight looms in the background, and your personal motive of being a Grey Warden -- not only sworn to stamp out the blight but the only individuals capable of it due to your ties to it -- drives you to continue. And yet, you need to put your concerns on hold as you run around the country side, easing political tensions and freeing up factions to pledge resources to your crusade against the Darkspawn. You become directly involved in the fate of every civilization in the nation of Ferelden (perhaps too much so, but whatever) and are made keenly aware of the tenuous balance that you're trying to keep in place. Meanwhile, your companions travel with you and have problems of their own that they would like to put behind them -- from Alistair learning to cope with his lineage to Morrigan asserting freedom from her mother to Shale learning some semblance of respect for squishy beings. These stories are engaging, and the banter between particular party members may help to dictate who you bring with you in battle, but they don't drive you directly to defeating the blight or hook you deeper into mythology of Thedas.
Similarly for Mass Effect. You move between planets, uncovering details about Saren's plot and eventually learning about the Reaper threat. You come to an understanding about how humanity's ambitions impact their relationship with the established space-faring races and how you, as an exemplar of your species, will inevitably impact that. Your companions are an entertaining diversion, but contribute nothing to the real plot beyond providing key information at certain points.
Both Mass Effect 2 and Dragon Age 2 tell much smaller stories. In ME2, the entire game revolves around recruiting and building trust with a squad capable enough of determining why the Collectors are abducting human colonies. You focus on your crew because their allegiance and dedication is the only thing that will get you out alive. As much as I enjoy the game and the characters, I'll admit that this story is almost too small, and there are a couple of revelations that could have been handled better.
Dragon Age 2 is about a slowly building avalanche. It's a story about how one man and his decisions -- fueled by his relationships -- change the entire history of a city on the brink. Because Hawke is meant to be affected by his experiences with his companions, we spend a lot more time with them and their personalities are much more thoroughly established. We see them engaging one another, developing friendships and rivalries within the group instead of just with you. The nature of the game as a story within a story (one of your party members is relating the true events of your life to a less-than-friendly interrogator) places unfortunate limits on your freedom. These are events that have occurred, and there is a framework that must be followed. But by building so much around your relationship to your friends and family and the organism that is the city of Kirkwall, we can see different reasons that some of these same, unavoidable events could have come to fruition.
Compounding this is the fact that Dragon Age 2 only barely touches on the major topics of Dragon Age: Origins. Nearly the entirety of the game takes place far removed -- in time and space -- from the events of the first game. Few familiar characters show up, and none of the lingering questions are answered. Taken together with the drastic change in tone, it's a shock that people expecting another grand, nation-spanning adventure weren't ready to deal with.
For the most part, though, it's an interesting approach and, so far, an engaging time. It had some bugs out-of-the-gate, but it really doesn't deserve the hate that's been spewed its way by PC vanguards insistent that any sort of streamlining (to visuals or gameplay) is a sin meant to take advantage of the supposed naivete of console playing "babies". I'd definitely recommended it to anybody who likes games with strong writing and entertaining combat -- in that order.
Thursday, April 7, 2011
The Littlest Hobo Makes a "Friend"
The Littlest Hobo should, by all rights, be one of the saddest people alive, but he'd never know it. Hiding from hail nearly as large as himself beneath a fir tree that has become thoroughly devoted to dropping every last one of its pine cones on him, the delight in his face cannot be conveyed. "How can this be?" you may ask, and I will answer. During his brief, unexpected respite at a nearby asylum, The Littlest Hobo had made a new friend. A friend who would never, who was, in fact, physically incapable of, abandoning him. Now, you are likely asking yourself, "What sort of wondrous friend is this, and where can I find one?" To this question, I insist that Brutus the "Gentle" Sock Puppet is far from a wondrous creation. And yet, for better or for worse, only time will tell which, The Littlest Hobo could not disagree more strongly. It is, after all, in his nature to see wonder in all things, and his loving devotion to Brutus is a powerful reminder of this.
Now, there is certainly no innate harm in befriending a puppet, but that is only the case so long as one understands that the puppet is not its own being but merely a facade for one's self. Whether The Littlest Hobo knows this about his new companion, though, cannot be known, yet. And if Brutus' darker side comes to bear, then he will prove himself a fell companion indeed.
You see, Brutus' previous master, his creator in fact, was a troubled soul. A borderline schizophrenic with a debt to society that few would believe one man could incur. For the benefit if young ears, we will not describe his exploits here, but believe me when I say that they were many and that each was particularly grim in its own way. Having spent years locked away, not seeing any improvement, one of the great many psychiatric practitioners hoping for his improvement had an idea: perhaps, if this patient could find an external outlet for his appetitive urges, it might be possible for the man buried beneath them to be reached.
I cannot fault the poor fool for doing what he could to provide more effective therapy for such a thoroughly broken individual. And had things continued to go as they began, we would not be writing this tale -- or at least not this particular one. In his early days, Brutus lived up to his name. He was affectionate and loving -- if perhaps overly so. As Brutus sat and nuzzled playfully at those around him, our inmate began to open up. The staff were not surprised to find that neglectful and abusive parents had led the inmate to his current state, and fear of further neglect had contributed to his crimes.
Things were going well, until the day that one poor therapist, pushed beyond his comfort zone, denied Brutus his physical advances. It was at this point that the asylum was reminded why the man attached to Brutus was in their midst. Brutus the Gentle Sock Puppet took his first life that day, in a manner so ironic and so gruesome that I can scarcely begin to describe it. In an instant, the act was over, and this is where The Littlest Hobo enters the picture.
Suddenly aware of the danger that Brutus the Gentle Sock Puppet and his utterly unrestrained emotions posed, the asylum proprietors decided, post-haste, to place the inmate in solitary confinement. Unfortunately, the room into which they placed him wasn't unoccupied so much as its lone inhabitant was so small as to not earn their attention. You see, in the hopes of finding shelter from those pesky owls, The Littlest Hobo had wandered into the asylum that very afternoon. Upon seeing a room that appeared to be covered in pillows, he immediately wandered in and fell asleep.
He awoke that evening with a jolt to find Brutus the Gentle Sock Puppet happily nibbling at his tiny knees. Delighted by the strange creature growing out of the arm of the quiet man who sat next to him, The Littlest Hobo gently stroked Brutus betwixt the eyes and fell back asleep. In large part because The Littlest Hobo has no concept of personal space, he and Brutus quickly became good friends. It did not take long, however, for the asylum staff to realize that this dangerous prisoner and his perhaps more dangerous puppet were not truly alone. Prudently, they decided that The Littlest Hobo's safety would be best assured by separating him from from Brutus' and his master. Little did they know how powerfully Brutus had begun to feel about The Littlest Hobo in their short time together.
Brutus again woke The Littlest Hobo up the next night, though in a decidedly different fashion. Late in the night, the only illumination into his cell coming from the glowing red exit sign in the hall, The Littlest Hobo heard the following sequence of sounds.
A turning lock
A knock
A gurgle
A clatter
A thud
In bewildered puzzlement as to what these sounds could all mean, The Littlest Hobo carefully opened his now unsecured cell door, to find Brutus the Gentle Sock Puppet sprawled out towards him. His owner, on whose arm Brutus still rested, lay there as limp as Brutus himself, a scalpel several feet away, and a sign on his back reading, simply, "Would you give me a hand?".
As sirens started to sound throughout the asylum, The Littlest Hobo began to fear that owls had been let loose in the building. Able to think of nothing that would give him more joy than to take his new friend with him as he continued his adventures, The Littlest Hobo snatched Brutus from his master and placed him snuggly about his own arm.
So, now, here they sit in the hail, The Littlest Hobo watching with great vigilance for those persistent owls as Brutus nips tenderly at his ears. What the future holds for the pair, I cannot say, but I only hope that Brutus' darker demons remain in that asylum with his owner. If not, if The Littlest Hobo does not take the initiative to exert control over him, then we can only pray that the two are parted soon.
Now, there is certainly no innate harm in befriending a puppet, but that is only the case so long as one understands that the puppet is not its own being but merely a facade for one's self. Whether The Littlest Hobo knows this about his new companion, though, cannot be known, yet. And if Brutus' darker side comes to bear, then he will prove himself a fell companion indeed.
You see, Brutus' previous master, his creator in fact, was a troubled soul. A borderline schizophrenic with a debt to society that few would believe one man could incur. For the benefit if young ears, we will not describe his exploits here, but believe me when I say that they were many and that each was particularly grim in its own way. Having spent years locked away, not seeing any improvement, one of the great many psychiatric practitioners hoping for his improvement had an idea: perhaps, if this patient could find an external outlet for his appetitive urges, it might be possible for the man buried beneath them to be reached.
I cannot fault the poor fool for doing what he could to provide more effective therapy for such a thoroughly broken individual. And had things continued to go as they began, we would not be writing this tale -- or at least not this particular one. In his early days, Brutus lived up to his name. He was affectionate and loving -- if perhaps overly so. As Brutus sat and nuzzled playfully at those around him, our inmate began to open up. The staff were not surprised to find that neglectful and abusive parents had led the inmate to his current state, and fear of further neglect had contributed to his crimes.
Things were going well, until the day that one poor therapist, pushed beyond his comfort zone, denied Brutus his physical advances. It was at this point that the asylum was reminded why the man attached to Brutus was in their midst. Brutus the Gentle Sock Puppet took his first life that day, in a manner so ironic and so gruesome that I can scarcely begin to describe it. In an instant, the act was over, and this is where The Littlest Hobo enters the picture.
Suddenly aware of the danger that Brutus the Gentle Sock Puppet and his utterly unrestrained emotions posed, the asylum proprietors decided, post-haste, to place the inmate in solitary confinement. Unfortunately, the room into which they placed him wasn't unoccupied so much as its lone inhabitant was so small as to not earn their attention. You see, in the hopes of finding shelter from those pesky owls, The Littlest Hobo had wandered into the asylum that very afternoon. Upon seeing a room that appeared to be covered in pillows, he immediately wandered in and fell asleep.
He awoke that evening with a jolt to find Brutus the Gentle Sock Puppet happily nibbling at his tiny knees. Delighted by the strange creature growing out of the arm of the quiet man who sat next to him, The Littlest Hobo gently stroked Brutus betwixt the eyes and fell back asleep. In large part because The Littlest Hobo has no concept of personal space, he and Brutus quickly became good friends. It did not take long, however, for the asylum staff to realize that this dangerous prisoner and his perhaps more dangerous puppet were not truly alone. Prudently, they decided that The Littlest Hobo's safety would be best assured by separating him from from Brutus' and his master. Little did they know how powerfully Brutus had begun to feel about The Littlest Hobo in their short time together.
Brutus again woke The Littlest Hobo up the next night, though in a decidedly different fashion. Late in the night, the only illumination into his cell coming from the glowing red exit sign in the hall, The Littlest Hobo heard the following sequence of sounds.
A turning lock
A knock
A gurgle
A clatter
A thud
In bewildered puzzlement as to what these sounds could all mean, The Littlest Hobo carefully opened his now unsecured cell door, to find Brutus the Gentle Sock Puppet sprawled out towards him. His owner, on whose arm Brutus still rested, lay there as limp as Brutus himself, a scalpel several feet away, and a sign on his back reading, simply, "Would you give me a hand?".
As sirens started to sound throughout the asylum, The Littlest Hobo began to fear that owls had been let loose in the building. Able to think of nothing that would give him more joy than to take his new friend with him as he continued his adventures, The Littlest Hobo snatched Brutus from his master and placed him snuggly about his own arm.
So, now, here they sit in the hail, The Littlest Hobo watching with great vigilance for those persistent owls as Brutus nips tenderly at his ears. What the future holds for the pair, I cannot say, but I only hope that Brutus' darker demons remain in that asylum with his owner. If not, if The Littlest Hobo does not take the initiative to exert control over him, then we can only pray that the two are parted soon.
Subscribe to:
Posts (Atom)