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.
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.
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.
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 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.
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!
Anyways, go download it for FREE here and try to beat the high scores.
Puzzle Jumble started as an experiment to test and learn a little bit about XNA and Windows Phone 7. I decided to write some tips to help those who like me started experimenting with XNA and WP7.
The stencil was used to cut the hole for doors so that pieces would appear to be sliding over the doors but under the board. The stencil was active in every frame which lowered the frame rate quite a lot (18-20 FPS). The solution was to activate the stencil only when a piece is going to leave through a door, so be careful when using the stencil buffer on the WP7.
GPUs like the DXT format and the WP7 is no exception, but unlike desktop’s GPUs the WP7 processor only loads DXTs that are power of two. My regret is not using DXT from the beginning when I started working on Puzzle Jumble. When I changed all my textures to DXT I had to change a lot of code, all the draw calls where I was using a position to draw a sprite had to be changed to a rectangle because the textures had a different resolution (power of two).
But the change was very useful:
– I gain some FPS;
– the memory footprint was reduced from 95MB (total peak) to about 45MB;
– the XAP file was reduced from 25MB to 9MB;
– thus, as a consequence reduced the loading times.
When parsing floats it’s easy to add bugs in your application if you ignore the culture format. Make sure to use the correct format provider or at least use the culture independent System.Globalization.NumberFormatInfo.InvariantInfo.
Another problem that I found when using floats was that this comparison: if(a < float.Epsilon) (when a = 0) would work everywhere except on the WP7 device itself where it would always return false.
HTML page requests
This is not a WP7 specific problem but I thought it was worth mentioning it. Since Microsoft didn’t provide us with an API for leader boards I implemented an online score system using our servers to keep track of the users’ scores and best times.
The system was working fine to post data online but there was a problem when retrieving it. The first time the data was retrieved everything was fine but the subsequent retrievals would always be the same as if the data was cached somewhere.
After searching for a while I found out that the problem was that the HTTP request was being cached since the URL didn’t change, it would cache the result for that URL. The solution was to add a random attribute to the URL so that the the request couldn’t be cached. Not pretty but it was the only way I found to make it work.
And those were the problems that I found during the Puzzle Jumble’s development phase. I hope this useful for you!
This project started as a personal project to test the XNA 4 and the Windows Phone 7 emulator. I made a simple prototype in just one day (2 afternoons to be more precise.) After that, 3D artist Bruno Nunes and I endeavoured in the task of making the game as fast as possible so we could release it on time coinciding with the WP7 release. The project took about 4-5 weeks to complete just the two of us and is available on the Windows Phone Marketplace.
Puzzle Jumble appears to be a simple puzzle game where the user has to complete an image within time but there’s more to it. It mixes other gameplay elements such as doors, springs and bombs to make things more interesting.
Puzzle Jumble, the amazingly addictive puzzle game that takes picture puzzles to a whole new level. Make your way through delightful jigsaw puzzles full of beautiful colourful images… but watch out for the doors, springs, bombs and more as they are sure to create additional challenges and add to the fun.
Choose between arcade mode or attack mode and try to compete with top online scores.
We’re so sure you’re going to love Puzzle Jumble that we’re going to let you try it out for yourself – check out our FREE trial.
Orange Game is a mini game of a larger game prototype that ZPX decided to publish for the iPhone and more recently available on the Windows Phone 7. It took about 3 weeks to a month and two people to make the first release to pc/mac/web using Unity3D. You can try it online for free at its homepage or at Wooglie where it is the most played mini game at this time.
Orange Game is a thrilling game that tests the player skills.
In a remote town called Farmocolis, Uncle Bob asks for his nephew’s help to catch some oranges. Little Zoy thought it was a boring task so, to make things interesting, he decided to retrieve the oranges in a rather unusual way. Instead of using a basket to carry oranges like a normal person, he uses a helmet with a spring attached. The oranges bounce on his head and he doesn’t know where they’ll fall. They either fall in an empty zone which Zoy has to prevent it from happening or they will fall in their final destination, the truck with an insanely deep cargo area.
As time passes by Uncle Bob will give more and more oranges to Zoy and this is where the fun begins!
Orange Game on the iPhone and WP7
This project is where I started my career as a game programmer professionally. In 2005 I joined Move Interactive to work on this title which unfortunately haven’t seen the light of day. But I learned a lot while working on this project and I can say I’m proud of my work and the work of the rest of the team. We sure did a good job building an engine from scratch and putting up a trailer and technology demo for E3, a playable prototype using our in house engine and also one more prototype using the Unreal Engine 3 (UE3). IGN wrote a nice preview about it after E3.
Ugo Volt is an action/adventure game played in first and third person. Ugo, the main character, leads a rebellion group against a the corporation controlling a post-apocalyptic future. He is the first prototype of a hybrid humanoid with implants that allow him to control electricity in different ways.
It was first presented at E3 in April of 2006 with a trailer built using the in house engine and two tech demos showing the engine’s capabilities. Still using the proprietary in October of 2007 the first playable demo was released on both PC and XBox 360 in the form of vertical slice. Trying to focus the low resources available on the gameplay, Move Interactive decided to switch to Unreal Technology and another playable demo was launched in March of 2008 using the UE3.
Playable demo using Unreal Engine 3
Being a small team of developers, my responsibilities in this project varied in different areas including: core engine, editor, engine’s integration with FMOD, ScaleFormFX and GameMonkey script, gameplay, simple particle and shader effects, cinematic engine and sound manager.
While I was working at Move Interactive as a game programmer, we were just finishing another prototype of Ugo Volt and there was an opportunity to develop a simple 3D platformer game. Inspired by Pandemonium, we developed Floribella.
The Floribella game is based on an argentine telenovela named Floricienta which was very popular some years ago in the Portuguese adaptation with the same name.
This project begun in June of 2007 and was published by November 25th of that same year in Portugal. More recently in 2009 it was launched in several other countries such as Italy, France, Spain and Brazil.
The Torque Game Engine was used in this production where I worked as a gameplay programmer in both Torque Script and C++.
This weekend I “replayed” the special edition of this great game nobody has heard of, Monkey Island 2 Special Edition: LeChuck’s Revenge. It was a great pleasure to play this game in full HD with beautiful art. The new sounds and music were also great and immersive, although the iMuse system didn’t have the same smooth transitions as the old version (as expected), they did a pretty good job in this version.
The developer commentary are very welcome but most unfortunately short.
Here are a few glitches and surprises I found while playing this version:
Sam and Max (in old version)
Sam and Purple Tentacle (in new version)
Guybrush looking at Manny :)
I had read on the internet that some people complained about these kind of problems mostly on Xbox360. I don’t know if those are glitches in the graphics system or if the artists didn’t paint every pixel they should have paint. In the wharf of Phatt Island there’s even a bunch of pixels that stay on top Guybrush in the middle of the street.
Also, the waterfall sound got stuck for some reason and it was playing in every room. I had to save and load the game to make the sound go away.
One other bug that I found is when you steal the monocle from Wally, if you look closely, the animation frames still show Wally with the monocle every time he looks down. Interesting is the fact that this is also a glitch in the old version of the game but much harder to spot due to the graphics resolution. My guess is that it was to spare a few more Kilobytes for other animations.
Another annoying bug was the cursor when trying to play with the XBox360 game pad. I couldn’t move the cursor because it would jump to the previous mouse cursor position.
And before I go, I also found a major bug in The Secret of Monkey Island Special Edition a while ago, here are the shots:
But nonetheless, they are both great remakes, specially Monkey Island 2 Special Edition. I’ll be back when the true Monkey Island 3 comes out.