About
Pages
Sunday, June 5, 2011
Wednesday, May 11, 2011
Dave McKean Should Be Flattered, Right? Right?
Thursday, April 21, 2011
Havok, Vertex Buffers, Maya 2011
So, it's been a while since I posted. We ran into an interesting situation where we learned that Havok was exporting our referenced meshes as unique meshes within our level. This led to each mesh having its own unique vertex and index buffers. Now, with trees, paths, POIs, and other content, this led up to having 5600 unique vertex and index buffers.
That, for lack of any better words, is a lot of content. That's also a lot of state changes between graphics calls. So, how did we fix this?
Well, we first attempted to export our files using the Havok exporter in Maya 2011, using the "Find Mesh Instances" filter. This filter is supposed to remove duplicate meshes from the scene, but does not detail how it does so.
We at first assumed that any file that was referenced in would be considered a duplicate mesh. Then, when that didn't work, and we had a 50 MB level, we tried doing reference copies. That didn't work either. Well, I then systematically attempted to figure out how "Find Mesh Instances" worked. Turns out, I couldn't find a way for it to work (at least not using the filter).
But, after talking with Eric, I found a nice way around this.
So, the solution was instead to do this:
- Reference in the object / model you want to use from the file of your choice.
- After placing your reference, select the object in the Viewer or Outliner.
- Go to Edit->Duplicate Special (click the square next to it to set it up)
- Select Geometry Type as Instance and Group Under as World.
- Click Duplicate Special.
What this does is creates an instance of the reference that was loaded, which has its own transforms separate of its parent. However, because it is an instance of the reference, its materials, vertex data, etc will be changed when the reference is updated. Likewise, when you execute the shortcut now, these parameters will already be set up.
When you export using the Havok Content Tools exporter for Maya 2011, "Find Mesh Instances" will report not finding any duplicate meshes. However, only a single instance of the mesh will be loaded and referenced in the scene. For us, this insures we only create one index and vertex buffer per referenced mesh, greatly reducing the size of our level files and increasing run-time performance for the game.
Saturday, April 16, 2011
Heatmaps!
Tuesday, April 12, 2011
Animation State Engine and Expressive AI
Now that we have some animations the AI can start to look more interesting. No longer do they merely stop at the goal and wait to move to the next goal; they actually do something at their goal now! To further that end I developed an animation state engine. This is basically a finite state engine with each state representing an animation, and the edges representing transitional animations. It allows the AI and animation systems to be separate, and the AI system to merely tell the animation system which animation state it should be in next, and the ASE will handle picking the appropriate transitional animation and determining when to play and when to stop animations. Each agent also has a map of animation categories to specific animations, meaning different agents can easily have different "Walk" or "Idle" animations without the ASE or the AI system caring at all.
This Is Why We Can't Have Nice Things, Delta
Two Paths Diverged in the Park (With Apologies to Robert Frost)
Right now it's only the actual dirt/concrete/DG/whatever paths in the park, it doesn't include grassy areas yet. There are plans in the future to mesherize the grassy areas as well, but we need some way to assign terrain modifiers to polygons so that AI knows what kind of terrain it is walking on. The other thing you will notice about the nav mesh is that it is all triangles, instead of n-gons. This is unfortunately a shortcoming of Havok, it refuses to read anything but triangles. This means more polygons than strictly necessary, and also it means that our centroids kind of make a wobbly line. That being said, it works pretty well, and the local avoidance gets the AI to alter it's path and keeps them from looking like they are in one big line.
Tuesday, March 29, 2011
Scout Mode
Scout HUD |
Making Comic Book UIs
- A must read for comics would be Understanding Comics by Scott McCloud.
- A great reference for lettering traditions is Comic Book Grammar and Tradition.
- A very helpful adobe illustrator tutorial for comic book lettering by Jim Campbell, https://files.me.com/jim.campbell/qqt5ck.
Sniper Map
The Strangers |
Saturday, March 26, 2011
Game Modes / HUDs
Shooter Mode |
The new game mode is Scout where the player uses a directional mic attached to a high power camera. The player will use the mic as another method of locating their target and the camera to gather evidence for non-lethal conclusions. In this mode dialogue picked up by the mic is displayed in radio bubbles around in the blacked area of the HUD. Due to how the dialogue is displayed, we removed everything but the compass form the Shooter mode HUD.
Scout Mode |
Repurpose Not Rebuild
Building a Terrain
After experimenting with all the other solutions I had found, I settled on Nem's Mega 3D Terrain Generator for several reasons. The most important was that it allowed the level designer to quickly generate a terrain using some built-in generation techniques and hand-sculpting tools. This program also allows us to export our terrain as an .OBJ files that we can then import into our Maya scenes, a feature I felt was important to have. The designer also has control of the size and number of triangles of the terrain, which is important for us to make sure we keep our poly count down. Lastly with Nem's Terrain Generator the designer can hand paint each face with a texture which is nicer than Maya's process for applying a face with a particular texture.
Nem's Mega 3D Terrain Generator |
Friday, March 25, 2011
The World is Not A Round, Spherical Place
Sunday, March 20, 2011
Not The Man I Used To Be
Saturday, March 19, 2011
The Soundscape (First Design)
- Birds
- Sounds of Nature
- People/Crowd
- Vehicle/Traffic
- Music
- Air Traffic
- Machines
Friday, March 18, 2011
Paramount Park Concept
Mole Hunt - Mission Briefing
I (Delta) have been able to obtain information that a transfer between one of the informants and an intelligence officer for WAMG is going down in Paramount Park today. I was unable to obtain any information on the informant, but was able get the files on the intelligence officer. You will have to use the intelligence officer in order to uncover the informant. The intelligence officer will be attempting to maintain a low profile but he will be accompanied by his personal bodyguard.
Once you’ve located the intelligence officer, do not lose him. He will surely be cautious and aware that we are hunting him. You’ll also have to pay close attention to anyone near the intelligence officer as I am sure he and the informant will attempt to disguise their meeting as something else. I cannot stress enough that the goal of this mission is to stop the flow of information and the manipulation of the police department. I don’t care how you achieve this goal; just make sure you don’t screw this up.
Friday, March 11, 2011
Once Upon A Time
Game Design as Narrative Architecture
Is a great article on narrative in games and environmental storytelling.
paranoidproductions.com
I would recommend anything from Richard Rouse III. “Seven Ways a Video Game Can Be Moral” and “Environmental Narrative: Your World is Your Story” are both great places to start.
What Happened Here?
Is a great presentation on environmental storytelling.
onethree.org/talks
“Player-Driven Stories: How Do We Get There?” is a great talk on ways to allow the player to branch the story and ways to let this happen that don’t kill the people making the content.
“No Explanation Necessary: Minimizing Exposition in Game” is a great talk if you can find it somewhere on the web or in the GDC vault.
Hit The Redo Button
I had designed the missions first around a narrative ark and then tried to wrap gameplay around it. This left us with a story that we were unsure we could tell with a shrinking art team and a game that I did not see as fun anymore. So I had determined that we needed to scrap the missions we had designed for the story and craft a new one that was designed around the gameplay.
Thursday, February 24, 2011
Market Sniper Nest Concepts
Billboard Sniper Nest |
The next sniper nest is situated on the top of the stairway access to a building’s rooftop. This sniper nest has a clear view of most of the market square; it's almost the opposite of the billboard sniper nest. However this nest has a poor shot on the section of the market square directly below it due to the magnification by the sniper scope.
Rooftop Sniper Nest |
Sound Types and Categories
- Main Menu
- In-game Menu
- Pause Menu
- In game's missions or levels
- any music coming from radio, stores, buildings or background music for the main menu or in-game menu
- any sound that comes from the environment or the atmosphere. e.g. wind, machines, generator, city
- any short sound or non-looping sound effects. e.g. rifle shot
- any looping or non-looping audio for the characters in the game
Friday, February 18, 2011
Weird circle issuses
First Version |
Current Version |
Thursday, February 17, 2011
Remote Shepherd's Sound Engine
Why FMOD?
- It supports multiple platforms and variety audio file formats.
- It can be used with C++ and Visual Studio.
- It is FREE to use for a non-commercial product.
For more information on FMOD, check out http://www.fmod.org/
Saturday, February 5, 2011
Best Sniper Locations Ever
- In a ball pit with baby dolls attached to the ghillie suit
- On the second level of a double decker bus
- Inside of a hotdog stand
- On top of a flag pole
- Under a manhole cover
Friday, February 4, 2011
Player Affect: Character
During the first mission the dialogue between the vigilantes during the mission briefing and the mission itself will be impersonal, cold and professional. As the game progresses the dialogue will become more personal as the vigilantes reveal more of their personality, which will be based on the player's actions.
Our current idea for someone that only completes each mission through non-lethal means is that the vigilantes will become sad as they see no end in sight for their campaign. On the other hand someone that only uses lethal means will become angry, as they let their rage from what led them to become vigilantes consume themselves. For someone that uses a mixture of the two their personality will become psychotic or unbalanced as they are unable to reconcile their feelings about their actions one way or the other.
Tuesday, February 1, 2011
Animations: Part 1
Each of these individual items, i.e. the skin, skeleton, and animation are all loaded in separately through Havok's pipeline and assigned to an animated mesh object. For the most part these are stored 1-to-1 within the animated mesh. However since we use our own rendering system, we need to convert the mesh provided by Havok into our own form for rendering.
After getting all of the items needed for animation, updated matrices based on the skin bindings and modified by the rig and animation are passed over to a shader to handle hardware skinning. Cel-shading and other effects are also performed to get the desired style we need for the game.
What still needs to be done or made:
- Blending of animations so that a character can wave to someone, spray paint a building, or flail their arms all with the same walk cycle
- Allowing for quick ease of animation swapping within a mesh
- A manager to handle storage of all this data so as to not flood memory with multiple objects of the same animation.
Sunday, January 30, 2011
Mission 1 - Where's My Money?
The mission is broken into two parts the first being introduce the controls and examining the crowd for a target. The player will move to each of the three snipers and be explained how to mark people in the crowd as no threat, possible threat or threat. We will also explain how based on each person’s behaviors this conclusion can be made.
The second part is teaching them all the things the player will need in order to complete any mission the way they want to. Just like in the previous part each sniper will tell the player how something in the environment will react to a bullet. This includes shooting out windows, starting a panic and shooting out a light. With this knowledge the player will be able to make an educated guess how everything else in the world will react to their actions.
Alley Concept
Friday, January 28, 2011
Harbor Concept
The gang’s base is situated on an outlet of land adjacent to the main shipping dock with several industrial buildings and docks for mid-size cargo ships. The gang uses an abandoned cargo ship to hide its drug operation as it provides a hidden location compared to the industrial buildings with large glass windows. As for the industrial buildings, the gang uses them as a supply front to hold storage crates full of drugs and guns. The outlet has several abandoned silos and shipping crates from when this dock was used for shipping supplies. Access to these locations is by ship or an industrial road that runs through the harbor which provides the gang with a clear view of anyone coming near.
Thursday, January 27, 2011
Where is the Agency
Lethal outcomes involve the death of an NPC where as non-lethal requires that no one has been killed. The next mission will depend on which of these two categories the outcome of the previous mission fit into. The arrest outcome happens when, through their actions, the police are able to locate each of the three snipers, ending the game. When the player is arrested they view a cutscene showing a conclusion to anything that has happened in the game.
We decided to place a heavy cost to all of the player’s actions, influenced by Heavy Rain. Everything the player does has some type of effect on how the game’s story unfolds. If a player just starts shooting randomly into the crowd they will be arrested quicker, leading to the end of the game. The player’s choice to use lethal or non-lethal action will also shape how the story unfolds by changing the missions.
Tuesday, January 25, 2011
The Infernal-Light Engine and Graphics Going Forward
While doing that, we had an express need to incorporate a pre-built physics and animation system. The reasoning was, in our previous games Polarity and Rogue Squirrel Returns, I had written our physics and collisions from scratch (basic acceleration, velocity, momentum, bounding sphere, bounding box, and bounding plane). The amount of time and effort required was tremendous, and while the code was re-usable, more optimized and organized technologies would have saved us a lot of time. So, for this, we included rolling Havok Physics and Animation into our engine. This required writing an extension library, which we could use for handling all of our interactions with the Havok system. Currently, we've incorporated Havok Physics into the system, with specialized event handlers for catching collision events. We are still working on getting Animation into the system.
So, what is next on the agenda? Next, is to take our DirectX 11 library and extend aspects of it to allow for multi-pass special effect rendering. To accomplish this, I will be doing three specific things:
- Extracting out code used to render and put it into a more generalized "Pass" object, which knows what objects it wants to render.
- Give the pass object as set of input and output "Buffers", which represent the render targets they will attempt to read from and render to.
- Create a manager that keeps track of these "Buffers", enabling quick fetching and storing of Buffers as soon as they're available.
- Create a unified light manager to manage all of the lights available in the scene. The manager should be capable of getting all of the relevant lights (up to a max number) for a given object in the scene.
Monday, January 24, 2011
Vigilantes' Background
The three friends that became Marine snipers enlisted for the Marine Corps together after high school. They went through basic training and then sniper training together. They spent the rest of their eight years of enlistment in active duty. During their tours of duty they fought side by side in several regions of the globe. When they were done with their enlistment they went home to River Ridge to find their hometown in decay.
The other friend who became a detective went to college and got a bachelor’s degree in criminal justice. After graduating college he went through the Police Academy to become a police officer of the RRPD. After two years as a patrol officer he was promoted to detective and a year later was assigned to the RRPD gang unit. He has spent the last year working his hardest to stop one of the smaller gangs in the greater River Ridge area. Despite his hard work he has very little to show for it.
Sunday, January 23, 2011
Apartment Mission Concept
New York City |
New York City |
New York City |
Saturday, January 15, 2011
Market Mission Concept
New York City |
Flea market vendor |
Surrounding city blocks |
Friday, January 14, 2011
Royal Cove Concept
10 years ago |
Now |
The concept for Royal Cove is based on the Bronx, one of the boroughs of New York City. The Bronx fit the idea we had for this area; it was built for the middle class but now is populated by the lower class. As discussed in River Ridge’s background we needed to create an area that has seen better days so that locations like the market make sense. Our first idea for this area was that it was always a rundown section of the city with an open market in one part of it. After having a day to think about this we couldn’t reason why there would be something as nice as this park in a rundown part of the city. This led us to rethink the area into what it is now.
By making Royal Cove an area that was once peaceful and beautiful and is now a decaying, crime filled area we gained two bonuses. The first bonus we gained is giving the player a reason to want this place to be beautiful again. The characters’ backstory is that they grew up in this borough when it was beautiful. While they were in college, and later the army, the industries went under. So when they came back from war they found their beloved home in the state that it is. The second bonus is we were able to craft a story where there are other people in this area that want to make it beautiful again.
River Ridge Concept
15 Years ago |
Today |
The concept for the criminal story of River Ridge is based on the fictional city of Gotham from Batman. We wanted to create a place where the player felt they could trust the police to try to do their job but were just unable to without some help. This is important for the players that choose to clean the city through non-violent actions. If the player believed that the police were all under the influence of the criminal organizations there would be no point to handing them over to the authorities.
Monday, January 10, 2011
AI Prototype
running to a safeplace
Friday, January 7, 2011
Hint systems: part 1
Obviously good level design is key and constant play testing for any level will be important. However, some players may still have difficulty in figuring out where to look with so much going on. As such, this is where the hint system will come into play.
Ideally we want to have 3 parts to the hint system: letting the players know what vantage point to watch from, where to look at from that vantage point, and what sort of behavior/activity to look for that the target may be doing.
So far the latter 2 items haven't been figured out yet, but we now have a good idea for the first stage of the hint system. In order to draw the player to the right vantage point, we can have the character of the team associated with the vantage point draw the player's attention there with something like "I see the target." This way the player knows that they can go to that vantage point to find the target.
This approach fits in really well with the narrative of the game since the player essentially controls the team's "hive mind" or collective thought so to speak. As the character notifies the player of the target, it's up to the player (aka the collective team decision) to determine the situation and how to handle the target.
Wednesday, January 5, 2011
Main Menu Design: part 1
Heavy Rain's Main Menu |
I decided to start the design with the background for the menus. I first looked at Heavy Rain because our game has the same dark gritty tones and is set in a rundown city. I liked the idea of using a live scene set in the game but I decided this did not match the comic book narrative style of the game.
Batman: Arkham Asylum's Main Menu |
Next I took a look at Batman: Arkham Asylum because it both matched the tone of our game and is based on a comic book. I liked the use of batman in iconic poses set on a rooftop but this conflicted with our plan for the player.
After that I looked at Halo Reach because it used an animated comic book art style for its backgrounds. This fit perfectly with where we were heading for our cut scenes and I really liked the effect. Another thing I noticed and liked about these backgrounds is that they changed from menu to menu. This is something that we could use to reflect the change of perspective that happens in our game.