Tag Archives: Of

Dark side of programming, hard coding, it’s more code now than game

The definition of a DSL, the applicability of DSLs to AI in particular, the practical side of constructing and deploying DSLs for AI, and the benefits (and beneficiaries) of DSLs for AI. Lastly, we will conclude with some advice from hard experience on the subject.

A Domain-Specific Language is mere a language designed to be highly adept at solving a specific class of problems. Some languages are more specialized than others, some languages are designed to execute in certain environments and some languages are intended to be as widely applicable as possible

The first major principle that motivates our application of DSLs is code cleanliness and the effects of mapping code directly into the problem space (versus code which is too generalized, too abstract, or too specific – i.e. “hard coded”). The second major principle that motivates DSL deployment is elimination of irrelevant concerns. Our third motivating principle: removing excess overhead.

Scripts were developed in the early AI work by Roger Schank, Robert P. Abelson and their research group as a method of representing procedural knowledge. They are very much like frames, only the values that fill the slots must be ordered. A script is a structured representation describing a stereotyped sequence of events in a particular context. Scripts are used in natural language understanding systems to organize a knowledge base in terms of the situations that the system should understand.

The classic example of a script involves the typical sequence of events that occur when a person drinks in a restaurant: finding a seat, reading the menu, ordering drinks from the waitstaff. In the script form, these would be decomposed into conceptual transitions, such as MTRANS and PTRANS, which refer to mental transitions [of information] and physical transitions.

Schank, Abelson and their colleagues tackled some of the most difficult problems in artificial intelligence (i.e., story understanding), but ultimately their line of work ended without tangible success. This type of work received little attention after the 1980s, but it is very influential in later knowledge representation techniques, such as case-based reasoning.

Scripts can be inflexible. To deal with inflexibility, smaller modules called memory organization packets (MOP) can be combined in a way that is appropriate for the situation. The behavior design is the roadmap for our AI scripting, giving us a clear set of coding elements to complete before it’s AI takes shape.

Although there are many different methods of designing AI, including sophisticated methods such as neural networks and artificial evolution, with a simple creature like this, our tutorial will follow the most basic and standard method used by all stock Unreal AI; conditional decision-making. This is the method that takes stimuli as a constant condition or trigger to either do this or that; also known as “if this, then do that”, or “if-then” decision-making. A common example of this kind of AI is the AI Script in a Scripted Sequence, but even Bots use this method, just in an extremely complex form.

We have some features of our NPC already defined for us; its model, textures, animation and sounds. Normally, a custom character would be started by defining its purpose or goal and then design those features around it. But for this behavior design, we will work “backwards”; starting with those features and finding the purpose and behavior design that fits it.

These are misconceptions about DSL development. DSLs are, by definition, simple and to the point. They eliminate the bulk of the issues that plague generic languages and require far less infrastructure to deploy effectively. Additionally, they require much less up-front design and development work.

Programmers in general are lazy and often try to find the simplest approach. This is isn’t necessarily a vice, after all, technology is a means to maximize efficiency by decreasing the energy and time required to do something. This is a god send for game developers as better technology can enable them to produce the best software and interface possible in shorter time spans given how higher ups give them specific deadlines. Scripts are ideal because of their flexibility, that way programmers can make necessary changes in time, with hard code it would be near impossible.

Advertisements

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.

Man of Steel Review

I’ll be blunt, Superman was never one of my favorite characters, even at a young age I thought Batman, Spiderman, the Ninja Turtles and the X-men were infinitely cooler. With that said I do acknowledge his major contribution to the comic book industry as well as pop culture as a whole and respect him for that. With that said when I heard about this movie I was somewhat intrigued since the project is helmed by the team behind the Dark Knight and directed by the man who made Watchmen. So I decided to give it a fair chance.

Image

Personally I thought it was lame, not that there weren’t a few good things in it but as a whole it fell flat. For example I liked was the parts in the beginning with Krypton’s downfall; the effects were nice and the stakes felt high, the shaky cam was pretty annoying though, and the action towards the end was pretty good too for mainly the same reasons. Both scenes are done pretty well, Zod & Faora were EASILY the best characters and best part in the movie. I also liked Perry White but mainly because he was played by Laurence Fishburne. All the positives end there.

 The thing that brings down the movie unfortunately is the titular character. Henry Cavill who played Superman just sleep walks through the movie and relies on everything else around him to carry the weight of the movie from the other characters to the action.

 Image

Henry Cavill’s extent of emotional range right there. That’s right, put on your srs business face to make people believe that this is a “serious” movie. 

To be honest that has always been the case with the character where his surroundings carried the story rather than the character himself, whether it is the bad guys, the rest of the Justice League or Dini & Timm’s writing & animation in the animated series. The only exception was the Donner films where Christopher Reeve managed to portray him as someone actually likeable & relatable as well as charismatic. What Reeve lacked in bulk, he more than made up for with his charm and personality.

 Image

Reeve may not be as big as Cavill, but his charisma definitely gave him more presence and gave the Donner films an epic feel that overcame the limitations of the time.  

I don’t necessarily want to blame Cavill entirely as the writing & direction does not do him much service, the movie was never able to extract much presence out of him, he came off as bland and never showed any real personality or much emotion. All he did was sort of smirk to the camera while looking pretty. This drags down the movie so much because a movie that’s meant to make Superman “cool” again, so when the main character, who is also the titular character, comes off as boring, your attachment to the movie deteriorates significantly.

The rest of the cast do not fare any better and come of just as bland. Russel Crowe and Kevin Costner are their usual bland selves, given that they’re Clark’s fathers that explains why our main character has the personality of wet cardboard. Amy Adams as Lois Lane comes off as very bland as well; both their bland performances result in weak chemistry that is in the shadow of Christopher Reeve and Margot Kidder’s chemistry in the old films. The latter film knows that you have to give your characters a personality in order to be interesting. Not only was Lois Lane bland in this movie, her role is largely inconsequential to the events of the movie; her only purpose as a character was to discover the mystery of the superpowered alien from Kansas, something the audience already knows. We’ve already seen flashbacks of Superman’s childhood so why do we need Lois to come around and uncover it? her on screen chemistry with Cavill seems extremely forced like it was added in after a good part of the movie was filmed, yet somehow the audience is supposed to see them as a couple when neither the actors’ chemistry nor the script really justify them getting back together. The sole basis of their relationship is based entire on the already established mythos.

Diane Lane & Laurence Fishburne are two of the few human characters who actually act like human beings rather than walking pieces of styrophome whose only purpose is to provide exposition. I mentioned that Zod & Faora were the best characters in the movie, and that’s because the type of acting the direction called for were most appropriate for their characters. In the movie, Kryptonians are essentially the same as ants in the sense that they are selected to be bred to fulfill a certain role in society. So basically Kryptonians don’t have much of a free will, the actors who played Zod & Faora did a good job of portraying a robotic, no nonsense race of people. Seriously, how is it that the aliens who are bred to be their own people have more charisma than the people of Earth?

Image

You wanna know why I liked Zod, because in that part after Superman stopped the doomsday machine, in just 3 sentences, Zod managed to get across his motivation, personality and backstory, making him more likeable, sympathetic and developed than our hero did throughout the whole movie. You can bet that I was pissed off when he got killed, along with the lovely Faora, all the good characters are gone. That’s why I liked the opening and ending action sequence, because those 2 characters were at the center of it.

 Image
Perhaps the biggest problem with the character and the movie as a whole is the origin story. Sure we all know the origin story, but I don’t mind it being told again if it adds something that would give a new outlook on the character like Batman Begins and Amazing Spiderman did, but I don’t think it did anything new other than expand Jor El’s role which didn’t serve the purpose of adding anything to the movie or Superman’s lore. There are actually some interesting things they bring up; like with him being picked on by bullies and how he really wants to let loose on them but he has to hold back, there’s also the idea of him struggling to keep his powers under control like his super hearing and X-ray vision which is scarring him as a result.

 Image

Those are both really good ideas, sadly neither of these are expanded upon beyond the one or 2 scenes they’re in, I’m dead serious, I mean I could understand him getting over the bullies but when did he learn to keep his powers in check? What happened? How did he do it? How did it affect him? To what degree does it affect him as a character? Did a ninja clan help him develop control? Did he practice in wrestling matches against Macho Man Randy Savage? Never explained or explored throughout the movie. This is the movie’s biggest mistake in my book, these two scenes could’ve added a whole new depth to the character, it could’ve made Superman vulnerable without sacrificing the powers that make him Superman (and without forcing him to navigate rings with crippled controls). That could’ve solved the problem that lots of people have had with Superman for years, with him being invulnerable, it could have had the same effect as Hulk or Phoenix where he’s trying to keep his powers in check and avoid using it in a destructive manner in order to uphold his morals. So much for a new take on Superman. :/ If you want a movie where the character actually deals with this I recommend The Wolverine.

One thing I wish the movie took advantage of is the thing where the bully that became his friend after saving him in the bus crash scene, they should’ve used that character to help shape Clark’s outlook and morality, because you had this bully who picked on him but is now a good guy as a result of Clark’s kindness. That could’ve been used as a way to motivate him to do good to bring out the goodness in others as well as present a conflict in that he doesn’t want to hurt people, just reform them, this could have been used to up the stakes in his fight against Zod. While I enjoyed the action sequence which was thankfully a sizeable chunk of the running time, I feel like these conflicts could’ve been much better had any attachment been developed. From looking at the film most people on Earth are just obnoxious douchebags who pick on Clark because that’s what poorly written characters do. Any time spent on actually analyzing the story of Superman’s moral code would’ve made for a much stronger narrative; all we get from this movie is young Clark being told by his father that maybe he should’ve let the kids on the bus die.

 Image

You heard me right folks, the main male figure of the world’s biggest Boy Scout suggested that maybe he should let kids die. Father of the year ladies and gentlemen! (More on that later)

This is where the movie tremendously disappointed me, remember when I said how intrigued I was when I heard that the team behind Batman Begins and the Dark Knight were working on a Superman movie? That’s because I was hoping the same way Batman Begins added a whole new depth to the character by going into detail about all the things that make him who he is; from his ninja training, to his moral code, and to the theme of his get up, this movie would follow in their wake. Man of Steel did no such thing, rather than go into detail about his morals and his powers, they pretty much gloss over that the same way X-Men Origins: Wolverine just glossed over interesting chapters in Wolverine’s life such as his involvement in the wars and time in Team X. Considering the movie is over 2 hours long this is inexcusable, they waste a lot of time on scenes that they either aren’t developed like they should have (as I’ve mentioned) or worthless scenes with Lois Lane’s escapades of providing dialogue that sounds like exposition and not something an actual human being would say courtesy of David Goyer’s script.

 Image

Perhaps the scene that exemplifies all the issues of the movie is the tornado scene where Pa Kent meets his demise. I heard about the scene before going in the movie thinking that it was a young Clark Kent who’ll be indecisive about how to use his powers which would justify making an irrational decision based on his father’s word, however it turns out that Clark was an adult in that scene which means by that point he should understand full well what he is capable of.

It felt completely unnecessary and convoluted. So you’re telling me they couldn’t see glimpses of the tornado or detect the high winds from a distance? Superman does have super senses does he not? They even pulled the save the dog trope just so Pa Kent could himself in a situation where he could die. There’s no reason for Pa Kent to forbid Clark from saving him, it was just the typical Nolan “noble death” where it’s just there to be “cool”.

The whole point of the scene was to pull an Uncle Ben and make Superman’s story more “tragic”, while not understanding the significance of Uncle Ben’s death; how Peter’s carelessness led to the demise of his loved one which motivate Peter to use his great power in a responsible manner to prevent more people from meeting the same fate. (Which unfortunately still happens)

It’s an example of how the filmmakers don’t understand Superman, because if anything Pa Kent’s regular death is far more powerful and impactful to Clark because it teaches him that maybe Superman can’t save everybody and he’ll have to cope with that. See guys? You can get across that point without making your character out to be a sociopath.

It’s also an example of how Snyder, Goyer & Nolan are simply trying to mimic other stories and characters without understanding if they would work for what they’re doing and why they work for those stories. Given Superman’s status as an “old timer” in the midst of “younger, hipper” superheroes, it just comes off as an old man wearing baggy clothing trying to fit in with 18 year olds.

 Image

The biggest example of the movie’s awful writing and directing is the Jesus Christ “symbolism”, I put that in quotations because it was so unsubtle to the point of insulting. I mean as if it wasn’t obvious enough with him being 33 years of age and raised by poor farmers, they literally had a stained glass image of Christ right behind him. Newsflash guys, you don’t have to explain everything to the audience like they’re idiots.

An example of GOOD symbolism is the scene in Iron Man 3 where Tony Stark is dragging his heavy armor after a crushing defeat. This is reminiscent of the experience of soldiers in the army in which their training helps them in combat but becomes a burden upon returning to civilian life after the harsh environment of battle. If the same adrenaline that saves your life in combat kicks in every time a car backfires, it’s become a burden much like Tony’s armor has.

The reason that symbolism worked because it gets across the parallels, the characterization, the narrative and the conflict in one shot without the need for direct exposition, film is a visual medium like paintings, images can speak to audiences louder than exposition. I’m surprised someone as lauded as Nolan doesn’t understand this.

A lot of people had a problem with how it ended with Superman killing Zod, mainly because they felt that the scene wasn’t followed with him grieving to sell the tragedy, with me it’s the preceding events that took away from that scene. I don’t think there was even one scene where it established that Superman does not kill like they did in the Dark Knight movies. Had Superman’s code of justice been given any form of development it might have resonated, but as is it just comes off as business as usual, I mean his own dad told him that maybe he should let kids die even though he has the power to save them and then Superman himself allowed his father to die, so snapping the neck of a guy who caused countless amounts of damage should be right up his alley as far as I’m concerned.

Image

Superman reacts to the reviews on Rotten Tomatoes. 

The movie has David Goyer’s signature all over it; good ideas and interesting themes hampered by his habit of never taking advantage of them through development. Dark Knight Rises had the same issues, but at least that film had talented actors able to carry a weak script, the actors in Man of Steel aren’t as gifted which is unfortunate for us.  

I know people give Zack Snyder a lot of shit but I give him the credit for the scenes I liked because he is very good at visuals and action sequences, though some shots were stupid, shaky cam in places not need and a dull, desaturated color scheme were annoying. He’s clearly under the thumb of Nolan, Goyer, and Warner Bros. executives so I think they deserve more of the blame for this one.

The movie takes absolutely no risks; there’s nothing new regarding Superman’s mythology, no new approach to how we perceive the character or his respective universe. What do you know about the character? That he’s an alien who gains powers from our sun and protects the Earth, that is all the movie tells us. It’s basically a remake of the first 2 films; it showed Krypton exploding, Superman’s origin and his fight with Zod. It helped that over two movies it had time to develop Superman’s attachment to Earth so when aliens threaten it there’s heartbreaking tension on his part. That doesn’t need to be a bad thing but considering how high the bar was raised for super-hero movies in the past few years and how this is supposed to be a long awaited reboot to a movie franchise that as far as most movie goers were concerned was dead for 30+ years since Superman II.

To the movie’s credit it exceeded my expectations at the box office (which admittedly was pretty low) and seems to have enough fanfare, though the latter feels very questionable to me since I wonder if they truly do like it, or are simply supporting it based on the brand alone. Even Phantom Menace and Transformers were liked by audiences until years later realized how crap they were.

Amazing writing? Dragonball Z level action? Yeah, none of that’s there. I’m not fond of Superman, I tried being as unbiased as possible but a crap movie is still a crap movie. Sorry fanboys, it takes more than Superman throwing a few punches to make a good movie. Calling it edgy because it toned the color down and has the characters put on their “srs business” face is like the little kid that’s trying WAY too hard to be “growed up” in the most superficial ways possible. By listening to “grown up” music with cuss words in it, and wearing darker/muted color clothes more, and having this “mysterious brooder” affect about themselves and making up some trite backstory about how the reason his antisocial ass doesn’t talk to anyone is because “never understood” and “doesn’t trust people anymore” because Blahedy Blahedy Humanity Are Stupid Evil Jerkfaces Wah Wah Cry Cry.

4/10, pretty subpar, a few good action scenes that are hampered with no emotional attachment.

God of War III’s graphics engine and various implementation

I’ve been playing a lot of God of War III lately and thanks to my Intermediate Computer graphics course, I couldn’t help but consider all the shaders being used. In God of War III, details  in terms of texturing and geometry is not just another step in graphics rendering, but one giant leap for the industry in terms of technology.

Image

Programmable pixel shaders add textures and effects that give a whole new dimension to the quality of the final work. It’s a true generational leap, and performance of the new game, in terms of frame-rate, is in the same ballpark as the previous two God of War titles.

In terms of the character creations themselves, concept art and a low-poly mesh from Maya is handed off to the 3D modellers, who create the basic models using a sculpting tool known as Z-Brush. These models are then given detail – painted in via Photoshop – before being passed along the next stages in the art pipeline to the character riggers and animators.

Image

Kratos himself is a very detailed model, it’s interesting to note that the raw polygon count is considerably lower than the 35,000 or so that comprise the in-game model of Drake in Uncharted 2. But it is significantly higher than Kratos on the PS2 when he had only 5,000 polygons. He had about three textures on the PlayStation 2 and I think he has at least 20 textures on him now. The animation data on him is probably about six times as big.

Image

Kratos is a big guy but did you know that given the intricacy of his model, it would take two Playstation 2’s to fit his memory? That’s not even counting all his weapons that he has to alternate between, eat your heart out Link.

Image

Each character gets a normal, diffuse, specular, gloss (power map), ambient occlusion, and skin shader map. Layered textures were used to create more tiling, and use environment maps where needed.

A new technique known as blended normal mapping adds to the realism of the basic model and hugely enhances the range of animation available. Muscles move convincingly, facial animations convey the hatred and rage of Kratos in a way we’ve never seen before.

The system operates to such a level of realism that wrinkles in the character’s skin are added and taken away as joints within the face of the model are manipulated. The musculature simulation is so accurate that veins literally pop into view on Kratos’s arms as he moves them around.

In terms of character movements, over and above the pre-defined animations created by the team, the God of War technical artists also created secondary animation code. Why hand-animate hair, or a serpent’s tail, when the PS3 itself can mathematically calculate the way it should look? The system’s called Dynamic Simulation; and its effects are subtle but remarkable, accurately generating motion that previously took the animators long man-hours to replicate.

From God of War II to God of War III they’ve used Dynamic Simulation more and more to do more secondary animations on the characters. Before, in previous games, the hair or the cloth would be stiff, it would be modelled into the creatures, but now they actually adding motion to those pieces so you will see hair and cloth moving.”

“Towards the end of the previous game, in collaboration with Jason Minters, I created this dynamic system that uses the Maya hair system to drive a series of joints,” adds technical artist Gary Cavanaugh. “Each of the snakes on the gorgon’s head is independently moving. The animator did not have to individually pose all of these animations but they do have control over the physics… it improves a lot of the workflow for animators.”

The tech art team bridges the gap between artists and coders. The ‘zipper tech’ tool on the left shows how they create animated wounds with belching guts, while the shot on the right shows a bespoke animation rig for the gorgon’s tail.

One of the most crucial elements of the cinematic look of God of War III is derived from the accomplished camerawork. Similar to previous God of War epics – and in contrast to Uncharted 2 – the player actually has very little control over the in-game viewpoint. Instead, Sony Santa Monica has a small team whose job it is to direct the action, similar to a movie’s Director of Photography.

Think about it: so long as the gameplay works, and works well, having scripted camera events ensures that the player gets the most out of the hugely intricate and beautifully designed art that the God of War team has put together. When running from point A to point B, why focus the camera on a piece of ground and wall when instead it can pan back to reveal a beautiful, epic background vista?

Perhaps most astonishingly of all, the final God of War III executable file that sits on that mammoth Blu-ray is just 5.3MB in size – uncompressed, and including SPU binaries – in a project that swallows up a mammoth 35GB of Blu-ray space (40.2GB for the European version with its support for multiple languages).

Another core part of God of War III‘s cinematic look and feel comes from the basic setup of the framebuffer, and the implementation of HDR lighting. Two framebuffer possibilities for HDR on the PlayStation 3 include LogLUV (aka NAO32, used in Uncharted and Heavenly Sword), and RGBM: an alternative setup that has found a home in Uncharted 2 and indeed in God of War III.

The basic technical setups for both formats are covered elsewhere but in terms of the final effect and what it means for the look of the game, the result is a massively expanded colour palette which gifts the artists with a higher-precision range of colours in which to create a unique, stylised and film-like look.

Opting for the RGBM setup over LogLUV means a significant saving in processing, although some precision is lost. The degree of that loss isn’t exactly apparent to the human eye, and we can assume it becomes even less of an issue bearing in mind that the final image is transmitted to your display downscaled over the 24-bit RGB link in the HDMI port.

Image

The filmic look of God of War III is boosted via effective motion blur. The shots demonstrate the camera and per-object implementations in the game.

In terms of post-processing effects, the game is given an additional boost in realism thanks to an impressive implementation of motion blur. Superficially, it’s a similar system to that seen in previous technological showcases like Uncharted 2: Among Thieves and Killzone 2, and helps to smooth some of the judder caused by a frame-rate that can vary between anything from 30 frames per second to 60.

Most games that implement motion blur do so just on a “camera” basis – that is, the whole scene is processed – an effect that of variable effectiveness in terms of achieving a realistic look.

According to Sony Santa Monica’s Ken Feldman, motion blur is calculated not just on the camera, but on an individual object and inner object basis too.

God of War’s camera and object motion blur is a subtle but effective contribution to the cinematic look of the game. Here at 30 per cent speed, the effect is more easily open to analysis. Hit the full-screen button for HD, or click on the EGTV link for a larger window.

The basics of the motion blur system effectively mimic what we see on the cinema screen. Movies run at only 24 frames per second, but make it look like it’s smoother. While filming, the shutter of the camera stays open for around 0.04 seconds. During that window of time, movement in the captured image is blurred. It’s that phenomenon that the tech seeks to mimic in God of War III: more cinematic, more realistic.

Initially the game used the RSX chip to carry out a traditional 2x multisampling anti-aliasing effect. This, combined with the game’s lack of high-contrast edges, produced an extremely clean look in last year’s E3 demo. For the final game, the Sony Santa Monica team implemented a solution that goes way beyond that.

MLAA-style edge-smoothing looks absolutely sensational in still shots but the effect often deteriorates with pixel-popping artifacts. In God of War III this only became especially obvious in the scene shown in the bottom right image.

According to director of technology Tim Moss, God of War III worked with the Sony technology group in the UK to produce an edge-smoothing technique for the game that the developers call MLAA, or morphological anti-aliasing. Indeed, Moss’s colleague Christer Ericson took us to task on the specifics of MLAA a few months back in this DF blog post, revealing that the team has put extensive research into this in search of their own solution.

“The core implementation of the anti-aliasing was written by some great SCEE guys in the UK, but came very late in our development cycle making the integration a daunting task,” adds senior staff programmer Ben Diamand.

The specifics of the implementation are still unknown at this time (though Ken Feldman suggests it “goes beyond” the papers Ericson spoke about in the DF piece) but the bottom line is that the final result in God of War III is simply phenomenal: aliasing is all but eliminated and the sub-pixel jitter typically associated with this technique has been massively reduced compared to other implementations we’ve seen. The implementation of MLAA culminates beautifully when it comes to eradicating edge-aliasing within the game.

The custom anti-aliasing solution is also another example of how PlayStation 3 developers are using the Cell CPU as a parallel graphics chip working in tandem with the RSX. The basic theory is all about moving tasks typically performed by the graphics chip over the Cell. Post-processing effects in particular work well being ported across.

The more flexible nature of the CPU means that while such tasks can be more computationally expensive, you are left with a higher-quality result. The increased latency incurred can be reduced by parallelising across multiple SPUs.

In the case of God of War III, frames take between 16ms and 30ms to render. The original 2x multisampling AA solution took a big chunk of rendering time, at 5ms. Now, the MLAA algorithm takes 20ms of CPU time. But it’s running across five SPUs, meaning that overall latency is a mere 4ms. So the final result is actually faster, and that previous 5ms of GPU time can be repurposed for other tasks.

While the detail that the Sony Santa Monica team has put into the characters and environments is clearly immense, it’s the combination with the pure rendering tech that gives the game its state-of-the-art look and feel. The new God of War engine thrives in its handling of dynamic light sources, for example.

God of War III triumphs in handling dynamic lighting, with up to 50 lights per game object. Helios’ head (bottom right) is the most obvious example of the player directly interfacing with dynamic lighting. Dynamic lighting is one of the big features of the game’s engine. It manages to support up to 50 dynamic lights per game object. They are not using a deferred lighting scheme. Our lead programmer What the team did was place lights in Maya and have them update in real-time in the game on the PS3, it’s like being able to paint with lights.

Where there is light, there is a shadow. Or at least there should be. On the majority of videogames, shadowing tech is fairly basic. Producing realistic shadows is computationally expensive, hence we get a range of ugly artifacts as a result: serrated edges that look ugly up close, or cascade shadow maps that transition in quality in stages right before your eyes.

Image

God of War III stands out in this regard simply because you don’t tend to notice the shadows. They’re realistic. The human eye is drawn to elements that stick out like a sore thumb, and that includes shadows. State-of-the-art techniques result in a very natural look. The result is subtle and it works beautifully, thus creating visual feast for players to enjoy as they play a game with graphics that even surpass blockbuster movies.