Susan IbachTechnical Evangelist
Back in November of 2008, Microsoft launched the Xbox Live Indie Games Channel, giving indie developers a chance to publish to a platform that was once exclusive to major game studios. At the time, I was experimenting with C# bindings for OpenGL and DirectX purely out of interest. But the never before seen opportunity to publish directly to a game console, sparked a desire to create a complete game. The opportunity subsequently introduced me to the tri-platform game development framework, XNA.
Back then I was a computer science undergrad, and managed to get a fellow classmate interested in developing for the Xbox as well. Together we came up with a few ideas for games, most of which though were just unrealistic for a development team of two with no background in 3D game programming. Eventually we agreed on a simpler start, with a unique spin – literally – on the classic Sudoku puzzle.
This variation of the puzzle was in full 3D and placed on the surface of a cube, where each face of the cube would contain 16 unique values, with all 6 faces ultimately contributing to one unique solution. We decided on a simple name – Sudoku3D. It was unique, simple to play, relatively easy to implement, and would still require an emersion into 3D graphics. We agreed that the game itself would have to appeal to both challenge-seekers and those who would prefer the classic Sudoku puzzle. As a result, one of the signature features of Sudoku3D is the ability to unfold and flatten the cube into 2D view and fold it back for 3D viewing in real-time.
Soon after development began, the XNA framework became a lot more than a technical requirement to get published on XBLIG. It became an obsession! Designed for accelerated managed game development, a team of computer science students (that would eventually grow to 4) could only feel blessed to work with XNA, which reduces amount of time spent on writing boilerplate code. Two years later, it would also become my tool of choice for my Masters project, which deals with significantly more complex 3D development than Sudoku3D.
While developing Sudoku3D for Xbox, I was eventually slapped with the reality that a puzzle game (even in 3D) was not exactly a perfect fit on a console that was dominated by first-person shooters like Halo. At the time I wished that Microsoft would release a “phone version of Zune”, that – just like Zune – would support XNA runtime, but with added 3D capabilities. Eventually my wish was granted, and a Zune Phone (yes, I really did call it that) was announced.
With the 4th release of XNA, we continued Sudoku3D as a Windows Phone 7 project and tested it with the emulator. Later, we received a special opportunity to test the game on a WP7 developer prototype. The joy of seeing the first screen rendered on the phone screen was quickly demolished by the horrendous frame rate that the game ran at. At barely 4 frames per second, the puzzle resembled a cartoonish slideshow more than a 3D game.
Even though Windows Phone 7 is branded as an “Xbox in your pocket”, without prior mobile game development experience, we didn’t really know what to expect on the actual device in terms of performance. The fact that we were developing a simple puzzle game didn’t help either; it only added to complacency during development. In the initial promotion of WP7, the game “The Harvest”, a 3D extravaganza, ran at a smooth and steady 30 fps, whereas our simple puzzle on a cube was a slideshow. The lengthy optimization period (or as I would like to call it: “learning period”) lasted longer than the development of the game. In that time, we fixed more mistakes than XNA’s Shawn Hargreaves ever mentioned in his blog (and his blog is huge!).
Fast-forward to present day, Sudoku3D is finally on the device it was meant for. After passing certification without a single failure, the game picked up over 4,000 fans on Facebook (facebook.com/Sudoku3D) in less than a week on the marketplace. And having learned many lessons in game development, we were able to push the first update to the game within the first week after publishing the game. More information and video demos may be found on the Sudoku3D Facebook Page
Title: Impossible Shoota
A fantastic game that really demonstrates the standards that Microsoft set out for their hardware manufacturers to have. The rich graphics are displayed throughout all Windows Phone 7 devices in this new accelerometer based shooter game. Having played many shooter games ranging from handheld devices like my TI-83 calculator to the modern day consoles, I have to say this vertical spacecraft shooter game brings another element of game play. With the smooth maneuvers using accelerometer to tilt the object left and right, touching a location anywhere on the screen will have the Starboxer spacecraft teleport to the location you tapped. This function allows you to get in and out of tight situations quickly without having to navigate through the enemies. Do not start thinking this is an easier game now that you are able to teleport throughout, the amount of enemies and game pace increases as you progress through the levels. With no final boss levels in the game, the challenges will become more difficult as enemy fleets become denser.
The game provides a great simple and quick experience but extremely addictive. The objective is to continuously shoot all objects in the spacecraft path and collect the enemies’ orbs to power up. The leader score board gives the game a social element that challenges not only yourself but those that play. Without any extra in game life, each game play is a new entry in the scoreboard thus making the experience both frustrating and addicting. Impossible Shoota is a free download that is worthy of many hours of game play.
Learn how to create your own great games by downloading the free resources at "Dream Spark" You can get started in creating great games just like Impossible Shoota by downloading Visual Studio, XNA 3.1 Game Studio, and Windows Phone 7 programs. Try out the tutorials and lessons from Channel 9 news: "Window Phone 7 Development for Absolute Beginners" and learn the differences in development platforms between XNA and Silverlight environments. The demo tutorial is presented by team members behind the "Unite" Window Phone 7 application. The video dissusses advantages and disadvantages in development and design between XNA and Silverlight platforms.
The day that I decided to participate in Imagine Cup 2010 is not exactly clear. Having heard of the Imagine Cup Global Competition event through friends and the Microsoft Student Partner Program, I had always thought that maybe it would be fun to give it a try. At the time, we did not know how much of an experience we were going to gain from Imagine Cup but it is definitely more than just fun we had when looking back. Welcome to part one of ‘The Imagine Cup Journey’ blog series, I am reflecting back on my own journey from the start of the project to the emotional rides myself and the team members experienced during the entire process. What we learnt, what we had become, and what we are all doing now has been greatly influenced by the Imagine Cup competition put together by Microsoft. Let the journey begin, again.
The exact turn of events that transitioned into the start of our team’s Imagine Cup project is not entirely defined but the major points are still vivid in my mind. I remember sitting in my Signals and Systems Electrical Engineering class at McGill University and the professor talked about how polarizing lens had changed the way we are able to view images that was once not possible. He mentioned that the theory behind polarizing lens had been around for many years but the application is only now coming into form and that is it is up to us future engineers to turn theories into applications that can advance human life. I recall walking away from that class quite frustrated because I wanted to apply my knowledge in creating something that can help society. I wanted to be part of something special and influential in shaping the future of technology. This was the start of my Imagine Cup path, having the mind set of wanting to create innovative technological applications that may one day change the world.
When I first heard that I was going to be working for Microsoft, the first thing I did was to sit back and take a deep breath. If I had had the energy I would have proceeded to do a mazurka, a jig and then finish off with a pirouette, before then tearing off my clothes and streaking down the hallway.
Fast-forward to October 2010 and “hectic” was my new watchword. It’d been more than a month since I’d joined the ranks of Microsoft’s army of marketing assistants, and the work just kept on coming. If you thought your organizational skills were top-notch in university, wait until you’ve whetted your appetite at a company like Microsoft – you’ll soon be eating your words.
The reality of the situation became clear on Day One. I sat at my desk, signed into my user account and within three seconds, fourteen emails had forced their way into my inbox. I spent most of the morning fighting a hungry tide of emails, memos and meetings, only to find that I was to test and deploy a newsletter, follow-up on three pending investigations from the previous coop’s to-do list and then attend two lunch-and-learn sessions – all in just 4 hours. My saving grace was four cups of coffee, two cokes and plenty of stubbornness to keep me ploughing through my own to-do list. By lunch time I was answering emails at a rate of 6 per minute and I was receiving a new email every 8 seconds.
Was it worth it? Yes! It was insane. I was loving it.
If you’re expecting to read a list of personal gripes – don’t. The real world doesn’t care if you’re a coop, or an intern – it expects you to pick off right where the last coop left off – and quickly to boot.
At the end of the first day I still didn’t have a clue as to what my role in the organization was. Ok, I lie a little, but I can say that I was sane enough to realize that my job description only extended up until the front entrance, beyond which I was free to perform any manner of mental gymnastics to try and decipher how the myriad tasks being flung my way were in any way, shape or form, related to one another. The truth is, I’m still not fully sure. Maybe they are related, maybe not. Maybe some are related, others aren’t. It really doesn’t matter. If I’m learning anything at Microsoft, it’s that I’m able to live a tangible re-enactment of the statement “reality is what we make of it.” I know my position mainly centres around metrics, reporting, deploying newsletters and managing websites (as most marketing assistant positions are wont to do), but I’ve also realized that if I spy an opportunity to get involved in a project or event that’s outside of my scope of responsibilities, and I choose to take it, or if I offer to make my manager or my colleague’s life easier by shouldering some of their workload, I will be rewarded with opportunities to develop new skills, make amazing contacts and learn more about myself in the process.
What’s more, once people saw that I was willing to devote a little extra time and effort to participate in an event that I didn’t have a direct stake in, I started hearing back from them more often. I’d be sent a quick email, often as an afterthought, but it’d be enough for me to find another way to apply and hone my skills in a new direction.
The truth is, I may come away realizing that I only carried a certain portion of my job description at Microsoft (the rest having changed or been made redundant over time), but I can safely say that I’d never have known what I would have been capable of if I hadn’t pushed myself to find out. And being on the lookout for challenging opportunities to get involved in belongs on the same long road to growth, development and – higher up on Maslow’s pyramid – self-realization and self-actualization. I hope I can live up to that statement. In the interim, as I progress through my work term with this organization, I’ll continue to serve you platters of my thoughts and ideas, garnished with my opinion and accompanied with my perspectives as a student. In case you’re wondering, I haven’t yet found a way to reach out to Bill Gates, but I promise you…I’ll keep trying.
Happy New Year! 2011 is going to be a huge year and wishing everyone the best! 2010 just passed us but it was not with some big announcements. Microsoft released the much anticipated Kinect hardware for the XBOX 360 entertainment gaming console. To kick start the new year, in this 10 part weekly mini series we will explore the origins, science, and applications behind the innovations of the Microsoft Kinect. This motionless controller extension for the Microsoft game console has already revolutionized the entertainment and video gaming worlds while more industries such as medical and business will soon follow.
Never had we been able to experience human and machine interaction without needing to hold or wear some form of input device. Microsoft Research and Development group is behind the innovation of the Kinect peripheral. The company's initiative to develop ground breaking ideas into applications from within the company has led Microsoft to fund heavily in creating consumer market products. The Kinect's functionalities and applications is still a work in progress but the core of its features has been an investment that was worth the wait. Over 3 years of research, design, development, and proof of concept drafts has been invested across Microsoft's research operations in the United Kingdom, China, and Redmond United States.
The idea behind the Kinect came abouts creating a better and more realistic gaming experience than what was on the market 3 years ago. Taking what Nintendo Wii console had started with motion sensing game play, Microsoft completely took the idea in a whole new innovative direction and eliminated the need of having users hold hardware devices. This new approach to gaming has freed up the player's hands and allows for complete degree of freedom. Microsoft's different research groups collaborated on machine vision language protocol/algorithm technologies which enables the XBOX console to recognize players in front of the hardware's camera. In part 2 of the Microsoft Research & Development series, we will dive into the concepts and how Microsoft brought machine vision technology to life with XBOX Kinect.
Game Development Tools: Dreamspark
Part 2: Machine Vision technologies