Bruno Pereira Evangelista
Game Development, DirectX, XNA and Shaders
RSS Feed
News
Attending to Siggraph 2008
Thursday, July 17, 2008
Siggraph is the world's premiere conference for Computer Graphics and Interactive Techniques. It is a huge conference, attended by tens of thousands of people, and this year it will be held on Los Angeles. Well, this year I will attend to Siggraph for the first time and as a Student Volunteer!!! Yeah, I’m very excited!!!

Siggraph 2008
Siggraph’s Student Volunteer is great program that provides students with a Full Conference Pass which allows you to go almost anywhere in the conference. As a volunteer you can apply for 18 or 30 hours of work, and if you apply for 30 hours you can also be awarded with housing. It was the second time that I applied for the volunteer program, and fortunately, I was accepted! =D

Are you attending to Siggraph this year? I would really like to meet you there. It will be my first time there and I would like to meet a lot of people!!!
Brazilian team wins ImagineCup's Game Development
Wednesday, July 9, 2008
Yeah, they made it! The Mother Gaia Studio team (a brazilian team) is the winner of the Game Development category at Imagine Cup 2008. They took home the Game Development prize with the City Rain game, a game with a strong environmental focus (as you can see here). As I said in my old post, Brazil always perform well on Imagine Cup, and they made me no regreat my words! =D

City Rain


It was the first time Imagine Cup featured a Game Development category, where students from all around the world competed creating a XNA games with the theme: "Imagine a world where technology enables a sustainable environment."

Besides the Game Development category another brazilian team reached the forth place in the Software Design category. Check the Imagine Cup 2008 winners here.
XNA Performance on Xbox 360 - Part 1
Tuesday, July 08, 2008
About an year ago while working on the XNA TPS game I was surprised how my old single core Athlon 64 2.0 GHz processor could handle my game at 100+ fps (frames per second), while I was gettings less than 40 fps on the 3.2 GHz Xbox 360's Xeon processor. (Note that my game was CPU bound and not optimized!)

Performance issues are common for XNA developers on the Xbox 360 – specially when your entire game was developed on Windows – and even professional developers, like Torpex team, had to face them. In general, these performance issues are due to: .NET Compact Framework (which runs on the Xbox) and Xbox 360's Xeon PowerPC architecture. In this post, I will discuss about Xeon's architecture and why it might run your game slower than your desktop Intel/AMD x86 processor. Let's start looking at the Xeon specs at Xbox.com:
  • Three symmetrical cores running at 3.2 GHz each.
  • Two hardware threads per core; six hardware threads total.

Looking at these specs you may wonder how powerfull this processor is: "Wow, six hardware threads running at 3.2Ghz cores!". In fact it is really powerfull, if you know how to effectively take advantage of its architecture! Do not expect a great performance from your ordinary (not optimized) single thread code.

When a manufacturer like IBM design a chip they are concerned about its surface size (or die size). The die size is the space they have to put everything the chip needs: logic units, control units, registers, cache and so on. But bigger chips means heat, high power consuption and high prices (they make money by getting as many chips from a silicon wafer as possible). In order to put a triple-core CPU in a small chip in early 2005, IBM had to remove some hardware optimizations from its cores, relying more on software optimizations. So, what makes Xeon processor different?

  • In-order-execution: When one of the operands of an instruction is not available the processor waits untill it gets available (what can take longer if the data it is not in cache). In this case, an out-of-order execution would allow other instuctions to execute reducing latency.

  • Poor branch prediction: When a conditional branch is found, branch prediction tries to guess if it will be taken or not, before evaluating its condition. Then, the next program instructions can be pre-fetched but a branch misprediction may cause bubbles in the pipeline. Some compilers allows developers to label branchs that are "likely" to be taken, generating a more optimized code. Branch intensive codes like IA and Game Logic may suffer here!

  • Small cache size: Xeon features 32KB/32KB (instructions/data) L1 cache and 1MB L2 cache. It is indeed a small cache (my laptop's Intel Core 2 Duo Mobile processor has a 3MB L2 cache) and if you do not handle it your program might suffer from lots of cache miss.
Furthermore, .NET Compact Framework JIT (just in time) compiler makes things more difficult for XNA developers, generating very unoptimized codes! But I will leave this discussion for my next post! =) Finally, I hope in the future (maybe on XNA 3.0) we can get access to the VMX 128 units on the Xbox. These units are a great help for math intensive code and the Xbox 360 features three of them.

Wanna learn more about the Xeon architecture? Check the "Inside the Xbox 360" articles part 1 and part 2, or also check these threads (1, 2) on Creator's Club.
Ubisoft opens new BRAZILIAN studio
Monday, June 30, 2008
One of the things that have been higly discussed on game developer foruns in Brazil last week was the fact that Ubisoft is opening a new studio in Brazil. The new studio will open its doors next month with an initial staff of 20 employees, aiming to grow to more than 200 developers within the next four years.

Ubisoft

The new studio will be situated in Sao Paulo, the biggest economic city in Brazil, where they will initially work on "family titles" for consoles and portables. Heading up the new studio will be Bertrand Chaverot, previously the managing director of Ubisoft's external development department for Europe, the Middle East, and Asia.

Are you an avid brazilian game developer looking for a job at one of the biggest worldwide publishers? Send your resume to: jobs.brazil@ubisoft.com. Right now, they are looking for great 2D and 3D artists and animators.
Tunning your laptop graphics
Wednesday, June 25, 2008
I recently bought an Acer Aspire 5920G laptop. It is my first laptop and it comes with a nice GeForce 8600M GT graphics card. Although the GeForce 8600M is not the most powerfull graphics card on the market it is a good one for a laptop, being able to handle DirectX10 and Shader Model 4.0 pretty well.

One of the things that drew my attention on this laptop was how old its drivers were, and I mean REALLY OLD! Its graphics card driver dates April 2007. My first thought was "lets check for new graphics driver at nVidia" but after some searching I found that many graphics drivers for laptops are provided directly by their vendor (this is because each laptop may use a modified driver version). Going to Acer driver download page I found that I was already using their latest drivers... O.o

Because nVidia has a Unified Driver Architecture (UDA) I thought it might be possible to install their latest drivers on my laptop and after some search I found the solution at laptopvideo2go. There you can find modded INF files that allows you to intall the latest nVidia drivers on your laptop. I tried their Forceware 177.35 driver mod for Windows Vista and it worked great! If you have a laptop make it a try.
Dream-Build-Play 2008 Announced
Monday, June 9, 2008
The Dream-Build-Play Challenge is a worldwide challenge on game development for the Xbox 360® using the XNA Game Studio. It is one of the biggest contests on game development and has prizes totaling $75,000 USD and the opportunity to publish your game on the Xbox LIVE® Arcade.

To compete you should create an Xbox 360® game using the XNA Game Studio 2.0 and submitting it between September 1 and 23.

Dream-Build-Play

Another great thing is that this year they will provide a 12-month XNA Creators Club trial membership for all the participants of the contest, great isn’t it? Also, according to the XNA Team Blog we will begin to see the winner games of the Dream-Build-Play 2007 contest later this year on Xbox LIVE Arcade.
Gamefest 2008
Sunday, June 8, 2008
Microsoft has announced the Gamefest 2008 conference, which is its premier conference on game development. The conference will take place in Seattle, Washington, on July 22-23 and will be composed of eleven different tracks, including: Casual Games, CPU and System Programming, LIVE and Networking, Visual Arts and XNA Game Studio.

Gamefest

If you are interested in hearing the latest news about gaming on Windows®, Xbox 360™, and ZUNE™ it is the right place to go.

Although I never had a change to go to Gamefest in the USA, last year I participated of the first edition of the Gamefest Brazil, which was great! In the Gamefest Brazil I also had the opportunity to gave two XNA's lectures: Creating a 3D Game with XNA and Creating Photorealistic and Non-Photorealist Effects for Games.
Dropping W3C Validation
Friday, June 6, 2008
Until now, one of the things that I spent a lot of time doing on my homepage was assuring it was a valid W3C XHTML page. Thus, every time I publish something on my homepage I need to check if it is still W3C compatible, and sometimes it is not, due to small problems, such as: invalid characters on the page, embedded videos, or just a target="blank" on a hyperlink.

While a pattern is a usually a good thing, I find out that the W3C guidelines are very restrictive and difficult to follow. For these reasons I decided to drop the W3C validation from my homepage. I hope it will help me save a lot of time! =)
Rock Rain on Zune
Thursday, June 5, 2008
José Antonio Leal Farias (aka Jalf) ported the Rock Rain game that is developed on the Beginning XNA 2.0 book to the Zune. He said that he first experience developing for the Zune was great, and that the new Sound and SoundEffect classes make it even easier to use sounds.

Rock Rain on Zune

You can download the source code of the Rock Rain for Zune here.
And if you are curious about this game, check the video below:


Lecture: Creating Games for Windows, Xbox and Zune with XNA
Tuesday, May 27, 2008
Next Friday, I'm going to give a lecture about XNA at the CGGT (Computer Graphics and Game Development) group at my university (UFMG). In this lecture I will focus on all the great features that came out with XNA 2.0, and the new features that are coming with XNA 3.0:
  • Networking with XNA
  • XNA for Xbox Live Arcade
  • Community Games
  • Zune Support
Community Games

Also, I will take advantage of this opportunity to show why managed code will become the next big thing in game development, and why I definitely agree with some statements made by Tim Sweeney's:
  • "Productivity is just as important as performance"
  • "We will gladly sacrifice 10% of our performance for 10% higher productivity"
  • "We never use Assembly language"
If you want to stay tuned with the CGGT group activities, you should subscribe to our e-mail list (in portuguese).
Brazillian Game on the Imagine Cup Finals
Monday, May 26, 2008
The Mother Gaya Studio, a brazillian team, reached the finals in the Game Development category of the Imagine Cup 2008 with the game City Rain. And now, they are going to Paris for the Game Development finals. You can see the City Rain gameplay in the following video:


"With a strong environmental focus, City Rain is a game that can be used to teach the players how to build a sustentable city."

Brazil has always performed very well in the Imagine Cup, having teams in the finals of different categories every year. Also, brazillians were more than 30% of the total registered students in the Imagine Cup 2008, with 63.757 registered students. Cool isn't it?

You can check the other finalists of the Game Development category below:
XNA 3.0 Community Technical Preview
Sunday, May 25, 2008
The XNA 3.0 Community Technical Preview (CTP) has been out for about three weeks now, but what cool features this new version brings to developers?

The CTP allows developers to try out some of the new features of the XNA 3.0 before its final release (planned for December 2008). One of the most waited features of this version is the the ability to build and deploy games for the entire Zune family. Now, besides the Windows and Xbox platforms you can also build games for the Zune. The good thing is that the development for the Zune is seamless with the Windows and Xbox development, the bad thing is that you are not able to use 3D graphics on your games (due to the Zune device limitations). In the video below Mike Klucher (XNA Program Manager) talks about building XNA games for the Zune:

Zune Game Development

Another cool feature of the CTP is the new Sound API. It allows you to handle sounds just like normal game asstets without the need of using the XACT. Is is also capable of handling wave, wma and mp3 files, not only the ordinary wave files supported by the XACT. The XACT is a good tool, but in my opinion, it is a little too harsh to create a XACT project for small applications that might only need a background music.

One thing that really bothers me on this version is that it is only supported on the Visual Studio 2008. It will not be a problem if the XNA 2.0 was supported on the Visual Studio 2008 too. But right now, if you want to develop for the XNA 2.0 and try the new 3.0 features you will need both VS 2005 and 2008 installed at the same time.
Problems with RSS and Google Reader
Wednesday, May 9, 2008
Every time I update my homepage its RSS Feed is regenerated, where the new RSS Feed generated keeps all its old items with their original date, content and GUID. Recently, I noticed many problems while reading my homepage RSS on Google Reader. It appears that because the RSS file is regenerated all its items are republished with different dates.

Right now, I'm looking how to fix this problem, and after fixing it I will probably change the RSS Feed address.
Beginning XNA 2.0 Game Programming: From Novice to Professional
Wednesday, May 7, 2008
Last year, I was invited by Alexandre Lobão—a great writer and programmer—to participate in the development of a XNA book. Besides me, José Antônio Leal de Farias—Microsoft MVP and founder of Sharp Games (biggest Brazilian community of XNA)—also joined the team.

When we started the book our first thought was: "XNA focus on hobbyists, indie developers, and professional developers. Let's try to create a book that does the same!". With that in mind we tried to come up with a book that covers the basics of game development, 2D and 3D game development, effects, networking and others.

After some months of work, we could finally put the book together—which was published by APRESS. The book foreword was written by Amintas Neto, who is the Academic Relations Manager of Microsoft Brazil and a great enthusiast of XNA.

Book Cover

Check the book summary below:
  • Game Planning and Programming Basics
  • 2-D Graphics, Audio, and Input Basics
  • Creating Your First 2-D Game
  • Improving Your First 2-D Game
  • Basics of Game Networking
  • Rock Rain Live!
  • 3-D Game Programming Basics
  • Rendering Pipeline, Shaders, and Effects
  • Lights, Camera, Transformations!
  • Generating a Terrain
  • Skeletal Animation
  • Creating a Third-Person Shooter Game
  • Closing Words
You can find more information about this book at the APRESS website. You can also download the first chapter of this book for free here. If you are interested in buying this book you can find it with a good price at Amazon.

I would like to thanks everyone who participated in the development of this book, specially the APRESS team for their great support. Also, it was a pleasure to work with Alexandre and José (a.k.a Jalf) on this book!
Developing an Animation Library - XNAnimation 0.1
Saturday, May 3, 2008
Last year, when I start to work on the XNA TPS game I spend some time studying computer animation, or to be more specific, skeletal animation (also known as rigging or skinning).

My duty was to implement an efficient and flexible way to animate the game characters using skeletal animation. While some actions like walking and running are simple to reproduce and can be pre-made in a modeling tool (such as Maya), other actions like aiming a target at any position might need some kind of procedural animation, or inverse kinematics (IK).

While developing the first prototype of the XNA TPS animation library I was very concerned about performance (yeah, it was a big mistake). Because of that, the animations were stored through time frames and poses. Each time frame stores a time and a pose, and each pose stores the configuration of all the skeleton’s bones. Moreover, I decided to bake all the bones, storing their absolute configuration instead of their local configuration. This system was indeed very fast: you can find a time frame in O(logN) using a binary search and then use it. However, it used a lot of memory and wasn’t flexible!

On the second prototype I was looking for different approaches to reproduce animations, such as splitting the animation in channels (where each bone has its own channel) or using a simpler and efficient approach like the XNA’s Skinned Model Sample. At that time I implemented something similar to the XNA’s sample (deadlines don’t leave me many options).

Some weeks ago I decided to put together what I’ve learned about animations in a skeletal animation library. Then, I come up with the XNAnimation, which is a skeletal animation library for the XNA. XNAnimation 0.1 is the FIRST version of this library and there’s still a lot of work to be done. You can download it with samples at the Projects page, as well as check its features. It is not open source yet (probably in further) but it's free to use in anycommercial or non-commercial application.

Skeletal Animation (Rigging/Skinning)
Wednesday, April 30, 2008
Right now, I'm working on an animation system for the XNA, which I will release its first version tomorrow. The first version of this system will come with some basic features, such as animation playback, animation speed and loop control, animation interpolation control and others. Also, I’m planning to add many more cool features to it in the next weeks. Before I release the animation system I decided to post an introduction about skeletal animation. I hope you enjoy it! =)

In the skeletal animation, each model is composed by one or more meshes and a skeleton. The model’s skeleton is a hierarchy of bones, in a n-tree like form, where each bone has a local configuration.

Skeleton

You can see by the picture above that the model’s skeleton looks like a very simplified human skeleton. If you consider that a bone can be translated, rotated or even scaled, its local configuration will be the combination of all these transformations. Note that I’m using the term “local configuration” here because the bone’s configuration is relative to its parent. Thus, if we translate or rotate any bone in the hierarchy all its children will be affected.

Skeleton

Now you may ask: why I need this skeleton, how can I use it? Ok. Every vertex of the model’s mesh is linked to one or more skeleton’s bones. In this way, any transformation applied over a bone can deform a model’s mesh. Therefore, if you rotate a character’s forearm bone the forearm of the model’s mesh will be rotate too.

Interesting, isn’t it? Now you may ask: Where can I create a skeleton? How can I link it to a mesh? There a lot of Digital Content Creation (DCC) Tools available that can handle this task, such as: 3D Studio Max, Maya, SoftImage XSI, MilkShape 3D and many others. If you are working with the XNA I would recommend you use Maya, 3D Studio Max. Another good option is the MilkShape 3D which has low price. Below is a picture of the marine model used in the XNA TPS and its skeleton.

Skeleton

The last thing we need to learn is how to store and play animations using skeletal animation. We already know that the model’s mesh is deformed according to the model’s skeleton, and that each skeleton’s bone stores its configuration (translation + rotation + scale). In this case, an animation can be stored as an array containing the new bone configuration and the time to set this new configuration. Finally, you can play an animation traversing the new bone configuration array and modifying the configuration of the skeleton’s bones over the time.
ESL Podcast
Thursday, April 24, 2008
One of my favorite podcasts is the ESL POD, which is a free english as a second language podcast. If you are not a native english speaker who wants to learn or improve your english you will really enjoy this podcast, it is a superb one!

In the ESL POD a new podcast's episode is released every monday, wednesday and friday. So you don't need to worry, there is always a new episode waiting for you! And if you want to have access to the podcasts' transcript and extra materials you can become an ESL podcast member for $10 bucks a month. Because I don't have much time to listen to podcasts at home I burnt a CD with many ESL podcast's episodes. And now, I'm always listening the podcasts while driving! =D

Everytime Jeff McQuillan (the podcast host) begins a podcast he says: "I'm your host, Dr. Jeff McQuillan, coming to you from the Center for Educational Development in the beautiful city of Los Angeles ...". Taking advantage of this post and the fact that I always wanted to say the same, now it is my time! =D

My name is Bruno Evangelista, and I'm coming to you from the wonderful city of Belo Horizonte, MG. If you want to know more about BH City check the video below for some great pictures of the city.

Brazilian version of Visual Studio and .NET Framework
Wednesday, April 23, 2008
I recently read an amazing news at Andre Furtado's blog:

Brazil is the first country to receive a localization pack for Visual Studio 2008 and .NET Framework 3.5.
"I am pleased to announce that as of today, Brazil is the first of what I hope will become new geographies in which we can provide such a community localization offering."

Just great!
Microsoft XNA Challenge 2008 - Newspaper
Tuesday, April 22, 2008
This year, after the XNA Challenge the "Hoje em Dia" newspaper (a local newspaper) interviewed me and published an interesting article about the contest. You can read it in portuguese below. Thanks for Amintas Neto who send me this picture! =)

Hoje em Dia - XNA
New post, very old news (Part2) - Microsoft XNA Challenge 2008
Tuesday, April 15, 2008
After the release of the XNA Game Studio in late 2006, every year Microsoft Brazil holds a competition called Microsoft XNA Challenge Brazil. In this competition, students are invited to create a game with XNA about a theme that is revealed when the competition begins. The competition lasts about two months and after that, all the submitted games are judge based on its production quality, fun factor, innovation and adherence to the theme. Then, the best 5 games are selected to the finals, where the author of each game is invited to present his work at Microsoft Brazil. At Microsoft the games are presented and judge by a group formed by people from Abragames (Brazilian Association of Game Developers), game companies, universities and magazines. And finally, the winner is announced. =D

It is the second time that I participate in the XNA Challenge and I can say that it was an amazing experience both times. This year the theme of the competition was the same theme of the Imagine Cup 2008: "Sustainable Environment". And fortunately, I could reach the finals again. The five games that made it to the finals were:

"Alice, the Parasites and the Book of Time" – by Bruno Evangelista (UFMG)

Yeah, it is my game. As always, I believe that I could put good graphics in the game but not a good gameplay. In this game you play as Alice, who needs to destroy the parasites that are infecting the humans, turning them into unsustainable humans.

"Gariman" – by Carolina Gomes (UNICAMP)
Gariman Picture
A game where you play as the garbageman chief, who needs to clean the streets of the city as fast as possible.

"City Rain" – Guilherme Campos (UNESP)
City Rain Picture
A SinCity + Tetris game, where you need to construct your city using the city blocks that falls on the screen. I really liked the idea of this game, it is like summing the challenge of a SinCity and a Tetris game.

"Great Adventures of Ted" – José Lourenço (UNIVAP)
Ted Picture
A 3D game where you went to dungeons, collect crystals and defeat monsters who wants to destroy the nature (like an electric saw). This game has cool features but I believe it does not have much adherence to the theme.

"Recicle" - Vitor Antonioli (UNICAMP)
Recicle Picture
A casual game where you need to collect the garbage that flows down a river. It has a simple mechanic but a good gameplay, where you can try to control up to four boxes used collect trash at the same time.

And the Oscar goes to:
  • First Place: "Recicle"
  • Second Place: "City Rain"
  • Third Place: "Alice, the Parasites and the Book of Time"
I didn’t need to mention that the winner of the XNA Challenge wins a travel to the “Microsoft Academic Days on Game Development in Computer Science Education” aboard the Celebrity Century Cruise Ship:
GDCSE 2008

Great prize, isn’t it? If you really like to begin game development and make great 2D and 3D games and can’t recommend you something different from XNA. It’s free, easy to use and you can really make a AAA game with it. xD
Slides from SBGames 2007 lecture available
Tuesday, April 1, 2008
The slides about the lecture that I gave with Alessandro Silva entitled "Creating photorealistic and non-photorealistic effects for games" are available in the Courses section in Portuguese and English.

Please, if you find anything wrong or bad written in the english version of this lecture let me know! Also, I would like to hear any feed back concerning this presentation or anything on this website! Just e-mail me at bpevangelista at gmail. =D
RSS Feed and W3C Compatible
Monday, March 31, 2008
Many time ago Ultrahead asked me to provide RSS feeding on my homepage, allowing the news to be easily linked. At that time I didn't know how to create an RSS feed but after some research I found that it is much easier than I thought. So, from now on my homepage will has an RSS feed! =)

Ultrahead's blog has a lot of interesting posts about XNA. If you are interested in XNA you should check it!
Btw, my homepage is now fully W3C compatible!
New post, very old news (Part1) - SBGames 2007
Monday, March 24, 2008
I've been pretty busy in the past few months so I didn't had time to post any news on my website. Now my schedule is returning to normal, so I could get some free time to post some very old news here! =)

This will be my first post of the series "New post, very old news". In this post I would like to talk about SBGames, the Brazillian Symposium of Computer Games and Digital Entertainment. SBGames is the main symposium of game development in Brazil (something like a game developer conference) and it's now composed of four tracks: Computing, Art & Design, Industry and Game & Culture. Last year, we had SBGames 2007 (the VI edition of the symposium) which was held from November 7 to November 9 at UNISINOS (a university in the south region of Brazil).

SBGames 2007 was a great symposium despite some organization problems, and many exciting things happened there!!! SBGames 2007 had some great international speakers, like Soren Johnson from EA, Bruno Matzdorf, Mark Danks and Sarah Stocker from Sony Computer Entertainment America (SCEA), Licinio Roque from University of Coimbra and Nelson Zagalo from University of Minho. John Nordlinger from Microsoft was also schedule as a keynote speaker but he didn't show up. It appears that he had problems to come to Brazil because he didn't know he needs a visa to enter in Brazil… =(

One of the first keynotes in the symposium was Soren Johnson from EA. Soren was the lead designer of Civilization IV and he wrote whole AI of the game. In his presentation he talked a lot about the AI in Civilization IV, and how to make the AI fun but not necessary fair! =P

Soren Picture Soren Picture

The Sony presentation was entitled "Incubation of Developers in Latin America" and it was presented by Bruno Matzdorf (Developer Support Line Manager) and Mark Danks (Senior Manager, Curriculum Engineering). One interesting thing to note is that in past few years some Brazilian developers have tried become official Playstation developers but Sony didn't approve any of them. So, developers thought that Sony was not interested in having or licensing any developer in Brazil. Is it changing now?

SCEA Picture SCEA Picture

I've also participated in the SBGames 2007 hosting a tutorial with my friend Alessandro Silva, and I also sent an XNA game to the independent games festival that took place inside the SBGames. The tutorial that I gave with Alessandro was entitled: "Creating photorealistic and non-photorealistic effects for games". It was a fast tutorial because we had only an hour and a half but it was great! =)

Evangelista Picture Evangelista Picture Evangelista Picture Evangelista Picture Evangelista Picture Evangelista Picture

Finally, every year SBGames has a festival of independent games, and last year they opened a new category for games made with XNA. I couldn't miss that opportunity, so I sent the XNA Third-Person Shooter (TPS) game that I was working to the festival. Despite the XNA TPS game was unfinished it had some good looking graphics. xD

XNA TPS Picture XNA TPS Picture

The XNA TPS game finished the independent game festival in third place. This game was made by Me, Alessandro Silva and Carlos Augusto. The game also uses a free beast model from Psionic.

I will post a revised version of the slides of our tutorial at SBGames SOON. And this time, I will post it in Portuguese and English. Btw, sorry for the low resolution pictures… The pictures that I took at SBGames were so bad that I couldn't post them in a bigger resolution!
GameFest Brasil 2007
Wednesday, October 3, 2007
This year we had the first edition of the Microsoft GameFest here in Brazil. It was a huge event with three different tracks (Academic, Professional and Design) and more than one thousand attendees.

I have participated of the professional track where I gave two lectures. The first was “Creating Visual Effects for Games using Shaders” where I talked about how to create and use shaders with XNA. The other was “Creating a 3D game with XNA”, this was tutorial where I presented how to create a very simple but complete game with XNA.

You can find these lectures in the Courses section! Both are in Portuguese.
XNA FPS
Tuesday, September 18, 2007
XNA FPS is a simple shooter demo made with XNA. This first version of this game is very simple, featuring good graphics effects and a simple AI and Physics system. I will post more information about this demo soon. You can check a YouTube video of the game below and a better quality video here.



Some game credits: Me (Lead Programmer), Alessandro Silva (Programmer) and Carlos Augusto (Artist). The beast model used was made by Psionic.
XNA 2D/3D Course
Tuesday, September 18, 2007
Last month I gave a course about XNA at the UVA (University Veiga de Almeida) at Rio de Janeiro, Brazil. In the course I tried to cover some topics in the development of 2D and 3D games.

The course slides are now available in the Courses section and they are in Portuguese. Enjoy! xD
Detailed Surface Viewer
Saturday, September 8, 2007
Detailed Surface Viewer is a small tool that helps developers compare different techniques used to render surface details on different types of surfaces. The techniques used to render detailed surfaces usually don't increase the surface complexity but simulate the wrinkles and unevenness on the surface using some maps, like normal maps.

In this version of the tool there are many techniques implemented, such as: Normal Mapping, Offset Parallax Mapping, Relief Mapping, Parallax Occlusion Mapping, Cone Step Mapping, Multi-Layer Cone Step Mapping, Sphere Tracing, Displacement Mapping, and others. I'm planning to add the "quad-directional cone" and the "relaxed cone" techniques soon!

You can check a video of the tool below, and you can download a better resolution version of the video here (encoded with DivX). You can found the Detailed Surface Viewer in the Shaders section.

Home Page Updated
Saturday, September 8, 2007
It took me some days to re-write all the pages and styles of my home page. While you may not see any visual difference from the previous home page, the code now is much more clear and easier to maintain. Also, all the pages now are now valid XHTML 1.0 pages (according to W3C), with exception of the index page that has some YouTube videos embedded.
Playstation3 Architecture and Development Tools Lecture
Tuesday, August 7, 2007
It's a long time since my last post... I'm doing my master course and I've been very busy in the past few months!

I wrote a lecture about the Playstation 3 architecture and development tools (you could find it in the Courses section). In this lecture I talk about the Cell Broadband Engine Processor (PS3 main processor), the RSX (PS3 graphics processor) and the main APIs used to develop games for the PS3, the PSGL (Playstation Graphics Library), Cg (C for Graphics) and the COLLADA file format. I've included in this lecture some examples of how games are offloading work from the PPU and the RSX to the SPUs.

Keep in mind that I'm not a Playstation 3 developer despite that I've a small experience programming for the Cell Processor. Some topics presented on this lecture (e.g. The Playstation Edge) were presented on the GDC 2007.
XNA and Game Market Lectures + Pictures
Monday, May 21, 2007
I've posted the slides of the lectures "Developing Games and Game Market" and "Creating Games for Xbox 360 and PCs using XNA" in the Courses section. Both lectures were presented at the CGGT 2007 and are in Portuguese.

You can check some pictures of the XNA lecture below (the most crowded lecture until now! xD).

Picture Picture
Picture Picture
Picture Picture
Pictures of others CGGT lectures here. (Lectures made by Alessandro Ribeiro)
PS: I would like to apologise Carlos Augusto, since I forgot to take my camera to his presentation... =(
Installer for XNA games
Tuesday, May 15, 2007
I've created some demos using XNA since its first non-beta release in late December and I use to distribute these demos to some friends that test them for me! =) The problem is that some of my friends have reported problems while trying to run these demos. Usually these problems are because they didn't install the correct version of either DirectX Runtime, .NET Framework or XNA Framework. By now, I've lost some hours helping them install all the stuff they need in order to run XNA applications. So I decided it was the time to create a new installer...

In January, I created an installer for my SpaceWar Re-Evolved mod using the Install Creator but the installer was very simple and just runs the XNA Framework Redistributable in the end of the installation. In the past few days I worked in a new installer using the Nullsoft Install System (NSIS) and based on the setup program that Benjamin Nitschke made for his games. The installer checks if the .NET Framework 2.0 and the XNA Framework 1.0 Refresh are installed on the computer and if it doesn't, it will download and install them. It's not possible to skip the .NET or XNA check since it's very fast and you need them in order to run the applications. The installer could also run the dxwebsetup.exe in the end of the installation to check if the latest DirectX version is installed. It also has other features (common in installers made with NSIS) such as uninstall log.

I've uploaded the SpaceWar Re-Evolved mod again with this new installer. I've also added the installer source code to the Projects section. There are some features still missing in the installer, such as checking the DirectX version before trying to run the dxwebsetup. If you find any bug in the installer or want to suggest some new features to it e-mail me! =) I would appreciate to hear some feedback. By now, feel free to use the installer code to create installers for your own XNA games.
Boid Simulation Video
Sunday, May 13, 2007
I'm creating a demo about boid simulation using XNA. The first version of this program was made for the Computer Graphics subject during my master course.

Now I want to improve the boids algorithm, clean the code and I expect to release this demo in some weeks! You can check some videos below:


Updating some files
Wednesday, May 10, 2007
Today I noticed that the Spacewar Re-Evolved Deformation Pack was missing some audio files... I've uploaded a new version of the Deformation Pack that should work now! I'm also updating its source code, now it contains everything that you need to compile and run the game. I'm also removing the old Spacewar source code, since the new one has more features.

In a few days I will post some news about other XNA projects that I'm working on. Btw, I've also uploaded a new version of my Resume.
Sphere ray-tracing on the GPU
Sunday, April 22, 2007
In the end of last year I've implemented a sphere ray-tracer using shaders. However, the implementation had a few bugs concerning reflected rays intersection. Since I was somewhat busy at that time I needed to stop this project but last week I started to work on it again. I would like to thanks Alessandro Ribeiro who helped me fixing some bugs.

You can found the Sphere ray-tracer in the projects page. This version still has some bugs when the raytraced spheres are overlapped.
CGGT (Computer Graphics and Game Technology)
Sunday, April 22, 2007
Last year we created a group at UFMG (Federal University of Minas Gerais) named CGGT. This group was created to research topics related to Computer Graphics and Games. This semester we are hosting some interesting lectures, such as: Developing tools for the PS3, Creating games for Windows and Xbox 360 with XNA, Global Illumination Models, Volume Rendering and others. All these lectures are free and open to the public. If you live in Belo Horizonte-MG, Brazil you are invited to join any lecture.

You can check the CGGT homepage here. (Schedule in Portuguese)
SpaceWar Deformation Pack
Wednesday, March 7, 2007
I've modified the previous version of the SpaceWar Re-Evolved game to allow real time deformation of the ships. With this new feature you can deform your ship whenever you hit an asteroid or are hit by a bullet. I also correct some minor bugs of the previous version and added a new sound track to the game!

You could find this pack in the Projects section. Enjoy! xD

SpaceWar Re-Evolved Deformation
SpaceWar Re-Evolved
Monday, February 19, 2007
Today I've finally posted the SpaceWar Re-Evolved game and its source code. I've been very busy these days, so I wasn't able to post it sooner...

You could find the game in the Projects page under the DirectX section. Since the XNA works on top of DirectX, I decided to put the game in the DirectX section, instead of creating a new section for it.
First Microsoft XNA Challenge Brazil
Wednesday, February 7, 2007
I'm very happy to say that I've participated of the first Microsoft XNA Challenge Brazil. I was one of the five finalists and finished the competition in second place. The competition was to create the best mod for the game Spacewar Evolved in almost 3 weeks.

Next week, I will post some pictures of the competition and the modified version of the game that I made. Below (in the left) is a picture of the five finalists of the competition, from the left to right: Jose Lúcio, Mairlo Luz (3rd place), Me (2nd place), Alexandre Lobão and André Furtado (1st place).

Microsoft Challenge Microsoft Challenge
New home page
Tuesday, January 9, 2007
It has been a long time since my last updated. I was recently accepted to a master course in Computer Science, so I decided to update my home page during my vacation.

I added my undergraduate thesis to the Publications section, and two new presentations about shader development and rendering of detailed surfaces to the Courses section. I also changed the site layout.