Long time,

Hi everyone, its been a while. Next to gaming my ass of on Fallout 3, Mirrors Edge and Gears of War 2, i’ve been grinding uni and working a lot, and I found a place to live so I’m in the process of moving on my own as well. Busy, busy, busy 🙂

I’ve quit my job as a game developer as of today, because I want to spend more time on uni and finish my master on Game and Media Technology. Its going reasonably well, I hope to do my experimentation project in the next two semesters, as well as some seminar on Path Planning. Currently I am doing a course on geometric algorithms (Computational Geometry) which is somewhat hard, but very cool since it involves geometry. I then only need to do one more course before my I can start graduation project.

Fallout 3 is very nice. I’ve put a 60 or so hours in there and I’m not nearly there, allthough I am already on level 20. Graphicswise it looks allright, but not nearly as good as Gears of War though. The continuality between background and foreground in GoW is really nicely done; I would really like to know how they managed to do such a thing efficiently. Storywise GoW2 has a bit more cutscenes than GoW 1 which is regrettable if you ask me, because the power of the game is to me is on interactive immersiveness. The horde mode is insane however and very amusing with four players. Finally, Mirrors Edge is very neatly done in general. The storyline is a bit short and it may be a bit too fast paced however, it could be a better game if this was dealt with a bit more carefully. I also cursed because I shot one police officer in level 2 and died, and in the end didn’t get the achievement for completing the game without shooting cops; that was a bit unforgiving all-in-all.

Terminator: The Sarah Connor Chronicles rocks by the way. It is one of the better series out there at the moment, and it totally catches the eerie vibe the first two movies also had. Summer Glau plays a new model of terminatrix with more human emotional systems. She was captured by John Connor in the future and sent back to present day to protect John from dying and to prevent skynet to take over the world. It is definately a series worth checking out.

Remember Remember…

Its going to be november soon, so It’s time to look at what games might be interesting to buy this holiday season :). I’ve picked my top five games allready, so here they are with Dutch release dates.

31th of October: Fallout 3. Fallout 3 is an RPG which has two prequels, both from the previous decade. I’ve played the original fallout recently to see how it looked like and lets say It wasn’t good for nostalgia 😉 I’m hoping Bethesda will do what they did bringing their Elder Scrolls series to 3D with Morrowind and Oblivion, and that it is going to be a classic just like the Elder Scrolls games.

6th of November: End War. End War is going to be the first proper voice controlled RTS on the console (or any platform for that matter) and thus I need to have it 🙂

7th of November: Gears of War 2. Marcus Fenix is back and he doesn’t have pets like for example the cute dog in Fable 2, so thats a good thing. More gore, guns, locust and frenzy coming up. Its the coletrain baby.

13th of November: Mirrors Edge. Lucky it’s not going to be out on friday. A lot has been said about mirrors edge the same way Assassins Creed by Ubisoft was delivered last year. Lets hope EA did a better job at keeping the game varied, creative and innovating as they promise.

21th of November: Guitar Hero: World Tour. I’ve been saying I’d buy guitar hero since the first version came out a couple of years ago. Now, this one has got more instruments, so hopefully more fun. Ofcourse I allready preordered the Super Bundle with Drums, two guitars, a mic and ofcourse the game itself, and that for less than €200,-. Harmonix and MTV, eat that.

Ofcourse I’ll give a proper review of each of the games by december (or later even, because I still have to play last years games Bioshock and Gears of War ;))

Remember remember the fifth of November
Gunpowder, treason and plot.
I see no reason why gunpowder, treason
Should ever be forgot…

Viva Pinãta grass effect, demystified

So we’ve all probably heard of Viva Pinãta for the XBox 360, which was released fall 2006. It has a quite distinctive and remarkable graphics style; very colorful ofcourse, but also very detailed and rich in stuff happening on the screen. It’s a kids game obviously, and the game itself is not primarily aimed at people like myself who enjoy the virtues of brutality in Gears of War. However, the graphical techniques used in Viva Pinãta game are pretty cool; in fact, the game was nominated for an award for outstanding achievement in visual engineering. The pinãtas have a nice paper-mâché-like fur and the grass is done in a similar style.

So, how is it done? The technique used is commonly called shell rendering, and it is used widely in various games on different platforms. Shadow of the Colossus on PS2 uses it for furifying its colossal creatures, and Super Mario Galaxy on Wii uses it for some of the enemies and for example for the queen bee in the bee world. The trick is to have several additional layers of geometry above your mesh, mapped with a texture that contains random or ordered pixel data (See picture). It’s a cheap method if you compare it to instancing geometry for each fur hair, because now you only have to render the model for each layer of fur. Thats obviously still a conciderable amount of extra polygons if you have a detailed model, but not nearly as much as if you would do it with instanced geometry.  Obviously there are some tricks that make it even cheaper. You could for instance take a lower level of detail model to render the fur layers. For grass, you could maybe combine the method with a geometry based LOD technique (like geomipmapping for example) and only render the grass for the terrain that is within certain distance to the viewpoint.

There are also some parameters that you can derive from this method. You can determine:

  • The amount of pixels in the fur texture (The density basically)
  • The distance between layers. Long hair/grass or short, its all possible. You can even have variations in height by storing the height in the fur texture as the value of a color. Since you have RGB you can store up to 256*256*256 values (you will need the alpha for other things, like a lerp between black and the base texture color for example)
  • The displacement of the layers with respect to eachother. You can for example apply gravity or wind making the fur hang or the grass wave. Make the displacement non linear, and the fur/grass will hang in a certain way.
  • The amount of layers used. This is useful if the camera is making a low angle with the furred plane, or when the displacement between two layers is too big (and thus gaps emerge between two layers).
  • The thickness of the fur hairs. This is done by scaling the texture (mapping it differently) or by means of populating (for example, sample a random position and add pixels for the consequtive two pixels to get a nice row)

There are lots of posibilities by combining the different attributes, some which I can’t even imagine at this time. I would be really interested in the way Rare did the pinãta paper-mâchée fur so neat and tidy for one 🙂 Anyway, here is an example of how grass could look (its a bit coarser than in Viva Pinãta but that can easiliy be adjusted by controlling the thickness parameter):

I made this in XNA with help of Catalin Zima’s fur example on Ziggyware.

Back.

Hey everyone. Since I didn’t post something since the beginning of august, I might let you know that I’m still alive here 🙂 I’ve not been into XNA much lately, since the project I was working on at work has been put into the fridge for now. I have been doing research on the capabilities of the Wii with the Wii devkit for our first Wii title which is going to be in production within a month I hope. I shall be talking about some technical stuff on that as well, as far as the NDA is not limiting that ofcourse.

I’ve also started taking classes again at university, so all in all I’m quite busy. The class I’m doing is called motion & manipulation, and is concerned with forward kinematics, motion planning, collision detection, and more.

I’ve been thinking about the blog and my activity on it, and I’ve decided to broaden it up a little, also commenting on whats happening to games and the industry in general. I play a lot of games, and I’ve got some strong opinions about them that I’d like to share, so stay tuned! 😉

Shader Programming Resources

For those that are interested in programming shaders up to shader model 3.0, there are some really nice resources available for both starters and the more advanced shader programmers.

GameDev.net recently made ShaderX2 by Wolfgang Engel available for download. Wolfgang Engel is one of the senior engine programmers at Rockstar San Diego, and he worked on the engine for GTA IV.  He also keeps a series of books called ShaderX, which if im right now has 6 volumes. The  ShaderX2 book is actually in two parts, first is a tutorial for beginning shader programmers, and theres a second part which is more of a cookbook style book with a whole lot of articles on all kinds of different subjects. The two parts can be found here.

Nvidia have also made some of their older books published on their developer zone, freely accessible. First is the Cg Tutorial which is nice for beginning shader programmers, and second are GPU Gems and GPU Gems 2 which are again a nice collection of articles on different subjects. They can be found here.