Shift 2 Unleashed First Look Hands-on

Electronic Arts announced Shift 2 Unleashed in mid-November, right around the time Need for Speed: Hot Pursuit came out. Not that the two have much to do with one another. Shift 2 follows as the sequel to last year's simulation racer, Need for Speed: Shift. And yes, they did intentionally drop the 'Need for Speed' from the title to reflect its orientation as a sim rather than an action game; though, it remains in the NFS "family."

Whatever combination of title words wind up on the box, the game looked to be already well along the way when I played it at a recent event. Yes, played it. The team felt good enough about their work--and eager enough for feedback--that they let attendees play the game at its debut with the understanding that it was still early in development and a lot of work remains to be done.

Like its predecessor, Shift 2 aims to find its niche in the market by focusing on the racing action out on the circuits more than anything else. To accomplish this, the first game worked hard to convey the raw violence of throwing a race car around at speed. That emphasis returns in Shift 2. I drove a range of cars from a Porsche Cayman to a race-prepared GT-R and they gave me the impression of wrestling with the car to make it do what I wanted.

One of the keys to their approach comes from making the car always feel like it sits on the brink of flinging itself apart. Much of this comes from making the ride jump around with increasing severity as the speeds climb. Even the most put together cars noticeably skitter and jump when carving through the apex of a curve at speed; run over the curbing and it gets really interesting. Managing this movement requires the patience to know when not to mess with the steering and let the car naturally regain its composure, and when a little touch is necessary to avert an off-track excursion.

The next step to this immersion comes from the enhanced helmet camera view being introduced in Shift 2. It builds on the behind-the-wheel cockpit view in the first Shift which simulated the effects of inertia on the driver by moving the camera in response to braking and accelerating. Helmet view adds the rim of the visor, which gives a better frame of reference to the movements. It also introduces more natural movements, like the subtle turn to look around the bend at a corner, and more intense response to the jarring ride of a race car than simply lurching toward the windshield under heavy braking.

In action I found the helmet view an interesting and potentially very effective camera; but one still in need of much tuning. The current implementation works best for forces along the centerline of the car. Getting pushed back into the seat or pulling against the restraints leaning forward does a good job of creating a sense for the acceleration and deceleration of the car, particularly working in concert with the game's other special effects like motion blur.

But many other forces act on a car being driven hard and in its current state I didn't feel like these came across nearly as well. Lateral g-forces--the side to side push experienced during cornering--did not feel in balance relative to the front to back movement from longitudinal ones. So while hard braking from 150mph to enter a corner made me wonder if my head might go through the virtual windshield, turning in did not make me similarly fear it might go through the side window. The end result felt like my head was restrained between bolsters--which it theoretically could be in a racing seat, but that would defeat much of the potential sense of being thrown around in the car.

To help with the sense of looking through a helmet, the view includes the rim of the visor around its edges. This includes a little hump in the center where the driver's nose would be. That center point also gives away another weakness in the current setup. Instead of my head moving atop my torso, so both leaning to the side and moving a little lower as it does; the view more pivots on the center, as if my neck stayed fixed while my head mechanically turned to look around.

If they can improve on these issues and create a more natural feel of being in the driver's seat, the helmet cam holds the promise of an intense racing experience. Out on the track I almost felt my teeth clattering together as my head bounced to each bump and dip in the pavement. Shift 2 also introduces full night racing and with the dark shadow of my helmet in my peripheral vision, looking out on the dark road with only headlights to guide me made for an intense race.

I sat and talked about my experience with Marcus Nilsson, the game's executive producer, for about an hour afterward. He listened closely to all my points and reminded me that this was still a very early build with lots of time left for refinement. I'm interested to see how evolves to the next time I get to give it a spin. In the meantime, we've got the first batch of screens to check out to hold us over.

From The Chatty
  • reply
    November 30, 2010 9:04 AM

    If they fix the rubber banding AI then count me in.

    • reply
      November 30, 2010 9:16 AM

      Why would a sim racing game have rubber banding AI anyway? Isn't it supposed to be a sim?

      • reply
        November 30, 2010 9:42 AM

        I think Shift wasn't considered a proper sim anyway. More arcade sim is what I heard. But I only played the demo back then.

      • reply
        November 30, 2010 9:51 AM

        Arcade sim

      • reply
        November 30, 2010 9:59 AM

        Because the original Need For Speed Shift had terrible rubber banding. I remember going on the message boards telling people to pick slower cars to progress quicker. If you picked a Lancer and the computer picked Veyrons the race would still come down to the last lap.

        • reply
          November 30, 2010 10:49 AM

          yeah, the rubber banding worked in order to keep the game "fun" for most players. if it is leaning more towards simulation then i'm super stoked. i loved the whole "racing a caged tiger" aspect of the first title. racecars are brutal machines and the drivers get thrown about like nobody's business (which is why they have to be in good shape).

          i wish more racers adopted this approach. but please fix the, "i'm going to reward you for smashing the other guys of the road" mechanic...really annoying online!

      • reply
        November 30, 2010 1:26 PM

        I feel pretty sure that they'll leave some degree of rubber banding in there. They probably don't perceive it as a problem needing to be fixed, more a feature to keep the racing exciting. And I know the first defense of it is always that it works to the player's advantage too, keeping the race from getting away if you wreck or go off.

        Not saying I agree, though. I don't know the tech side well enough to know whether this would be possible but I think it would be cool to have that something that diminished, ultimately to none at all, as you increased difficulties.

        • reply
          November 30, 2010 2:26 PM

          I would then point to Forza that doesn't have rubber banding, but has difficulty levels. If my car has the highest top speed in the game, and I am going flat out and I get passed by a lesser car that takes me out of the moment and makes me want to throw my controller. At that moment I realize that it comes down to "dice rolls" on the last few corners to see if the computer is going to let me win.

        • reply
          November 30, 2010 3:11 PM

          Shift was actually about as far from 'rubber band' as you could get - it was more like the similarly misunderstood F1 2010 system where driver's concentration, nervousness and pressure factor on them would change depending on what lap it was, and where the nearest car to them was. I don't know why people assume that anything other than the car driving the exact same lap at the exact same rate for the entire race is some super-realism mode - this is not actually something that anyone ever does on a track.

          • reply
            November 30, 2010 7:20 PM

            Nah dude. All need for speed games are rubber-banded.

            • reply
              November 30, 2010 7:31 PM

              There is no "need for speed" codebase.

              The foundation of Shift's AI codebase is, literally, the exact same AI codebase you see in GTR2 and rFactor. The exact same parameters and the exact same values set for a lot of it. On top of that, they added about ~400 parameters to dynamically alter what the AI drivers would do in certain situations depending on their skill, endurance, nervousness, calmness under pressure, etc, and all of those can vary at different stages of the race.

              Please see the source data driving this in \ai\drivers\driveraitweaker.xml, drivers.xml, and driverai.xml, and the master values in \vehicles\physics\physicstweaker.xml. Compare the variable names and values shown there with rFactor and GTR series Talent files, the driver .plr file and track .aiw files between both game series.

              I can throw source at you all day on this, so please keep going if you want.

              • reply
                November 30, 2010 9:32 PM

                Great they made them drive more realistic, that says nothing about what rubber banding is.

                //Should get kicked on a timer loop
                If (user.distance >= computer.distance + x)
                if (computer.speed <= car.MaxSpeed + 15)
                computer.speed + 5

                You are also not throwing source code around, you are throwing back initialization/parameter/setting files. If you have the actual AI code that shows that the rubber banding shown above does not happen, please post.

                • reply
                  November 30, 2010 10:03 PM

                  Literally every function listed in the .exe is called from those files. There is nothing that happens to the AI external of the values entered there - they operate as a big FSM, given a weight by those parameters, eg, we start with a driver with 20 different ability scales, such as

                  <prop name="Stamina" data="0.6" />

                  which is then given a random factor such as

                  <data class="Scales" id="0x4169A14">
                  <prop name="Name" data="Stamina" />
                  <prop name="Minimum" data="0.6" />
                  <prop name="Maximum" data="1.0" />
                  <prop name="Random" data="0.2" />

                  and is then subjected to these modifications as the race progresses:

                  <prop name="Driver Ability - Stamina Fraction Added" data="0.025" />
                  <prop name="Driver Reactions - Stamina Fraction Added" data="0.18" />
                  <prop name="Change Per Second - Stamina" data="0.057" />
                  <prop name="Fractional Cost Of Stamina" data="0.26" />
                  <prop name="Cost Of Stamina -Adrenalin" data="0.1" />
                  <prop name="Driver Mistakes - Stamina Fraction Added" data="-0.8" />
                  <prop name="Stamina Shaping - Base" data="0.3" />
                  <prop name="Stamina Shaping - Resistance" data="0.18" />
                  <prop name="Driver Grudges - Catch Up Stamina Cost" data="-0.005" />

                  There is literally no need and no presence of any 'rubber band' effect - it's a totally different approach than just making a car faster if it's behind, it's about modifying the AI brains of the AI drivers with different weights depending on where they are, when that is in the race, and who is near them. If they're out of the top 3, they start putting on more power, get angrier at cars in front of them, be more aggressive overtaking and risk making more mistakes to get in front. If they're in the top 3, they stop pushing so hard and concentrate more. Depending on the personality of the driver, if they're at the last lap, or the last sector (both are distinct, as well as first/mid sections), they'll either turn into a concentration machine, or get too nervous and start messing up.

                  At this point you are basically reduced calling any attempt to model any realistic behavior of any driver AI as "rubber banding". Drivers don't drive the exact same lap every time, and it's not in the slightest bit realistic to make them do so.

                  I don't know what relevance you think "source code" as opposed to "source data" has in this case but you'd be advised to take an intro to OOP and finite state machines if you think it's a system driven by anything else than what's there.

                  • reply
                    December 1, 2010 7:09 AM

                    If you think that all the race modifiers are listed in XML markup for anyone to modify you need to take an intro to programming course. There is no AI routine, all you have shown is the "dice roll" modifiers which I made reference to above. All you listed above does NOTHING without C/C++ to consume and drive it. It is in there it would make the final decisions as to if it should accept or deny the parameter passed in. For example if I changed the "Driver Mistakes - Stamina Fraction Added" to "ABC" what happens? If the programmer is good, the value is ignored and a DEFAULT state is enforced. If the programmer is bad the program crashes. If the programmer doesn't care he grabs the ASCII value of "ABC" and uses that causing the program to do weird and wonderful things, where I assume people like you get to think they hacked the game.

                    I do a race with a fast car post a fastest lap time of 2:00 and the computer posts 5 other racers with lap times of under 2:05. I do the same race with a slower car, computer picks the same and no one posts a lap time faster than 2:10, no crashes or bumping and the computer picks the same cars as before. I can keep racing with the slower car and no one will break the 2:10 speed for a lap time until I change to a faster car. How is that realism?

                    • reply
                      December 1, 2010 7:11 AM

                      Also when I state above the "computer picks the same" I mean the computer chooses the same cars as it raced with when I picked the fast car, not that they change to slower cars as well.

                      • reply
                        December 1, 2010 7:38 AM

                        I think it's awesome that you think you can wikipedia your way out of having absolutely zero experience with the system being described. That's so internet!

                        I get the distinct impression that one of us has actually tested these functions and one of us is going off some vague theory of how games might work if nobody had any idea how to optimise any function, ever. I think it's wonderful that you even think the driver car choices and raw laptimes are even something relevant to the section of code described (note - please do not get your hopes up - they are not). A wiser person might actually check into that before eating their entire foot, but no, you demand a second course.

                        So essentially we are left with this - Fhaze has no idea what a rubber band is. He does not know what sections of source data he has never interacted with do. I am sure that he thinks googling for clever sounding word salad is his way through B, he can somehow get to A. But it's a dead end. He literally could not even be bothered downloading the demo to check first.

                        Quality internet.

                        • reply
                          December 1, 2010 7:55 AM

                          Guess we will just disagree.

                          Like the personal attacks though, really drove your point home.

                          • reply
                            December 1, 2010 8:03 AM

                            Well, look. You could download the demo and search the .exe for those terms. You can try deleting them. You can try setting them to positive and negative values (doesn't care, they are weights, not absolutes). It will gracefully fall back if any are damaged or missing. Some people mod almost all of the file out, and play strictly with the old line-robot .aiw/maxload system sitting underneath it, which still has almost all of its commands functional too.

                            It's more, I would be perfectly happy to talk to you about this, if you would just look at how it works and check where the data that makes it work actually lives. No hard feelings?

                            • reply
                              December 1, 2010 8:53 AM

                              Look, I played Need For Speed Shift on the 360. I liked it. Yes there was times I wanted to throw my controller. The sound track was decent and is on my iPod to this day. The racing itself was great, I loved being thrown around and wrestling the car back onto the track. Its a good game. I am also not disputing the fact that changing the values in the XML markup will affect how the game behaves. I have indicated what I have seen in the game and to me that seems like rubber banding. Possibly it is different on the computer and I would not see the same things. Possibly the computer was letting me set the pace of the race and the AI was programmed to make its move in the last lap since it had a more powerful car. Maybe my frustration with Need For Speed Hot Pursuit (which I am playing right now) is transferring over unfairly as the rubber band AI in that is ruthless. It has been a while since I played Need For Speed Shift, and I unfortunately don't have a copy in my possession at the moment, so I am going off of memory.

                              To this day I am still pissed I couldn't finish the last race (or 3 races if I remember correctly) to finish the game and get my achievement, so that could be clouding my judgement as well. To which all I can remember is thinking "My Veyron is more powerful than these other cars. No one is running the F1 car or a Veyron, I should be smoking them all." So with that said, maybe I should have tried sucking less :)

                              • reply
                                December 1, 2010 9:19 AM

                                Well, there is a lot of weight given to where the player is too - this is another subset of commands, and a big part of it. They didn't actually communicate it effectively at all, but a lot of the named AI characters (especially rivals) actually remember how you've interacted with them - so every time you block them, or trade paint, or spin them, they get more mad with you, if you lose to them, they back off in future, if you race clean, and they're not aggressive naturally, they'll drive clean against you too. There's a huge amount of commands devoted to "grudges" in there which drives all of this stuff, but some of it is just .. the personality file for the AI brain makes them kind of a dick to race against.

                                The other thing is that essentially you can end up with enough bonuses stacking on an opponent car that they are a lot better than it will be when you drive it. The AI operates at a slightly reduced tickrate, and there are performance compensations for this in all of the car physics files for AI use. The waypoint file for the track will determine the setup they use for their car to a certain extent - so if you're not setting your gear ratios to top out on the longest straight, or are using too much downforce and creating too much drag, they can leave you for dead. Some AI personalities get a performance bonus to engine power, or front grip, or rear grip, sometimes just a lot of one type, sometimes a bit of everything. So there's a lot of permutations of these possibilities to consider. If the race is set up with a particular rival in a particular car on a particular track, and all of those things align for the AI, it can be pretty humiliating. Particularly if you're not setting up the car to be the best it can be.

                                Please don't get the impression that I think Shift is a perfect game - it makes GT5 look like the least buggy piece of software ever produced - but underneath the bugs, and the stuff they didn't really think through, there is an amazing game in there, and the engine is just phenomenally powerful - they used about 1/3rd of the stuff it's capable of doing, and there are a ridiculous number of functionally-complete-but-turned-off-by-default sort of systems in there to do with damage, pitting, wear, weather, etc, that they look to be using in the sequel. Hopefully the sequel fixes a lot of the ill-thought-out-design/outtatime sort of issues they ran into with the first game.

Hello, Meet Lola