Tag Archives: Uncharted

A look at Prince of Persia: The Forgotten Sands game engine

In my last Game Engine Design class which was on Halloween, the disappointment of my professor’s lack of costume was neutralized by showing us videos of two Prince of Persia games; The Forgotten Sands and Warrior Within. We were tasked with identifying different aspects of the game engine of the former, often criticizing some of the inner mechanics despite its blockbuster production values and technological achievement.

Image

Prince of Persia: The Forgotten Sands is a 2010 multi-platform game developed by Ubisoft. Any developer will tell you how tasking it is to design the engine to work with certain consoles, similar to car engines, they need to be carefully constructed with the capabilities and limitations in mind. The version we looked at to my recollection is either the PS3 or Xbox 360 version.

My primary grievance with the engine is the sloppily put together animation layering. Most of what I know from animating layering comes from Uncharted 2 and their hierarchal structure of their character kinematics. How it works is that limbs, hands, feet and other body parts are each animated separately while using triggers to switch between animation states according to either your character’s relation to the world and/or according to your character’s action.

The issue with Prince of Persia: The Forgotten Sands’s animation layering is that it lacks detail and feels rushed, for example. When your character grabs onto ledges or walks on the wall for a few seconds, the hands don’t seem to grip on anything, it feels like that Game Jam game Surgeon Simulator where your hand can’t grip on anything.

Spider Prince, spider prince, the bad layering and lack of collision makes me wince.

Image

A major part of gaming is investment, it’s difficult to invest in your player’s actions if something like grabbing onto something doesn’t feel solid. Internet critic and entertainer Doug Walker, under his persona the Nostalgia Critic, attested Tom & Jerry’s effectiveness in its craft due to how solid the animators can make objects, hence enhancing the slapstick.

This technique can also apply to games. Take Ninja Gaiden Sigma for example, when I look at what Prince of Persia: The Forgotten Sands did wrong, Ninja Gaiden Sigma did right. When Ryu climbs, runs along, or jumps off of the walls, you can feel every one of his steps colliding with force on the wall. An example of lack of solidity would be Sonic Heroes a game I loved since my youth, has an issue with enemies feeling too not rigid to the point where you can almost breeze through them like air when your character’s get strong enough. (I may blog about that game’s engine some time down the future) Naruto Shippuden Ultimate Ninja Storm 3 is a game that manages to have both soft and hard collisions. A combat based game at its core, you have your strong, medium and weak attacks, and naturally they make for collisions of the same level of force provided your attack damages your opponent.

It’s difficult to really attest for the force of collisions in games for a lot of people without really playing the games. Though gaming veterans and people involved in the field should be able to immediately identify such deficiencies.

The game’s biggest issue is its AI and how incompetent they are. You know how in movies every enemy attacks one at a time rather than all at once? That’s the game’s AI to a tee. If that’s what the programmers were going for then I’d still protest that they robbed players of a challenge. It doesn’t help that the AI moves at a snail’s pace, both in traversing towards you as well as their attacks. It takes then, no lie, 4 seconds to land a hit on you. Though your attacks are delayed as well, so it all balances out right? WRONG! That’s just bad combat. It’s not even satisfying to kill them due to the sound effects which sound like you’re being blocked rather than tearing away at their flesh.

Image

Yeah just stand there and look intimidating, I’m sure that’ll scare the guy who can move himself more than 2 meters per second.

Once again I must refer to Ninja Gaiden Sigma, when your attacks are blocked, you hear a metallic sound effect, but when you hit you can hear the sound of your weapon tearing his flesh off his skin or bones being broken. It also helps that said game has brilliantly programmed AI whom are nearly as capable as your character, presenting a lot of challenge, a demand for skill on your part and the satisfaction of overcoming said challenge. Which means you better bring it in the boss battle.
Image
Seriously, have I hammered it into your brains already? Go play any of the Ninja Gaiden Sigma games.

I’ve been pretty hard of Prince of Persia The Forgotten Sands all this long. The truth is, despite its shortcomings, its engine has many positive aspects. One of them is its marriage of the camera system and trigger system. The camera manages to follow your character all over the level, placing itself in dynamic and interesting angles whilst capturing the emotions of the environment and situation. This means that when an explosion happens, the camera moves to emphasize the collision.

Image

Perhaps the best example is when the character swings on poles, the camera very subtly moves along with him as he swings, seemingly taking you as the player along with the ride. Parts where you’re assigned an object through an in-game cutscene, the camera will pan to point out where you’re supposed accomplish your task.

Despite the faults of the animation layering, the kinematics is above average by industry, AAA standards. The screen space ambient occlusion is top notch, and gameplay is most likely fun as ever, wouldn’t know though as I haven’t played it. Modelling, texturing, shader rendering, and movement is all top notch as well.

Image

Warrior Within proves to be a superior product despite its technological inferiority; the engine provides much better animation layering, combat kinetics and overall collisions for all the reasons opposite to that of The Forgotten Sands. The former simply has more polished mechanics. In this battle of supremacy, the old proved superior to the new; hopefully developers take not of what it means to deliver on a polished engine.

Advertisements

The game engine I am destined to create

Every aspiring game developer has hopes of making the next great game, or for those who are more realistic, make a game that can be enjoyed by people while paying your light bill. Strangely enough, it’s usually those starting out in their game development school who think the former while people with more education in the field along with more experience tend to sway towards the latter.

Does it necessarily have to do with the fact that our youthful energy is being syphoned out of us as we progress?

Image

Considering it is university yes, however the main reason is as we mature we develop a more realistic outlook on things which makes us set realistic goals. How you set the scope for your projects may make or break it with carefully consideration of your resources, talents and limitations.

Hence why we’re studying Game Engine Design and Implementation, to culminate all our coding knowledge so far to be able to put together a workable engine that can support graphics, animation, gaming mechanics and all our gaming knowledge. So for this blog, I will talk about how I would design the engine of a standard platform game.

The term game engine was coined in the nineties in which it was referring to first-person shooters such as Id’s prolific title Doom due to how intricately its architecture was defined. With separation between core software components, art assets and gameplay mechanics, this is when developers started licencing games and re-tooling them into newer games which opened a whole new world for independent studios and other small organizations.

Image

The game in question will be based on Uncharted’s engine along with the player mechanics of the Spiderman games and the recent Ninja Gaiden games. Given that the engine in question contains many of the ideal mechanics required to put out a solid platformer on the level of Crash Bandicoot which was also created and published by Naughty Dog.

I intend to use this engine as a template for other types of games such as adventure and fighting games since those are the types of games I intend to make and both games require the following:

–       A third-person view camera that follows your characters and stays focused on the players general area in order to focus on its location and the surrounding radius to alert the player of incoming hazards.

–       A camera collision system to ensure that view points never go into places it’s not supposed such as into the background or into a mountain.

–       A rich set of animations rendered for all sorts of commands from climbing to fighting.

–       User inputs that allow players to execute all sorts of tasks.

I mentioned earlier that I aim to include the player mechanics of Spiderman from the Spiderman games and Ryu Hayabusa from the Ninja Gaiden games. Why you ask? Because both characters both characters can do virtually anything; from jumping to climbing to fighting. More than most characters, they do the best job of making the player feel like their capabilities are limitless.

Image

Spiderman for the Playstation, the game the developers of Superman 64 wish they’d made.

There has never been a concrete measurement or assessment of how a game can be good as games can be good for several different reasons, in my opinion, I think the ultimate way to determine a game’s quality is to identity how deeply you can immerse players into the experience and what better way to do so that with a character who can do just about everything.

This is why user inputs is very important, the possibilities of the game’s world is placed in their hand and the transition from one action to the next should be seamless and effortless on the part of the player.

In order to ensure an acceptable framerate it’s important to design the engine so that it can manage all the objects on screen without slowing down the action. In this regard we can take a page out of Insomniac’s hit title Spyro which managed to create massive worlds with distances that expanded to the horizon without relying on fog effects, this was done writing code that would decrease and increase the polygon count of far away objects relative to your character’s distance. This way objects can be slowly loaded over time so as not to overload the console.

Image

Platformers tended to be drawn and designed in cartoon like manners with little emphasis on realism. I grew up with cartoons and platformers such as Mario, Crash Bandicoot and Sonic, so I intend to use such a style. Many of these games relied on principles of animation such as anticipation, squash and stretch, pose to pose, timing and exaggeration in order to achieve the cartoon-like style they were aiming for.

Most of these games were made before Smilebit’s Jet Set Radio spearheaded the use of toon shading in games. I like the toon shading effect because it gives games the comic book feel that I like, however since most of these games were animated and rendered the way they were prior to cel-shading, it’s important to realize that just combing them would be overkill, so it’s important not to just throw them together but to create a balance.

Motion capture generally results in the smoothest and most realistic movement animations so I appoint to utilize it with motion capture artists who can capture the exaggerated movements of cartoon characters in conjunction with the model rendering to capture the less feasible principles such as exaggeration when it comes to characters changing size for the sake of humor.

That’s all for now, it’s still pretty early in the course with much to learn on game engines hence my immature knowledge of the subject, so I just gave you may basic understanding based on previous education and a lifetime passion for gaming. Stay tuned to my blog and see how far I come with my understanding of the topic.