Windows 8, Visual Studio 11 and CLI Args Made Easy 11

I decided to try the new Windows 8 consumer preview and Visual Studio 11 Beta to see how the new systems behave and to check the new features. Windows 8 may surprise some (as it did to me) at the beginning but I personally like most of the changes. VS 11 also as a new look and lots of new features but I’ve only started to scratch the surface of it. The first thing that I tried on VS11 was to see if CLIArgsMadeEasy2010 worked and it didn’t so I decided that this would be my first project in VS11.

It was actually easier than I thought it would be as it just needed to be recompiled in VS11. So here it is the new version of CLIArgs, CLI Args Made Easy 11. It has all the same features of CLIArgsMadeEasy2010 v1.2 but I’ll keep it beta for now while the VS11 is in beta. Grab the new version here.

Interactive Portfolio Update

I just posted an updated version of my Interactive Portfolio using Kinect. It was updated to work correctly with the latest Kinect SDK 1.0. The application is now installed via ClickOnce which checks if you have the software requirements installed to run the app. It took a bit to figure out while ClickOnce wasn’t including some required files in the installer but it appears that there is a problem when mixing XNA and WPF projects.

You can grab the project here.

Kinect and WP7 interaction

By the same time I did my portfolio I also did another experiment that’s in this post. A few days ago I saw the KinectoPhone project and thought it would be cool to adapt it to another project I was developing with Francisco Campelo. This project allows a desktop application using Kinect to communicate with another application on the Windows Phone 7 synching its state between the two apps by communicating through a server.

I changed a bit the network code and plugged in with other code I had done for the particles and here’s the result:

Kinect and WP7 interaction

The red particles on the big screen are from Kinect’s skeleton and the blue particles are sent from the WP7 through touch screen input. On the WP7 screen, the blue particles are from Kinect’s skeleton and the red/white ones from the user’s input.

This could get many improvements, network and feature wise but I’ll leave that to some other time. I have many ideas but the time is short so I’ll be moving to another one soon.


  • My parents for helping me out testing and recording the video.
  • Anabela Faria for the video editing.
  • Francisco Campelo for the original idea which led me to the Kinect version.

CLIArgsMadeEasy2010 Update

I just updated my CLIArgsMadeEasy2010 Visual Studio add-in. It fixes a bug that prevented it from working correctly on solutions that included projects inside project folders.

I’ve also decided to update it with a small feature that saves a lot of time. If you’re like me and have a few add-ins installed, you might have a context menu like mine that fits the whole screen at 1080 and it becomes painful to find the “set as starting project” option. So CLIArgsMadeEasy2010 v1.2 now includes a neat combo box with the current startup project and all the other projects which allow you pick another project as the startup project very easily by choosing it from this combo box.

If you don’t use any of the features you can hide them by clicking in the arrow beside the add-in toolbar box.

Grab the add-in here.

Interactive portfolio using Kinect

I like to explore different technologies that relate with computers and that’s why I own a Lego Mindstorms NXT . More recently I bought a Kinect to transform some ideas into real applications.

I’m currently looking for job in software development in the Toronto (Canada) area and it occurred to me that I could present my portfolio in a fun and entertaining way. So I decided to create my first Kinect application to be this interactive portfolio. Although I have some years of experience in business applications, portals, intranets, etc., I decided to compile only my experience in game development and interactive 3d projects.

If you don’t own a Kinect you can watch the video below to see how it works. I encourage you to skip the video in case you want to try the application or you’ll ruin the experience.

Interactive portfolio

The code uses the following technologies: C#, .NET, XNA and WPF. I also used two open source libraries to help with the gestures and the XNA integration with WPF.


Software requirements:

Kinect application:

Note: Please make sure you install the software requirements or you won’t be able to install the application.


  • My parents for helping me out recording the video.
  • Anabela Faria for the video editing.
  • Paulo Silva for the animated silhoutte.

A Walk in the Dark

Bruno Vidal and Paulo Silva started working on “A Walk in the Dark” while they were working with me at ZPX. I saw this project evolve from the very beginning and was always eager to test new builds and levels they were working on. In the meanwhile they left ZPX and continued their work on AWITD.

374769_282116308502179_229708283742982_796597_2146777246_n          AWalkInTheDark_09

Since then, the project had massive improvements in every direction, gameplay, art, music, etc.. Recently I was asked to help in the project and I gladly accepted to join the team in that effort. Unfortunately the time available isn’t much but I hope to help wherever I can.

Announcement trailer


Flying Turtle Software is the name of the company behind A Walk in the Dark. The game is supposed to come out in 2012 for the PC.

Jumping Jack for WP7 – GameDev Fun Facts

Last night was time for another XNA Pizza Night event at Microsoft Portugal (Tagus Park). Once again ZPX presented a “new” game. “New” between quotes because the original game is from 1983 and it was older than 90-95% of the people in the audience. The game is none other than Jumping Jack for ZX Spectrum.

I played this game for the first time almost 27 years ago when I had just made 5. In fact, this was the first game I ever played on a computer and it’s probably because of it I’m here making games.

I want to dedicate this game to the memory of Nuno Sabino, my brother. It was him who received the ZX Spectrum 48k as a Christmas present and it was him who got this great game and so many others that influenced me and made me want to program and make games since then. Thanks for everything bro.


Let’s get into the development fun facts:

  • It took me about two weeks working after my daily job to get this working for the demo. This would take less time if I worked on it regularly everyday, I would say 1 week. I don’t know how much time it took Albert Ball to program the original version but my guess is that it took him a little longer. He had  to program it in Z80 assembly and didn’t have help from tools we have available today, specially for debugging, it must have been a challenge at that time.
  • Although we had the Spectrum 48k, the original version of the game ran on the Spectrum 16k, i.e., it ran in less than 16k of memory. The actual version for WP7 takes about 10-16 MB, more than 1000 times larger than the original version. I didn’t and won’t make an effort at this time to make the game as smaller as the original version and I probably couldn’t do it for the WP7 but I think I could do it for the PC version if I had some time. Maybe someday, who knows.
  • The game took around 23 seconds to display a splash screen and 55 seconds to load the game making that 1 minute and 18 seconds total to be able to play it. The WP7 version takes about takes 3 seconds to load (and that’s because it displays the splash screen for 3 seconds otherwise the splash screen would pop in and out too quickly.)
  • At this moment this version has about 2000 lines of code. Once again I don’t know the exact number of lines for the original version but I think it will probably be more than 2k lines of Z80.
  • I started by using Farseer Physics but during development I realized that doing the “physics” by hand would be easier than tweaking Farseer Physics. In this demo I’m still using Farseer doing raycasts to see if the player can jump or falls and the debug to draw the lines “Fixtures”. I will probably end up removing Farseer completely in the final version.
  • The graphics and sounds are exact replicas of the original game. I took screenshots from the game playing on a Spectrum emulator and edited them to adjust the transparencies. I was going to record the sounds from the emulator but Zalo had already done that and I used the sounds from his 3d version.
  • The last thing I want to talk about comes from a Spectrum limitation in the graphics display. Spectrum machines had a 256×192 resolution and 15 available colors (3-bit palette that makes 8 colors and another additional bit that says if a color is bright or dark but since one of those colors was black, that didn’t have the bright version making the 15 colors.) The way the information was drawn on the screen was in blocks of 8×8 pixels known as attribute blocks. Only two colors could be used in each of these blocks and if a program tried to display 3 colors in any attribute block one of the colors would change to match one of the other colors, this was known as attribute clash. In Jumping Jack this problem was evident in various situations, one of them was when Jack crashed against a line/wall as seen in the following image:


Jack was rendered in red due to this limitation and I decided to keep it rendered in red as I thought it was funnier and made sense to show the shocking moment.

And that’s it, Jumping Jack for Windows Phone 7 will be released eventually (soon I hope), maybe by other name.

SimKids (2009)

Simkids is a captivating videogame from ZPX Innovation labs that promote healthy habits for young children between ages of 5 and 12 years. I worked as lead programmer and also contributed as game designer in this project.


The adventure starts with the player’s character setup. Children may customize the shape and color of their hair, skin and what clothes they dress, before jump in into the virtual world. They start in a friendly and colorful town populated with some charismatic characters. Interacting with these characters, the player comes to know some of their issues that could be overpass by solving quests or succeed in funny challenges. At time to time, characters presents small polls that test the player knowledge and if answered correctly give him extra bonuses for his character.


As the storyline flows, the player faces topics that goes from basic food recognition to more complex nutrition issues or healthy eating habits. These topics are lined up with the school program for the first learning cycle.


Places I’ve Seen for WP7

This summer I decided to build something for WP7 in Silverlight to learn something new. Places I’ve Seen was the result of my learning experience. It was fun to use Silverlight, it’s very easy and the Visual Studio Editor for Silverlight/WPF is amazing (didn’t try Express Blend yet) and the data binding of controls saves a lot of boring work.

Based on Where I’ve Been, Places I’ve Seen allow you to save a list of your visited locations around the globe, as well as a list of locations to visit (like a wish list). There are three ways to add items to your lists:

  • by typing the name and choosing from a list;
  • by picking a image from your library (only works if you have geo tagging on);
  • or by adding the current location using GPS (this only adds to the list of visited places).

In addition I thought it would be cool to view images from each place so I added that functionality that searches images on Flickr from a place of your choosing.

Here are a few screen shots of what it looks like on the phone:





It’s available on zune here.

Think Fast!

Since I didn’t post here for a while I had to come up with a good reason for that. The reason is Think Fast! a new game from ZPX for the WP7 platform. Think Fast! started as an experiment to test the world of free apps and see how people would react to such a simple game. I can say that we’re happy with the feedback that received so far.


Let me first explain why the visual contrast between (Orange Game or Puzzle Jumble) VS Think Fast!. The reason why Think Fast!’s graphics suck is because I was the one doing them. While the other two games have the gifted hands of Bruno Nunes (2D/3D artist and animator), Think Fast! has only my poor programmer’s hands.
Also, each one of the other two games took more or less 1 month to complete and the first version of Think Fast! took me about 14 hours to complete.

But besides its ugliness, we thought the game was fun enough as it was and that we should release it to see if people liked it. And from the reviews we can conclude that the people like playing it thus proving that gameplay is much more important than the graphics (as if there was any doubt in that!)

This game challenges your brain by presenting two opposite facts and forcing you to take quick action or risking to lose the game. The person who can hold on longer wins the game. At this moment there are two mini games you can try but you can expect more in the future.

Do you expect more challenges in Think Fast!? I’m sure you do! I’m planning on releasing more updates as soon as I can. The next update will have a “news” system to keep players updated about information related to the game and/or new features to come. You can also expect an update/upgrade in the graphics to make it more user friendly. There’s one review complaining about no help for the second level, so I’ll probably add an information panel to each level. And last but not least, more brain twisting challenges of course! Smile

Anyways, go download it for FREE here and try to beat the high scores.